内容推荐算法简单实现(针对阅读网站为用户推荐书籍)
目标是最终获取一个书籍/类型的表格(二维),一个某用户对于每个类型的评分(该评分是处理过的,具体见“注”)表格(一维)。现在取出第一张表格的第一行(也就是某本书)与第二张只有一行的表格比对,可以说是两个一维向量,此时利用余弦公式计算两向量的相似度,结果越接近1,夹角越小,两者越相似,即某本书与该名用户的喜好类型相似度越高。将每一本书籍的相似度计算出来保存在HashMap中,按相似度递减排序,再传给controller前端方法中,通过session传递给jsp相应信息如书籍封面等,完成。
注:第二张表格,首先我们通过获取的用户id计算出该用户对所有书籍评分的平均数(因为我们想得出该用户相对更喜欢哪本书,并且对之后的计算有利),再获得该用户对A类型书籍的评分,每一项减去平均分,相加,再除以对A类型书籍评分的次数,即得评分。
计算相似度的余弦公式(摘自百度百科)