Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -11,7 +11,6 @@ genre_df = movies_df['genres'].str.get_dummies("|")
|
|
| 11 |
st.title("Movie Recommendation System")
|
| 12 |
@st.cache_data
|
| 13 |
def calculate_similarity_matrix(genre_df):
|
| 14 |
-
# Compute the cosine similarity matrix
|
| 15 |
similarity_matrix = cosine_similarity(genre_df)
|
| 16 |
return similarity_matrix
|
| 17 |
|
|
@@ -25,21 +24,20 @@ def vectorize_data(movies):
|
|
| 25 |
|
| 26 |
def search_movie(title):
|
| 27 |
vectorized_data,vec = vectorize_data(movies_df)
|
| 28 |
-
# Transform the input title to the same TF-IDF space
|
| 29 |
title_vector = vec.transform([title])
|
| 30 |
|
| 31 |
-
# Calculate cosine similarity with all titles
|
| 32 |
similarity_scores = cosine_similarity(title_vector, vectorized_data).flatten()
|
| 33 |
|
| 34 |
-
# Get the indices of the titles sorted by similarity score
|
| 35 |
similar_indices = similarity_scores.argsort()[::-1]
|
| 36 |
|
| 37 |
-
# Get the top similar titles and their scores
|
| 38 |
results = [(movies_df['title'][i], similarity_scores[i]) for i in similar_indices]
|
| 39 |
|
| 40 |
return results[0][0]
|
| 41 |
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
| 43 |
if 'random_movies' not in st.session_state:
|
| 44 |
st.session_state['random_movies'] = movies_df['title'].sample(5)
|
| 45 |
col1,col2 = st.columns(2)
|
|
@@ -59,11 +57,6 @@ if not movie:
|
|
| 59 |
st.subheader("Recommended Movies")
|
| 60 |
for i,j in enumerate(similar_movies[:5]):
|
| 61 |
st.write(f"\t{i+1}.{j}")
|
| 62 |
-
# refresher = st.button("Refresh",key='refresh')
|
| 63 |
-
# if refresher:
|
| 64 |
-
# st.session_state['random_movies'] = movies_df['title'].sample(5)
|
| 65 |
-
# random_movies = st.session_state['random_movies']
|
| 66 |
-
# st.rerun()
|
| 67 |
else:
|
| 68 |
result = search_movie(movie)
|
| 69 |
id = movies_df[movies_df['title'] == result].index[0]
|
|
@@ -77,9 +70,6 @@ else:
|
|
| 77 |
st.subheader("Recommended Movies")
|
| 78 |
for i,j in enumerate(similar_movies[:5]):
|
| 79 |
st.write(f"\t{i+1}.{j}")
|
| 80 |
-
# refresher1 = st.button("Refresh",key='refresh1')
|
| 81 |
-
# if refresher1:
|
| 82 |
-
# st.rerun()
|
| 83 |
if st.button("Refresh", key='refresh'):
|
| 84 |
st.session_state['random_movies'] = movies_df['title'].sample(5)
|
| 85 |
movie = " "
|
|
|
|
| 11 |
st.title("Movie Recommendation System")
|
| 12 |
@st.cache_data
|
| 13 |
def calculate_similarity_matrix(genre_df):
|
|
|
|
| 14 |
similarity_matrix = cosine_similarity(genre_df)
|
| 15 |
return similarity_matrix
|
| 16 |
|
|
|
|
| 24 |
|
| 25 |
def search_movie(title):
|
| 26 |
vectorized_data,vec = vectorize_data(movies_df)
|
|
|
|
| 27 |
title_vector = vec.transform([title])
|
| 28 |
|
|
|
|
| 29 |
similarity_scores = cosine_similarity(title_vector, vectorized_data).flatten()
|
| 30 |
|
|
|
|
| 31 |
similar_indices = similarity_scores.argsort()[::-1]
|
| 32 |
|
|
|
|
| 33 |
results = [(movies_df['title'][i], similarity_scores[i]) for i in similar_indices]
|
| 34 |
|
| 35 |
return results[0][0]
|
| 36 |
|
| 37 |
+
if 'search' not in st.session_state:
|
| 38 |
+
st.session_state['search'] = ""
|
| 39 |
+
|
| 40 |
+
movie = st.text_input("Search",placeholder='Search for movies',key="search")
|
| 41 |
if 'random_movies' not in st.session_state:
|
| 42 |
st.session_state['random_movies'] = movies_df['title'].sample(5)
|
| 43 |
col1,col2 = st.columns(2)
|
|
|
|
| 57 |
st.subheader("Recommended Movies")
|
| 58 |
for i,j in enumerate(similar_movies[:5]):
|
| 59 |
st.write(f"\t{i+1}.{j}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
else:
|
| 61 |
result = search_movie(movie)
|
| 62 |
id = movies_df[movies_df['title'] == result].index[0]
|
|
|
|
| 70 |
st.subheader("Recommended Movies")
|
| 71 |
for i,j in enumerate(similar_movies[:5]):
|
| 72 |
st.write(f"\t{i+1}.{j}")
|
|
|
|
|
|
|
|
|
|
| 73 |
if st.button("Refresh", key='refresh'):
|
| 74 |
st.session_state['random_movies'] = movies_df['title'].sample(5)
|
| 75 |
movie = " "
|