Instalar paquetes y llamar librerÃas
# install.packages("syuzhet")
library(syuzhet)
library(RColorBrewer)
Cargar texto
texto_himno <- scan(file = "/Users/danielatrevino/Downloads/letra-oficial-del-himno-nacional-mexicano2.txt", fileEncoding = "UTF-8", what = character(), sep = "\n", allowEscapes = T)
Tokenizar texto (Dividir un texto en palabras)
texto_palabras <- get_tokens(texto_himno)
Explorar texto
head(texto_palabras)
## [1] "letra" "oficial" "del" "himno" "nacional" "mexicano"
length(texto_palabras)
## [1] 260
oraciones_vector <- get_sentences(texto_himno)
length(oraciones_vector)
## [1] 57
Realizar análisis de sentimientos
sentimientos_df <- get_nrc_sentiment(texto_palabras, language = "spanish")
idiomas disponibles: english, french, german, italian, portuguese,
spanish, 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.06538 Mean :0.03077 Mean :0.01923 Mean :0.08846
## 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.00 Min. :0.00000 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.00 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.00 Median :0.00000 Median :0.00000 Median :0.00000
## Mean :0.05 Mean :0.05769 Mean :0.02308 Mean :0.06538
## 3rd Qu.:0.00 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000
## Max. :2.00 Max. :1.00000 Max. :2.00000 Max. :3.00000
## negative positive
## Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.0000 Median :0.0000
## Mean :0.1038 Mean :0.1154
## 3rd Qu.:0.0000 3rd Qu.:0.0000
## Max. :2.0000 Max. :2.0000
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 3 0 1
## 3 0 0 0 0 0 0 0 0 0 0
## 4 0 1 0 0 1 1 0 1 0 1
## 5 0 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0 0
Gráfica: Resultadis
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"
)

Profundizar análisis
palabras_confianza <- texto_palabras[sentimientos_df$trust >0]
palabras_confianza_orden <- sort(table(unlist(palabras_confianza)), decreasing = TRUE)
head(palabras_confianza_orden, n. = 10)
##
## coro dios gloria himno honor libertad
## 2 1 1 1 1 1
Gráficar resultados de sentimientos
secuencia_sentimientos <- (sentimientos_df$negative*-1) + sentimientos_df$positive
simple_plot(secuencia_sentimientos)
