我想在Objective-C中编写一个基本的推荐系统,我正在寻找一个基本的算法。不幸的是,现成的系统已不在桌面上,因为Objective-C似乎没有。
我将拥有一个项目数据库,每个项目都有标签(想想带有“恐怖”,“动作”等标签的电影)。每个项目都有大约5个这样的标签。当用户首次使用该应用时,他们的个人资料将根据他们对一系列问题的输入进行准备,并将某些标签与其个人资料相关联。
当用户继续使用系统并对各种项目(基于仇恨/喜欢/爱情)进行评级时,我想根据该反馈调整推荐标签的权重。我还想在他们的个人资料增长时加入他们收视率的其他几个属性,例如“80年代”,如果这涉及电影。或者也许导演,坚持电影主题。
我选择避开正常(或至少受欢迎)推荐系统,寻找类似用户来生成推荐。这将有一个大型项目数据库和最少的用户启动。
任何人都可以为这样的算法推荐一个好的起点,我讨厌重新发明轮子,那里有很多东西?
答案 0 :(得分:1)
请你参考python-recsys:https://github.com/ocelma/python-recsys,这个软件使用SVD算法,我认为它是一个基本算法,但足够有效。所需的库是numpy和scipy,它们用C语言编写,并由Python包装。我认为编译和移植到objective-c
很容易答案 1 :(得分:0)
您可以使用基于项目的推荐,这听起来非常适合您的需求。您可以稍后开始将标记合并到权重中,但现在我建议只考虑项目。
您可以在http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.html了解更多内容。网上有很多实现。
您在帖子中提到的内容将被称为基于用户的协作过滤。