Python/Django适用的好的协同过滤/匹配/推荐库是什么?

17

我正在寻找一个库,可以根据用户回答的问题以及自己的Django模型将我的用户与其他Django模型匹配。

所以我希望找到一个可定制性高、文档/支持优秀且实现不太困难的解决方案。

有没有什么好的推荐?我已经查看了Crab和Django-recommender,但它们似乎都没有很好的文档说明。

基本上我有两个调查应用程序,具有对应但不完全相同的问题和答案。例如,app1中的一个问题可能是“每周喝几晚酒?”,而app2中的问题可能是“您每周期待喝几晚酒?” ,并附有第一个问题实例的外键。我想利用这些问题的回答来将每组的用户进行配对,从而为第二组用户提供基于第一组用户使用情况的推荐。


1
根据用户对问题的回答,将我的用户与其他Django模型匹配。你能解释一下吗? - S.Lott
请问您能否将所有事实都更新到一个易于阅读的地方,以便更好地阐述问题? - S.Lott
2
Colleen,发布相关模型将有助于了解它们的结构。就我所知,目前没有现成的库可以满足您的需求,主要是因为这似乎会变得过于特定于某个实现。 - Jordan Reiter
3个回答

2

在免费的斯坦福ML课程中已经涉及了这个主题。请查看第XVI章的视频,链接为:http://www.ml-class.org/course/video/preview_list

虽然讨论的实现是Matlab/Octave,但在Python中实现并不难,如果您使用Numpy,甚至更容易。


0

0
一个非常灵活的解决方案,适用于任何编程语言(包括Python),就是 Abracadabra 推荐 API
基本上它是一个“推荐算法即服务”的库。设置非常简单:您只需要发送HTTP调用(可以使用Django)到API端点URL来训练您的模型并接收推荐。查看文档如何操作
使用Abracadabra推荐API时,如果使用Python,您首先需要向模型添加数据:
# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/add/subjects?recommenderId=rec1&subjectId=See+docs",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

然后您可以通过对主题(例如电影)进行评分或喜欢来训练模型:

# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/rate/subject?recommenderId=rec1&subjectId=gameofthrones&subjectWeight=10&userId=user1",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

完成后,您将根据基于内容、协作或混合过滤的推荐收到以下建议:

# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/recommend?method=content&recommenderId=rec1&userId=user1",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

您可以在其他语言中查看更多示例,包括AngularReactJavascriptNodeJSCurlJavaPythonObjective-CRuby.NET等。请访问API主页


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接