Partido político que postula en las elecciones presidenciales del año 2021 en Perú con el candidato César Acuña.
Este artículo tiene como finalidad hacer un análisis exploratorio superficial sobre la propuesta electoral del partido político peruano Alianza Para El Progreso. Para lo cual se hicieron uso de diferentes herramientas como la nube de palabras, análisis de sentimiento, entre otros.
Candidato presidencial: César Acuña Peralta.
Empresario y político peruano que fue alcalde de la provincia de Trujillo, gobernador regional de La Libertad y congresista de la República. Es el líder del partido Alianza para el Progreso y candidato a la presidencia 2021, además de ser propietario del consorcio universitario César Vallejo y el Señor de Sipán.
Si deseas revisar el pdf de la propuesta del partido Alianza Para el Progreso, haz click en el siguiente enlace. (Si no se abre con click izquierdo, abrir con click derecho en una nueva ventana)
#Paquetes necesarios
library(pacman)
p_load(tidyverse, tidytext, wordcloud2, pdftools, patchwork,
widyr,dplyr, magrittr,ggplot2, readxl,scales,foreign, gganimate, kableExtra)
options(scipen=999)
options(digits = 3)
apptextm <- pdf_text("plan de alianza para el progreso.pdf")
#Para jalar las palabras del pdf.
apptextm <- paste(apptextm, collapse=" ")
#Removiendo números y signos de puntuación.
apptextm <- str_remove_all(apptextm, "[:punct:]")
apptextm <- str_remove_all(apptextm, "[:digit:]")
#Removiendo palabras.
apptextm <- str_remove_all(apptextm, "ii")
apptextm <- str_remove_all(apptextm, "iii")
apptextm <- str_remove_all(apptextm, "etc")
apptextm <- str_remove_all(apptextm, "wwww")
#Cabe considerar que para hacerlo de mejor forma se deben usar algoritmos más avanzados.
#Guardando como un archivo de texto .
write_lines(apptextm, "apptextm.txt")
#Empezando a trabajar con el txt.
apptextm <- scan("apptextm.txt",
encoding="UTF-8", what ="char",
sep="\n")
apptextm <- tibble(apptextm) %>%
unnest_tokens(Palabra,apptextm)
#Empezando a trabajar con los stopwords.
stopwords_es_1 <- read_excel("CustomStopWords.xlsx")
names(stopwords_es_1) <- c("Palabra","Fuente")
stopwords_es_2 <- tibble(Palabra =c(""),Fuente="Mis StopWords")
stopwords_es <- rbind(stopwords_es_1, stopwords_es_2)
stopwords_es <- stopwords_es[!duplicated(stopwords_es$Palabra),]
#Removiendo los stopwords.
apptextm <- apptextm %>% anti_join(stopwords_es)
#Obteniendo frecuencias por .
apptextm_frecuencia <- apptextm %>%
count(Palabra, sort=TRUE)
Esta imagen se realiza a partir de la propuesta electoral del partido Alianza Para el Progreso.
#Nube de palabras con el paquete wordcloud2
set.seed(2021)
wordcloud2(apptextm_frecuencia,
size = 0.7,
minRotation = -pi/6,
maxRotation = -pi/6,
rotateRatio = 1,
backgroundColor = "black",
color = "random-light")
#Se hizo uso del paquete forcats.
grafico <- apptextm_frecuencia %>%
top_n(10) %>%
ggplot() +
aes(x=fct_reorder(Palabra,n),y=n,fill=Palabra)+
geom_col()+
geom_text(aes(label=n),vjust=0.25, hjust= 1.2, size=5) +
labs(x=NULL, y = "Frecuencia",
title="Palabra más frecuentes de la propuesta del partido APP") +
theme_minimal()+
theme(legend.position="none")+
coord_flip()
grafico
#Se hizo uso del paquete kableExtra.
kbl(apptextm_frecuencia[1:10, 1:2], caption = "Top 10 palabras más frecuentes") %>%
kable_classic(full_width = F, html_font = "Cambria", font_size = 20)
Palabra | n |
---|---|
nacional | 241 |
objetivo | 240 |
sistema | 210 |
perú | 207 |
estratégico | 191 |
gestión | 191 |
empresas | 181 |
desarrollo | 168 |
inversión | 166 |
nivel | 163 |
# se uso el paquete gganimate
sentimientos <- read.delim("sentimientos_2.txt")
sentimientos <- as.tibble(sentimientos)
propuesta_sentimiento <- apptextm_frecuencia %>%
inner_join(sentimientos,by=c("Palabra"="palabra"))
propuesta_sentimiento%>% count(sentimiento) %>% ggplot() +
aes(x=fct_reorder(sentimiento,n),
y=n,
fill=sentimiento) +
geom_col(show.legend = F) + coord_flip() +
geom_text(aes(label=n),vjust=0.25, hjust= 1.2, size=5) +
labs(title ="Análisis de sentimientos de la propuesta Alianza Para el Progreso",
caption = "Fuente: Propia",
x = "Sentimientos",
y= "Frecuencia") +
theme_bw() + scale_fill_brewer(palette = "Spectral") +
transition_states(n) + enter_grow() +
shadow_mark()
propuesta_sentimiento2 <- apptextm %>%
inner_join(sentimientos, by = c("Palabra"="palabra")) %>%
count(Palabra, sentimiento) %>% group_by(sentimiento) %>% arrange(-n) %>%
top_n(4,n)
Comparación_emociones <- propuesta_sentimiento2 %>% ggplot() +
aes(n, fct_reorder(Palabra,n), fill = sentimiento) +
geom_col(show.legend = FALSE) +
facet_wrap( ~ sentimiento, scales= "free") +
labs(title= "Comparación de Emociones",
x="Frecuencia" , y="Palabra")
Comparación_emociones
#Se hizo uso del paquete ggplot2, foreign, scales, tidyverse, magrittr.
DATA1 <- propuesta_sentimiento %>%
group_by(sentimiento) %>%
summarise(Count = n()) %>%
mutate(Sentimiento = sentimiento,
Ratio = Count / sum(Count),
Porcentaje = percent(Ratio %>% round(2)))
ggplot(DATA1)+
aes(x=2,y=Ratio,label=Porcentaje,fill=Sentimiento) +
geom_bar(stat="identity") +
geom_text(position=position_stack(vjust=0.5),size=4)+
coord_polar(theta = "y", direction = -1)+
xlim(0,3)+ # Pruebe que pasa si elimina esta capa y si pone xlim(1,3)
labs(title="Gráfico de dona",
subtitle="Proporción de Sentimiento")+
theme_void()
Las palabras más frecuentes dentro de su propuesta son nacional, objetivo, sistema, Perú, estrategico, gestión, empresas, desarrollo, inversión y nivel.
La propuesta del partido político APP tiene un fuerte enfoque en los sentimientos positivos tales como generar confianza, sin embargo, respecto a la variedad, son más los negativos (ira, miedo y tristeza).
Con la ayuda de la comparación de sentimientos observamos que dentro de la propuesta electoral, inversión es una palabra que destaca en varios sentimientos negativos (ira, asombro y disgusto); por otro lado, la palabra objetivo destaca en sentimientos como confianza y premonición.