评分系统python代码
时间: 2023-07-23 19:10:01 浏览: 51
下面是一个简单的评分系统Python代码示例:
```python
scores = [] # 初始化一个空列表,用于存储得分
while True:
score = input("请输入一个得分(输入 q 退出):")
if score == "q": # 如果输入 q,退出循环
break
score = int(score)
if score < 0 or score > 100: # 如果输入的得分不在 0-100 范围内,提示用户重新输入
print("请输入一个 0-100 之间的得分!")
continue
scores.append(score) # 将得分添加到列表中
average_score = sum(scores) / len(scores) # 计算平均得分
print("平均得分为:", average_score)
```
这个评分系统会要求用户输入一个得分,在输入 q 之前可以输入任意多次得分。如果输入的得分不在 0-100 范围内,程序会提示用户重新输入。最后,程序会计算所有得分的平均值,并输出平均得分。
相关问题
推荐系统python代码
以下是一个简单的基于协同过滤算法的推荐系统Python代码:
```python
import numpy as np
# 计算用户之间的相似度
def similarity(user1, user2):
# 找到两个用户都评价过的电影
common_movies = {}
for movie in user1:
if movie in user2:
common_movies[movie] = 1
# 如果没有共同评价过的电影,返回0
if len(common_movies) == 0:
return 0
# 计算两个用户共同评价电影的评分差异的平方和
sum_of_squares = 0
for movie in common_movies:
sum_of_squares += np.square(user1[movie] - user2[movie])
# 返回相似度,值越大表示越相似
return 1 / (1 + np.sqrt(sum_of_squares))
# 为用户推荐电影
def recommend_movies(user, users):
# 找出所有其他用户与该用户的相似度
scores = []
for u in users:
if u != user:
score = similarity(users[user], users[u])
scores.append((score, u))
# 对相似度进行排序,找出最相似的前五个用户
scores.sort(reverse=True)
top_users = scores[0:5]
# 找出这些用户评分高的电影,且该用户没看过的电影
recommendations = {}
for tu in top_users:
user = tu[1]
for movie in users[user]:
if movie not in users[user] and movie not in recommendations:
recommendations[movie] = users[user][movie]
# 返回推荐电影列表
return recommendations
```
该代码实现了协同过滤算法,通过计算用户之间的相似度,找出与目标用户最相似的前五个用户,然后推荐这些用户评分高的电影,且该用户没看过的电影。
电影推荐系统python代码
作为语言模型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()
```
以上两种算法都可以作为电影推荐系统的基础,具体实现时可以根据数据集和需求进行调整和优化。