我想知道是否存在任何开源框架可以帮助我将以下类型的功能包含在我的网站中:
1)如果我正在查看特定产品,我想看看其他产品可能对我有意思。该信息可以通过计算例如我所在地区的其他人(或我的简档的任何其他特征)除了我正在查看的产品之外还可以推断出来。有点像Amazon.com所做的。
2)根据人们的个人资料,网站上的互动(例如,通过评论彼此的帖子)推断人与人之间的关系,根据最常用的区域使用网站,共同购买的产品等
我不是在寻找一个具有此功能的开源网站,而是一个类似于对象模型的东西,我可以在其中提供有关用户及其对网站的使用的信息,包括关于关系的规则,然后在稍后询问它所描述的问题在上面的(1)和(2)中。
任何指向白皮书的指南/关于做到这一点的最佳方法或任何相关链接的一般信息也会有所帮助。
答案 0 :(得分:13)
(我是Taste的开发者,现在是Apache Mahout的一部分)
1)你真的在这里要求两件事: a)推荐我可能喜欢的项目 b)赞成与我目前正在看的东西相似的物品。
事实上,Mahout Taste就是回答a)。它所做的一切都支持这样的系统。查看documentation即可开始使用,并向mahout-user@apache.org提出任何问题。
特别是对于1b),Mahout有两个答案:
如果您只对哪些项目与当前项目感兴趣,您会对Mahout(ItemSimilarity
)及其实现中的org.apache.mahout.cf.taste.similarity.ItemSimilarity
抽象感兴趣,例如PearsonCorrelationSimilarity
。根据一组用户项目评级,这可以告诉您任何两个项目之间的估计相似性。然后,您只需选择最相似的项目。事实上,看看Mahout中的TopItems类,它可以快速为您解决这个问题。
但是,您也可以通过计算推荐结合a)和b),然后应用Rescorer实现,然后使用与当前查看项目类似的项目。
2)同样地,你会对UserSimilarity
抽象,实现等感兴趣。这将推断基于项目评级的相似性。但是,Mahout并没有帮助您通过查看用户行为来推断这些评级。这是特定于域的,由您决定。
听起来令人困惑 - 阅读文档并随时关注mahout-user@apache.org,我可以告诉你更多信息。
答案 1 :(得分:9)
我正在研究同一个话题,因为我working on a project帮助人们决定如何对加州复杂的选票进行投票。以下是我发现的一些开源协作过滤引擎:
对这些引擎here也有很好的概述。
答案 2 :(得分:2)
还有Duine框架和OpenSlopeOne。 但在我看来,Mahout仍然是最好的。 您可以在此处找到有关开源推荐系统的调查:
http://girlincomputerscience.blogspot.com.br/2012/11/open-source-recommendation-systems.html
希望它有所帮助!
答案 3 :(得分:0)
您可以找到推荐系统列表 here