电影推荐系统python代码
时间: 2023-09-12 14:03:49 浏览: 102
作为语言模型AI,我不具备生成代码的能力,但是我可以给出一些电影推荐系统的代码示例和思路:
1. 基于协同过滤的推荐系统
协同过滤是推荐系统中最常用的算法之一,其基本思想是根据用户的历史行为数据,找出与其类似的用户或物品,推荐给该用户他们喜欢的内容。
以下是基于协同过滤的电影推荐系统代码示例:
```python
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# 读取电影数据
movies = pd.read_csv('movies.csv')
# 读取评分数据
ratings = pd.read_csv('ratings.csv')
# 合并电影和评分数据
movie_ratings = pd.merge(movies, ratings)
# 构建电影评分矩阵
movie_matrix = movie_ratings.pivot_table(index='userId', columns='title', values='rating')
# 计算电影之间的相似度
movie_similarity = cosine_similarity(movie_matrix)
# 推荐电影函数
def recommend_movies(movie_title):
# 查找电影对应的行索引
movie_index = movie_matrix.columns.get_loc(movie_title)
# 计算当前电影与其他电影的相似度
similar_movies = movie_similarity[movie_index]
# 将相似度与电影名称合并为一个DataFrame
similar_movies_df = pd.DataFrame(similar_movies, index=movie_matrix.columns, columns=['similarity'])
# 根据相似度从高到低排序
similar_movies_df = similar_movies_df.sort_values(by='similarity', ascending=False)
# 返回相似度最高的前10部电影
return similar_movies_df.head(10).index.tolist()
```
2. 基于内容过滤的推荐系统
内容过滤是另一种常用的推荐算法,其基本思想是根据物品的属性和特征,推荐与其相似的物品。
以下是基于内容过滤的电影推荐系统代码示例:
```python
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 读取电影数据
movies = pd.read_csv('movies.csv')
# 构建电影特征矩阵
count = CountVectorizer(stop_words='english')
movie_features = count.fit_transform(movies['genres'].fillna(''))
# 计算电影之间的相似度
movie_similarity = cosine_similarity(movie_features)
# 推荐电影函数
def recommend_movies(movie_title):
# 查找电影对应的行索引
movie_index = movies[movies['title'] == movie_title].index.values[0]
# 计算当前电影与其他电影的相似度
similar_movies = movie_similarity[movie_index]
# 将相似度与电影名称合并为一个DataFrame
similar_movies_df = pd.DataFrame(similar_movies, index=movies['title'], columns=['similarity'])
# 根据相似度从高到低排序
similar_movies_df = similar_movies_df.sort_values(by='similarity', ascending=False)
# 返回相似度最高的前10部电影
return similar_movies_df.head(10).index.tolist()
```
以上两种算法都可以作为电影推荐系统的基础,具体实现时可以根据数据集和需求进行调整和优化。
阅读全文