制作一个用户n次搜索电影即推荐相关电影的推荐模型的源代码
时间: 2024-09-19 18:10:17 浏览: 44
制作一个用户多次搜索电影并基于这些搜索历史进行推荐的模型通常涉及到协同过滤、内容过滤或者混合推荐系统。这里我将给出一个简化的Python示例,使用基于用户的协同过滤方法(User-based Collaborative Filtering)。首先,假设我们有一个包含用户搜索历史的DataFrame:
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# 假设数据结构如下
data = {
'user_id': [1, 1, 2, 2, 3],
'movie_title': ['电影A', '电影B', '电影A', '电影C', '电影B'],
'rating': [5, 4, 4, 3, 5]
}
df = pd.DataFrame(data)
# 计算用户之间的相似度矩阵
similarity_matrix = cosine_similarity(df.pivot_table(index='user_id', columns='movie_title', values='rating'))
# 用户n次搜索后的推荐函数
def recommend_movies(user_id, n=5):
# 获取用户的历史搜索记录
user_history = df[df['user_id'] == user_id]['movie_title'].tolist()
# 找到与当前用户最相似的k个用户
top_k_users = similarity_matrix[user_id].argsort()[:-n-1:-1] # 排序并取前n名
# 从相似用户喜欢过的电影中找出未观看的
recommended_movies = set(df.loc[top_k_users, 'movie_title']) - set(user_history)
return list(recommended_movies)[:n]
# 示例:给用户1推荐5部电影
recommend_movies(1)
注意这只是一个基础的推荐算法,并非完整的推荐系统。实际应用中可能会更复杂,包括但不限于使用机器学习库(如TensorFlow、PyTorch)、考虑时间衰减(recency bias)、加入新用户处理等。
相关推荐


















