请帮我写一份基于内容推荐电影的python代码考虑到提取主题词和电影评分
以下是一个基于内容推荐电影的Python代码示例,其中考虑了主题词和电影评分:
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
# 读取电影数据
movies = pd.read_csv('movies.csv')
# 提取主题词
tfidf = TfidfVectorizer(stop_words='english')
movies['overview'] = movies['overview'].fillna('')
tfidf_matrix = tfidf.fit_transform(movies['overview'])
# 计算电影之间的余弦相似度
cosine_similarities = linear_kernel(tfidf_matrix, tfidf_matrix)
# 定义电影推荐函数
def get_recommendations(title, cosine_similarities, movies):
# 获取电影的索引
idx = movies[movies['title'] == title].index[0]
# 计算电影的相似度得分
similarity_scores = list(enumerate(cosine_similarities[idx]))
similarity_scores = sorted(similarity_scores, key=lambda x: x[1], reverse=True)
# 获取前10个相似电影的索引
movie_indices = [i[0] for i in similarity_scores[1:11]]
# 返回推荐电影的标题和评分
return movies['title'].iloc[movie_indices], movies['vote_average'].iloc[movie_indices]
# 测试推荐函数
recommended_movies, ratings = get_recommendations('The Dark Knight', cosine_similarities, movies)
for movie, rating in zip(recommended_movies, ratings):
print(movie, ' - Rating:', rating)
请注意,以上代码仅提供了一个基本的内容推荐框架,你可能需要根据你的具体需求进行修改和扩展。此外,你需要将电影数据存储在名为movies.csv的CSV文件中,并确保该文件与代码位于同一目录下。电影数据应该包含至少两列:title(电影标题)和overview(电影概述)
原文地址: https://www.cveoy.top/t/topic/h1se 著作权归作者所有。请勿转载和采集!