“Análisis de Sentimiento por Página del Mensaje Presidencial
Peruano: Evolución Emocional del Discurso”
Este proyecto utiliza técnicas de análisis de sentimiento en R para
cuantificar el tono emocional (positivo/negativo/neutral) del mensaje
presidencial peruano, página por página. Mediante el paquete syuzhet,
procesamos el texto completo del discurso para identificar patrones
emocionales clave, como picos de optimismo (ej: anuncios de logros) o
vallas de crítica (ej: desafíos nacionales). El gráfico resultante
revela la estructura narrativa del discurso, ideal para comunicólogos,
politólogos y equipos de inteligencia de datos que buscan entender la
estrategia comunicacional detrás de un mensaje de Estado.
Cargar las librerias necesarias Recordar que si no corre es necesario
instalar
library(pdftools) #Extraer texto de PDFs.
library(tidyverse) #Limpieza y manipulación de datos (todo-en-uno).
library(syuzhet) #Análisis de sentimiento (polaridad emocional).
Cargar el PDF
texto_por_pagina <- pdf_text(file.choose())
Calcular el sentimiento por cada página
sentimiento_paginas <- tibble(
pagina = 1:length(texto_por_pagina),
texto = texto_por_pagina
) |>
mutate(
sentimiento = map_dbl(texto, ~get_sentiment(.x, language = "spanish"))
)
head(sentimiento_paginas)
ggplot(sentimiento_paginas, aes(x = pagina, y = sentimiento)) +
geom_line(color = "steelblue", linewidth = 1) +
labs(
title = "Evolución del Sentimiento en el Mensaje Presidencial",
x = "Página",
y = "Sentimiento (Positivo/Negativo)"
) +
theme_minimal()

LS0tDQp0aXRsZTogIk1lbnNhamUgYSBsYSBOYWNpw7NuIDIwMjQiDQphdXRob3I6ICJKb3NlIENheWNobyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCiMgIkFuw6FsaXNpcyBkZSBTZW50aW1pZW50byBwb3IgUMOhZ2luYSBkZWwgTWVuc2FqZSBQcmVzaWRlbmNpYWwgUGVydWFubzogRXZvbHVjacOzbiBFbW9jaW9uYWwgZGVsIERpc2N1cnNvIg0KDQpFc3RlIHByb3llY3RvIHV0aWxpemEgdMOpY25pY2FzIGRlIGFuw6FsaXNpcyBkZSBzZW50aW1pZW50byBlbiBSIHBhcmEgY3VhbnRpZmljYXIgZWwgdG9ubyBlbW9jaW9uYWwgKHBvc2l0aXZvL25lZ2F0aXZvL25ldXRyYWwpIGRlbCBtZW5zYWplIHByZXNpZGVuY2lhbCBwZXJ1YW5vLCBww6FnaW5hIHBvciBww6FnaW5hLiBNZWRpYW50ZSBlbCBwYXF1ZXRlIHN5dXpoZXQsIHByb2Nlc2Ftb3MgZWwgdGV4dG8gY29tcGxldG8gZGVsIGRpc2N1cnNvIHBhcmEgaWRlbnRpZmljYXIgcGF0cm9uZXMgZW1vY2lvbmFsZXMgY2xhdmUsIGNvbW8gcGljb3MgZGUgb3B0aW1pc21vIChlajogYW51bmNpb3MgZGUgbG9ncm9zKSBvIHZhbGxhcyBkZSBjcsOtdGljYSAoZWo6IGRlc2Fmw61vcyBuYWNpb25hbGVzKS4gRWwgZ3LDoWZpY28gcmVzdWx0YW50ZSByZXZlbGEgbGEgZXN0cnVjdHVyYSBuYXJyYXRpdmEgZGVsIGRpc2N1cnNvLCBpZGVhbCBwYXJhIGNvbXVuaWPDs2xvZ29zLCBwb2xpdMOzbG9nb3MgeSBlcXVpcG9zIGRlIGludGVsaWdlbmNpYSBkZSBkYXRvcyBxdWUgYnVzY2FuIGVudGVuZGVyIGxhIGVzdHJhdGVnaWEgY29tdW5pY2FjaW9uYWwgZGV0csOhcyBkZSB1biBtZW5zYWplIGRlIEVzdGFkby4NCg0KDQpDYXJnYXIgbGFzIGxpYnJlcmlhcyBuZWNlc2FyaWFzDQpSZWNvcmRhciBxdWUgc2kgbm8gY29ycmUgZXMgbmVjZXNhcmlvIGluc3RhbGFyIA0KDQpgYGB7cn0NCmxpYnJhcnkocGRmdG9vbHMpICNFeHRyYWVyIHRleHRvIGRlIFBERnMuDQpsaWJyYXJ5KHRpZHl2ZXJzZSkgI0xpbXBpZXphIHkgbWFuaXB1bGFjacOzbiBkZSBkYXRvcyAodG9kby1lbi11bm8pLg0KbGlicmFyeShzeXV6aGV0KSAjQW7DoWxpc2lzIGRlIHNlbnRpbWllbnRvIChwb2xhcmlkYWQgZW1vY2lvbmFsKS4NCmBgYA0KDQpDYXJnYXIgZWwgUERGDQpgYGB7cn0NCnRleHRvX3Bvcl9wYWdpbmEgPC0gcGRmX3RleHQoZmlsZS5jaG9vc2UoKSkgIA0KYGBgDQoNCkNhbGN1bGFyIGVsIHNlbnRpbWllbnRvIHBvciBjYWRhIHDDoWdpbmENCmBgYHtyfQ0Kc2VudGltaWVudG9fcGFnaW5hcyA8LSB0aWJibGUoDQogIHBhZ2luYSA9IDE6bGVuZ3RoKHRleHRvX3Bvcl9wYWdpbmEpLA0KICB0ZXh0byA9IHRleHRvX3Bvcl9wYWdpbmENCikgfD4NCiAgbXV0YXRlKA0KICAgIHNlbnRpbWllbnRvID0gbWFwX2RibCh0ZXh0bywgfmdldF9zZW50aW1lbnQoLngsIGxhbmd1YWdlID0gInNwYW5pc2giKSkNCiAgKQ0KDQpoZWFkKHNlbnRpbWllbnRvX3BhZ2luYXMpDQpgYGANCg0KYGBge3J9DQpnZ3Bsb3Qoc2VudGltaWVudG9fcGFnaW5hcywgYWVzKHggPSBwYWdpbmEsIHkgPSBzZW50aW1pZW50bykpICsNCiAgZ2VvbV9saW5lKGNvbG9yID0gInN0ZWVsYmx1ZSIsIGxpbmV3aWR0aCA9IDEpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJFdm9sdWNpw7NuIGRlbCBTZW50aW1pZW50byBlbiBlbCBNZW5zYWplIFByZXNpZGVuY2lhbCIsDQogICAgeCA9ICJQw6FnaW5hIiwNCiAgICB5ID0gIlNlbnRpbWllbnRvIChQb3NpdGl2by9OZWdhdGl2bykiDQogICkgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQo=