在Python中使用协同过滤的推荐引擎

时间:2013-11-26 20:59:02

标签: python algorithm neo4j recommendation-engine

我为餐馆开发了一个搜索引擎。我有一个社交网络,其中用户可以添加朋友和表单组并相互推荐餐馆。每间餐厅均可供应多种美食。所有这些都在Python中。

因此,根据用户推荐的餐厅,我们可以了解用户可能更喜欢的美食。同时,我们将知道用户更有可能探索的价格等级(高端,快餐,咖啡厅,休息室等)

他的朋友们会推荐一些可以承受更多重量的地方。有类似的非朋友用户推荐了一些用户推荐的餐馆,还有一些用户没有。

最终的问题是根据以下内容向用户推荐餐馆: 1)他推荐的(其他类似菜肴的餐厅) - 50%的重量 2)他的朋友推荐的内容(过滤餐厅,提供用户最喜欢的美食) - 25%的重量 3)'类似'非朋友用户的公开推荐 - 25%权重。

我花了很多时间阅读Neo4j,我认为Neo4j看起来很有前途。除此之外我尝试了pysuggest,但它不适合上述问题。我也试过reco4j,但它是一个基于Java的解决方案,而我正在寻找一个基于Python的解决方案。 Reco4j社区也没有任何活动,它仍处于开发阶段。

虽然我研究了很多,但我可能会错过一些东西。

我想知道您将如何实施上述解决方案?你能给出相同的用例吗?

1 个答案:

答案 0 :(得分:0)

我认为你找不到任何开箱即用的解决方案,因为它非常具体。您可以使用Neo4j来存储您用于构建建议的所有数据(用户,友情链接,用户餐馆推荐和评论等),然后根据此数据构建推荐引擎。根据我的经验,一旦你在Neo4j(使用Cypher或Gremlin)获得所有数据,这是非常简单的。