File size: 1,140 Bytes
5e5ef16
 
 
 
 
a833fa2
c01f07f
5e5ef16
a833fa2
 
 
 
 
88b61e3
a833fa2
88b61e3
 
a833fa2
 
5e5ef16
a833fa2
 
 
 
 
5e5ef16
 
a833fa2
5e5ef16
a833fa2
5e5ef16
a833fa2
88b61e3
5e5ef16
a833fa2
 
 
 
 
 
 
 
5e5ef16
88b61e3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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)