1 BIOGRAFÍA

Descendiente de emigrantes japoneses, Alberto Fujimori nació en Lima el 28 de julio de 1938. Estudió en el colegio Nuestra Señora de la Merced y en la Gran Unidad Escolar Alfonso Ugarte de Lima. En 1957 ingresó a la Universidad Nacional Agraria de La Molina. En 1984 fue nombrado decano de la Facultad de Ciencias de dicha universidad, de la cual poco después fue elegido rector. Fue presidente de Perú entre 1990 y 2000. Fundador de la agrupación Cambio 90, ganó las elecciones presidenciales de 1990, derrotando a Vargas Llosa, y puso en marcha un duro plan de ajuste para paliar la grave situación económica. El 5 de abril de 1992, con el apoyo del ejército, encabezó un autogolpe y disolvió el parlamento. Después de sofocar un intento de contragolpe protagonizado por varios militares (13 de noviembre), convocó unas elecciones (6 de diciembre de 1992) para un denominado Congreso Constituyente Democrático, que fueron boicoteadas por los partidos tradicionales de país.

Alberto Fujimori

1.1 PALABRAS MAS USADAS EN SU DISCURSO

library(pacman)
p_load(tidyverse, tidytext, tm, wordcloud, wordcloud2, 
       pdftools, patchwork, widyr, dplyr, magrittr, ggtextures,
       igraph, ggraph, extrafont, RColorBrewer)

# para instalar ggtextures 
# devtools::install_github("clauswilke/ggtextures")

#-----------------#
#### I.PARTICIPACIÓN CIUDADANA ####
#-----------------#

#Lectura del archivo.
library(pdftools)

discurso <- pdf_text("mensaje-1991-af.pdf")

discurso <- paste(discurso, collapse = " ")

# A) LIMPIEZA DE DATOS-----------------------------------------------------------

# Buscando los números de página
str_count(discurso, "\n[:blank:]+[:digit:]+\n")
## [1] 50
discurso <- str_replace_all(discurso, "[:blank:]{2,}", " ")

# Buscando los signos de puntuación
str_count(discurso, "[:punct:]")
## [1] 2662
discurso <- str_remove_all(discurso, "[:punct:]")

# Buscando los números
str_count(discurso, "[:digit:]")
## [1] 481
discurso <- str_remove_all(discurso, "[:digit:]")


# Guardando como un archivo de texto plano
write_lines(discurso, "mensaje-1991-af.txt")

discurso<- scan("mensaje-1991-af.txt",
                 encoding = "UTF-8", what = "char",
                 sep = "\n")

# Acontinuación cada palabra sera ordenada, una por fila 

discurso <- tibble(discurso) %>% 
  unnest_tokens(Token,discurso) %>% 
  mutate(Token = removeNumbers(Token)) 

discurso
## # A tibble: 23,355 × 1
##    Token         
##    <chr>         
##  1 mensaje       
##  2 del           
##  3 presidente    
##  4 constitucional
##  5 del           
##  6 perú          
##  7 ingeniero     
##  8 alberto       
##  9 fujimori      
## 10 fujimori      
## # … with 23,345 more rows
#Lectura del diccionario-------------------------------------------------------
library(readxl)

stopwords_es_1        <- read_excel("CustomStopWords.xlsx")
names(stopwords_es_1) <- c("Token", "Fuente")

# Al encontar espacios vacios en las filas creamos un tibble un vector vacio 
# para después proceder a eliminarlas.

stopwords_es_2 <- tibble(Token = c(""), Fuente="Mis StopWords")

# En esta parte se junta el primer diccionario "stopwords_es_1" y el tibble "stopwords_es_2"
# en un solo objeto de nombre "stopwords_es".

stopwords_es   <- rbind(stopwords_es_1, stopwords_es_2)
stopwords_es   <- stopwords_es[!duplicated(stopwords_es$Token), ]

# B) Removiendo los stopwords---------------------------------------------------
discurso <- discurso %>% anti_join(stopwords_es)
## Joining, by = "Token"
# C) Obteniendo frecuencias por palabra-----------------------------------------
discurso_frecuencias <- discurso %>%
  count(Token, sort = TRUE)

discurso_frecuencias 
## # A tibble: 4,548 × 2
##    Token        n
##    <chr>    <int>
##  1 gobierno    97
##  2 perú        82
##  3 millones    79
##  4 dólares     67
##  5 país        63
##  6 nacional    61
##  7 año         57
##  8 mil         57
##  9 empresas    51
## 10 sector      50
## # … with 4,538 more rows
# Gráfico de palabras más frecuentes
library(ggtextures)

# Usamos la función inner_join 
discurso_frecuencias <- discurso %>% 
  inner_join(discurso_frecuencias, by = c("Token" = "Token"))

# Para cambiar la textura de la barra

loadfonts(device = "win", quiet = TRUE)

img = "n.jpg"

discurso_frecuencias %>%
  count(Token, sort = TRUE) %>%
  filter(n > 40)%>% # Se filtra las palabras que tengan una fracuencia mayor a 78
  ggplot(aes(x = reorder(Token, n), y = n)) +
  geom_textured_col(image = img, color = "white", width = 0.8)+
  geom_text(aes(label = reorder(Token, n)), 
            hjust = 1.2,vjust = 0.3, color = "black", 
            size = 4.5,  family="Breakfast")+
  labs(y = "Frecuencia de palabras", 
       x = NULL,
       title = "PARTICIPACIÓN CIUDADANA")+
  coord_flip()+
  ylim(c(0, 210))+
  theme_bw()+
  #Hacemos visualmente mas atractivo el gráfico
  
  
  theme(plot.title = element_text( hjust = 0.5,vjust = 3, color = "#EC2400", size = 30,  family="Austein Script"),
        axis.text.y = element_blank(),
        axis.title.x      = element_text(family = "Forte", 
                                         size = 12, color="#7A2617"), 
        axis.text.x       = element_text( color = "#7A2617" , size = 10,
                                          family="Forte"),
        plot.caption = element_text(size = 7.5, color = "#7A2617"),
        panel.background  = element_rect(fill = c("#ffffff")),
        plot.margin=unit(c(2,1,1.5,1.2),"cm"),
        line = element_line(color="black",linetype = 1),
        rect = element_rect(size = 0.8, 
                            fill = "lightcyan"))

1.2 NUBE DE PALABRAS

# D) Nube de palabras con el paquete wordcloud2---------------------------------
library(wordcloud2)

set.seed(2021)
wordcloud2(discurso_frecuencias,
           size = 1.5,
           minRotation = -0.52,
           maxRotation = -0.52, 
           rotateRatio = 2,
           backgroundColor = 'Black')

1.3 GRÁFICO DE AN{ALISIS DE SENTIMIENTO

sentimientos <- read.delim("sentimientos_2.txt")

sentimientos <- as.tibble(sentimientos)


table(sentimientos$sentimiento) 
## 
##     alegría     asombro   confianza    disgusto         ira       miedo 
##         619         476        1122         929        1071        1272 
##    negativo    positivo premonición    tristeza 
##        4379        2728         769        1011
sentimientos <- distinct(sentimientos)

# Para encontrar el sentimiento que produce cada palabra hacemos uso de las palabras 
# en común encontradas en el diccionario de sentimientos y la novela.
Lectura1_sentimiento2 <- discurso %>% 
  inner_join(sentimientos, by = c("Token" = "palabra"))


# Gráfico de los sentimientos mas frecuentes
library(gganimate)
library(gifski)
Lectura1_sentimiento2 %>% 
  dplyr::count(sentimiento) %>% 
  ggplot() + aes(x = fct_reorder(sentimiento, n),
                 y = n,
                 fill = sentimiento) + 
  geom_col(show.legend = F) + coord_flip() +
  labs(title ="PARCTICIPACION CIUDADANA",
       subtitle = "Alberto Fujimori",
       x = "Sentimientos",
       y= "Frecuencia") +
  theme_bw()+
  theme( plot.title = element_text(family = "Monotype Corsiva",
                                   size = 30,
                                   color = "black",
                                   vjust = 0),
         text = element_text(family = "Comic Sans MS",
                             size = 12),  
         line = element_line(linetype = 1),
         rect = element_rect(size = 1.5, 
                             fill = "papayawhip"))+
  scale_fill_brewer(palette = "RdBu") +
  enter_fade() + 
  exit_shrink()  +
  ease_aes('sine-in-out')

# El gráfico muestra el sentiento mas representativo el cuál es el negativo con
# aproximadamente 6000 palabras que representan este sentimiento.

# F) Gráfica de análisis de sentimientos----------------------------------------

contar_palabras1 <- discurso %>% 
  inner_join(sentimientos,
             by = c("Token" = "palabra")) %>%
  dplyr::count(Token, sentimiento) %>% 
  group_by(sentimiento) %>% 
  top_n(5, n) 

contar_palabras1
## # A tibble: 55 × 3
## # Groups:   sentimiento [10]
##    Token       sentimiento     n
##    <chr>       <chr>       <int>
##  1 acción      positivo       14
##  2 caso        miedo          17
##  3 caso        negativo       17
##  4 caso        tristeza       17
##  5 comercio    confianza      19
##  6 competencia asombro        11
##  7 congreso    disgusto       14
##  8 corrupción  disgusto       11
##  9 económico   positivo       14
## 10 emergencia  asombro        14
## # … with 45 more rows
# G) RED DE PALABRAS------------------------------------------------------------
library(igraph)
library(ggraph)
library(grid)


# 1 recuento de bigramas palabras unidas a los sentimientos 
recuento_bigramas <- Lectura1_sentimiento2 %>%
  count(Token, sentimiento, sort = T)

# filtrado de palabras con animación

grafo_bigramas <- contar_palabras1 %>%
  filter(n>10) |> 
  graph_from_data_frame()


set.seed(2001)
ggraph(grafo_bigramas, layout = "gem") +
  geom_edge_link(aes(edge_alpha = n),
                 show.legend = TRUE,
                 arrow = arrow(type = "closed",
                               length = unit(3, "mm"),
                               ends = "last")) +
  geom_node_point(color = "darkmagenta", size = 3) +
  geom_node_text(aes(label = name), vjust = 1, hjust = 1, size= 3.8, color = "goldenrod4", )+
  theme_graph()+
  theme(legend.position = "left")+
  labs(title= "Red de palabras con sentimientos ",
       subtitle = "PARTICIPACIÓN CIUDADANA")+
  theme( plot.title = element_text(family = "Monotype Corsiva",
                                   size = 35,
                                   color = "gray48",
                                   vjust = 0),
         plot.subtitle = element_text(family = "Breakfast",
                                      size = 17,
                                      color = "Black"),
         plot.background   = element_rect(fill = "darkseagreen1"),
         legend.background = element_rect(fill= "lightgoldenrodyellow"))+
  enter_fade() + 
  exit_shrink() 

1.4 CONCLUSIONES :

Podemos concluir que en el discurso dado pór el ex-presidente Alberto Fujimori las palabras mas usadas son Gobierno que esta a la misma ves esta relacionada con el sentimiento negativo y de miedo ; tambien encontramos la palabra emergencia y esta relaconada con el sentimiento de asombro , tristeza y negativo , podemos observar que el discurso esta nos brinda mas sentimientos negativos