Thiago-Cerq commited on
Commit
d07986d
·
1 Parent(s): 9e80709

Upload 7 files

Browse files
Files changed (8) hide show
  1. .gitattributes +1 -0
  2. README.md +12 -0
  3. anime_rec.pkl +3 -0
  4. app.py +57 -0
  5. dataset.csv +0 -0
  6. gitattributes +35 -0
  7. gitattributes (1) +3 -0
  8. requirements.txt +3 -0
.gitattributes ADDED
@@ -0,0 +1 @@
 
 
1
+ anime_rec.pkl filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: AnimeRecomendation
3
+ emoji: 🚀
4
+ colorFrom: yellow
5
+ colorTo: blue
6
+ sdk: gradio
7
+ sdk_version: 4.8.0
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
anime_rec.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:333fba6ec54246d3904d5e0a2868a2ccc49d61c2a0b9a8069002e9e5103499fc
3
+ size 14048208
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from fastai.learner import load_learner
3
+ import pandas as pd
4
+ import numpy as np
5
+
6
+ # Modelo
7
+ learn = load_learner('anime_rec.pkl')
8
+
9
+ # Ids para usar
10
+ id_data = pd.read_csv('dataset.csv')
11
+ id_data = id_data.sort_values('id_user', ascending=True)
12
+ id_list = list(map(str, id_data['id_user'].unique().tolist()))
13
+
14
+ # Dados originais
15
+ data = pd.read_csv('dataset.csv')
16
+
17
+ def get_anime_names_by_ids(id_animes):
18
+ # Filtrar as linhas correspondentes aos id_animes
19
+ anime_names = data.loc[data['id_anime'].isin(id_animes), ['id_anime', 'name']]
20
+ # Remover duplicatas
21
+ anime_names = anime_names.drop_duplicates(subset='id_anime')
22
+ return anime_names
23
+
24
+
25
+ def preds(id_user):
26
+ id_user = int(id_user)
27
+
28
+ itens = pd.Series(learn.dls.classes['id_anime']).unique()
29
+ itens_series = pd.Series(itens)
30
+ classifications = data.loc[(data['id_user'] == id_user) & (data['Overall Rating'] > 0), 'id_anime']
31
+
32
+ # Transformar itens em uma Series do Pandas
33
+ no_classifications = itens_series[~itens_series.isin(classifications)]
34
+
35
+ df = pd.DataFrame({'id_user': [id_user] * len(no_classifications), 'id_anime': no_classifications})
36
+
37
+ preds, _ = learn.get_preds(dl=learn.dls.test_dl(df))
38
+
39
+ df[['prediction']] = preds.numpy()
40
+
41
+ top_5 = df.nlargest(5, 'prediction')
42
+
43
+ # Obter os nomes dos animes correspondentes aos id_anime
44
+ result = get_anime_names_by_ids(top_5['id_anime'].astype(int).tolist())
45
+ result_str = result.apply(lambda x: f"{x['id_anime']}: {x['name']}", axis=1).tolist()
46
+
47
+ return '\n'.join(result_str)
48
+
49
+ iface = gr.Interface(
50
+ fn=preds,
51
+ inputs=gr.Dropdown(choices=id_list),
52
+ outputs="text",
53
+ title="Recomendador de Animes",
54
+ description="Esse modelo é capaz de recomendar animes através de um Id de usuário",
55
+ )
56
+
57
+ iface.launch(share=True)
dataset.csv ADDED
The diff for this file is too large to render. See raw diff
 
gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
gitattributes (1) ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ model.pkl filter=lfs diff=lfs merge=lfs -text
2
+ MAL[[:space:]]Anime[[:space:]]Reviews[[:space:]]85k.csv filter=lfs diff=lfs merge=lfs -text
3
+ anime_rec.pkl filter=lfs diff=lfs merge=lfs -text
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio
2
+ pandas
3
+ fastai