Baseado em similaridade por conteúdo e com mineração de textos
Objetivo:
Criar um sistema de recomendação baseado em conteúdo, usando frameworks do scikit-learn para cálculos matemáticos e técnicas de Processamento de Linguagem Natural (NLP) para mineração dos textos.
Metodologia aplicada:
As etapas de mineração de dados seguiram o padrão CRISP-DM.
Principais pacotes utilizados:
Natural Language Toolkit (nltk): para limpeza e processamento (stemmers) dos dados textuais.
scikit-learn: para criação da matriz de vetores através do Count Vectorizer e para o cálculo das distâncias entre os dados usando a similaridade de cosseno.
Base de dados:
Banco de dados públicos The Movie DB.
Variáveis selecionadas:
Identificação: id e título dos filmes.
Modelagem: gêneros dos filmes, elenco (retirados da coluna cast), direção (retirado da coluna crew), palavras-chave (keywords) e resumo (overview).
Experimentos iniciais:
Foram feitos testes com o código para encontrar o melhor modelo. As variáveis alteradas foram:
Elenco: experimentos com 3, 5 e 10 nomes de artistas.
Vetores: usando, respectivamente, 2500, 5000, 6000 e 7500 palavras-chave.
Os melhores resultados foram obtidos usando 10 nomes de artistas e 6000 palavras-chave.
Top 3 recomendações para cinco filmes:
007 Contra Spectre
(Spectre, 2015, direção: Sam Mendes)
007 - Operação Skyfall (Skyfall, 2012, direção: Sam Mendes)
007 - Quantum of Solace (Quantum of Solace, 2008, dir: Marc Foster)
007 - Nunca Mais Outra Vez (Never Say Never Again, 1983, dir: Irvin Kershner)
Comentários:
Os dois primeiros filmes foram protagonizados pelo 007 de Daniel Craig, a M de Judi Dench e são histórias que antecedem 007 Contra Spectre.
O terceiro filme foi protagonizado pelo 007 de Sean Connery e menciona a organização criminosa SPECTRE.
As Aventuras de Paddington
(Paddington, 2014, direção: Paul King)
Beary e os Ursos Caipiras (The Country Bears, 2002, direção: Peter Hastings)
Ted (Ted, 2012, dir: Seth MacFarlane)
Dr. Dolittle 2 (Dr. Dolittle 2, 2001, dir: Steve Carr)
Comentários:
Os 3 filmes recomendados possuem ursos no elenco principal e o gênero 'comédia' em comum.
No caso do primeiro filme, ele ainda se destaca pelos gêneros 'infantil' e 'familiar'.
Sideways - Entre Umas e Outras
(Sideways, 2004, direção: Alexander Payne)
O Julgamento de Paris (Bottle Shock, 2008, direção: Randall Miller)
O Clube da Feliz Idade (Boynton Beach Club, 2005, dir: Susan Seidelman)
Embriagado de Amor (Punch-Drunk Love, 2002, dir: Paul Thomas Anderson)
Comentários:
O roteiro (vinhos e viagens) e os gêneros (comédia e drama) de O Julgamento de Paris são os mesmos de Sideways.
O segundo e terceiro lugares são classificados como comédias românticas.
O terceiro filme ainda possui drama e os temas 'bebida' e 'insegurança' presentes no roteiro.
Um Lugar Chamado Notting Hill
(Notting Hill, 1999, direção: Roger Michell)
O Clube da Feliz Idade (Boynton Beach Club, 2005, direção: Susan Seidelman)
Ritmo Acelerado (It's All Gone Pete Tong, 2004, dir: Michael Dowse). Personagem britânico
Simplesmente Amor (Love Actually, 2003, dir: Richard Curtis)
Comentários:
Os quatro filmes - selecionado e recomendados - são comédias e possuem romance no roteiro.
No caso do 1º filme recomendado, ele possui diferenças no elenco, na direção e nas locações (Flórida, nos EUA).
O 2º filme se destaca por ter um protagonista britânico.
Dos três, teoricamente, Love Actually seria o mais parecido com Notting Hill: comédia romântica, Londres como locação, Hugh Grant no elenco; diretor e roteirista dos dois filmes trabalharam juntos.
É possível que as palavras-chave e o overview dos dois primeiros filmes recomendados possuam as similaridades encontradas pelos cálculos do modelo.
Wolverine: Imortal
(The Wolverine, 2013, direção: James Mangold)
X-Men 2 (X2, 2003, dir: Bryan Singer)
X-Men - O Filme (X-Men, 2000, dir: Bryan Singer)
Homem de Ferro 2 (Iron Man 2, 2010, Jon Favreau)
Comentários:
Os dois primeiros filmes da franquia X-Men protagonizados por Hugh Jackman como Wolverine/Logan e por outros personagens vistos em Wolverine: Imortal, como Jean (Famke Jamsen) e, no final, Professor Charles Xavier (Patrick Stewart).
No caso de Iron Man 2, a similaridade aparente é o fato da história também ser da Marvel.
Conclusão:
De forma geral, as recomendações foram muito boas para os filmes analisados, com uma ou outra exceção aparente, como as feitas para 1º e 2º lugares de Um Lugar Chamado Notting Hill e o 3º lugar de Wolverine - Imortal. Mesmo nessas situações, é possível que as similaridades estejam associadas com o resumo e as palavras-chave dos filmes recomendados.
Código do modelo disponível no GitHub.
Comments