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\\Deisy Lopez\\Documents\\7. Séptimo Semestre Ago-Dic 2023\\RStudio_AN\\Himno Nacional Mexicano.txt"
# Leer el archivo de texto
himno <- readLines(ruta_archivo)## Warning in readLines(ruta_archivo): incomplete final line found on
## 'C:\Users\Deisy Lopez\Documents\7. Séptimo Semestre Ago-Dic
## 2023\RStudio_AN\Himno Nacional Mexicano.txt'
## [1] "mexicanos" "al" "grito" "de" "guerra" "el"
## [1] 496
## [1] 92
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.0000 Min. :0.00000 Min. :0.00000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.0000
## Median :0.0000 Median :0.00000 Median :0.00000 Median :0.0000
## Mean :0.0625 Mean :0.04234 Mean :0.02218 Mean :0.0746
## 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.0000
## Max. :3.0000 Max. :2.00000 Max. :2.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.04839 Mean :0.04234 Mean :0.02621 Mean :0.04032
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :2.00000 Max. :2.00000 Max. :2.00000 Max. :2.00000
## negative positive
## Min. :0.00000 Min. :0.0000
## 1st Qu.:0.00000 1st Qu.:0.0000
## Median :0.00000 Median :0.0000
## Mean :0.08266 Mean :0.1008
## 3rd Qu.:0.00000 3rd Qu.:0.0000
## Max. :3.00000 Max. :3.0000
## 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
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 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