请用Python语言编写一个电影推荐系统
时间: 2023-11-05 13:39:13 浏览: 81
当然可以!以下是一个简单的电影推荐系统的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')
# 使用TF-IDF向量化电影描述
tfidf = TfidfVectorizer(stop_words='english')
movies['description'] = movies['description'].fillna('')
tfidf_matrix = tfidf.fit_transform(movies['description'])
# 计算电影之间的余弦相似度
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
# 根据电影标题推荐电影
def get_recommendations(title, cosine_sim=cosine_sim, movies=movies):
# 获取电影标题的索引
indices = pd.Series(movies.index, index=movies['title']).drop_duplicates()
# 获取输入电影的索引
idx = indices[title]
# 计算该电影与其他电影的相似度得分
sim_scores = list(enumerate(cosine_sim[idx]))
# 按相似度排序
sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
# 取出前10个最相似的电影
sim_scores = sim_scores[1:11]
# 获取这些电影的索引
movie_indices = [i[0] for i in sim_scores]
# 返回推荐的电影标题
return movies['title'].iloc[movie_indices]
# 测试推荐系统
print(get_recommendations('The Dark Knight'))
```
上述代码使用了一个包含电影标题和描述的CSV文件(movies.csv)。首先,它使用TF-IDF向量化电影描述,然后通过计算余弦相似度来找到与给定电影最相似的其他电影。最后,它返回前10个最相似的电影标题。
请注意,这只是一个简单的示例,实际的电影推荐系统可能需要更复杂的算法和数据处理步骤。
阅读全文