Spaces:
Runtime error
Runtime error
# -*- coding: utf-8 -*- | |
"""Movie Recommendation.ipynb | |
Automatically generated by Colaboratory. | |
Original file is located at | |
https://colab.research.google.com/drive/16mb8GFViCsAzCEZxBKLbV12h3pQEoU_l | |
""" | |
# Commented out IPython magic to ensure Python compatibility. | |
# %pip install gradio | |
import pandas as pd | |
import requests | |
movies_df = pd.read_csv('./movies.csv') | |
links_df = pd.read_csv('./links.csv') | |
combined_df = pd.concat([movies_df, links_df[['imdbId','tmdbId']]], axis=1) | |
combined_df = combined_df.set_index('title') | |
combined_df.head() | |
df = movies_df[['title','genres']] | |
df.head() | |
print(df.isnull().sum()) | |
from sklearn.feature_extraction.text import TfidfVectorizer | |
tf = TfidfVectorizer(analyzer='word', ngram_range=(1, 3), min_df=0, stop_words='english') | |
matrix = tf.fit_transform(df['genres']) | |
from sklearn.metrics.pairwise import linear_kernel | |
cosine_similarities = linear_kernel(matrix,matrix) | |
movie_title = df['title'] | |
indices = pd.Series(df.index, index=df['title']) | |
def movie_recommend(original_title): | |
id = 'tt'+str(combined_df.loc[[original_title]].imdbId.values).replace('[','').replace(']','').zfill(7) | |
URL = f"http://www.omdbapi.com/?i={id}&apikey=3bd2165d" | |
# sending get request and saving the response as response object | |
r = requests.get(url = URL) | |
# extracting data in json format | |
data = r.json() | |
poster_url = data['Poster'] | |
idx = indices[original_title] | |
sim_scores = list(enumerate(cosine_similarities[idx])) | |
sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) | |
sim_scores = sim_scores[2:12] | |
movie_indices = [i[0] for i in sim_scores] | |
results = pd.DataFrame(list(data.items()), columns=['Key','Value']).head(20) | |
movies = pd.DataFrame(movie_title.iloc[movie_indices].reset_index(drop=True)) | |
return results, movies, poster_url | |
import gradio as gr | |
with gr.Blocks(title='Movie Recommendation') as Intf: | |
gr.Markdown(value='Content Based Recommendation System') | |
with gr.Row(): | |
with gr.Column(): | |
inp = gr.Dropdown(choices=list(df['title']), label="Choose Movie") | |
btn = gr.Button("Run") | |
gr.Markdown(value='Movie Details') | |
results = gr.DataFrame() | |
poster = gr.Image(label="Poster Image") | |
recomms = gr.DataFrame(label='Recommended Content, Similar to this Movie') | |
btn.click(fn=movie_recommend, inputs=inp, outputs=[results,recomms,poster]) | |
Intf.launch(debug=False) |