Python简单电影推荐算法原理实现

Python简单电影推荐算法实现

具体需求要求

编写程序,生成数据模拟(也可以使用网上爬取的真实数据)多人对多部定影的打分(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]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值