爱意满满的作品展示区。
nladuo

一个简单的网络小说推荐系统

  •  
  •   nladuo ·
    nladuo · Apr 24, 2017 · 6690 views
    This topic created in 3308 days ago, the information mentioned may be changed or developed.

    大概去年的时候 10 月份的时候,看到了 v 友的这篇帖子:一个简单的网文推荐系统,解决书荒

    这位 v 友当时没有给出源码地址,于是我就打算自己也实现一个。不过,由于算法复杂度太高以及自己学习的很浅(现在学习的也不深),也没有想到好的办法就暂时搁在了一边。拖到了最近,使用了局部敏感哈希(LSH)的方法降低了最近邻搜索的时间复杂度,也算简单的把它实现了,推荐结果算是勉强可以看了,效果如下图: screenshot

    算法流程如下:

    • 1 、爬取小说
    • 2 、小说分词
    • 3 、 TF-IDF 向量化
    • 4 、最近邻搜索

    由于小说爬取的比较杂乱,什么女频的男频的都有,所以有些推荐结果可能有些诡异,另外使用局部敏感哈希来搜索也会影响推荐的准确度,下面贴出链接希望 v 友能给出些改善建议。
    推荐测试地址:http://tx.kalen.site:38438/
    github 链接: https://github.com/nladuo/novelRS

    25 replies    2017-04-25 16:32:55 +08:00
    coderluan
        1
    coderluan  
       Apr 24, 2017
    试了一下,楼主你其实是在骗我们吧,你这个就是彻头彻尾随机推荐吧...
    chengfu
        2
    chengfu  
       Apr 24, 2017
    好像很厉害的样子,既然是纯搜索功能,能不能做成一个 wp 可以使用的插件呢,集成到 wp 还是不错的说;另外,相似度的准确性怎么算的,有多高(不是说百分比数据,而是“相似度”这个参数本身)
    coderluan
        3
    coderluan  
       Apr 24, 2017
    说正经的,我建议楼主可以爬优书网(龙空)的数据,然后按分类和评分高低推荐。
    nladuo
        4
    nladuo  
    OP
       Apr 24, 2017
    @chengfu 相似度就是余弦相似度,把两本小说分词,转换成 Bag-of-Words 模型,通过两个向量的点乘再除以两个向量的模来计算相似度。
    enenaaa
        5
    enenaaa  
       Apr 24, 2017
    不如爬优书网的书单, 以用户和书单收藏来推荐。
    v2pro
        6
    v2pro  
       Apr 24, 2017   ❤️ 1
    LDA 或者 LSA 效果应该比 hash 好。。。
    如果是爬的小说,带有原来的类别或者标签就更好了,带标签的 LDA 效果更好些。。。
    wolfan
        7
    wolfan  
       Apr 24, 2017 via Android
    看书不如写书,写书不如神精网络生成,以后编剧什么的就不存在了。
    nladuo
        8
    nladuo  
    OP
       Apr 24, 2017
    @coderluan 谢谢建议,可能是由于书的质量原因吧,感觉 YY 小说的推荐结果稍微靠谱一些,不知道是不是我爬的数据的原因。像盘龙、星辰变这样的图书结果确实是不太好。
    nladuo
        9
    nladuo  
    OP
       Apr 24, 2017
    @v2pro 非常感谢,我去研究一下。
    v2pro
        10
    v2pro  
       Apr 24, 2017
    @nladuo 工具推荐 gensim ,简易好用,效果也不赖。
    nladuo
        11
    nladuo  
    OP
       Apr 24, 2017
    @v2pro 这个我知道,不过还没有试过,自己机器太渣跑什么都要跑好久。
    nladuo
        12
    nladuo  
    OP
       Apr 24, 2017
    @wolfan hh
    lcatt
        13
    lcatt  
       Apr 24, 2017
    很多小说都没有。。。。
    nladuo
        14
    nladuo  
    OP
       Apr 24, 2017
    @lcatt 只是一个 demo ,还不是很完善。
    lcatt
        15
    lcatt  
       Apr 24, 2017
    我搜《王牌进化》,结果出来的都是一些乱七八糟的推荐。。。理想中应该是同一作者的《最终进化》,然后是同一类别的其他作者热门书籍比如《死亡名单》《无限进化》等等。。。
    whale
        16
    whale  
       Apr 24, 2017
    目前在看的十几本小说都显示未找到!只能查全本?
    wzha2008
        17
    wzha2008  
       Apr 24, 2017
    小说推荐还是用协同过滤更好一些
    Sn0wM4n
        18
    Sn0wM4n  
       Apr 24, 2017
    搜了几部都未找到,看来我口味独特
    xiaome
        19
    xiaome  
       Apr 24, 2017
    ![QQ 图片 20170424180135.png]( https://ooo.0o0.ooo/2017/04/24/58fdcd374d49d.png)
    可能,也许,大概,应该是数据不够?
    smdx
        20
    smdx  
       Apr 24, 2017 via iPhone
    程序员会看小说吗
    smdx
        21
    smdx  
       Apr 24, 2017 via iPhone
    我总觉得程序员没有人文素养,说话和天涯得人,简直一个是油,一个是水,区别太大了
    TKKONE
        22
    TKKONE  
    PRO
       Apr 24, 2017
    图中的搜索完全和结果没有关联吧?
    FYK
        23
    FYK  
       Apr 24, 2017
    @smdx #21 啥意思啊 没太看懂
    MyFaith
        24
    MyFaith  
       Apr 25, 2017
    楼主头像和代码不太匹配呀
    nicoljiang
        25
    nicoljiang  
    PRO
       Apr 25, 2017
    这个推荐思路本身我觉得就有问题。
    小说的相关度是靠题材、背景、设定、情节等来判断的,其中最复杂的是设定。
    用关键词的方式来做,可预见的就不会很准。
    最近向量分析工具被玩坏了~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2996 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 02:07 · PVG 10:07 · LAX 19:07 · JFK 22:07
    ♥ Do have faith in what you're doing.