我想知道是否存在任何开放源代码框架可以帮助我在网站中包含以下类型的功能:

1)如果我正在查看特定产品,我想看看其他哪些产品可能对我来说很有趣。例如,可以通过计算除我正在查看的产品之外,我所在地区的其他人(或我的个人资料的任何其他特征)购买了哪些信息,来推导出该信息。有点像Amazon.com所做的。

2)根据个人资料推断出人与人之间的关系,在网站上彼此互动(例如,通过评论彼此的帖子),在浏览最多的区域,购买的商品等方面使用网站。

我并不是在寻找具有此功能的开放源代码网站,而是在寻找一种类似于对象模型的对象,在该对象模型中,我可以向用户提供有关用户及其使用情况的信息,包括有关关系的规则,然后在稍后询问(1 )和上面的(2)。

白皮书或有关实现此目的的最佳方法的一般信息的任何指针,或任何相关链接也将真正有帮助。

最佳答案

(我是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进行跟进,在这里我可以告诉您更多信息。

关于collaborative-filtering - 开源协作过滤框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/659599/

10-12 21:54
查看更多