Analisis de sentimientos

el analisis de senrimientos, o mineria de opinion, es utilizado para extraer de forma automatica informacion sobre la conotacion positiva o negativa del lenguaje de un documento.

El analisis mostrara el resultado con 8 emociones basicas y 2 sentimientos. Emociones basicas:
1. Alegría (Joy)
2. Tristeza (Sadness)
3. Ira (anger)
4. Sorpresa (surprise)
5. Asco (disgust)
6. Miedo (fear)
7. Anticipacion (anticipation)
8. Confianza (trust)
Sentimientos
1. positivo (positive)
2. negativo (negative)

instalar paquetes y llamar librerias

#install.packages("syuzhet")
library(syuzhet)
#install.packages("RColorBrewer")
library(RColorBrewer)

Cargar textos

#file.choose()
texto_cadena <- read.delim( "/Users/enrique/Downloads/Semestre 7- 1 Bloque R/JoseJose.txt", header = FALSE)
texto_palabra <- get_tokens(texto_cadena)
head(texto_palabra)
## [1] "c"        "qué"      "triste"   "fue"      "decirnos" "adiós"
length(texto_palabra)
## [1] 183

Realizar analisis

sentimientos_df <- get_nrc_sentiment(texto_palabra, language ="spanish")

#idiomas disponibles: spanish enislish, french, italian, etc. 

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 la cancion el trsite",
  xlab= "emociones"
  
)

Profundizar Analisis

palabras_tristeza <- texto_palabra[sentimientos_df$sadness>0]
palabras_tristeza_orden <- sort (table(unlist(palabras_tristeza)),
decreasing=TRUE)
head(palabras_tristeza_orden, n=10)
## 
##  triste   dolor    azul    gris soledad 
##       4       2       1       1       1

Graficar

secuencia_sentimientos <- (sentimientos_df$negative*-1)+sentimientos_df$positive
simple_plot(secuencia_sentimientos)

Analisis de Himno

instalar paquetes y llamar librerias

#install.packages("syuzhet")
library(syuzhet)
#install.packages("RColorBrewer")
library(RColorBrewer)

Cargar textos

#file.choose()
texto_cadenaH <- read.delim( "/Users/enrique/Downloads/Semestre 7- 1 Bloque R/himnomexicano.txt", header = FALSE)
texto_palabraH <- get_tokens(texto_cadenaH)
head(texto_palabraH)
## [1] "c"         "mexicanos" "al"        "grito"     "de"        "guerra"
length(texto_palabraH)
## [1] 497

Realizar analisis

sentimientos_dfH <- get_nrc_sentiment(texto_palabraH, language ="spanish")

#idiomas disponibles: spanish enislish, french, italian, etc. 

Graficar Resultados

barplot(
  colSums(prop.table(sentimientos_dfH[,1:8])),
  space = 0.2,
  horiz = FALSE,
  las= 1,
  cex.names= 0.7,
  col= brewer.pal(n=8, name="Set3"),
  main="Analisis de sentimientos del Himno",
  xlab= "emociones"
  
)

Profundizar Analisis

palabras_miedo <- texto_palabraH[sentimientos_df$fear>0]
palabras_miedo_orden <- sort (table(unlist(palabras_miedo)),
decreasing=TRUE)
head(palabras_miedo_orden, n=10)
## 
##      el      al      de   golpe   hasta   honor intente   juran     lid     los 
##       3       1       1       1       1       1       1       1       1       1

Graficar

secuencia_sentimientosH <- (sentimientos_dfH$negative*-1)+sentimientos_dfH$positive
simple_plot(secuencia_sentimientosH)

LS0tCnRpdGxlOiAiNC41IGFjdGl2aWRhZCIKCmF1dGhvcjogRW5yaXF1ZSBkZSBaYXZhbGEgQTAwODI4MjgxCmRhdGU6IDktMjUtMjAyMwoKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUgCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogInlldGkiCiAgICBoaWdobGlnaHQ6ICJ0YW5nbyIKLS0tCiFbXSggIi9Vc2Vycy9lbnJpcXVlL0Rvd25sb2Fkcy9Vbmtub3duLTEyIikKCiMjIDxzcGFuIHN0eWxlPSAiY29sb3I6b3JhbmdlOyI+QW5hbGlzaXMgZGUgc2VudGltaWVudG9zPC9zcGFuPgoKCgplbCBhbmFsaXNpcyBkZSBzZW5yaW1pZW50b3MsIG8gbWluZXJpYSBkZSBvcGluaW9uLCBlcyB1dGlsaXphZG8gcGFyYSBleHRyYWVyIGRlIGZvcm1hIGF1dG9tYXRpY2EgaW5mb3JtYWNpb24gc29icmUgbGEgY29ub3RhY2lvbiBwb3NpdGl2YSBvIG5lZ2F0aXZhIGRlbCBsZW5ndWFqZSBkZSB1biBkb2N1bWVudG8uICAKCgpFbCBhbmFsaXNpcyBtb3N0cmFyYSBlbCByZXN1bHRhZG8gY29uIDggZW1vY2lvbmVzIGJhc2ljYXMgeSAyIHNlbnRpbWllbnRvcy4gCkVtb2Npb25lcyBiYXNpY2FzOiAgCjEuIEFsZWdyw61hICAoSm95KSAgCjIuIFRyaXN0ZXphIChTYWRuZXNzKSAgCjMuIElyYSAoYW5nZXIpICAKNC4gU29ycHJlc2EgKHN1cnByaXNlKSAgICAgIAo1LiBBc2NvIChkaXNndXN0KSAgICAKNi4gTWllZG8gKGZlYXIpICAgCjcuIEFudGljaXBhY2lvbiAoYW50aWNpcGF0aW9uKSAgCjguIENvbmZpYW56YSAodHJ1c3QpICAKU2VudGltaWVudG9zICAKMS4gcG9zaXRpdm8gKHBvc2l0aXZlKSAgCjIuIG5lZ2F0aXZvIChuZWdhdGl2ZSkgIAoKIyMgPHNwYW4gc3R5bGU9ICJjb2xvcjpvcmFuZ2U7Ij5pbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXM8L3NwYW4+CmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcygic3l1emhldCIpCmxpYnJhcnkoc3l1emhldCkKI2luc3RhbGwucGFja2FnZXMoIlJDb2xvckJyZXdlciIpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpgYGAKCgojIyA8c3BhbiBzdHlsZT0gImNvbG9yOm9yYW5nZTsiPkNhcmdhciB0ZXh0b3M8L3NwYW4+CgpgYGB7cn0KI2ZpbGUuY2hvb3NlKCkKdGV4dG9fY2FkZW5hIDwtIHJlYWQuZGVsaW0oICIvVXNlcnMvZW5yaXF1ZS9Eb3dubG9hZHMvU2VtZXN0cmUgNy0gMSBCbG9xdWUgUi9Kb3NlSm9zZS50eHQiLCBoZWFkZXIgPSBGQUxTRSkKYGBgCgpgYGB7cn0KdGV4dG9fcGFsYWJyYSA8LSBnZXRfdG9rZW5zKHRleHRvX2NhZGVuYSkKYGBgCgoKYGBge3J9CmhlYWQodGV4dG9fcGFsYWJyYSkKbGVuZ3RoKHRleHRvX3BhbGFicmEpCgpgYGAKCgoKIyMgPHNwYW4gc3R5bGU9ICJjb2xvcjpvcmFuZ2U7Ij5SZWFsaXphciBhbmFsaXNpczwvc3Bhbj4KCmBgYHtyfQpzZW50aW1pZW50b3NfZGYgPC0gZ2V0X25yY19zZW50aW1lbnQodGV4dG9fcGFsYWJyYSwgbGFuZ3VhZ2UgPSJzcGFuaXNoIikKCiNpZGlvbWFzIGRpc3BvbmlibGVzOiBzcGFuaXNoIGVuaXNsaXNoLCBmcmVuY2gsIGl0YWxpYW4sIGV0Yy4gCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSAiY29sb3I6b3JhbmdlOyI+R3JhZmljYXIgUmVzdWx0YWRvczwvc3Bhbj4KCmBgYHtyfQpiYXJwbG90KAogIGNvbFN1bXMocHJvcC50YWJsZShzZW50aW1pZW50b3NfZGZbLDE6OF0pKSwKICBzcGFjZSA9IDAuMiwKICBob3JpeiA9IEZBTFNFLAogIGxhcz0gMSwKICBjZXgubmFtZXM9IDAuNywKICBjb2w9IGJyZXdlci5wYWwobj04LCBuYW1lPSJTZXQzIiksCiAgbWFpbj0iQW5hbGlzaXMgZGUgc2VudGltaWVudG9zIGRlIGxhIGNhbmNpb24gZWwgdHJzaXRlIiwKICB4bGFiPSAiZW1vY2lvbmVzIgogIAopCmBgYAoKCgojIyA8c3BhbiBzdHlsZT0gImNvbG9yOm9yYW5nZTsiPlByb2Z1bmRpemFyIEFuYWxpc2lzPC9zcGFuPgoKYGBge3J9CnBhbGFicmFzX3RyaXN0ZXphIDwtIHRleHRvX3BhbGFicmFbc2VudGltaWVudG9zX2RmJHNhZG5lc3M+MF0KcGFsYWJyYXNfdHJpc3RlemFfb3JkZW4gPC0gc29ydCAodGFibGUodW5saXN0KHBhbGFicmFzX3RyaXN0ZXphKSksCmRlY3JlYXNpbmc9VFJVRSkKaGVhZChwYWxhYnJhc190cmlzdGV6YV9vcmRlbiwgbj0xMCkKYGBgCgojIyA8c3BhbiBzdHlsZT0gImNvbG9yOm9yYW5nZTsiPkdyYWZpY2FyPC9zcGFuPgoKYGBge3J9CnNlY3VlbmNpYV9zZW50aW1pZW50b3MgPC0gKHNlbnRpbWllbnRvc19kZiRuZWdhdGl2ZSotMSkrc2VudGltaWVudG9zX2RmJHBvc2l0aXZlCnNpbXBsZV9wbG90KHNlY3VlbmNpYV9zZW50aW1pZW50b3MpCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSAiY29sb3I6Z3JlZW47Ij5BbmFsaXNpcyBkZSBIaW1ubzwvc3Bhbj4KCgoKIyMgPHNwYW4gc3R5bGU9ICJjb2xvcjpncmVlbjsiPmluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcmlhczwvc3Bhbj4KYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJzeXV6aGV0IikKbGlicmFyeShzeXV6aGV0KQojaW5zdGFsbC5wYWNrYWdlcygiUkNvbG9yQnJld2VyIikKbGlicmFyeShSQ29sb3JCcmV3ZXIpCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSAiY29sb3I6Z3JlZW47Ij5DYXJnYXIgdGV4dG9zPC9zcGFuPgoKYGBge3J9CiNmaWxlLmNob29zZSgpCnRleHRvX2NhZGVuYUggPC0gcmVhZC5kZWxpbSggIi9Vc2Vycy9lbnJpcXVlL0Rvd25sb2Fkcy9TZW1lc3RyZSA3LSAxIEJsb3F1ZSBSL2hpbW5vbWV4aWNhbm8udHh0IiwgaGVhZGVyID0gRkFMU0UpCmBgYAoKYGBge3J9CnRleHRvX3BhbGFicmFIIDwtIGdldF90b2tlbnModGV4dG9fY2FkZW5hSCkKYGBgCgoKYGBge3J9CmhlYWQodGV4dG9fcGFsYWJyYUgpCmxlbmd0aCh0ZXh0b19wYWxhYnJhSCkKCmBgYAoKCgojIyA8c3BhbiBzdHlsZT0gImNvbG9yOmdyZWVuOyI+UmVhbGl6YXIgYW5hbGlzaXM8L3NwYW4+CgpgYGB7cn0Kc2VudGltaWVudG9zX2RmSCA8LSBnZXRfbnJjX3NlbnRpbWVudCh0ZXh0b19wYWxhYnJhSCwgbGFuZ3VhZ2UgPSJzcGFuaXNoIikKCiNpZGlvbWFzIGRpc3BvbmlibGVzOiBzcGFuaXNoIGVuaXNsaXNoLCBmcmVuY2gsIGl0YWxpYW4sIGV0Yy4gCmBgYAoKCiMjIDxzcGFuIHN0eWxlPSAiY29sb3I6Z3JlZW47Ij5HcmFmaWNhciBSZXN1bHRhZG9zPC9zcGFuPgoKYGBge3J9CmJhcnBsb3QoCiAgY29sU3Vtcyhwcm9wLnRhYmxlKHNlbnRpbWllbnRvc19kZkhbLDE6OF0pKSwKICBzcGFjZSA9IDAuMiwKICBob3JpeiA9IEZBTFNFLAogIGxhcz0gMSwKICBjZXgubmFtZXM9IDAuNywKICBjb2w9IGJyZXdlci5wYWwobj04LCBuYW1lPSJTZXQzIiksCiAgbWFpbj0iQW5hbGlzaXMgZGUgc2VudGltaWVudG9zIGRlbCBIaW1ubyIsCiAgeGxhYj0gImVtb2Npb25lcyIKICAKKQpgYGAKCgoKIyMgPHNwYW4gc3R5bGU9ICJjb2xvcjpncmVlbjsiPlByb2Z1bmRpemFyIEFuYWxpc2lzPC9zcGFuPgoKYGBge3J9CnBhbGFicmFzX21pZWRvIDwtIHRleHRvX3BhbGFicmFIW3NlbnRpbWllbnRvc19kZiRmZWFyPjBdCnBhbGFicmFzX21pZWRvX29yZGVuIDwtIHNvcnQgKHRhYmxlKHVubGlzdChwYWxhYnJhc19taWVkbykpLApkZWNyZWFzaW5nPVRSVUUpCmhlYWQocGFsYWJyYXNfbWllZG9fb3JkZW4sIG49MTApCmBgYAoKIyMgPHNwYW4gc3R5bGU9ICJjb2xvcjpncmVlbjsiPkdyYWZpY2FyPC9zcGFuPgoKYGBge3J9CnNlY3VlbmNpYV9zZW50aW1pZW50b3NIIDwtIChzZW50aW1pZW50b3NfZGZIJG5lZ2F0aXZlKi0xKStzZW50aW1pZW50b3NfZGZIJHBvc2l0aXZlCnNpbXBsZV9wbG90KHNlY3VlbmNpYV9zZW50aW1pZW50b3NIKQpgYGAK