电影基于内容的推荐算法代码。
时间: 2023-11-08 15:05:43 浏览: 62
以下是一个简单的基于内容的电影推荐算法的代码示例:
```python
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
# 读取电影元数据
movies_metadata = pd.read_csv('movies_metadata.csv', low_memory=False)
# 选取需要的特征
features = ['title', 'genres', 'overview']
movies_metadata = movies_metadata[features]
# 填充缺失值
movies_metadata = movies_metadata.fillna('')
# 创建基于文本的特征向量
tfidf = TfidfVectorizer(stop_words='english')
tfidf_matrix = tfidf.fit_transform(movies_metadata['overview'])
# 计算余弦相似度
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
# 构建索引映射
indices = pd.Series(movies_metadata.index, index=movies_metadata['title']).drop_duplicates()
# 电影推荐函数
def get_recommendations(title, cosine_sim=cosine_sim, movies_metadata=movies_metadata, indices=indices):
# 获取电影的索引
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]
# 返回前10个最相似电影的名称
return movies_metadata['title'].iloc[movie_indices]
```
在这个示例中,我们使用了电影元数据文件中的标题、类型和概述等特征来创建基于文本的特征向量,然后使用余弦相似度计算电影之间的相似度得分。最后,我们可以通过调用`get_recommendations`函数来获取与指定电影最相似的前10个电影的名称。
阅读全文