假设我们有大约100部电影,用户以 1-10 的比例评分。每个用户都有一个唯一的名称,并根据需要为多个电影评分。我想实现一种算法,找出用户之间的共同兴趣。具体来说,当用户按下“获取建议”按钮时,系统将搜索该用户的所有其他常见电影并执行以下操作:
对于两个用户共同看过的每部电影,它减去这两个用户为这部电影所做的两个分数。然后它找到所有这些减法的平均值。这个平均数越小,他们的兴趣就越大。因此,我们假设User_A获得User_B的最小平均值。然后,系统应该向User_B推荐User_B看到的内容,而User_A则没有。
你能告诉我怎么做吗? 一些代码片段确实很有帮助,但如果不是这样的话,你至少可以告诉我实现这个算法需要什么样的java结构吗?
谢谢..
答案 0 :(得分:2)
如果您正在寻找Netflix类型的建议,则可通过协作过滤完成。您可以查看这些链接。
答案 1 :(得分:1)
你应该使用User Modeling, Personalization and Recommender Systems。
我不确定,但您也可以使用LSI方法来确定用户之间的相似之处。
答案 2 :(得分:1)
本书应指导您完成选择推荐算法的步骤:http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325。
它甚至包含必要的代码示例,尽管它们是用python编写的。