POST:基于内容的电影推荐系统-tdidf doc2vec文本相似推荐及热评分榜、cf模型推荐

本文介绍了一个基于内容的电影推荐系统,使用了movielens 10m数据集。主要内容包括:1) 电影热门排行榜统计;2) 使用CountVectorizer和TfidfVectorizer进行IDF相识度推荐;3) 应用doc2vec进行文本电影推荐。通过文本分词和TaggedDocument格式处理,实现个性化推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先使用的数据是movielens(用的是10m大小的这份,用户100万数据打分):

1、关于电影hot排行榜统计

import pandas as pd

column_names = ['user_id', 'item_id', 'rating', 'timestamp']
links = pd.read_csv('/Users/lonng/Desktop/推荐学习/movie_rec/ml-10M100K/ratings.dat',sep="::",names=column_names)


column_names1 = ['item_id', 'title', 'movietype']
movies = pd.read_csv('/Users/lonng/Desktop/推荐学习/movie_rec/ml-10M100K/movies.dat',sep="::",names=column_names1)
movies.head(5)

df = pd.merge(links,movies, on="item_id")
df.head(5)


df = df.drop(columns=['timestamp'])
df.dropna()
df.shape


# # genres and their count

genre_labels = set()
for gen in df['movietype'].str.split('|').values:
    genre_labels = genre_labels.union(set(gen))
    
for x in genre_labels:
    print(x, len(df[df['movietype'].str.contains(x)].index))
    


# # top movies

top = df.groupby(['title'])['rating'].mean().sort_values(ascending=False)[:20]  # top 20 movies based on ratings


df.groupby(['title'])['rating'].mean()


2、idtdf相识度推荐

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.metrics.pairwise import linear_kernel

movie_types = set()

kk = []
a = open('/Users/lonng/Desktop/推荐学习/movie_rec/ml-10M100K/movies.dat')
for i in a:
#     if linenum>5:
#         break
#     linenum +=1
#     print (i)
    iteam = i.strip().split('::')
    movieid,title,movietype = iteam[0],iteam[1],iteam[2]
    mm =''
    for j in movietype.split('|'):
    &nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值