#file.choose()

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

head(texto_palabras)
## [1] "c"        "el"       "acero"    "aprestad" "y"        "el"
length(texto_palabras)
## [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
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     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=