2013-11-26 31 views
0

我开发了一个餐馆的搜索引擎。我有一个社交网络,用户可以添加朋友和表单组,并向对方推荐餐馆。每家餐厅都可以供应多种美食。所有这些都在Python中。在Python中使用协作过滤的推荐引擎

因此,根据用户推荐的餐厅,我们可以根据用户的喜好来选择更多种类的美食。同时,我们将知道用户更有可能探索的价格层次(高端,快餐,咖啡厅,休息室等)

他的朋友会推荐一些会带来更多重量的地方。有类似的非好友用户推荐了一些用户推荐的餐厅,还有一些用户没有推荐的餐厅。

最终的问题是基于为您推荐餐馆给用户: 1)他建议什么(具有类似的美食其他餐厅) - 他有什么朋友都建议50%的权重 2)(滤波餐厅,提供的美食用户喜欢最多) - 25%的权重 3)“类似”非好友用户的公开推荐 - 25%的权重。

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

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

我想知道你将如何去执行上述解决方案?你能给同样的用例吗?

+0

你看过[py2neo](http://book.py2neo.org/en/latest/)吗?这是从python与Neo4j交互的首选方式。 – jjaderberg

回答

0

我认为你不会为你找到任何现成的解决方案问题,因为它非常具体。你可以用Neo4j做什么,就是存储你用来建立推荐的所有数据(用户,友谊链接,用户的餐厅推荐和评论等),然后建立你的推荐引擎来处理这些数据。根据我的经验,一旦您在Neo4j中获得所有数据(无论是使用Cypher还是Gremlin),都很简单。