Stanford-TH's picture
Upload 7 files
7ca7ec8 verified
raw
history blame
1.29 kB
import gradio as gr
import torch
import pandas as pd
from ModelSimilarity import MovieSimilarityModel
# Assume the MovieSimilarityModel class is already defined above
csv_file_path = './Themes_And_Concepts.csv'
movie_similarity_model = MovieSimilarityModel(csv_file_path)
# Load precomputed embeddings if available
movie_similarity_model.load_tensor_list()
# Define a function to wrap the comparison
def get_top_5_similar_movies(input_themes, input_genres):
# Directly use the input arrays
input_sentence_embeddings, input_genres_embeddings = movie_similarity_model.encode_input_movie(input_themes, input_genres)
# Get top 5 similar movies
top_5_similar_movies = movie_similarity_model.compare_input_vs_dataset(input_sentence_embeddings, input_genres_embeddings)
return top_5_similar_movies
# Define Gradio interface
input_themes = gr.List(headers=["Themes"], label="Input Movie Themes (array of strings)")
input_genres = gr.List(headers=["Genres"], label="Input Movie Genres (array of strings)")
output = gr.Dataframe(type="pandas", label="Top 5 Similar Movies")
interface = gr.Interface(fn=get_top_5_similar_movies, inputs=[input_themes, input_genres], outputs=output)
# Launch the Gradio interface
interface.launch()