forked from UnBTV/UnB-TV-VideoService
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tutorial de como atualizar o modelo de recomendacao
- Loading branch information
1 parent
2bd96fd
commit 4acf739
Showing
8 changed files
with
644 additions
and
574 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
File renamed without changes.
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.