Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -19,11 +19,12 @@ algo = SVD()
|
|
19 |
algo.fit(trainset)
|
20 |
|
21 |
# Initialize session state for storing user ratings
|
22 |
-
if '
|
23 |
-
st.session_state.
|
|
|
24 |
|
25 |
-
def update_ratings(
|
26 |
-
st.session_state.
|
27 |
|
28 |
# UI Elements
|
29 |
st.title("π Personalized Entertainment Recommendations")
|
@@ -60,16 +61,31 @@ predicted_ratings = [(id, algo.predict(5, id).est) for id in [1, 2, 3, 4] if id
|
|
60 |
predicted_ratings.sort(key=lambda x: x[1], reverse=True)
|
61 |
|
62 |
st.subheader("π― Recommendations for you:")
|
|
|
|
|
|
|
63 |
for item_id, rating in predicted_ratings:
|
64 |
for rec in recommendations[item_id]:
|
65 |
-
|
|
|
|
|
66 |
st.write(f"{rec} - Average Score: {avg_score:.2f} β")
|
67 |
|
68 |
-
# Rating
|
69 |
user_rating = st.slider(f"Rate {rec}", 1, 10, 5, key=f"slider_{rec}")
|
70 |
if st.button(f"Submit Rating for {rec}", key=f"button_{rec}"):
|
71 |
-
update_ratings(
|
72 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
# Display current session state (for debugging purposes)
|
75 |
-
st.write("Session State (User Ratings):", st.session_state.
|
|
|
19 |
algo.fit(trainset)
|
20 |
|
21 |
# Initialize session state for storing user ratings
|
22 |
+
if 'movie_ratings' not in st.session_state:
|
23 |
+
st.session_state.movie_ratings = {'Die Hard': [], 'Mad Max': [], 'The Shawshank Redemption': [], 'Forrest Gump': [],
|
24 |
+
'Superbad': [], 'Step Brothers': [], 'Inception': [], 'Interstellar': []}
|
25 |
|
26 |
+
def update_ratings(movie, rating):
|
27 |
+
st.session_state.movie_ratings[movie].append(rating)
|
28 |
|
29 |
# UI Elements
|
30 |
st.title("π Personalized Entertainment Recommendations")
|
|
|
61 |
predicted_ratings.sort(key=lambda x: x[1], reverse=True)
|
62 |
|
63 |
st.subheader("π― Recommendations for you:")
|
64 |
+
|
65 |
+
# Collect average scores
|
66 |
+
all_movies = []
|
67 |
for item_id, rating in predicted_ratings:
|
68 |
for rec in recommendations[item_id]:
|
69 |
+
current_ratings = st.session_state.movie_ratings[rec]
|
70 |
+
avg_score = np.mean(current_ratings) if current_ratings else rating
|
71 |
+
|
72 |
st.write(f"{rec} - Average Score: {avg_score:.2f} β")
|
73 |
|
74 |
+
# Rating slider from 1 to 10
|
75 |
user_rating = st.slider(f"Rate {rec}", 1, 10, 5, key=f"slider_{rec}")
|
76 |
if st.button(f"Submit Rating for {rec}", key=f"button_{rec}"):
|
77 |
+
update_ratings(rec, user_rating)
|
78 |
+
st.experimental_rerun() # Rerun to immediately reflect the rating submission
|
79 |
+
|
80 |
+
all_movies.append((rec, avg_score))
|
81 |
+
|
82 |
+
# Sort movies by average score in descending order
|
83 |
+
sorted_movies = sorted(all_movies, key=lambda x: x[1], reverse=True)
|
84 |
+
|
85 |
+
# Display scoreboard
|
86 |
+
st.subheader("π Scoreboard:")
|
87 |
+
for movie, avg_score in sorted_movies:
|
88 |
+
st.write(f"{movie}: {avg_score:.2f} β")
|
89 |
|
90 |
# Display current session state (for debugging purposes)
|
91 |
+
# st.write("Session State (User Ratings):", st.session_state.movie_ratings)
|