Blogs / app.py
Daniel-Sousa's picture
Update app.py
a833fa2
import gradio as gr
from fastai.learner import load_learner
import pandas as pd
import numpy as np
#Modelo
learn = load_learner('modelo.pkl')
#Ids para usar
id = pd.read_csv('valid.csv')
id = id.sort_values('user', ascending=True)
id = id['user'].unique()
id_list = list(map(str, id.tolist()))
#Dados originais
blog = pd.read_csv('blogs.csv')
def preds(user):
user = int(user)
itens = pd.Series(learn.dls.classes['title']).unique()
classifications = blog.loc[(blog['user'] == user) & (blog['rating'] > 0), 'title']
no_classifications = np.setdiff1d(itens, classifications)
df = pd.DataFrame({'user': [user] * len(no_classifications), 'title': no_classifications})
preds,_ = learn.get_preds(dl=learn.dls.test_dl(df))
df['prediction'] = preds.numpy()
top_5 = df.nlargest(5, 'prediction')
return '\n'.join(top_5['title'].tolist())
iface = gr.Interface(
fn=preds,
inputs=gr.Dropdown(choices=id_list),
outputs="text",
title="Recomendador de Blogs",
description="Esse modelo é capaz de realizar de Recomendar Blogs através de um Id de usuário",
)
iface.launch(share=True)