top of page

Music System Recommendation

Encontrei a receita secreta para conseguir manter o ritmo da “aprendizagem continua” que é tentar combinar os assuntos teóricos com temas que amo! Música faz realmente parte da minha rotina, passo praticamente todos os dias escutando alguma coisa e em atividades super variadas com para trabalhar, cozinhar, tomar banho, se exercitar e por que não para fazer estudos sobre Sistemas de Recomendação? Quer uma dica para te acompanhar nessa leitura? Ai vai “qué le pasa conmigo?”.


Há mais ou menos dois anos o Anderson Neisse disponibilizou no Kaggle a base de dados “Song lyrics from 79 musical genres” que foi obtida através de uma raspagem do site do Vagalume, um portal brasileiro que reúne letras de praticamente todas as músicas. Eu já publiquei um outro estudo sobre Sistemas de Recomendação aqui no site que se baseou nas interações dos usuários com filmes, mas com essa base do Anderson eu tive acesso a quase 380k de letras de músicas de 4.239 artistas em 79 gêneros diferentes, sendo então uma oportunidade para trabalhar dessa vez com a interessante abordagem de recomendação por conteúdo!

Principais insights

380k

letras de músicas

4.239

artistas

79

gêneros musicais

Conclusões

Trabalhei inicialmente na tratativa e organização dos dados! O primeiro passo foi definir o escopo do projeto com a seleção de conteúdos em português. Posteriormente, tive que realizar um feature extraction” no conjunto de dados que associava gêneros e artistas. Como tínhamos 79 gêneros diferentes e que estavam organizados num formato de lista (tema_1;tema_2;tema_3) adotei a estratégia de pegar os 15 gêneros mais frequentes e transformá-los em 15 colunas booleanas (verdadeiro/falso) que seriam utilizadas posteriormente na modelagem.


Com as bases ajustadas, iniciei o processo de preparação textual das letras de músicas que consistiu em padronizar todas para letras minúsculas, retirar acentos, pontuações, números e algumas outras características desnecessárias. Depois prosseguimos com a aplicação de “lemmatizatization” que vou explicar aqui de forma simplificada como a obtenção da forma padrão de cada palavra, como de “utilização” e “utilizamos” para “utilizar”. Isso em conjunto com a remoção de “stop-words” (palavras sem muita utilidade) nos ajudou a reduzir o conjunto de dados que seria utilizado no modelo. 


Por fim, aplicamos a técnica do TF-IDF para preparar o conjunto de dados, ponderando cada palavra pela sua frequência e importância dentro de cada letra de música. O modelo de dados final aplicado foi um KNN, pois tínhamos um vetor de características (gênero , palavras dentro da letra e nome do artista) e gostaríamos de saber quais seriam os outros vetores com características mais semelhantes (vizinhos mais próximos) utilizando a distância cosseno.


Com a definição de uma função que geraria o resultado trazendo as 10 músicas com características mais similares conseguimos obter resultados bem interessantes deste trabalho. Por se tratar de um trabalho mais técnico e direto, não geramos nenhuma apresentação ilustrativa, mas disponibilizaremos abaixo algumas imagens dos resultados e vocês podem saber mais sobre a implementação acessando os botões de "Saiba mais sobre esse projeto"!


Apresentação

Captura de Tela 2024-06-18 às 01.51.23.png

Galeria de imagens

Continue explorando outros temas...

Duolingo Exploratory Analysis

Uma análise exploratória de dados públicos do aplicativo de aprendizagem de idiomas mais popular do mundo.

Spaceship Titanic Random Forest

Prevêndo passageiros transportados para outra dimensão durante a colisão da nave espacial Titanic!

Movie System Recommendation

Desenvolvendo um sistema de recomendação de filmes utilizando Redes Complexas, SVD e Link Prediction.

Text classification for brazilian news

Aplicando técnicas de NLP para a limpeza, preparo e aplicação de modelos de classificação de temas em notícias em português

Data Analytics Manager

Se conecte comigo!

Inscreva-se neste site para ficar por dentro de todas as novidades!

Me siga pelas redes!

  • Captura de Tela 2024-06-02 às 17.03.21
  • GitHub
  • LinkedIn

/aravinii

© 2024 Vinicius Araujo. Todos os direitos reservados.

bottom of page