El análisis de sentimientos, o minería de opinión, es utilizado para extraer de forma automática información sobre la connotación positiva o negativa del lenguaje de un documento.
El análisis mostrará el resultado en 8 emociones básicas y 2 sentimientos:
Emociones básicas: 1. Alegría (joy) 2. Tristeza (sadness) 3. Ira (anger) 4. Sorpresa (surprise) 5. Asco (disgust) 6. Miedo (fear) 7. Anticipación (anticipation) 8. Confianza (trust) Sentimientos: 1. Positivo (positive) 2. Negativo (negative)
## [1] "miau" "por" "b" "pérez" "galdós" "14"
## [1] 97254
## [1] 13136
sentimientos_df <- get_nrc_sentiment(texto_palabras, language = "spanish")
# Idiomas disponibles: inglés, frances, italiano, alemán, portugués, español.
summary(sentimientos_df)## anger anticipation disgust fear
## 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.01596 Mean :0.02114 Mean :0.01263 Mean :0.02243
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :5.00000 Max. :3.00000 Max. :6.00000 Max. :5.00000
## 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.01929 Mean :0.02564 Mean :0.01035 Mean :0.03004
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :5.00000 Max. :7.00000 Max. :2.00000 Max. :3.00000
## negative positive
## Min. :0.00000 Min. :0.00000
## 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.00000 Median :0.00000
## Mean :0.04658 Mean :0.05153
## 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :7.00000 Max. :5.00000
## 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 0 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0 0
library(RColorBrewer)
barplot(
colSums(prop.table(sentimientos_df[,1:8])),
space = 0.2,
horiz = FALSE,
las = 1,
cex.names = 0.7,
col = brewer.pal(n=8, name="Set3"),
main = "Análisis de Sentimientos de la Novela Miau",
xlab = "Emociones")palabras_confianza <- texto_palabras[sentimientos_df$trust >0]
palabras_confianza_orden <- sort(table(unlist(palabras_confianza)), decreasing = TRUE)
head(palabras_confianza_orden, n=10)##
## dios amigo padre abuelo hecho puerta verdad bueno palabra iglesia
## 142 97 77 69 56 53 51 41 41 37
secuencia_sentimientos <- (sentimientos_df$negative*-1) + (sentimientos_df$positive)
simple_plot(secuencia_sentimientos)