El análisis de sentimientos, 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áisis 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)
Sentimietos:
1. Positivo (positive) 2. Negativo(negative)
## [1] "c" "qué" "triste" "fue" "decirnos" "adiós"
## [1] 1
sentimientos <- get_nrc_sentiment(texto_palabras, language = "spanish")
#Idiomas disponibles: spanish, english, french, german, italian, portuguese, etc.
summary(sentimientos)## anger anticipation disgust fear
## Min. :0.00000 Min. :0 Min. :0.00 Min. :0.00
## 1st Qu.:0.00000 1st Qu.:0 1st Qu.:0.00 1st Qu.:0.00
## Median :0.00000 Median :0 Median :0.00 Median :0.00
## Mean :0.02286 Mean :0 Mean :0.04 Mean :0.08
## 3rd Qu.:0.00000 3rd Qu.:0 3rd Qu.:0.00 3rd Qu.:0.00
## Max. :1.00000 Max. :0 Max. :1.00 Max. :2.00
## 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.03429 Mean :0.2171 Mean :0 Mean :0 Mean :0.2057
## 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.04571
## 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[,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$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
secuencua_sentimientos <- (sentimientos$negative*-1)+sentimientos$positive
simple_plot(secuencua_sentimientos)## [1] "c" "mexicanos" "al" "grito" "de" "guerra"
## [1] 1
himnomex <- get_nrc_sentiment(himnopalabras, language = "spanish")
#Idiomas disponibles: spanish, english, french, german, italian, portuguese, etc.
summary(himnomex)## 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.06237 Mean :0.04225 Mean :0.02213 Mean :0.07445
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :3.00000 Max. :2.00000 Max. :2.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.04829 Mean :0.04225 Mean :0.02616 Mean :0.04024
## 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.08249 Mean :0.1006
## 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 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(himnomex[,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 Mexicano",
xlab="Emociones"
)palabras_tristeza<-himnopalabras[sentimientos$sadness>0]
palabras_tristeza_orden<-sort(table(unlist(palabras_tristeza)),
decreasing = TRUE)
head(palabras_tristeza_orden, n=10)##
## al de amor arcángel ardiente bravo circundar contra
## 2 2 1 1 1 1 1 1
## el en
## 1 1