Python/Django的优质协同过滤/匹配/推荐库?
我在找一个库,可以根据用户回答的问题,把他们和其他Django模型匹配起来——还有我自己的Django模型。
我希望这个库可以自定义,文档和支持都不错,而且最好实现起来不要太难!
有没有人有好的推荐?我看过Crab和Django-recommender,但这两个的文档似乎都不太完善。
简单来说,我有两个调查应用,它们的问题和答案虽然相关,但并不完全相同。例如,应用1中的问题可能是“你一周喝酒多少晚?”而应用2中的问题可能是“你一周预计喝酒多少晚?”,并且在实例中有一个外键指向第一个问题。我想用这些问题的回答,把每组用户配对起来,让第二组的用户根据第一组用户的使用情况得到推荐。
3 个回答
一个非常灵活的解决方案,可以在任何编程语言中使用(包括Python),就是Abracadabra推荐API。
简单来说,它是一个推荐算法服务库。设置起来非常简单:你只需要发送HTTP请求(用Django就可以做到)到API的地址,就能训练你的模型并获取推荐结果。查看文档了解如何操作。
使用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"
}
)
你可以在API主页上查看其他语言的更多示例,包括Angular
、React
、Javascript
、NodeJS
、Curl
、Java
、Python
、Objective-C
、Ruby
、.NET
等。
关于社交媒体和Python结合的主题,有一些不错的书籍可以参考。
他们在免费的斯坦福机器学习课程中讲过这个话题。你可以去看第十六章的视频,链接在这里:http://www.ml-class.org/course/video/preview_list
虽然讨论的实现是用Matlab/Octave写的,但用Python来实现应该不难,如果你使用Numpy的话会更简单。