具体需求要求
编写程序,生成数据模拟(也可以使用网上爬取的真实数据)多人对多部定影的打分(1~5分),然后根据这些数据对某用户A进行推荐。
推荐规则为:在已有的数据中选择与该用户A的爱好最相似的用户B,然后从最相似的用户B已看过但用户A还没看过的电影中选择B打分最高的电影推荐给用户A。其中,相似度的计算标准:(1)两个用户共同打分过的电影越多,越相似;(2)两个用户对共同打分的电影的打分越接近,越相似。
要求:
1、随机生成或爬取的数据不少于5个用户,且每个用户看的电影不少于3部;将数据放在excel表格中。
源代码
import functools
import time
import csv
# 自定义排序函数
def compare_personal(x, y):
if x[1][0] != y[1][0]:
return y[1][0] - x[1][0]
else:
return x[1][1] - y[1][1]
class RecommendBasedUser:
def __init__(self, movie, rating, top):
self.movies = movie
self.ratings = rating
self.tops = top
# {'用户ID':[电影ID,电影评分]}
self.userDict = {
}
self.moviesDict = {
}
self.recommends = []
def formatData(self):
# 数据形式 userId,movieId,rating,timestamp
for rating in self.ratings:
temp = (rating[1], float(rating[2]

最低0.47元/天 解锁文章
826

被折叠的 条评论
为什么被折叠?



