算法:为您可能喜欢的电影制作推荐

时间:2010-03-31 08:41:35

标签: sql algorithm

我需要帮助设计一种算法来推荐电影。

系统中的每个用户都会以1-100之间的分数对电影进行评分。

表包括:

Table Movies
ID    Name    Year    Rating    Runtime

Table Con_MoviesToGenres
MovieID    GenreID

Table Con_MovieToUser
MovieID    UserID    Grade

我正在尝试构建一个SELECT查询,以便为特定电影返回5个推荐最多的电影。

请记住,我想以某种方式融合,类似的流派,最高等级和电影评级(因此你想要推荐一部评级为PG的电影的R级电影,除非在其他所有方面都推荐它)。此外,如果电影匹配多个类型,它将增加其推荐比率。

奖励:如果用户为电影提供低等级 - >它会失去推荐率。

更新的 我的意思是一个用户和一个标题。每当用户进入“电影页面”时 - 他将获得他可能喜欢的其他电影的推荐。

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

如果用户A和用户B共看过10部电影,并且他们的评分之间存在高度正相关(暗示他们对电影有相似的看法),那么你可以拍一部用户B给予的高电影评级并推荐给用户A.

要做这样的事情,也许你可以预先计算一个额外的表,它将用户X和用户Y映射到他们共同看到的电影数量和Pearson的评级之间的相关性

当用户要求推荐时,您可以使用此表来查找高度相关的用户,然后推荐他已经看到并喜欢此人没有的内容

如果用户没有足够的普通用户与其他人共同使用,您可以退回到推荐用户尚未看到的评分最高的电影

答案 2 :(得分:1)

这必须在原子级别上完成:一次计算一个标题或用户的推荐。

您无法在SQL查询中使用所有细节。必须要做的就是真实的代码。

答案 3 :(得分:1)

可能与SQL无关,但如果你喜欢python,那么在一本名为Collective Intelligence

的书中就这个主题有一些教程。

答案 4 :(得分:1)

您可能想查看NetFlix比赛。找到一篇关于它的文章here。至少可以给你一些好主意......