#install.packages("syuzhet")
library(syuzhet)
#install.packages("RColorBrewer")
library(RColorBrewer)
texto_cadena <-
  "Mexicanos, al grito de guerra
El acero aprestad y el bridón;
Y retiemble en sus centros la tierra
Al sonoro rugir del cañón.
Ciña ¡Oh Patria! tus sienes de oliva
De la paz el arcángel divino,
Que en el cielo tu eterno destino
Por el dedo de Dios se escribió.
Mas si osare un extraño enemigo
Profanar con su planta tu suelo,
Piensa ¡Oh Patria querida! que el cielo
Un soldado en cada hijo te dio.
En sangrientos combates los viste
Por tu amor palpitando sus senos,
Arrostrar la metralla serenos
Y la muerte o la gloria buscar.
Si el recuerdo de antiguas hazañas
De tus hijos inflama la mente,
Los laureles del triunfo tu frente
Volverán inmortales a ornar.
Como al golpe del rayo la encina
Se derrumba hasta el hondo torrente,
La discordia vencida, impotente,
A los pies del arcángel cayó.
Ya no más de tus hijos la sangre
Se derrame en contienda de hermanos;
Solo encuentre el acero en tus manos
Quien tu nombre sagrado insultó.
Del guerrero inmortal de Zempoala
Te defiende la espada terrible,
Y sostiene su brazo invencible
Tu sagrado pendón tricolor.
Él será del feliz mexicano
En la paz y en la guerra el caudillo,
Porque él supo sus armas de brillo
Circundar en los campos de honor.
¡Guerra, guerra sin tregua al que intente
De la patria manchar los blasones!,
¡Guerra, guerra! los patrios pendones
En las olas de sangre empapad.
¡Guerra, guerra! en el monte, en el valle,
Los cañones horrísonos truenen
Y los ecos sonoros resuenen
Con las voces de ¡Unión! ¡Libertad!
Antes, Patria, que inermes tus hijos
Bajo el yugo su cuello dobleguen,
Tus campiñas con sangre se rieguen,
Sobre sangre se estampe su pie.
Y tus templos, palacios y torres
Se derrumben con hórrido estruendo,
Y sus ruinas existan diciendo:
De mil héroes la patria aquí fue.
Si a la lid contra hueste enemiga
Nos convoca la trompa guerrera,
De Iturbide la sacra bandera
¡Mexicanos! valientes seguid.
Y a los fieros bridones les sirvan
Las vencidas enseñas de alfombra;
Los laureles del triunfo den sombra
A la frente del bravo adalid.
Vuelva altivo a los patrios hogares
El guerrero a contar su victoria,
Ostentando las palmas de gloria
Que supiera en la lid conquistar.
Tornaránse sus lauros sangrientos
En guirnaldas de mirtos y rosas,
Que el amor de las hijas y esposas
También sabe a los bravos premiar.
Y el que al golpe de ardiente metralla
De la Patria en las aras sucumba,
Obtendrá en recompensa una tumba
Donde brille de gloria la luz.
Y de Iguala la enseña querida
A su espada sangrienta enlazada,
De laurel inmortal coronada
Formará de su fosa la cruz.
¡Patria! ¡Patria! tus hijos te juran
Exhalar en tus aras su aliento,
Si el clarín con su bélico acento
Los convoca a lidiar con valor.
¡Para ti las guirnaldas de oliva!
¡Un recuerdo para ellos de gloria!
¡Un laurel para ti de victoria!
¡Un sepulcro para ellos de honor!"
texto_palabras <- get_tokens(texto_cadena)
# Explorar texto
head(texto_palabras)
## [1] "mexicanos" "al"        "grito"     "de"        "guerra"    "el"
length(texto_palabras)
## [1] 496
oraciones_vector <- get_sentences(texto_cadena)
length(oraciones_vector)
## [1] 32
# Realizar Analisis de sentimientos
sentimientos_df <- get_nrc_sentiment(texto_palabras, lang="spanish")
#idiomas disponibles: english, french, german, italian, protuguese
#spanish, etc
summary(sentimientos_df)
##      anger         anticipation        disgust             fear       
##  Min.   :0.0000   Min.   :0.00000   Min.   :0.00000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.00000   Median :0.00000   Median :0.0000  
##  Mean   :0.0625   Mean   :0.04234   Mean   :0.02218   Mean   :0.0746  
##  3rd Qu.:0.0000   3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:0.0000  
##  Max.   :3.0000   Max.   :2.00000   Max.   :2.00000   Max.   :2.0000  
##       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.04839   Mean   :0.04234   Mean   :0.02621   Mean   :0.04032  
##  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.08266   Mean   :0.1008  
##  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     2            0       0    1   0       1        2     0        2        0
## 4     0            0       0    0   0       0        0     0        0        0
## 5     1            0       0    2   0       1        0     0        2        0
## 6     0            0       0    0   0       0        0     0        0        0
# 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= "Analisis de Sentimientos de el Himno Nacional",
  xlab = "emociones"
)
## Warning in plot.window(xlim, ylim, log = log, ...): "Las" is not a graphical
## parameter
## Warning in axis(if (horiz) 2 else 1, at = at.l, labels = names.arg, lty =
## axis.lty, : "Las" is not a graphical parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...): "Las"
## is not a graphical parameter
## Warning in axis(if (horiz) 1 else 2, cex.axis = cex.axis, ...): "Las" is not a
## graphical parameter

#Profundizar analisis
palabras_miedo <- texto_palabras[sentimientos_df$trust >0]
palabras_miedo_orden <- sort(table(unlist(palabras_miedo)), decreasing = TRUE)
head(palabras_miedo_orden, n=10)
## 
##     gloria      honor        paz   victoria     contar       dios      feliz 
##          4          2          2          2          1          1          1 
##   libertad        pie recompensa 
##          1          1          1
#graficar Resultados de Sentimientos
secuencia_sentimientos <- (sentimientos_df$negative*-1) + sentimientos_df$positive
simple_plot(secuencia_sentimientos)