Skip to content

Commit

Permalink
tutorial de como atualizar o modelo de recomendacao
Browse files Browse the repository at this point in the history
  • Loading branch information
victorleaoo committed Sep 3, 2024
1 parent 2bd96fd commit 4acf739
Show file tree
Hide file tree
Showing 8 changed files with 644 additions and 574 deletions.
17 changes: 17 additions & 0 deletions TutorialModeloRecomendacao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Tutorial de como atualizar o modelo de recomendação de vídeos

Este é um tutorial sobre como atualizar os arquivos necessários para o funcionamento do modelo de recomendação. **Este tutorial deve ser executado sempre que novos vídeos forem adicionados ao catálogo da UnBTV.**

## 1. Instalar pendências

É necessário instalar algumas bibliotecas em Python para a criação do modelo:

```pip install pandas==1.5.0```

## 2. Atualizar o modelo

Para atualizar o modelo, é necessário executar o arquivo que produz o modelo (cosine_similarity.pkl) e o DataFrame de vídeos (df_videos.csv):

```python3 recomendation_model/renew_model.py```

Assim, os novos vídeos serão adicionados no DataFrame de busca, além de também serem usados no cálculo de similaridade.
36 changes: 36 additions & 0 deletions recomendation_model/renew_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
import pickle

from utils.constants import PORTUGUESE_STOP_WORDS

from utils.model import Catalog

from utils.get_videos import find_all_videos, videos_to_dataframe
from utils.categorize_videos import categorize_videos

# Calcula similaridade dos vídeos a partir da distância dos cossenos (cosine distance)
def calculate_similarity(df):
tfidf = TfidfVectorizer(stop_words=PORTUGUESE_STOP_WORDS)
tfidf_matrix = tfidf.fit_transform(df['Descrição'])
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)
return cosine_sim

if __name__ == "__main__":
catalog = Catalog()
videos = find_all_videos()

if videos:
# Categorização dos vídeos
categorize_videos(videos, catalog)

# Cria e salva o DataFrame com os vídeos
df = videos_to_dataframe(videos)
df.to_csv('../src/recommendation_model/df_videos.csv')

cosine_sim = calculate_similarity(df)

with open('../src/recommendation_model/cosine_similarity.pkl', 'wb') as f:
pickle.dump(cosine_sim, f)
else:
print("Nenhum vídeo encontrado.")
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file modified src/recommendation_model/cosine_similarity.pkl
Binary file not shown.
1,165 changes: 591 additions & 574 deletions src/recommendation_model/df_videos.csv

Large diffs are not rendered by default.

0 comments on commit 4acf739

Please sign in to comment.