一个很好的Python / Django协同过滤/匹配/推荐库?

时间:2012-01-20 23:01:12

标签: python django recommendation-engine matching collaborative-filtering

我正在寻找一个可以用来根据问题答案将我的用户与其他Django模型匹配的库 - 也是我自己的django模型。

所以我喜欢可定制的东西,有良好的文档/支持,希望不太难实现!

有没有人有任何好的建议?我查看了Crab和Django-recommender,但似乎都没有很好的记录。

基本上我所拥有的是两个调查应用程序,具有相应但不完全相同的问题和答案。例如。 app1中的一个问题可能是"你每周喝几晚?" app2中的一个问题可能是"你希望每周喝多少个晚上?",在实例中用第一个问题的外键。我想对这些问题进行回答,并使用它们将每个组中的用户相互配对,根据组1中的用户已经使用的内容为第2组用户提供建议。

3 个答案:

答案 0 :(得分:2)

他们在斯坦福大学ML课程中涵盖了这个主题。在http://www.ml-class.org/course/video/preview_list

上查看第XVI章的视频

虽然讨论的实现是Matlab / Octave,但在Python中实现起来并不困难,如果使用Numpy则更容易

答案 1 :(得分:0)

答案 2 :(得分:0)

适用于任何编码语言(包括Python)的非常灵活的解决方案是 Abracadabra Recommender API

基本上它是推荐算法即服务库。设置非常简单:您只需要向API端点URL发送HTTP调用(您可以使用Django),以训练模型并接收建议。 View the docs how

使用Abracadabra Recommender 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"
  }
)

您可以查看其他语言的更多示例,包括AngularReactJavascriptNodeJSCurlJava,{ {1}},PythonObjective-CRuby ...在API homepage上。

相关问题