基于Python的电影推荐+可视化系统代码
时间: 2023-09-28 13:13:34 浏览: 110
基于Python的电影推荐系统
很高兴能够帮助你!以下是一个基于Python的电影推荐和可视化系统的简单示例代码。
```python
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
import matplotlib.pyplot as plt
# 读取电影数据
movies = pd.read_csv('movies.csv')
# 创建TF-IDF向量化器
tfidf = TfidfVectorizer(stop_words='english')
# 对电影的描述信息进行向量化
movies['overview'] = movies['overview'].fillna('')
tfidf_matrix = tfidf.fit_transform(movies['overview'])
# 计算电影之间的余弦相似度
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
# 电影推荐函数
def get_recommendations(title, cosine_sim=cosine_sim):
# 获取电影标题对应的索引值
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部电影的索引值
movie_indices = [i[0] for i in sim_scores[1:11]]
# 返回相似度最高的前10部电影的标题
return movies['title'].iloc[movie_indices]
# 电影推荐示例
movie_title = 'The Dark Knight Rises'
recommended_movies = get_recommendations(movie_title)
print(f"针对电影《{movie_title}》的推荐电影:")
print(recommended_movies)
# 数据可视化示例
# 统计电影类型数量
genres_count = movies['genres'].apply(lambda x: len(x.split('|'))).value_counts()
# 绘制柱状图
plt.bar(genres_count.index, genres_count.values)
plt.xlabel('Number of Genres')
plt.ylabel('Count')
plt.title('Number of Movies vs Genres')
plt.show()
```
请注意,上述代码只是一个简单示例,你可能需要根据你的具体需求进行修改和优化。此外,为了实现电影推荐系统,你可能需要一个包含电影数据的CSV文件,并了解基于内容的推荐算法的原理和方法。为了进行数据可视化,你可能需要使用适当的数据分析和可视化库,如matplotlib。
阅读全文