目前的推荐系统大都有基于物品相似度的推荐策略、基于协同过滤的推荐策略,大多数大型的推荐系统会有若干种推荐策略,最后用排序融合策略,获得更好的推荐效果。
今天给大家介绍的是基于物品相似度的推荐算法,来实现一个推荐系统(Easy Recommend Framework)。系统代码存放在github上。
https://github.com/tianzhaotong2012/EasyRecom
系统有着开箱即用的特性,简单的部署,就可以让推荐系统跑在你的服务器上了,windows和linux都可运行。
使用方法:
1、安装python,下载程序代码
2、安装jieba,切换到jieba目录运行 python setup.py install
3、替换自己系统的物料文件及用户文件(也可不替换使用项目自带的演示文件)
物料文件是/input/post/post_online文件,每行一个物料,物料ID和物料title
用户文件是/input/user/文件夹下,用户ID命名的文件,每个文件内是用户感兴趣的内容,ID和title构成
3、执行src目录下的python run.py
4、查看output下的推荐结果
运行原理
将物料库中的title一个个读取出来,用jieba对title做分词处理
把上一步中分割的词去词向量库中把每个词对应的词向量取出
把每个词的词向量相加,得到整个title的词向量
依次处理整个词向量库的title,转换为句子向量
将用户喜爱的物料的title也转换成句子向量
将用户喜爱的物料的向量依次与物料库每个向量,取余弦距离,计算相似度
取相似度高的物料,推荐给用户