Utilizando data science para fazer a playlist mais feliz do Radiohead
Utilizando o atributo de positividade de uma música para selecionar as menos depressivas do Radiohead
Radiohead é uma das bandas que eu mais gosto e escuto. Porém as pessoas costumam dizer que a música deles é depressiva. Olha, eu não posso mentir… Mas nem todas as músicas são assim.
Na tentativa de provar para os meus amigos que a banda não é só chororô e dá sim pra dançar e se sentir feliz eu resolvi criar este estudo em R, baseado na experiência do RCharlie.
Nos meus últimos posts eu abordei muito a utilização do Python, então para este post resolvi fazer alguma coisa em R.
Pra começar, eu fiz o download do package ‘spotifyr’, que, de uma maneira mais rápida, possibilita com que eu pegue as informações da discografia inteira de uma banda através da api do Spotify. Além dele também precisaremos do ‘dplyr’ e do ‘ggplot2’.
## Instalando e carregando os pacotes dplyr, spotifyr e ggplot2install.package("dplyr")
install.package("spotifyr")
install.package("ggplot2")library(dplyr)
library(spotifyr)
library(ggplot2)
O próximo passo foi colocar as minhas credenciais e fazer a autorização da API do Spotify.
## Autorizando a APISys.setenv(SPOTIFY_CLIENT_ID = 'xxxxxxxxxxxxx')
Sys.setenv(SPOTIFY_CLIENT_SECRET = 'xxxxxxxxxxxxx')
Depois disso foi a hora de selecionar apenas as colunas que me interessavam no dataset por meio do pacote ‘dplyr’.
## Buscando as features relacionadas ao Radioheadspotify_df <- get_artist_audio_features('radiohead')
str(spotify_df)
A api do Spotify possui um atributo para cada música chamado ‘valence’, que vai de 0 a 1, e estima a positividade de uma música. Músicas com uma valência alta, são consideradas mais positivas. Mais detalhes sobre isso você pode conferir na documentação da api.
## Selecionando os atributostrack_df <- spotify_df %>%
select(track_name, valence, duration_ms, album_name)
Assim, tendo a valência como base, organizei uma lista com as 13 músicas com o maior valor de toda a discografia do Radiohead (incluindo remasterizações, remixes, etc…)
## Organizando a lista com as 13 músicas mais animadas da bandaselected <- track_df %>%
select(valence, track_name) %>%
arrange(-valence) %>%
slice(1:13)## Plotando o gráfico de valência com o ggplotm <- ggplot(selected, aes(x = track_name, y = valence))
m +geom_bar(stat = "identity", fill = "#FF6666") +
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) +
ggtitle("Gráfico de valência") +
labs(x="Músicas",y="Valência") +
theme(plot.title = element_text(color="#666666", face="bold", size=20, hjust=0)) +
theme(axis.title = element_text(color="#666666", face="bold", size=14))
E, desta lista, nasceu essa playlist maravilhosa: