El análisis de sentimienntos o mineria 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 (anticipación) 8.Confianza (trust) Sentimientos: 1.Positivo (positive) 2.Negative (negative)
#install.packages("syuzhet")
library(syuzhet)
#install.packages("RColorBrewer")
library(RColorBrewer)## Warning: package 'RColorBrewer' was built under R version 4.1.3
#file.choose()
texto_cadena <-read.delim("C:\\Users\\A00831614\\Documents\\Directorio de trabajo\\El triste.txt",header=FALSE)## [1] "c" "quã" "triste" "fue" "decirnos" "adiã"
## [1] 182
sentimientos_df <-get_nrc_sentiment(texto_palabras,language="spanish")
#Idiomas disponibles: spanish, english, french, german, italian, portuguese, etc.
summary(sentimientos_df)## anger anticipation disgust fear
## Min. :0.00000 Min. :0 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.00000 1st Qu.:0 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.00000 Median :0 Median :0.00000 Median :0.00000
## Mean :0.02198 Mean :0 Mean :0.03846 Mean :0.07692
## 3rd Qu.:0.00000 3rd Qu.:0 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :1.00000 Max. :0 Max. :1.00000 Max. :2.00000
## joy sadness surprise trust negative
## Min. :0.00000 Min. :0.0000 Min. :0 Min. :0 Min. :0.0000
## 1st Qu.:0.00000 1st Qu.:0.0000 1st Qu.:0 1st Qu.:0 1st Qu.:0.0000
## Median :0.00000 Median :0.0000 Median :0 Median :0 Median :0.0000
## Mean :0.03297 Mean :0.2088 Mean :0 Mean :0 Mean :0.1978
## 3rd Qu.:0.00000 3rd Qu.:0.0000 3rd Qu.:0 3rd Qu.:0 3rd Qu.:0.0000
## Max. :1.00000 Max. :7.0000 Max. :0 Max. :0 Max. :7.0000
## positive
## Min. :0.00000
## 1st Qu.:0.00000
## Median :0.00000
## Mean :0.04396
## 3rd Qu.:0.00000
## Max. :1.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 1 0 1 2 0 5 0 0 5 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
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 canción El triste",
xlab="emociones"
)palabras_tristeza <-texto_palabras[sentimientos_df$sadness>0]
palabras_tristeza_orden <- sort(table(unlist(palabras_tristeza)),
decreasing= TRUE)
head(palabras_tristeza_orden, n=10)##
## triste dolor azul gris soledad
## 4 2 1 1 1
secuencia_sentimientos <- (sentimientos_df$negative*-1)+sentimientos_df$positive
simple_plot(secuencia_sentimientos)#file.choose()
texto_cadena <-read.delim("C:\\Users\\A00831614\\Documents\\Directorio de trabajo\\Himno nacional.txt",header=FALSE)## [1] "c" "mexicanos" "al" "grito" "de" "guerra"
## [1] 286
sentimientos_df <-get_nrc_sentiment(texto_palabras,language="spanish")
#Idiomas disponibles: spanish, english, french, german, italian, portuguese, etc.
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.05944 Mean :0.02448 Mean :0.01748 Mean :0.08042
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :2.00000 Max. :2.00000 Max. :1.00000 Max. :2.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.03846 Mean :0.04895 Mean :0.02098 Mean :0.04196
## 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.00000 Min. :0.00000
## 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.00000 Median :0.00000
## Mean :0.09441 Mean :0.09091
## 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :2.00000 Max. :2.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 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
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"
)