我需要帮助设计一种算法来推荐电影。
系统中的每个用户都会以1-100之间的分数对电影进行评分。
表包括:
Table Movies
ID Name Year Rating Runtime
Table Con_MoviesToGenres
MovieID GenreID
Table Con_MovieToUser
MovieID UserID Grade
我正在尝试构建一个SELECT查询,以便为特定电影返回5个推荐最多的电影。
请记住,我想以某种方式融合,类似的流派,最高等级和电影评级(因此你想要推荐一部评级为PG的电影的R级电影,除非在其他所有方面都推荐它)。此外,如果电影匹配多个类型,它将增加其推荐比率。
奖励:如果用户为电影提供低等级 - >它会失去推荐率。
更新的 我的意思是一个用户和一个标题。每当用户进入“电影页面”时 - 他将获得他可能喜欢的其他电影的推荐。
答案 0 :(得分:4)
你迟到the contest结束了。
但它很有趣。
你将不得不研究一些奇特的数学(哦,我喜欢这一切)
文章:
答案 1 :(得分:2)
如果用户A和用户B共看过10部电影,并且他们的评分之间存在高度正相关(暗示他们对电影有相似的看法),那么你可以拍一部用户B给予的高电影评级并推荐给用户A.
要做这样的事情,也许你可以预先计算一个额外的表,它将用户X和用户Y映射到他们共同看到的电影数量和Pearson的评级之间的相关性
当用户要求推荐时,您可以使用此表来查找高度相关的用户,然后推荐他已经看到并喜欢此人没有的内容
如果用户没有足够的普通用户与其他人共同使用,您可以退回到推荐用户尚未看到的评分最高的电影
答案 2 :(得分:1)
这必须在原子级别上完成:一次计算一个标题或用户的推荐。
您无法在SQL查询中使用所有细节。必须要做的就是真实的代码。
答案 3 :(得分:1)
可能与SQL无关,但如果你喜欢python,那么在一本名为Collective Intelligence
的书中就这个主题有一些教程。答案 4 :(得分:1)
您可能想查看NetFlix比赛。找到一篇关于它的文章here。至少可以给你一些好主意......