
1. Cargar Texto
himno <- read.delim("/Users/andreasanchezgomez/Downloads/himno_nacional.txt")
himno <- as.character(himno)
# texto_cadena <- scan("C:\\Users\\HUAWEI\\Documents\\himno_nacional.txt")
2. Instalar paquetes y Llamar Librerias
# install.packages("syuzhet")
library(syuzhet)
# install.packages("RColorBrewer")
library(RColorBrewer)
3. Tokenizar texto (dividir un texto en palabras)
texto_palabras <- get_tokens(himno)
class(himno)
## [1] "character"
4. Explorar texto
## [1] "c" "el" "acero" "aprestad" "y" "el"
## [1] 502
oraciones_vector <- get_sentences(himno)
length(oraciones_vector)
## [1] 10
5. Realizar análisis de sentimientos
sentimientos_df <- get_nrc_sentiment(texto_palabras, lang = "spanish")
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.05578 Mean :0.04183 Mean :0.02191 Mean :0.06773
## 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.04781 Mean :0.03785 Mean :0.02191 Mean :0.03984
## 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.07371 Mean :0.0996
## 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 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
6. Graficar Resultados
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 Mexicano",
xlab = "Emociones"
)

7. Profundizar Análisis
# Profundizar Análisis
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
## 7 4 2 2 2 1 1 1
## impotente muerte
## 1 1
8. Graficar Resultado de Sentimientos
secuencia_sentimientos <- (sentimientos_df$negative*-1) + sentimientos_df$positive
simple_plot(secuencia_sentimientos)

LS0tCnRpdGxlOiAiQWN0aXZpZGFkIDQuNDogQW7DoWxpc2lzIGRlIFNlbnRpbWllbnRvcyBkZWwgSGltbm8gTmFjaW9uYWwgTWV4aWNhbm8iCmF1dGhvcjogIkFuZHJlYSBTw6FuY2hleiBBMDE2MTI4ODEiCmRhdGU6ICIyMDIzLTA5LTI1IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6ICJjZXJ1bGVhbiIKICAgIGhpZ2hsaWdodDogIm1vbm9jaHJvbWUiCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogY29uc29sZQotLS0KIVtdKC9Vc2Vycy9hbmRyZWFzYW5jaGV6Z29tZXovRG9jdW1lbnRzL1IvQW5pbWF0ZWQtRmxhZy1NZXhpY28uZ2lmKQpgYGB7cn0KI2ZpbGUuY2hvb3NlKCkKYGBgCgojIDEuIENhcmdhciBUZXh0bwpgYGB7cn0KaGltbm8gPC0gcmVhZC5kZWxpbSgiL1VzZXJzL2FuZHJlYXNhbmNoZXpnb21lei9Eb3dubG9hZHMvaGltbm9fbmFjaW9uYWwudHh0IikKaGltbm8gPC0gYXMuY2hhcmFjdGVyKGhpbW5vKQojIHRleHRvX2NhZGVuYSA8LSBzY2FuKCJDOlxcVXNlcnNcXEhVQVdFSVxcRG9jdW1lbnRzXFxoaW1ub19uYWNpb25hbC50eHQiKQpgYGAKCiMgMi4gSW5zdGFsYXIgcGFxdWV0ZXMgeSBMbGFtYXIgTGlicmVyaWFzCmBgYHtyfQojIGluc3RhbGwucGFja2FnZXMoInN5dXpoZXQiKQpsaWJyYXJ5KHN5dXpoZXQpCiMgaW5zdGFsbC5wYWNrYWdlcygiUkNvbG9yQnJld2VyIikKbGlicmFyeShSQ29sb3JCcmV3ZXIpCmBgYAoKIyAzLiBUb2tlbml6YXIgdGV4dG8gKGRpdmlkaXIgdW4gdGV4dG8gZW4gcGFsYWJyYXMpCmBgYHtyfQp0ZXh0b19wYWxhYnJhcyA8LSBnZXRfdG9rZW5zKGhpbW5vKQpjbGFzcyhoaW1ubykKYGBgCgojIDQuIEV4cGxvcmFyIHRleHRvCmBgYHtyfQpoZWFkKHRleHRvX3BhbGFicmFzKQpsZW5ndGgodGV4dG9fcGFsYWJyYXMpCm9yYWNpb25lc192ZWN0b3IgPC0gZ2V0X3NlbnRlbmNlcyhoaW1ubykKbGVuZ3RoKG9yYWNpb25lc192ZWN0b3IpCmBgYAoKIyA1LiBSZWFsaXphciBhbsOhbGlzaXMgZGUgc2VudGltaWVudG9zCmBgYHtyfQpzZW50aW1pZW50b3NfZGYgPC0gZ2V0X25yY19zZW50aW1lbnQodGV4dG9fcGFsYWJyYXMsIGxhbmcgPSAic3BhbmlzaCIpICAgCgpzdW1tYXJ5KHNlbnRpbWllbnRvc19kZikKaGVhZChzZW50aW1pZW50b3NfZGYpCmBgYAoKIyA2LiBHcmFmaWNhciBSZXN1bHRhZG9zCmBgYHtyfQpiYXJwbG90KAogIGNvbFN1bXMocHJvcC50YWJsZShzZW50aW1pZW50b3NfZGZbLDE6OF0pKSwgCiAgc3BhY2UgPSAwLjIsIAogIGhvcml6ID0gRkFMU0UsIAogIGxhcyA9IDEsIAogIGNleC5uYW1lcyA9IDAuNywgCiAgY29sID0gYnJld2VyLnBhbChuPTgsIG5hbWU9IlNldDMiKSwgCiAgbWFpbiA9ICJBbsOhbGlzaXMgZGUgU2VudGltaWVudG9zIGRlbCBIaW1ubyBOYWNpb25hbCBNZXhpY2FubyIsIAogIHhsYWIgPSAiRW1vY2lvbmVzIgogIAopCmBgYAoKIyA3LiBQcm9mdW5kaXphciBBbsOhbGlzaXMKYGBge3J9CiMgUHJvZnVuZGl6YXIgQW7DoWxpc2lzCnBhbGFicmFzX21pZWRvIDwtIHRleHRvX3BhbGFicmFzW3NlbnRpbWllbnRvc19kZiRmZWFyID4wXQpwYWxhYnJhc19taWVkb19vcmRlbiA8LSBzb3J0KHRhYmxlKHVubGlzdChwYWxhYnJhc19taWVkbykpLCBkZWNyZWFzaW5nID0gVFJVRSkKaGVhZChwYWxhYnJhc19taWVkb19vcmRlbiwgbj0xMCkKYGBgCgojIDguIEdyYWZpY2FyIFJlc3VsdGFkbyBkZSBTZW50aW1pZW50b3MKYGBge3J9CnNlY3VlbmNpYV9zZW50aW1pZW50b3MgPC0gKHNlbnRpbWllbnRvc19kZiRuZWdhdGl2ZSotMSkgKyBzZW50aW1pZW50b3NfZGYkcG9zaXRpdmUKc2ltcGxlX3Bsb3Qoc2VjdWVuY2lhX3NlbnRpbWllbnRvcykKYGBgCgo=