利用python进行电影的个性化推荐

今天闲着无聊,想找点电影看,上豆瓣找了好久,很烦,一点都不知道选什么电影比较好,因为我也尝试过去豆瓣top250里面找,但是可能是口味不和的缘故,即使评分很高我也看不下去,一来二去就浪费了很多时间,于是就想着写一个电影推荐系统,把豆瓣上的电影评分信息爬下来,经过一些算法的处理来得出一些符合我口味的电影。
    下面我讲一下具体实现的思路:
    第一步:我需要把电影评分信息爬下来。
为了找到真实活跃用户的评分信息,我把芳华的热门影评中的前100个人的信息爬了下来。

 
最终返回的结果是类似https://www.douban.com/people/tjz230/这种链接的集合,总共100个。
接下来,我会在链接的后面加上"collect?start=0&sort=time&rating=all &filter=all&mode=grid"来进入他全部电影的评分界面。


接着我把他看过的电影,有评分的,按时间排序,爬前90部电影评分下来,当然如果他没有看过90部电影就不爬那么多。

这一步完成后,我获得了电影评分数据。

    第二步:再有了数据集之后,接下来可以寻找与我品味相似的观众了。(自己的对电影的评分数据也要有)。

这里我利用的是皮尔逊相似度来计算两个人的相似度


    第三步:有了相似度之后,就可以进行电影的推荐了,啊哈哈!下面是对我电影推荐的结果:


我把我所有的代码都放在了我的github上,大家可以过去下载使用:https://github.com/xyy55/Python/tree/master/python3/DataMining

get_movie_data.py是用来获取数据集的,在获取完数据后会在同一个文件夹下生成一个movie.json文件。

get_personal_hobby.py是用来获取自己在豆瓣的评分信息的,大家用的时候先把代码里面的people_name赋值为自己的id,找不到自己的id的话可以打开自己豆瓣的主页,地址栏那里跟在/people/后面的便是你自己的id,如果想要推荐的精确度高的话要多多评分哦!

make_recommendation.py这个文件是做推荐用的,同样也要把代码里面的people_name修改为自己的id,运行结束后会输出前20个推荐的电影

update_data.py是更新数据集的,为了推荐的准确度啦,久不久就运行一遍就行。


猜你喜欢

转载自blog.csdn.net/XYYxyy55/article/details/80487007
今日推荐