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
# Ruta del archivo de texto
ruta_archivo <- "C:\\Users\\karim\\OneDrive\\Escritorio\\Ejercicios R\\app2 e incidencia de emociones\\himno_nacional.txt"
# Leer el archivo de texto
himno <- readLines(ruta_archivo)## Warning in readLines(ruta_archivo): incomplete final line found on
## 'C:\Users\karim\OneDrive\Escritorio\Ejercicios R\app2 e incidencia de
## emociones\himno_nacional.txt'
## [1] "mexicanos" "al" "grito" "de" "guerra" "el"
## [1] 506
## [1] 112
sentimientos_df <- get_nrc_sentiment(texto_palabras, language = "spanish")
# Idiomas disponibles: inglés, frances, italiano, alemán, portugués, español.
# summary(sentimientos_df)
head(sentimientos_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 2 0 0 1 0 1 2 0 2 0
## 4 0 0 0 0 0 0 0 0 0 0
## 5 1 0 0 2 0 1 0 0 2 0
## 6 0 0 0 0 0 0 0 0 0 0
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 del Himno Nacional",
xlab = "Emociones"
)palabras_miedo <- texto_palabras[sentimientos_df$fear >0]
palabras_miedo_orden <- sort(table(unlist(palabras_miedo)), decreasing = TRUE)
head(palabras_miedo_orden, n=10)##
## guerra sangre golpe guerrero metralla destino dios enemigo
## 8 4 2 2 2 1 1 1
## grito impotente
## 1 1