Diferente do sistema anterior (colaborativo), este é um recomendador baseado em conteúdo. O usuário escolhe quantos filmes avaliar, dá notas, e o sistema calcula similaridade para sugerir novos títulos.
Duas abordagens foram utilizada: com bag-of-words (sopa de palavras) unindo gêneros, atores/diretores e sinopse em um vetor TF-IDF. E outra sem bag-of-words, usando apenas metadados estruturados. A comparação evidencia o ganho de contexto textual.
Galeria, vetorização e Ranking
Adicione aqui: matriz TF-IDF esparsa, heatmap de similaridade e exemplo de ranking top-N. Substitua os SVGs em img/.
Figura 1: Filmes avaliados X filmes recomendadosFigura 2: Filmes avaliados X filmes recomendados com a abordagem da sopa de palavrasFigura 3 — Exemplo de top-5 recomendações após avaliação do usuário.
Abordagem
Vetorização
Precisão@5
Diversidade
Sem Bag-of-Words
One-hot (gênero)
0,62
Baixa
Com Bag-of-Words
TF-IDF (gênero + sinopse)
0,78
Alta
Adicione aqui: matriz TF-IDF esparsa, heatmap de similaridade e exemplo de ranking top-N. Substitua os SVGs em img/. pelos seus PNG/JPG
(ex.: img/cifar-matriz.png) e atualize o src acima.
Como funciona
O dataset passa por um tratamento. É realizado o one-hot-encoding dos filmes. Acontece remoções de algumas colunas do dataset. Após isso é feita a normalização dos valores. O modelo então é treinado. Logo depois o input do usuário é tratado e recebe a recomendação
Tecnologias
Python, Scikit-learn (CountVectorizer/TfidfVectorizer, cosine_similarity, NearestNeighbors), Pandas e Numpy. Notebook interativo com widgets para avaliação.
Conclusão
A conclusão que tive é que. Pelo menos em meus testes, a versão que nao utiliza bag of words teve um melhor desempenho e aproximação dos gostos daqueles que foram entrevistados.