1 MENSAJE A LA NACIÓN DE ALEJANDRO TOLEDO MANRIQUE

1.1 Introducción

El expresidente Alejandro Toledo pronuncia mensaje a la nación ante el Congreso Nacional [^1], el 28 de Julio del 2001. Cabe resaltar, este último discurso se presentó a través de la publicación de la página del Congreso de la República, en un documento PDF.En este sentido, se analizará este documento, iniciando por su lectura y análisis. Posteriormente, se presentarán diversos gráficos donde se observará las frecuencias de pañabras y el análisis de sentimiento; con el objetivo de analizar las palabras positivas o negativas que contienen ambos mensajes. 🇵🇪.

1.2 Breve biografía de Alejandro Toledo

Alejandro Toledo nació en el Centro Poblado de Ferrer del distrito de Bolognesi, pero fue registrado en el vecino distrito de Cabana, en la provincia de Pallasca, en la Región Áncash, el 28 de marzo de 1946. Es un economista y político peruano. Fue presidente de la República del Perú desde 28 de julio de 2001 hasta el 28 de julio de 2006. Ocupó el cargo en elecciones democráticas después del gobierno transitorio de Valentín Paniagua.

Tras su presidencia formó parte, como miembro distinguido residente, del Centro de Estudios Avanzados y Ciencias del Comportamiento de la Universidad de Stanford y ha sido profesor visitante en el Centro para la Democracia, el Desarrollo y el Cumplimiento de la Ley del Instituto Freeman Spogli.17​ Toledo ha sido expositor de conferencias en distintos países sobre economía, inclusión y democracia, además de dirigente de su partido político.

Alejandro Toledo, en el Foro Económico Mundial.

Alejandro Toledo junto con Luiz Inácio Lula da Silva.

A continuación, se presenta el video se presenta el mensaje del Presidente Constitucional del Perú, doctor Alejandro Toledo Manrique, ante el Congreso Nacional, el 28 de Julio del 2001.

1.3 Minería de texto

1.3.1 Lectura y análisis de texto en PDF

A continuación, se procede a leer el documento pdf de la siguiente manera. Además, se concatena el archivo guardado como discurso2 con el objetivo de eliminar los espacios vacíos. Luego, se procede a eliminar los encabezados de página, ya que estas frases no sirven para el análisis del discurso.

discurso1 <- pdf_text("Mensaje_a_la_Nación.pdf")
discurso1 <- paste(discurso1, collapse = " ")

Del mismo modo, se realiza una búsqueda de número de página y de números que forman parte del discurso, que por cierto, tampoco ayuda en el análisis del texto, para eliminar ello, se usa la siguiente función:

str_count(discurso1, "\n[:blank:]+[:digit:]+\n")
str_count(discurso1, "[:digit:]")
discurso2 <- str_remove_all(discurso1, "[:digit:]")

Ahora, se guarda como un archivo de texto plano, con la siguiente función:

write_lines(discurso1, "Discurso Presidencial Toledo.txt")

Se lee el documento de texto plano Latin-1 y se convierte a formato ASCII.

discurso1 <- scan("Discurso Presidencial Toledo.txt",
                  encoding = "latin1", what = "char",
                  sep = "\n")

1.3.2 Construcción y limpieza del corpus

Se convierte el texto en una tabla de frecuencia de palabras, creando un objeto nuevo, haciendo uso del paquete tidytext y tm. Por consiguiente:

  • Paso 1: Convertir las líneas de texto en una tabla.

  • Paso 2: Desarmar el texto en tokens (palabras).

discurso1 <- tibble(discurso1) %>% 
  unnest_tokens(Token, discurso1) %>% 
  mutate(Token = removeNumbers(Token))
  • Paso 3: Eliminar las palabras de función o palabras gramaticales. También se pueden agregar otras palabras que no se desean que sean consideradas en el análisis. A estas palabras que se quieren saltar se las suele llamar “stop words” o palabras “vacías”.
stopwords_es_1 <- read_excel("CustomStopWords.xlsx")
names(stopwords_es_1) <- c("Token","Fuente")
stopwords_es_2 <- tibble(Token= c(""), Fuente = "Mis StopWords")
stopwords_es   <- rbind(stopwords_es_1, stopwords_es_2)
stopwords_es   <- stopwords_es[!duplicated(stopwords_es$Token), ]

#Removiendo los stopwords
discurso1 <- discurso1 %>% anti_join(stopwords_es)

Con el fin de derivar las palabras a sus formas originales, se realizará una lematización, de modo que las palabras parezcan “normales”.

discurso1$Token <- str_replace(discurso1$Token, "perú", "país")
discurso1$Token <- str_replace(discurso1$Token,"peruanas", "peruanos")

1.4 Gráfico de frecuencia animado

  • Paso 4: Contar cuántas veces aparece cada palabra, de modo que se obtiene la frecuencia de palabras
discurso1_frecuencias <- discurso1 %>%
  dplyr::count(Token, sort = TRUE)

DT::datatable(
  discurso1_frecuencias,
  rownames = T,
  filter = "top",
  options = list(pageLength = 5,
                 autoWidth = TRUE,
                 scrollX = TRUE,
                 escape = T),
  colnames = c('Palabra', 'Frecuencia')
)

Gráfico de barras con las 10 palabras más frecuentes:

grafico1 <- discurso1_frecuencias %>% 
  top_n(20) %>% 
  ggplot() + 
  aes(x = fct_reorder(Token, n), y = n, fill = Token) + 
  geom_col() +
  labs(x = NULL, y = "Frecuencia", 
       title = "Mensaje Presidencial diciembre-2018" ) +
  theme_minimal() + 
  theme(legend.position = "none") +
  coord_flip() +
  transition_reveal(date) +
  enter_fade() +
  exit_fade() 

1.5 Análisis de sentimientos

Al tener el conjunto de datos de forma ordenada, se puede asignar el sentimiento a cada una de las palabras mediante la función inner_join(). Este join devuelve una tabla con los datos que coinciden entre la tabla de la izquierda y de la derecha. A continuación, se unen los discursos con el diccionario de sentimientos:

discurso_sentimiento <- discurso1 %>% 
  inner_join(sentimientos,by=c("Token"="palabra"))

1.5.1 Visualizando los sentimientos

En este caso, se observa que en el discurso del día 16 de setiembre 2018, las palabras más usadas porAlejandro Toledo de acuerdo al sentimiento fueron “corrupción” clasificado como un sentimiento de disgusto y negativo; así como también la palabra “reforma” con un sentimiento positivo.

1.6 Nube de palabras

Una de tecnica muy buena para visualizar y análisar datos textuales es una nube de palabras, la cual consiste en que el tamaño de la palabra en la nube es según su frecuencia.

La función comparision.cloud() permite crear una wordcloud con diferentes dimensiones, por ejemplo el sentimiento o las emociones. Esto es muy útil ya que se puede observar en la misma wordcloud las palabras más frecuentes de cada dimensión. Para lograr esto se debe utilizar la función acast() del paquete reshape2.

1.7 Conclusiones

  • En definitiva, se puede observar que las palabras usadas con mayor frecuencia por el ex presidente Alejandro Toledo fueron “perú”,“gobierno”, “peruanos” y “pobreza”. En este sentido, se puede concluir que dió un mensaje con palabras alentadoras hacia la población, como por ejemplo, hace énfasis en la lucha contra la pobreza.

  • Con respecto a la nube de palabras,se puede decir que es una forma de visualizar frecuencia y sentimiento de palabras con una wordcloud, son muy fáciles de hacer y tienen la ventaja de ser intuitivas. Por ejemplo, en el discurso de Alejandro Toledo, la palabrá “perú” fue usada con mayor frecuencia y por eso se puede observar que tiene el tamaño mayor. Nótese también las palabras “gobierno”, “pobreza” y “peruanos”.

  • Finalmente, en el discurso presentado por Alejandro Toledo, las palabras más usadas de acuerdo al sentimiento fueron “avanzar” clasificado como un sentimiento positivo; así como también la palabra “reforma” con un sentimiento positivo y la palabra “pobreza” con sentimiento de ira. En general, el mensaje dado por el ex presidente fue un mensaje positivo, con la finalidad de obtener la confianza de todos los peruanos y reafirmando su compromiso con la población.