V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shidenggui
V2EX  ›  分享创造

一个简单的网文推荐系统,解决书荒

  shidenggui ·
shidenggui · 2016-09-25 14:04:18 +08:00 · 17484 次点击
这是一个创建于 2987 天前的主题,其中的信息可能已经有所发展或是发生改变。
最近在学习机器学习,以前很喜欢看网文,当时最烦的就是看完一本书之后找不到其他类似那么好看的书,俗称书荒。就收集了一点数据来做一个书籍相似度的查询,用了最简单的余弦相似度计算。貌似效果比预期中好点。

目前服务托管在 daocloud 上,地址: http://netbook.daoapp.io/ 。 欢迎大家试用 && 提出意见

下面是 《亵渎》 的匹配结果

第 1 条附言  ·  2017-02-25 14:17:23 +08:00

创建了一个微信公众号 推书君, 把这个推荐系统集成了,方便使用。后期有空可能会加一些新功能

第 2 条附言  ·  2019-07-28 20:33:23 +08:00
最近跟朋友花了一点时间做了一个 推荐网文小说的网站,推书君,www.tuishujun.com 也集成了原来的相似图书搜索功能,欢迎试用。
第 3 条附言  ·  2019-10-15 20:55:11 +08:00
重新发了一个帖介绍了下为什么要开发推书君以及相应的功能,https://v2ex.com/t/609492
第 4 条附言  ·  2019-11-11 14:37:06 +08:00

周末花了一天时间制作了 推书君 的微信和 QQ 小程序版本,因为原生用的 vuejs,所以选了支持 vuejs 的 uniapp 小程序框架,整体感觉还是比较顺利的。小程序整体体验确实不错,比 web 顺滑很多。 qr-small.jpeg

101 条回复    2018-08-27 09:04:19 +08:00
1  2  
guonning
    1
guonning  
   2016-09-25 14:12:51 +08:00 via Android
很好,喜欢网文。希望可以解决书荒问题
guonning
    2
guonning  
   2016-09-25 14:14:26 +08:00 via Android
希望可以把代码分享出来
hl284975274
    3
hl284975274  
   2016-09-25 14:24:39 +08:00 via iPad
好思路!希望代码分享在 github 大家一块改进!
Abirdcfly
    4
Abirdcfly  
   2016-09-25 14:56:20 +08:00 via iPhone
出乎意料的好。测试几本书的结果和我人脑推荐结果差不多。
miyuki
    5
miyuki  
   2016-09-25 15:06:29 +08:00
感觉挺准的
qfdk
    6
qfdk  
   2016-09-25 15:06:36 +08:00 via iPhone
求源码 spark 的么
zxcasdqwe9
    7
zxcasdqwe9  
   2016-09-25 15:11:04 +08:00
建议结果列表的书名可以直接点击继续搜索
Wyatt
    8
Wyatt  
   2016-09-25 15:13:25 +08:00
Wyatt
    9
Wyatt  
   2016-09-25 15:14:05 +08:00
无视上条,回复错了 QAQ
zxcasdqwe9
    10
zxcasdqwe9  
   2016-09-25 15:18:20 +08:00
搜《新宋》的结果很奇怪啊
zxcasdqwe9
    11
zxcasdqwe9  
   2016-09-25 15:21:42 +08:00
书籍重名的搜索结果需要优化
shidenggui
    12
shidenggui  
OP
   2016-09-25 15:26:57 +08:00
@zxcasdqwe9 为了简化结果,重名的书籍应该是都给我丢弃了
mrfox
    13
mrfox  
   2016-09-25 15:30:27 +08:00 via Android
试了,书名包括英文就无结果
Troevil
    14
Troevil  
   2016-09-25 15:30:59 +08:00
是根据关键词来的吧
hit410
    15
hit410  
   2016-09-25 15:36:51 +08:00 via Android
感觉很不错
gimp
    16
gimp  
   2016-09-25 15:45:34 +08:00
很棒!
mosbic
    17
mosbic  
   2016-09-25 16:17:42 +08:00 via Android
棒!!
nladuo
    18
nladuo  
   2016-09-25 16:21:06 +08:00 via iPhone
好东西,有时间自己也写一个。
kikyous
    19
kikyous  
   2016-09-25 16:31:43 +08:00
不错,希望能开源学习学习
lujun9972
    20
lujun9972  
   2016-09-25 16:33:08 +08:00 via Android   ❤️ 1
请问数据从哪爬下来的?
shierji
    21
shierji  
   2016-09-25 16:36:39 +08:00 via Android
楼主 阿里布达年代祭都没有……
haiyang416
    22
haiyang416  
   2016-09-25 17:14:06 +08:00 via Android
依据什么做的相似性对比?
yyyyyyyhb
    23
yyyyyyyhb  
   2016-09-25 18:22:01 +08:00
搜索一本小说结果里还有这本小说
lcorange
    24
lcorange  
   2016-09-25 19:25:10 +08:00
还不错,我搜了一本喜欢的,答案前十本都一样都很喜欢,还都看过
kenken
    25
kenken  
   2016-09-25 20:04:53 +08:00
不错。
woniu127
    26
woniu127  
   2016-09-25 20:07:56 +08:00 via Android
我想你需要一个域名, shujia.me 书架
iA7489
    27
iA7489  
   2016-09-25 20:13:02 +08:00 via iPhone
相当符合
赞一个
dlsflh
    28
dlsflh  
   2016-09-25 20:15:26 +08:00
使用了一下感觉还不错,用了才发现原来大家调侃的“霸道总裁爱上我”并不存在啊!
支持楼主!
wyx
    29
wyx  
   2016-09-25 20:20:17 +08:00
速度好快啊
kamen
    30
kamen  
   2016-09-25 22:40:41 +08:00
很不错啊,提个建议,做一个自定义排序和分类选择会更好
kamen
    31
kamen  
   2016-09-25 22:42:28 +08:00
建议放到 git 上,大家一起出力
a87150
    32
a87150  
   2016-09-25 23:00:37 +08:00
感觉只是单纯把有名的凑在一起,史上第一混乱和无限恐怖的相似度居然比和都市妖奇谈还高。

异常生物见闻录以及张小花其他作品(除了我就是妖怪)这些明显更相似的居然没有出现。
ipconfiger
    33
ipconfiger  
   2016-09-25 23:07:35 +08:00
输入后宫, 失败
输入穿越, 失败
感觉, 毫无用处
a570295535
    34
a570295535  
   2016-09-25 23:14:30 +08:00
加载速度太快了,牛啊,书的数据从哪爬下来的哇?建议把代码放到 git 上,大家一起出力,做出更精准的网文推荐系统。。。
clearbug
    35
clearbug  
   2016-09-25 23:22:23 +08:00 via Android
不明白上面为啥辣么多称赞的。。为啥我搜的书都木有:龙族,黑客与画家,人月神话。。。难道数据都是作者自己搜集后放到自己数据库的
wogong
    36
wogong  
   2016-09-25 23:25:38 +08:00
@clearbug 说了是网文。
est
    37
est  
   2016-09-25 23:43:06 +08:00
赞。
tscat
    38
tscat  
   2016-09-26 00:14:13 +08:00 via iPhone
手里有个 sobook.org
wizardforcel
    39
wizardforcel  
   2016-09-26 00:16:29 +08:00 via Android
你都收录了悟空传居然不收录龙族??
hatcloud
    40
hatcloud  
   2016-09-26 00:21:00 +08:00 via iPhone
@wizardforcel 龙族不是网文
yzongyue
    41
yzongyue  
   2016-09-26 00:42:21 +08:00 via Android
不错
icylogic
    42
icylogic  
   2016-09-26 01:23:37 +08:00
感觉还挺准。

如果多本同时匹配就更好了。
还有往复杂做的思路,就是建立账号系统然后像网易一样有书单,可做的事就多了。
当然现在简洁一点也挺好。
Yinz
    43
Yinz  
   2016-09-26 01:27:29 +08:00
猜一猜原理,从各大小说站抓小说的分类标签,然后对标签向量算余弦距离这样?:D
gzlock
    44
gzlock  
   2016-09-26 02:18:25 +08:00
然而楼主发个帖就跑了
kakay
    45
kakay  
   2016-09-26 08:59:42 +08:00
竟然没有飘渺之旅
cosgbgas
    46
cosgbgas  
   2016-09-26 09:02:22 +08:00
看见 幽冥仙途 减肥的确是我的大爱。
shidenggui
    47
shidenggui  
OP
   2016-09-26 09:14:55 +08:00
@kakay 飘邈之旅
quericy
    48
quericy  
   2016-09-26 09:19:40 +08:00
shidenggui
    49
shidenggui  
OP
   2016-09-26 09:30:47 +08:00
@quericy 修复了,现在应该有了。你再搜下看看
timeship
    50
timeship  
   2016-09-26 09:41:18 +08:00   ❤️ 1
还行,测试了几个,还蛮准的。喜欢看雪中悍刀行,匹配到了老猫和烟男的几本书
wandero
    51
wandero  
   2016-09-26 09:49:38 +08:00
赞,简单试用了下,发现乱臣贼子的类似收了猛兽记,虽然都是好书,但这两不搭边
然后收了习惯呕吐的求索这一足球小说,反而却没有作者的陌上行这种真正类似的架空

书荒还是推荐优书网
能看到这楼的都是同好,
我的优书网书单 http://www.yousuu.com/user/914383
我的个人书单站点 http://novo.cloudlet.info

lz 加油,我就想过弄出一个可以根据个人全部书目评分评估个人口味,然后推符合个人喜好的书单的书目站,不过代码盲也只能想一想了
shidenggui
    52
shidenggui  
OP
   2016-09-26 09:52:52 +08:00
@wandero 这是下一步的计划,不过最近估计没时间弄。弄这个 demo 花了我 2 天多的时间,后面有机会在把按用户的加上
lcatt
    53
lcatt  
   2016-09-26 10:13:47 +08:00
亵渎不匹配 永夜君王。。。。
jasonding
    54
jasonding  
   2016-09-26 10:15:33 +08:00
这个不错,以后不担心书荒了,哈哈
jasonding
    55
jasonding  
   2016-09-26 10:20:47 +08:00
个人建议可以添加字数范围过滤,以及简单的硬分类,什么科幻、穿越、都市、重生等等,使用体验会更好点
Zzzzzzzzz
    56
Zzzzzzzzz  
   2016-09-26 10:20:52 +08:00
@quericy 搜九州·缥缈录
@wandero 就收录情况来看, 楼主爬的书目和语料大概就是优书网.....
shidenggui
    57
shidenggui  
OP
   2016-09-26 10:27:21 +08:00
@Zzzzzzzzz 恩,我在龙空也发过帖子,不过龙空的管理者貌似觉得这些推荐没啥用。。。
geew
    58
geew  
   2016-09-26 10:30:55 +08:00

可以
yuhuigreed
    59
yuhuigreed  
   2016-09-26 10:35:48 +08:00
用了下感觉推荐的还可以
wanttofly
    60
wanttofly  
   2016-09-26 10:37:40 +08:00
@timeship 哈哈,纯粹为雪中给你点个赞。
cenxun
    61
cenxun  
   2016-09-26 11:37:16 +08:00
狩魔手记赞一个
nkchivas
    62
nkchivas  
   2016-09-26 11:49:33 +08:00
相当有效率
scorpius
    63
scorpius  
   2016-09-26 11:52:44 +08:00
感觉推荐的不错 楼主棒棒的 加油!
NARUTOzp
    64
NARUTOzp  
   2016-09-26 11:55:38 +08:00
看到 daocloud ,顶一下
CuminLo
    65
CuminLo  
   2016-09-26 12:27:59 +08:00
那么问题来了,可以做成动漫推荐么?
xzg1993
    66
xzg1993  
   2016-09-26 12:38:46 +08:00
真棒~~
paledream
    67
paledream  
   2016-09-26 13:22:51 +08:00
很棒,看楼主的头像似乎是吸血鬼猎人 D 😄
aeshfawre
    68
aeshfawre  
   2016-09-26 13:28:54 +08:00
@CuminLo 估计不行吧,网络文学可以提取关键词做相似计算,是因为楼主可以批量下载到这些网络书籍。
那种正版的书籍,没办法大批量的获得。 动漫更是没办法获得关键词。
计算不了相似度。
shidenggui
    69
shidenggui  
OP
   2016-09-26 13:29:26 +08:00
@paledream 烙印战士
paledream
    70
paledream  
   2016-09-26 13:37:38 +08:00
@shidenggui 原来是剑风传奇,眼拙了,哈哈哈哈
shidenggui
    71
shidenggui  
OP
   2016-09-26 13:41:15 +08:00
@NARUTOzp daocloud 更新容器要好久,给客服提了意见还没回复。我们自己部署的 jenkins 用 docker 更新非常快
xxxsicong
    72
xxxsicong  
   2016-09-26 15:42:09 +08:00
卧槽有点准
zpfhbyx
    73
zpfhbyx  
   2016-09-26 16:25:32 +08:00
其实我更想知道相似算法,:) 捂脸,逃
sunyang
    74
sunyang  
   2016-09-26 17:27:54 +08:00 via iPhone
很准 随便打了一本喜欢的书 推荐的都是我喜欢看的
shunia
    75
shunia  
   2016-09-26 18:02:09 +08:00
这个我是服的
livc
    76
livc  
   2016-09-26 22:16:55 +08:00
网文居然有这么多人看啊。。
mingyun
    77
mingyun  
   2016-09-26 22:49:03 +08:00
赞楼主
shahua365
    78
shahua365  
   2016-09-27 09:01:52 +08:00
大赞,希望能做到多本书匹配,然后推荐类似的书籍
shidenggui
    79
shidenggui  
OP
   2016-09-27 09:54:52 +08:00
@shahua365 这是下一步的方向,看看怎么弄比较好
awolfly9
    80
awolfly9  
   2016-09-27 17:10:41 +08:00
@shidenggui 现在这个只是能够匹配网文?如果能够做到匹配所有书籍,包括散文、叙事,甚至技术书籍的话,用的人会应该会很多的
millken
    81
millken  
   2016-09-27 17:12:21 +08:00
《被生活网住的人生》
这部类似的没有么?
shidenggui
    82
shidenggui  
OP
   2016-09-27 17:55:26 +08:00
@awolfly9 这个需要的数据集太多了,估计豆瓣淘宝之类的才有机会收集到,个人很难
@millken 只能匹配一部分网络小说
awolfly9
    83
awolfly9  
   2016-09-27 18:15:57 +08:00
@shidenggui 可以试试抓取豆瓣的数据,利用他的数据库来做匹配,当然也可以抓取一次然后存取成自己的数据,不过我不知道你是怎么实现的
cszhiyue
    84
cszhiyue  
   2016-09-27 18:51:57 +08:00
@awolfly9 @shidenggui 楼主已经大概说了。个人不负责任的猜测应该是把网文的原文下载下载,分词,然后计算余弦相似度。豆瓣的数据知识一些评论和 tag ,应该达不到要求。
挺有意思的想法,目前也尝试做一下玩玩。
awolfly9
    85
awolfly9  
   2016-09-27 19:02:30 +08:00
@cszhiyue 查询了一下余弦相识度,似乎明白了一点。感谢分享

可以建立一个 github 大家一起完善完善,挺好用的,如果有兴趣的话可以一起做
cszhiyue
    86
cszhiyue  
   2016-09-27 19:10:58 +08:00
@awolfly9 目前还在抓数据。测试一下再 update
oulongqi
    87
oulongqi  
   2016-09-27 21:04:04 +08:00
很多词都搜不到哦,可以考虑先把词语丢到小说网站网随便拿几个接过来冷启动一下。
solobat
    88
solobat  
   2016-09-27 22:40:17 +08:00
哈哈, 赞楼主. 之前我也把优书网的书爬到 leancloud 上, 还没来得及用呢.
shidenggui
    89
shidenggui  
OP
   2016-09-27 22:46:04 +08:00
@solobat 最开始本来想用 leancloud 的,后来看到 daocloud 貌似有免费送的 2x 容器,就试用了下。现在这些云服务太方便了,开发个东西,几个小时就搞定了
awolfly9
    90
awolfly9  
   2016-09-28 10:08:03 +08:00
@cszhiyue 更新后隔空喊一下
azh7138m
    91
azh7138m  
   2016-09-28 10:18:36 +08:00 via Android
@aeshfawre 动漫有字幕,也不是不行
Sukizen
    92
Sukizen  
   2016-09-29 09:05:44 +08:00
楼主在哪里,有个项目想找你谈谈
ijustdo
    93
ijustdo  
   2016-09-29 09:28:58 +08:00
1. 字数格式化 多少万字
2. 点击作者 可以搜索 同作者的相似书记
3. 点击下面任意书名 搜索点击的书名

还有就是书的量不够咧 找了好几个都没有
ijustdo
    94
ijustdo  
   2016-09-29 09:35:31 +08:00
数据量不够啊 哈哈
多抓几个站 然后 标签建库 通一本书 如果多个站出现的相同标签加权
然后用常用词库 分词 再建一些 常用词的 向量库

到时候出了放出书名 搜索 关键词搜索 还可以放排行
如果爬虫过关 还可出热门....

有点小意思 找个小说网站卖了吧
shidenggui
    95
shidenggui  
OP
   2016-09-29 09:36:46 +08:00
shidenggui
    96
shidenggui  
OP
   2016-09-29 11:52:00 +08:00
@ijustdo 谢谢思路,不过这样搞工程浩大,我也就是好玩弄了个 demo
vlike
    97
vlike  
   2016-09-29 21:27:21 +08:00 via Android
感觉不错,可以介绍一下实现的原理及工具吗?
bravecarrot
    98
bravecarrot  
   2016-10-03 12:24:33 +08:00 via iPhone
楼主选取的特征有哪些?
mfanming
    99
mfanming  
   2016-10-06 09:27:01 +08:00
没有白鹿原
alouha
    100
alouha  
   2016-10-24 18:35:53 +08:00
额,从零开始这本书都木有,好奇楼主的算法,希望能放到 github 上
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5477 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 06:51 · PVG 14:51 · LAX 22:51 · JFK 01:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.