美文网首页
unit2 电影推荐

unit2 电影推荐

作者: 巴拉巴拉_9515 | 来源:发表于2018-05-25 19:01 被阅读0次

推荐算法在当下使用场景较多,亚马逊书籍推荐,商品推荐等等。《集体智慧编程》第二单元“提供推荐”构造简单的推荐系统,从而实现用户电影推荐的功能。


·

01数据介绍


登陆网页下载电影评分数据。

原始数据由movies和ratings两个文件组成。组合两个文件,读入数据如下所示影评人ID{电影1,给与的评分;电影2,给与的评分;···}

·

02 相似度定义


影评人之间的相似度可以通过欧几里得计算,也可以通过皮尔逊相关系数的方法计算。

  • 欧几里得距离

1、影评人A和影评人B共同评分过的电影数为 n
2、共同评过分的电影(A的评分-B的评分)^2 求和,再开方

(2)皮尔逊相关系数

1、影评人A和影评人B共同评分过的电影数为 n
2、共同评过分的电影(A的评分-B的评分)做以下函数处理计算相似度

·

03 寻找与你相似的人

根据距离寻找和你有相似电影喜好的人。原理很简单:就是根据距离排序,距离最近的人就是最相似的人。以下使用皮尔逊相关系数计算距离。

def topMatches(prefs, person, n=5, similarity=sim_pearson):
    scores = [(similarity(prefs, person, other), other)
              for other in prefs if other != person]#other是除目标外的其他人
    scores.sort()#得分排序
    scores.reverse()
    return scores[0:n]#返回得分前n的人(默认返回前5相关的人)

例如寻找与2号相似的影评人,按相似度排序,6416号影评人与2号最相似。

topMatches(prefs,"2")
相似度 影评人编号
[(1.0000000000000213, '6416'),
(1.000000000000004, '7791'),
(1.000000000000004, '7788'),
(1.000000000000004, '6846'),
(1.000000000000004, '6552')]

·

04 向你推荐电影

根据与你相似人的喜好,给你推荐他看过且好评的电影。

  • 推荐评分设置
    假如和2号相关的5个影评人,Rose与2号最相似,相似度为99%。分别有三部电影Night、Lady、Luck向2号做推荐备选。

1、影评人相似度 * 电影评分 S.x
2、看过这部电影的影评人相似度求和
3、做除法

以2号影评人为例,选取电影推荐评分最高的前5场电影:1996年的'Sweet Nothing '作为首选推荐。

getRecommendations(prefs,'2')[0:5]
[(5.000000000000001, 'Sweet Nothing (1996)'),
(5.000000000000001, 'Seven Chances (1925)'),
(5.0, 'Zero for Conduct (Zéro de conduite) (1933)'),
(5.0, 'Yol (1982)'),
(5.0, 'Woman of Paris\t A (1923)')]

·

05 相似的电影、合理的影评

电影那么多,想知道哪些电影是相似的。只要把数据做一下转换,还是同样的算法,返回最相似的电影,已经采用哪些影评人的评论。

def transformPrefs(prefs):
    result = {}
    for person in prefs:
        for item in prefs[person]:
            result.setdefault(item, {})#初始化结构
            # Flip item and person
            result[item][person] = prefs[person][item]
    return result

转换数据格式后,就可以计算相似的电影了。以Superman Returns为例,You, Me and Dupree是最相似的电影,相似度为65.7%。

topMatches(movies,'Superman Returns')
[(0.6579516949597695, 'You, Me and Dupree'),
(0.4879500364742689, 'Lady in the Water'),
(0.11180339887498941, 'Snakes on a Plane')

向人推荐电影,反过来向电影推荐人。
推荐合适的影评人选,显示影评在电影评价首页。以电影Just My Luck为例,建议把Michael Phillips的影评放在首页。

getRecommendations(movies,'Just My Luck')
[(4.0, 'Michael Phillips'),
(3.0, 'Jack Matthews')]

相关文章

  • unit2 电影推荐

    推荐算法在当下使用场景较多,亚马逊书籍推荐,商品推荐等等。《集体智慧编程》第二单元“提供推荐”构造简单的推荐系统,...

  • 英语流利说-懂你英语-商务英语-Level5 Unit2

    Level 5 Unit2全部文本,包括填空和录音题文本 --Unit2 Part1-- Calculating ...

  • 4.23

    英语unit2句子

  • 电影推荐

    《海街日记》《小偷家族》《寻梦环游记》 《最后的棒棒》《放牛班的春天》 《大坏狐狸的故事》

  • 电影推荐

    五一小长假即将到来,一起来看一部电影吧!《看不见的客人》不断反转的剧情满足你的心!

  • 电影推荐

    emmmm,我们小组在激烈地讨论中,我悄咪咪发一波娱乐项目,毕竟生活不止眼前的苟且ᕕ•́ݓ•̀ᕗ推荐的电影都是自己...

  • 电影推荐

    ️ 我在故宫修文物 关于电影简单来说的话就是一部缩略版的纪录片,我认为这种类型的的东西更适合她原本的样子,...

  • 电影推荐

    今天小编就和大家来聊聊电影,电影有一种魅力会吸引我,看电影的时候我会不自觉的把自己融入到电影中,也会因为电影...

  • 推荐电影

    天才少女 学教育学专业的更应该看看,因为这部电影是讲一类特殊群体——天才的教育。 影片看完很感人,...

  • 电影推荐🎬

    《时时刻刻》:三个女人一本书。在时空的维度上探索生命自己女性意识。当年该片的卖点之一是妮可·基德曼为扮演弗吉尼亚·...

网友评论

      本文标题:unit2 电影推荐

      本文链接:https://www.haomeiwen.com/subject/mxpujftx.html