El analisis de sentimientos es utilizado para extraer de formar automatica informacion sobre la conotacion positiva o negativa del lenguaje de un documento.
El analisis mostrara el resultado en 8 emociones basicas y 2 sentimientos.
Emociones basicas:
Sentimientos:
library(RColorBrewer)
library(syuzhet)
himno_cadena <- read.delim("himnonacional.txt", header=FALSE)
himno_palabras <- get_tokens(himno_cadena)
head(himno_palabras)
## [1] "c" "mexicanos" "al" "grito" "de" "guerra"
length(himno_palabras)
## [1] 242
sentimientos_himno_df <- get_nrc_sentiment(himno_palabras, language = "spanish")
head(sentimientos_himno_df)
## anger anticipation disgust fear joy sadness surprise trust negative positive
## 1 0 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0 0 0
## 4 2 0 0 1 0 1 2 0 2 0
## 5 0 0 0 0 0 0 0 0 0 0
## 6 1 0 0 2 0 1 0 0 2 0
summary(sentimientos_himno_df)
## anger anticipation disgust fear
## Min. :0.00000 Min. :0.00000 Min. :0.00000 Min. :0.0000
## 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.0000
## Median :0.00000 Median :0.00000 Median :0.00000 Median :0.0000
## Mean :0.07438 Mean :0.02893 Mean :0.02066 Mean :0.1033
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.0000
## Max. :2.00000 Max. :2.00000 Max. :1.00000 Max. :2.0000
## joy sadness surprise trust
## Min. :0.00000 Min. :0.00000 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.00000 Median :0.00000 Median :0.00000 Median :0.00000
## Mean :0.04132 Mean :0.06198 Mean :0.02479 Mean :0.04545
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :2.00000 Max. :1.00000 Max. :2.00000 Max. :2.00000
## negative positive
## Min. :0.0000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.00000
## Median :0.0000 Median :0.00000
## Mean :0.1198 Mean :0.09091
## 3rd Qu.:0.0000 3rd Qu.:0.00000
## Max. :2.0000 Max. :2.00000
barplot(
colSums(prop.table(sentimientos_himno_df[,1:8])),
space = 0.2,
horiz = FALSE,
las = 1,
cex.names = 0.7,
col = brewer.pal(n=8, name="Set3"),
main = "Analisis de sentimientos de la cancion El Triste",
xlab = "Emociones"
)
## 7. Graficar Resultados de las
emociones
himno_tristeza <- himno_palabras[sentimientos_himno_df$sadness >0]
himno_tristeza_orden <- sort(table(unlist(himno_tristeza)),
decreasing = TRUE)
head(himno_tristeza_orden)
##
## guerra sangre grito destino soldado
## 8 3 2 1 1
secuencia_himno_sentimientos <- (sentimientos_himno_df$negative*-1)+sentimientos_himno_df$positive
simple_plot(secuencia_himno_sentimientos)