基于文字内容的推荐引擎,csdn博文推荐引擎,这是我2016年就有开发这个的想法。后来因为众筹业务不顺,换了公司,一直没有大块的时间去做,利用业余时间在做开发,一直是断断续续。直到2017年过了年,才有一些时间来真正做这个推荐的开发。
数据来源
那肯定是csdn博客网站,2016年写爬虫的时候csdn博客还是老版居多,到了2017年新版和老版的数量就差不多了,到2018年的时候,依然是新版和老版并存,只不过csdn博客首页改了,改成了瀑布流的方式,应该是更利于观看,更有利于个性化推荐。
数据爬虫
2016年的时候csdn爬虫是我手下的一个小孩写的pyspider,内容是都爬下来了,可是格式太差,数据清洗是个大问题,后来因为忙着做招聘平台就先放下了。
2017年3月,还是这个小孩用pyspider写爬虫,60W条博文数据,去重之后,不到10W,不过还好了,有比没有好。之后的开发一直以这10W数据为主。2017年 ‘史上最贵一袋豆浆--3400元’事件发生后,数据样本没有了。我的数据本来是保存在公司机器上的,但是被格掉了,等我再想用的时候,已经晚了。
2017年底这版新的爬虫是我写的用scrapy和BeautifulSoup,直接保存到我家里的机器上。经过不断的更新数据保持在30W-50W之间。
代码我就不放出来了,没什么技术难度,惟手熟尔。
开发技术
其实没什么,就是基于文字的推荐算法和开发包,太深的nlp技术没有用,我的重点在推荐方面,不在nlp方面,虽然我也知道nlp有新的算法技术,可以对一段文字更好的表述,但是我是没时间再研究这些新的算法了,研究起来没个尽头啊。
我用到的都是一些普通的算法技术,协同过滤,tf/idf 。。。。后面我会比较详细的一一写出来。
推荐策略
或者叫推荐规则,说简单点,什么时候,为什么要把这个博客推荐给这个用户看。
开始想了很多,基于时间的,基于标签的,基于用户的,基于内容的,总之一句话,理解用户意图!!!!这得上知识图谱啊,又跑偏了。所以我现在经常问自己的一个问题,推荐引擎好的用户体验是什么,这是没有标准答案的!
开发语言以python为主,准备抽空用pyspark重新实现一下,看时间安排了。