Golyass commited on
Commit
a261dd3
·
1 Parent(s): c9ef59c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import numpy as np
3
+ import sklearn
4
+ from sklearn.metrics.pairwise import cosine_similarity
5
+
6
+ # Load movie metadata into a pandas DataFrame
7
+ movie_data = pd.read_csv('/content/drive/MyDrive/kaggle/movies_metadata.csv', usecols=['title', 'budget', 'revenue', 'vote_count', 'vote_average'])
8
+
9
+ # Load movie ratings into a pandas DataFrame
10
+ ratings_data = pd.read_csv('/content/drive/MyDrive/kaggle/ratings_small.csv')
11
+
12
+ # Collaborative Filtering
13
+ def collaborative_filtering(user_id, num_recommendations=5):
14
+ user_ratings = ratings_data[ratings_data['userId'] == user_id]
15
+ user_ratings = user_ratings.merge(movie_data[['title']], left_on='movieId', right_index=True)
16
+ user_ratings = user_ratings.drop_duplicates(subset=['title'], keep='first')
17
+
18
+ # Get the mean ratings for each movie
19
+ movie_ratings_mean = ratings_data.groupby('movieId')['rating'].mean().reset_index()
20
+
21
+ # Merge with movie data to get movie titles
22
+ movie_ratings_mean = movie_ratings_mean.merge(movie_data[['title']], left_on='movieId', right_index=True)
23
+ movie_ratings_mean = movie_ratings_mean.drop_duplicates(subset=['title'], keep='first')
24
+
25
+ # Sort movies by mean rating in descending order
26
+ top_movies = movie_ratings_mean.sort_values(by='rating', ascending=False)['title'][:num_recommendations]
27
+
28
+ return top_movies.tolist()
29
+ import gradio as gr
30
+
31
+ with gr.Blocks() as demo:
32
+ gr.Markdown("Flip text or image files using this demo.")
33
+ title="Movie Recommender System"
34
+ user_id = gr.Textbox(placeholder='user_id')
35
+
36
+ #input2 = gr.Textbox(placeholder='second film name...')
37
+
38
+ #input3 = gr.Textbox(placeholder='third film name...')
39
+
40
+ text_output=gr.Textbox( )
41
+
42
+
43
+ text_button = gr.Button("Submit")
44
+
45
+ text_button.click(collaborative_filtering, inputs=user_id, outputs=text_output)
46
+ demo.launch()