一个简单的网文推荐系统,解决书荒 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shidenggui
V2EX    分享创造

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

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

目前服务托管在 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 大家一块改进!
    4
Abirdcfly  
   2016-09-25 14:56:20 +08:00 via iPhone
出乎意料的好。测试几本书的结果和我人脑推荐结果差不多。
Abirdcfly
miyuki
    5
miyuki  
   2016-09-25 15:06:29 +08:00
感觉挺准的
qfdk
    6
qfdk  
PRO
   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
卧槽有点准
justseemore
    73
justseemore  
   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     Solana     5443 人在线   最高记录 6679       Select Language
创意工作者们的社区
Worldis powered by solitude
VERSION: 3.9.8.5 48ms UTC 07:30 PVG 15:30 LAX 00:30 JFK 03:30
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86