
Instalar paquetes y llamar librerías
# install.packages("syuzhet")
library(syuzhet)
# install.packages("RColorBrewer")
library(RColorBrewer)
Cargar texto
texto_cadena <- scan(file = "/Users/valeriagrajales/Downloads/Himno_Nacional_Mexicano.txt", fileEncoding = "UTF-8", what = character(), sep = "\n", allowEscapes = T)
Tokenizar texto (Dividir un texto en palabras)
texto_palabras <- get_tokens(texto_cadena)
Explorar texto
## [1] "himno" "nacional" "mexicano" "coro" "mexicanos" "al"
## [1] 537
oraciones_vector <- get_sentences(texto_cadena)
length(oraciones_vector)
## [1] 115
Realizar Análisis de Sentimientos
sentimientos_df <- get_nrc_sentiment(texto_palabras, lang="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.0000
## 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.0000
## Median :0.00000 Median :0.00000 Median :0.00000 Median :0.0000
## Mean :0.05773 Mean :0.04283 Mean :0.02048 Mean :0.0689
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.0000
## Max. :3.00000 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.04842 Mean :0.04283 Mean :0.02421 Mean :0.04097
## 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.07635 Mean :0.0987
## 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 1 0 0 1 1 0 1 0 1
## 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 1 0 0 1 0 2
## 5 0 0 0 0 0 0 0 0 0 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 = "Análisis de Sentimientos del Himno Nacional Mexicano",
xlab = "Emociones"
)

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

LS0tCnRpdGxlOiAiSGltbm8gTmFjaW9uYWwiCmF1dGhvcjogIlZhbGVyaWEgR3JhamFsZXMiCmRhdGU6ICIyMDIzLTA5LTI1IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6ICJyZWFkYWJsZSIKICAgIGhpZ2hsaWdodDogInB5Z21lbnRzIgotLS0KIVtdKC9Vc2Vycy92YWxlcmlhZ3JhamFsZXMvRG93bmxvYWRzL2ZhaXJseS1vZGQtcGFyZW50cy13YW5kYS5naWYpCgojIyMgSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyw61hcwpgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKCJzeXV6aGV0IikKbGlicmFyeShzeXV6aGV0KQojIGluc3RhbGwucGFja2FnZXMoIlJDb2xvckJyZXdlciIpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpgYGAKCgojIyMgQ2FyZ2FyIHRleHRvCmBgYHtyfQp0ZXh0b19jYWRlbmEgPC0gc2NhbihmaWxlID0gIi9Vc2Vycy92YWxlcmlhZ3JhamFsZXMvRG93bmxvYWRzL0hpbW5vX05hY2lvbmFsX01leGljYW5vLnR4dCIsIGZpbGVFbmNvZGluZyA9ICJVVEYtOCIsIHdoYXQgPSBjaGFyYWN0ZXIoKSwgc2VwID0gIlxuIiwgYWxsb3dFc2NhcGVzID0gVCkKCmBgYAoKIyMjIFRva2VuaXphciB0ZXh0byAoRGl2aWRpciB1biB0ZXh0byBlbiBwYWxhYnJhcykKYGBge3J9CnRleHRvX3BhbGFicmFzIDwtIGdldF90b2tlbnModGV4dG9fY2FkZW5hKQpgYGAKCiMjIyBFeHBsb3JhciB0ZXh0bwpgYGB7cn0KaGVhZCh0ZXh0b19wYWxhYnJhcykKbGVuZ3RoKHRleHRvX3BhbGFicmFzKQpvcmFjaW9uZXNfdmVjdG9yIDwtIGdldF9zZW50ZW5jZXModGV4dG9fY2FkZW5hKQpsZW5ndGgob3JhY2lvbmVzX3ZlY3RvcikKYGBgCgojIyMgUmVhbGl6YXIgQW7DoWxpc2lzIGRlIFNlbnRpbWllbnRvcwpgYGB7cn0Kc2VudGltaWVudG9zX2RmIDwtIGdldF9ucmNfc2VudGltZW50KHRleHRvX3BhbGFicmFzLCBsYW5nPSJzcGFuaXNoIikKIyBJZGlvbWFzIGRpc3BvbmlibGVzOiBlbmdsaXNoIGZyZW5jaCwgZ2VybWFuLCBpdGFsaWFuLCBwb3J0dWd1ZXNlLCAKIyBzcGFuaXNoLCBldGMuCnN1bW1hcnkoc2VudGltaWVudG9zX2RmKQpoZWFkKHNlbnRpbWllbnRvc19kZikKYGBgCgojIyMgR3JhZmljYXIgcmVzdWx0YWRvcwpgYGB7cn0KYmFycGxvdCgKICBjb2xTdW1zKHByb3AudGFibGUoc2VudGltaWVudG9zX2RmWywxOjhdKSksCiAgc3BhY2UgPSAwLjIsCiAgaG9yaXogPSBGQUxTRSwKICBsYXMgPSAxLAogIGNleC5uYW1lcyA9IDAuNywKICBjb2wgPSBicmV3ZXIucGFsKG49OCwgbmFtZSA9ICJTZXQzIiksCiAgbWFpbiA9ICJBbsOhbGlzaXMgZGUgU2VudGltaWVudG9zIGRlbCBIaW1ubyBOYWNpb25hbCBNZXhpY2FubyIsCiAgeGxhYiA9ICJFbW9jaW9uZXMiCikKYGBgCgojIyMgUHJvZnVuZGl6YXIgZWwgYW7DoWxpc2lzIGRlIGVtb2Npb25lcwpgYGB7cn0KcGFsYWJyYXNfY29uZmlhbnphIDwtIHRleHRvX3BhbGFicmFzW3NlbnRpbWllbnRvc19kZiR0cnVzdCA+IDBdCnBhbGFicmFzX2NvbmZpYW56YV9vcmRlbiA8LSBzb3J0KHRhYmxlKHVubGlzdChwYWxhYnJhc19jb25maWFuemEpKSwgZGVjcmVhc2luZyA9IFRSVUUpCmhlYWQocGFsYWJyYXNfY29uZmlhbnphX29yZGVuLCBuID0gMTApCmBgYAoKIyMjIEdyYWZpY2FyIHJlc3VsdGFkb3MgZGUgc2VudGltaWVudG9zCmBgYHtyfQpzZWN1ZW5jaWFfc2VudGltaWVudG9zIDwtIChzZW50aW1pZW50b3NfZGYkbmVnYXRpdmUqLTEpICsgc2VudGltaWVudG9zX2RmJHBvc2l0aXZlCnNpbXBsZV9wbG90KHNlY3VlbmNpYV9zZW50aW1pZW50b3MpCmBgYAoK