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