Text Mining o Minería de textos según su traducción, se
refiere al proceso de derivar información nueva a partir de textos. En este
caso analizaremos los coros de algunas de las canciones más famosos de Adele
como son: Rolling In the Deep, Someone Like You, Hello, etc.
El análisis de sentimiento intenta determinar la actitud de un interlocutor o un escritor con respecto a algún tema. La actitud puede ser su juicio o evaluación, estado afectivo (o sea, el estado emocional del autor al momento de escribir), o la intención comunicativa emocional (o sea, el efecto emocional que el autor intenta causar en el lector).
En nuestro caso, analizaremos que tipo de sentimiento nos transmiten las canciones de Adele que además de voz y ritmo, que sentimientos esconden sus letras.
Utilizaremos R, y procedemos a cargar algunas librerías utilitarias:
library(syuzhet)
library(lubridate)
library(ggplot2)
library(scales)
library(reshape2)
library(dplyr)
Puedes leer acerca de cada una de las librerías y puedes
extenderte en ellas. De manera especial, el algoritmo de análisis de sentimientos utilizado aquí se
basa en NRC Word-Emotion Association Lexicon de Saif Mohammad y Peter Turney. La idea
aquí es que estos investigadores han construido un diccionario / léxico que
contiene un montón de palabras con puntuaciones asociadas para ocho emociones
diferentes y dos sentimientos (positivos / negativos). Cada palabra individual
del léxico tendrá un "sí" (uno) o un "no" (cero) para las
emociones y los sentimientos, y podemos calcular el sentimiento total de una
oración agregando los sentimientos individuales de cada palabra en la oración. No
todas las palabras en inglés están en el diccionario porque muchas palabras en
inglés son bastante neutras.
Echémosle un vistazo a los datos:
|
|||||||||||||||||||||||||||
Cargamos los datos:
songs <- read.csv("./songs.csv", stringsAsFactors
= FALSE)
Realizamos una prueba:
get_nrc_sentiment("I'm so excited")
anger anticipation
disgust fear joy sadness surprise trust negative positive
0 1
0 0 1
0 1 1
0 1
Como vemos analiza la oración y nos muestra los sentimientos
que contiene. Y analiza la oración como positiva.
Realizamos el análisis en el coro:
mySentiment <- get_nrc_sentiment(songs$song_lyric)
Miramos algunos de los datos:
head(mySentiment)
anger anticipation
disgust fear joy sadness surprise trust negative positive
1 0 0 0
0 0 1
0 0 1
0
2 0 0 0
0 0 0
0 0 0
0
3 0 0 0
0 1 1
0 0 2
1
4 0 1 0
1 0 1
0 0 1
0
5 1 2 1
1 3 1
1 2 1
3
Ahora, podemos realizar un gráfico con estos valores,
algunos detalles son mas avanzados, pero podemos leer el grafico.
songs <- cbind(songs, mySentiment)
sentimentTotals <- data.frame(colSums(songs[,c(6:12)]))
names(sentimentTotals) <- "count"
sentimentTotals <- cbind("sentiment" =
rownames(sentimentTotals), sentimentTotals)
rownames(sentimentTotals) <- NULL
ggplot(data = sentimentTotals, aes(x = sentiment, y =
count)) +
geom_bar(aes(fill = sentiment), stat = "identity") +
theme(legend.position = "none") +
xlab("Sentiment") + ylab("Total Count") +
ggtitle("Total Sentiment Score for Top 5 Adele Songs")
A manera de conclusión, podemos mencionar que la alegría y
la tristeza, seguido de la esperanza son los sentimientos que más predominan y emocionan
a los fans.
Síguenos en nuestra próxima entrega,
Aqui dejo el link del video:
No hay comentarios:
Publicar un comentario