TheMith/MachineLearning_recomendacion
0
1import pandas as pd2from surprise import Dataset, Reader, SVD3from surprise.model_selection import train_test_split4 5df_sco = pd.read_csv('./Datasets/score_movies.csv')6 7df_plat = pd.read_csv('./Datasets/plataformas.csv')8 9df_plat = df_plat[['movieId', 'title']]10df_plat = df_plat.reset_index(drop=True)11 12N_filas = 100000 # Limitamos el dataset a N_filas13 14reader = Reader(rating_scale=(1, 5))15 16data = Dataset.load_from_df(df_sco[['userId', 'movieId', 'score']][:N_filas], reader)17 18# Separamos nuestros datos19 20trainset, testset = train_test_split(data, test_size=.25)21 22modelo = SVD()23 24modelo.fit(trainset)25 26 27 28def movie_recommendation(userId, movieId):29 # Obtenemos la predicción de la calificación que el usuario le daría a la película30 prediction = modelo.predict(userId, str(movieId))31 32 # Si la predicción es mayor o igual a 3.5, se recomienda la película33 if prediction.est >= 3.5:34 return "Recomendada", prediction.est35 else:36 return "No recomendada", prediction.est37 38def titulo(movieId):39 return df_plat[df_plat.movieId == movieId].title.iloc[0].title()40 41def title_recommendation(userId, movieId):42 recomendado, puntaje = movie_recommendation(userId, movieId)43 titulo_1 = titulo(movieId)44 return (recomendado, puntaje,titulo_1)45 46import gradio as gr47 48title = str("El tinder de tus peliculas")49 50with gr.Blocks(title=title) as demo:51 nro_usuario = gr.inputs.Number(label='tu numero de usario')52 peli = gr.Textbox(label='numero de pelicula')53 recomendacion = gr.Button('matchea con tu pelicula')54 title = gr.Textbox(label='tu match se llama')55 output = gr.Textbox(label= 'le gustas o no')56 score = gr.Textbox(label='calidad del match')57 recomendacion.click(fn = title_recommendation, inputs=[nro_usuario,peli], outputs=[output, score,title])58demo.launch()