En este documento presento un análisis completo del discurso de Mauricio Macri en la apertura de las sesiones ordinarias 2019 con mineria de textos usando R, que nos debería proporcionar suficientes herramientas para enteder cuál es el perfil político que tuvo y la relación con sus palabras.

Primero comenzamos a llamar a las librerias que vamos a utilizar para su estudio

library(tm)
package <U+393C><U+3E31>tm<U+393C><U+3E32> was built under R version 3.5.2Loading required package: NLP
package <U+393C><U+3E31>NLP<U+393C><U+3E32> was built under R version 3.5.2
library(SnowballC)
library(wordcloud)
package <U+393C><U+3E31>wordcloud<U+393C><U+3E32> was built under R version 3.5.1Loading required package: RColorBrewer
library(ggplot2)

Attaching package: <U+393C><U+3E31>ggplot2<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:NLP<U+393C><U+3E32>:

    annotate
library(dplyr)
package <U+393C><U+3E31>dplyr<U+393C><U+3E32> was built under R version 3.5.1
Attaching package: <U+393C><U+3E31>dplyr<U+393C><U+3E32>

The following objects are masked from <U+393C><U+3E31>package:stats<U+393C><U+3E32>:

    filter, lag

The following objects are masked from <U+393C><U+3E31>package:base<U+393C><U+3E32>:

    intersect, setdiff, setequal, union
library(readr)
package <U+393C><U+3E31>readr<U+393C><U+3E32> was built under R version 3.5.2
library(cluster)

Luego buscamos el archivo que decidimos descargar desde la página oficial de discursos del presidente

discurso <- read_lines("c://Users/rpardo/Downloads/DiscursoMacriNuevoVa.txt")
str(discurso)
 chr "señores gobernadores; embajadores; miembros del congreso; invitados especiales; miembros del congreso; invitado"| __truncated__

PRIMER ANALISIS DEL TEXTO

str_length(discurso)
[1] 36763

El discurso de Mauricio Macri tuvo una extensión de 36.763 palabras.

LIMPIEZA DE TEXTO

Procedemos a la limpieza del discurso eliminando mayúsculas, letras que funcionan como conectores y remover puntuaciones que no son Útiles a la hora del análisis. También eliminamos los espacios correspondientes que nos genera el txt para que tratemos de disminuir al máximo la dispersión de palabras

discurso <- gsub("[[:cntrl:]]", " ", discurso)
discurso <- tolower(discurso)
discurso <- removeWords(discurso, words = stopwords("spanish"))
discurso <- removePunctuation(discurso)
discurso <- stripWhitespace(discurso)

SEGUNDO ANÁLISIS DEL TEXTO Detectando temáticas

cat("El presidente habló de economía: ",str_detect(discurso, "economía"))
El presidente habló de economía:  TRUE
cat("El presidente habló de trabajo: ",str_detect(discurso, "trabajo"))
El presidente habló de trabajo:  TRUE
cat("El presidente habló de educación: ",str_detect(discurso, "educación"))
El presidente habló de educación:  TRUE
cat("El presidente habló de Salud: ",str_detect(discurso, "salud"))
El presidente habló de Salud:  FALSE
cat("El presidente habló de Justicia: ",str_detect(discurso, "justicia"))
El presidente habló de Justicia:  TRUE
cat("El presidente habló de Seguridad: ",str_detect(discurso, "seguridad"))
El presidente habló de Seguridad:  TRUE
cat("El presidente habló de Ciencia: ",str_detect(discurso, "ciencia"))
El presidente habló de Ciencia:  TRUE
cat("El presidente habló de energía: ",str_detect(discurso, "energía"))
El presidente habló de energía:  TRUE
cat("El presidente habló de género: ",str_detect(discurso, "genero"))
El presidente habló de género:  FALSE
cat("El presidente habló de transporte: ",str_detect(discurso, "transporte"))
El presidente habló de transporte:  TRUE
str_detect(discurso, "economía")
[1] TRUE

El cuidado de la energía (10 veces mencionada), la pobreza (16 veces mencionada) y el trabajo (14 veces mencionado) fueron los temas más importantes que tuvo el presidente.

DETECTANDO MENCIONES A PROBLEMÁTICAS

str_detect(discurso, "desempleo")
[1] FALSE
str_detect(discurso, "desocupación")
[1] FALSE
str_detect(discurso, "tarifazo")
[1] FALSE
str_detect(discurso, "inflación")
[1] TRUE

El discurso no tuvo carga negativa y evitó tal como vemos en este informe mencionar palabras como “desempleo”, “desocupación” o “tarifazo”. Si habló de inflación y lo afrontó inclusive con las críticas de la oposición.

Ahora, para poder visualizar correctamente en una nube de texto, tenemos que realizar un cuerpo de texto juntando todos los renglones en un solo renglón.

documento <- Corpus(VectorSource(discurso))
documento
<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 1

Como podemos ver, nustro Cuerpo de documentos está compuesto por 1 documento. Los siguientes análisis se harán a partir de este Corpus:

nuevo_Cuerpo <- tm_map(documento, PlainTextDocument)
transformation drops documents

Procedemos a mapear el nuevo cuerpo de texto del documento para que de esta manera, poder crear fácilmente una nube de palabras (wordcloud de la librería del mismo nombre) que nos muestra los términos más frecuentes usados por Mauricio Macri.

wordcloud(nuevo_Cuerpo, max.words = 130, random.order = F, colors = brewer.pal(name = "Dark2", n = 8))

“Argentinos” y “hoy” son las palabras que usó el presidente Macri con mayor frecuencia. Se puede observar una cierta tendencia a hablar de mundo relacionando a la apertura de Argentina al exterior. También se observan palabras muy relacionadas al PRO como “haciendo”, “hacer”, “cambia”, “juntos”.

nov_tdm <- TermDocumentMatrix(nuevo_Cuerpo)
nov_tdm
<<TermDocumentMatrix (terms: 1585, documents: 2)>>
Non-/sparse entries: 1585/1585
Sparsity           : 50%
Maximal term length: 19
Weighting          : term frequency (tf)
nov_mat <- as.matrix(nov_tdm)
dim(nov_mat)
[1] 1585    2
nov_mat <- nov_mat %>% rowSums() %>% sort(decreasing = TRUE)
nov_mat <- data.frame(palabra = names(nov_mat), frec = nov_mat)
nov_mat[1:20, ]
              palabra frec
hoy               hoy   30
argentinos argentinos   29
país             país   26
serio           serio   20
años             años   19
mundo           mundo   19
año               año   18
ciento         ciento   16
pobreza       pobreza   15
cada             cada   14
hacer           hacer   14
vez               vez   14
argentina   argentina   13
trabajo       trabajo   13
2015             2015   12
cambia         cambia   12
camino         camino   12
hace             hace   12
haciendo     haciendo   10
ser               ser   10
nov_mat[1:10, ] %>%
  ggplot(aes(palabra, frec)) +
  geom_bar(stat = "identity", color = "black", fill = "#87CEFA") +
  geom_text(aes(hjust = 1.3, label = frec)) + 
  coord_flip() + 
  labs(title = "Diez palabras más frecuentes en discurso de Macri",  x = "Palabras", y = "Número de usos")

LS0tDQp0aXRsZTogIkRpc2N1cnNvIGRlIE1hdXJpY2lvIE1hY3JpIGVuIGFwZXJ0dXJhIGRlIHNlc2lvbmVzIG9yZGluYXJpYXMiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQpBdXRvcjogUm9kb2xmbyBQYXJkbw0KLS0tDQoNCkVuIGVzdGUgZG9jdW1lbnRvIHByZXNlbnRvIHVuIGFu4Wxpc2lzIGNvbXBsZXRvIGRlbCBkaXNjdXJzbyBkZSBNYXVyaWNpbyBNYWNyaSBlbiBsYSBhcGVydHVyYSBkZSBsYXMgc2VzaW9uZXMgb3JkaW5hcmlhcyAyMDE5IGNvbiBtaW5lcmlhIGRlIHRleHRvcyB1c2FuZG8gUiwgcXVlIG5vcyBkZWJlcu1hIHByb3BvcmNpb25hciBzdWZpY2llbnRlcyBoZXJyYW1pZW50YXMgcGFyYSBlbnRlZGVyIGN14WwgZXMgZWwgcGVyZmlsIHBvbO10aWNvIHF1ZSB0dXZvIHkgbGEgcmVsYWNp824gY29uIHN1cyBwYWxhYnJhcy4NCg0KDQpQcmltZXJvIGNvbWVuemFtb3MgYSBsbGFtYXIgYSBsYXMgbGlicmVyaWFzIHF1ZSB2YW1vcyBhIHV0aWxpemFyIHBhcmEgc3UgZXN0dWRpbyANCg0KYGBge3J9DQoNCmxpYnJhcnkodG0pDQpsaWJyYXJ5KFNub3diYWxsQykNCmxpYnJhcnkod29yZGNsb3VkKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KGNsdXN0ZXIpDQoNCmBgYA0KDQoNCkx1ZWdvIGJ1c2NhbW9zIGVsIGFyY2hpdm8gcXVlIGRlY2lkaW1vcyBkZXNjYXJnYXIgZGVzZGUgbGEgcOFnaW5hIG9maWNpYWwgZGUgZGlzY3Vyc29zIGRlbCBwcmVzaWRlbnRlIA0KDQpgYGB7cn0NCmRpc2N1cnNvIDwtIHJlYWRfbGluZXMoImM6Ly9Vc2Vycy9ycGFyZG8vRG93bmxvYWRzL0Rpc2N1cnNvTWFjcmlOdWV2b1ZhLnR4dCIpDQpzdHIoZGlzY3Vyc28pDQpgYGANCg0KUFJJTUVSIEFOQUxJU0lTIERFTCBURVhUTw0KDQpgYGB7cn0NCg0Kc3RyX2xlbmd0aChkaXNjdXJzbykNCmBgYA0KDQpFbCBkaXNjdXJzbyBkZSBNYXVyaWNpbyBNYWNyaSB0dXZvIHVuYSBleHRlbnNp824gZGUgMzYuNzYzIHBhbGFicmFzLiANCg0KDQpMSU1QSUVaQSBERSBURVhUTw0KDQpQcm9jZWRlbW9zIGEgbGEgbGltcGllemEgZGVsIGRpc2N1cnNvIGVsaW1pbmFuZG8gbWF5+nNjdWxhcywgbGV0cmFzIHF1ZSBmdW5jaW9uYW4gY29tbyBjb25lY3RvcmVzIHkgcmVtb3ZlciBwdW50dWFjaW9uZXMgcXVlIG5vIHNvbiDadGlsZXMgYSBsYSBob3JhIGRlbCBhbuFsaXNpcy4gVGFtYmnpbiBlbGltaW5hbW9zIGxvcyBlc3BhY2lvcyBjb3JyZXNwb25kaWVudGVzIHF1ZSBub3MgZ2VuZXJhIGVsIHR4dCBwYXJhIHF1ZSB0cmF0ZW1vcyBkZSBkaXNtaW51aXIgYWwgbeF4aW1vIGxhIGRpc3BlcnNp824gZGUgcGFsYWJyYXMNCg0KYGBge3J9DQpkaXNjdXJzbyA8LSBnc3ViKCJbWzpjbnRybDpdXSIsICIgIiwgZGlzY3Vyc28pDQpkaXNjdXJzbyA8LSB0b2xvd2VyKGRpc2N1cnNvKQ0KZGlzY3Vyc28gPC0gcmVtb3ZlV29yZHMoZGlzY3Vyc28sIHdvcmRzID0gc3RvcHdvcmRzKCJzcGFuaXNoIikpDQpkaXNjdXJzbyA8LSByZW1vdmVQdW5jdHVhdGlvbihkaXNjdXJzbykNCmRpc2N1cnNvIDwtIHN0cmlwV2hpdGVzcGFjZShkaXNjdXJzbykNCmBgYA0KDQpTRUdVTkRPIEFOwUxJU0lTIERFTCBURVhUTw0KRGV0ZWN0YW5kbyB0ZW3hdGljYXMNCg0KYGBge3J9DQoNCmNhdCgiRWwgcHJlc2lkZW50ZSBoYWJs8yBkZSBlY29ub23tYTogIixzdHJfZGV0ZWN0KGRpc2N1cnNvLCAiZWNvbm9t7WEiKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIHRyYWJham86ICIsc3RyX2RldGVjdChkaXNjdXJzbywgInRyYWJham8iKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIGVkdWNhY2nzbjogIixzdHJfZGV0ZWN0KGRpc2N1cnNvLCAiZWR1Y2FjafNuIikpDQoNCmNhdCgiRWwgcHJlc2lkZW50ZSBoYWJs8yBkZSBTYWx1ZDogIixzdHJfZGV0ZWN0KGRpc2N1cnNvLCAic2FsdWQiKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIEp1c3RpY2lhOiAiLHN0cl9kZXRlY3QoZGlzY3Vyc28sICJqdXN0aWNpYSIpKQ0KDQpjYXQoIkVsIHByZXNpZGVudGUgaGFibPMgZGUgU2VndXJpZGFkOiAiLHN0cl9kZXRlY3QoZGlzY3Vyc28sICJzZWd1cmlkYWQiKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIENpZW5jaWE6ICIsc3RyX2RldGVjdChkaXNjdXJzbywgImNpZW5jaWEiKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIGVuZXJn7WE6ICIsc3RyX2RldGVjdChkaXNjdXJzbywgImVuZXJn7WEiKSkNCg0KY2F0KCJFbCBwcmVzaWRlbnRlIGhhYmzzIGRlIGfpbmVybzogIixzdHJfZGV0ZWN0KGRpc2N1cnNvLCAiZ2VuZXJvIikpDQoNCmNhdCgiRWwgcHJlc2lkZW50ZSBoYWJs8yBkZSB0cmFuc3BvcnRlOiAiLHN0cl9kZXRlY3QoZGlzY3Vyc28sICJ0cmFuc3BvcnRlIikpDQoNCg0Kc3RyX2RldGVjdChkaXNjdXJzbywgImVjb25vbe1hIikNCg0KYGBgDQoNCkVsIGN1aWRhZG8gZGUgbGEgZW5lcmftYSAoMTAgdmVjZXMgbWVuY2lvbmFkYSksIGxhIHBvYnJlemEgKDE2IHZlY2VzIG1lbmNpb25hZGEpIHkgZWwgdHJhYmFqbyAoMTQgdmVjZXMgbWVuY2lvbmFkbykgZnVlcm9uIGxvcyB0ZW1hcyBt4XMgaW1wb3J0YW50ZXMgcXVlIHR1dm8gZWwgcHJlc2lkZW50ZS4gDQoNCkRFVEVDVEFORE8gTUVOQ0lPTkVTIEEgUFJPQkxFTcFUSUNBUw0KDQpgYGB7cn0NCg0Kc3RyX2RldGVjdChkaXNjdXJzbywgImRlc2VtcGxlbyIpDQoNCnN0cl9kZXRlY3QoZGlzY3Vyc28sICJkZXNvY3VwYWNp824iKQ0KDQpzdHJfZGV0ZWN0KGRpc2N1cnNvLCAidGFyaWZhem8iKQ0KDQpzdHJfZGV0ZWN0KGRpc2N1cnNvLCAiaW5mbGFjafNuIikNCg0KDQpgYGANCg0KRWwgZGlzY3Vyc28gbm8gdHV2byBjYXJnYSBuZWdhdGl2YSB5IGV2aXTzIHRhbCBjb21vIHZlbW9zIGVuIGVzdGUgaW5mb3JtZSBtZW5jaW9uYXIgcGFsYWJyYXMgY29tbyAiZGVzZW1wbGVvIiwgImRlc29jdXBhY2nzbiIgbyAidGFyaWZhem8iLg0KU2kgaGFibPMgZGUgaW5mbGFjafNuIHkgbG8gYWZyb2508yBpbmNsdXNpdmUgY29uIGxhcyBjcu10aWNhcyBkZSBsYSBvcG9zaWNp824uDQoNCkFob3JhLCBwYXJhIHBvZGVyIHZpc3VhbGl6YXIgY29ycmVjdGFtZW50ZSBlbiB1bmEgbnViZSBkZSB0ZXh0bywgdGVuZW1vcyBxdWUgcmVhbGl6YXIgdW4gY3VlcnBvIGRlIHRleHRvIGp1bnRhbmRvIHRvZG9zIGxvcyByZW5nbG9uZXMgZW4gdW4gc29sbyByZW5nbPNuLg0KDQoNCmBgYHtyfQ0KDQpkb2N1bWVudG8gPC0gQ29ycHVzKFZlY3RvclNvdXJjZShkaXNjdXJzbykpDQoNCmRvY3VtZW50bw0KYGBgDQpDb21vIHBvZGVtb3MgdmVyLCBudXN0cm8gQ3VlcnBvIGRlIGRvY3VtZW50b3MgZXN04SBjb21wdWVzdG8gcG9yIDEgZG9jdW1lbnRvLiANCkxvcyBzaWd1aWVudGVzIGFu4Wxpc2lzIHNlIGhhcuFuIGEgcGFydGlyIGRlIGVzdGUgQ29ycHVzOg0KDQpgYGB7cn0NCm51ZXZvX0N1ZXJwbyA8LSB0bV9tYXAoZG9jdW1lbnRvLCBQbGFpblRleHREb2N1bWVudCkNCmBgYA0KDQpQcm9jZWRlbW9zIGEgbWFwZWFyIGVsIG51ZXZvIGN1ZXJwbyBkZSB0ZXh0byBkZWwgZG9jdW1lbnRvIHBhcmEgcXVlIGRlIGVzdGEgbWFuZXJhLCBwb2RlciBjcmVhciBm4WNpbG1lbnRlIHVuYSBudWJlIGRlIHBhbGFicmFzICh3b3JkY2xvdWQgZGUgbGEgbGlicmVy7WEgZGVsIG1pc21vIG5vbWJyZSkgcXVlIG5vcyBtdWVzdHJhIGxvcyB06XJtaW5vcyBt4XMgZnJlY3VlbnRlcyB1c2Fkb3MgcG9yIE1hdXJpY2lvIE1hY3JpLg0KDQpgYGB7cn0NCndvcmRjbG91ZChudWV2b19DdWVycG8sIG1heC53b3JkcyA9IDEzMCwgcmFuZG9tLm9yZGVyID0gRiwgY29sb3JzID0gYnJld2VyLnBhbChuYW1lID0gIkRhcmsyIiwgbiA9IDgpKQ0KYGBgDQoNCg0KIkFyZ2VudGlub3MiIHkgImhveSIgc29uIGxhcyBwYWxhYnJhcyBxdWUgdXPzIGVsIHByZXNpZGVudGUgTWFjcmkgY29uIG1heW9yIGZyZWN1ZW5jaWEuIA0KU2UgcHVlZGUgb2JzZXJ2YXIgdW5hIGNpZXJ0YSB0ZW5kZW5jaWEgYSBoYWJsYXIgZGUgbXVuZG8gcmVsYWNpb25hbmRvIGEgbGEgYXBlcnR1cmEgZGUgQXJnZW50aW5hIGFsIGV4dGVyaW9yLiANClRhbWJp6W4gc2Ugb2JzZXJ2YW4gcGFsYWJyYXMgbXV5IHJlbGFjaW9uYWRhcyBhbCBQUk8gY29tbyAiaGFjaWVuZG8iLCAiaGFjZXIiLCAiY2FtYmlhIiwgImp1bnRvcyIuIA0KDQpgYGB7cn0NCm5vdl90ZG0gPC0gVGVybURvY3VtZW50TWF0cml4KG51ZXZvX0N1ZXJwbykNCm5vdl90ZG0NCg0Kbm92X21hdCA8LSBhcy5tYXRyaXgobm92X3RkbSkNCmRpbShub3ZfbWF0KQ0KDQpub3ZfbWF0IDwtIG5vdl9tYXQgJT4lIHJvd1N1bXMoKSAlPiUgc29ydChkZWNyZWFzaW5nID0gVFJVRSkNCm5vdl9tYXQgPC0gZGF0YS5mcmFtZShwYWxhYnJhID0gbmFtZXMobm92X21hdCksIGZyZWMgPSBub3ZfbWF0KQ0KDQpub3ZfbWF0WzE6MjAsIF0NCg0Kbm92X21hdFsxOjEwLCBdICU+JQ0KICBnZ3Bsb3QoYWVzKHBhbGFicmEsIGZyZWMpKSArDQogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCBjb2xvciA9ICJibGFjayIsIGZpbGwgPSAiIzg3Q0VGQSIpICsNCiAgZ2VvbV90ZXh0KGFlcyhoanVzdCA9IDEuMywgbGFiZWwgPSBmcmVjKSkgKyANCiAgY29vcmRfZmxpcCgpICsgDQogIGxhYnModGl0bGUgPSAiRGlleiBwYWxhYnJhcyBt4XMgZnJlY3VlbnRlcyBlbiBkaXNjdXJzbyBkZSBNYWNyaSIsICB4ID0gIlBhbGFicmFzIiwgeSA9ICJO+m1lcm8gZGUgdXNvcyIpDQoNCmBgYA0KDQoNCg0KDQoNCg==