“Análisis de Tópicos Ocultos en el Mensaje Presidencial del Perú:
Minería de Texto con R”
Este análisis automatizado procesa el mensaje presidencial del Perú
aplicando tokenización, limpieza textual y modelado LDA en R, para
descubrir los 4 ejes temáticos centrales del discurso. Mediante
algoritmos no supervisados, transformamos un PDF de 80+ páginas en un
conjunto de palabras clave por tópico (ej: “inversión”, “seguridad”,
“desarrollo rural”), cuantificando su relevancia y detectando énfasis
políticos. Ideal para cientistas de datos y analistas políticos que
buscan objetividad en el análisis de discursos públicos.
Cargar las librerias necesarias Recordar que si no corre es necesario
instalar
library(pdftools) #Extraer texto de PDFs.
library(tidytext) # Tokenizar y analizar texto.
library(stringr) #Manipular cadenas de texto.
library(tm) # Limpieza y corpus de texto.
library(topicmodels) #Modelado de tópicos (LDA).
Importar el PDF
pdf_file <- file.choose()
texto_pdf <- pdf_text(pdf_file) |> paste(collapse = " ") # Unir todas las páginas
Limpieza básica
texto_limpio <- texto_pdf |>
str_replace_all("[[:punct:]]", "") |> # Remover puntuación
str_replace_all("\\d+", "") # Remover números
LDA
Crear Corpus y DTM
corpus <- Corpus(VectorSource(texto_limpio)) |>
tm_map(removeWords, stopwords("spanish")) |>
tm_map(stripWhitespace)
Aviso: transformation drops documentsAviso: transformation drops documents
dtm <- DocumentTermMatrix(corpus)
dtm <- dtm[rowSums(as.matrix(dtm)) > 0, ] # Remover filas vacías
Modelo de LDA
lda_model <- LDA(dtm, k = 4, control = list(seed = 1234)) # 4 temas
Palabras clave por tema
terms(lda_model, 8) # Top 8 palabras por tema
Topic 1 Topic 2 Topic 3 Topic 4
[1,] "país" "soles" "inversión" "millones"
[2,] "millones" "perú" "millones" "nacional"
[3,] "nacional" "gobierno" "gobierno" "año"
[4,] "inversión" "país" "soles" "soles"
[5,] "año" "lima" "perú" "personas"
[6,] "construcción" "desarrollo" "personas" "desarrollo"
[7,] "través" "nacional" "año" "servicio"
[8,] "ministerio" "millones" "desarrollo" "con"
Posibles Temas Asociados
Tópico 1: Infraestructura y Gestión Pública Palabras clave: país,
millones, nacional, inversión, construcción, ministerio. Posible
enfoque: Obras públicas, presupuesto estatal.
Tópico 2: Política Económica y Desarrollo Palabras clave: soles,
perú, gobierno, desarrollo, lima. Posible enfoque: Políticas económicas,
crecimiento regional.
Tópico 3: Inversión Social Palabras clave: inversión, millones,
gobierno, personas, desarrollo. Posible enfoque: Programas sociales,
gasto público en educación/salud.
Tópico 4: Cifras Macroeconómicas Palabras clave: millones, nacional,
año, soles, servicio. Posible enfoque: Reportes financieros, metas
anuales.
LS0tDQp0aXRsZTogIk1lbnNhamUgYSBsYSBOYWNpw7NuIDIwMjQiDQphdXRob3I6ICJKb3NlIENheWNobyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCiMgIkFuw6FsaXNpcyBkZSBUw7NwaWNvcyBPY3VsdG9zIGVuIGVsIE1lbnNhamUgUHJlc2lkZW5jaWFsIGRlbCBQZXLDujogTWluZXLDrWEgZGUgVGV4dG8gY29uIFIiDQoNCkVzdGUgYW7DoWxpc2lzIGF1dG9tYXRpemFkbyBwcm9jZXNhIGVsIG1lbnNhamUgcHJlc2lkZW5jaWFsIGRlbCBQZXLDuiBhcGxpY2FuZG8gdG9rZW5pemFjacOzbiwgbGltcGllemEgdGV4dHVhbCB5IG1vZGVsYWRvIExEQSBlbiBSLCBwYXJhIGRlc2N1YnJpciBsb3MgNCBlamVzIHRlbcOhdGljb3MgY2VudHJhbGVzIGRlbCBkaXNjdXJzby4gTWVkaWFudGUgYWxnb3JpdG1vcyBubyBzdXBlcnZpc2Fkb3MsIHRyYW5zZm9ybWFtb3MgdW4gUERGIGRlIDgwKyBww6FnaW5hcyBlbiB1biBjb25qdW50byBkZSBwYWxhYnJhcyBjbGF2ZSBwb3IgdMOzcGljbyAoZWo6ICJpbnZlcnNpw7NuIiwgInNlZ3VyaWRhZCIsICJkZXNhcnJvbGxvIHJ1cmFsIiksIGN1YW50aWZpY2FuZG8gc3UgcmVsZXZhbmNpYSB5IGRldGVjdGFuZG8gw6luZmFzaXMgcG9sw610aWNvcy4gSWRlYWwgcGFyYSBjaWVudGlzdGFzIGRlIGRhdG9zIHkgYW5hbGlzdGFzIHBvbMOtdGljb3MgcXVlIGJ1c2NhbiBvYmpldGl2aWRhZCBlbiBlbCBhbsOhbGlzaXMgZGUgZGlzY3Vyc29zIHDDumJsaWNvcy4NCg0KQ2FyZ2FyIGxhcyBsaWJyZXJpYXMgbmVjZXNhcmlhcw0KUmVjb3JkYXIgcXVlIHNpIG5vIGNvcnJlIGVzIG5lY2VzYXJpbyBpbnN0YWxhciANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmxpYnJhcnkocGRmdG9vbHMpICNFeHRyYWVyIHRleHRvIGRlIFBERnMuDQpsaWJyYXJ5KHRpZHl0ZXh0KSAjIFRva2VuaXphciB5IGFuYWxpemFyIHRleHRvLg0KbGlicmFyeShzdHJpbmdyKSAjTWFuaXB1bGFyIGNhZGVuYXMgZGUgdGV4dG8uDQpsaWJyYXJ5KHRtKSAjIExpbXBpZXphIHkgY29ycHVzIGRlIHRleHRvLg0KbGlicmFyeSh0b3BpY21vZGVscykgI01vZGVsYWRvIGRlIHTDs3BpY29zIChMREEpLg0KYGBgDQoNCkltcG9ydGFyIGVsIFBERg0KYGBge3J9DQpwZGZfZmlsZSA8LSBmaWxlLmNob29zZSgpDQp0ZXh0b19wZGYgPC0gcGRmX3RleHQocGRmX2ZpbGUpIHw+IHBhc3RlKGNvbGxhcHNlID0gIiAiKSAgIyBVbmlyIHRvZGFzIGxhcyBww6FnaW5hcw0KYGBgDQoNCkxpbXBpZXphIGLDoXNpY2ENCmBgYHtyfQ0KdGV4dG9fbGltcGlvIDwtIHRleHRvX3BkZiB8PiANCiAgc3RyX3JlcGxhY2VfYWxsKCJbWzpwdW5jdDpdXSIsICIiKSB8PiAgIyBSZW1vdmVyIHB1bnR1YWNpw7NuDQogIHN0cl9yZXBsYWNlX2FsbCgiXFxkKyIsICIiKSAgICAgICAgICAgICMgUmVtb3ZlciBuw7ptZXJvcw0KYGBgDQoNCiMgTERBDQpDcmVhciBDb3JwdXMgeSBEVE0NCmBgYHtyfQ0KY29ycHVzIDwtIENvcnB1cyhWZWN0b3JTb3VyY2UodGV4dG9fbGltcGlvKSkgfD4gDQogIHRtX21hcChyZW1vdmVXb3Jkcywgc3RvcHdvcmRzKCJzcGFuaXNoIikpIHw+IA0KICB0bV9tYXAoc3RyaXBXaGl0ZXNwYWNlKQ0KDQpkdG0gPC0gRG9jdW1lbnRUZXJtTWF0cml4KGNvcnB1cykNCmR0bSA8LSBkdG1bcm93U3Vtcyhhcy5tYXRyaXgoZHRtKSkgPiAwLCBdICAjIFJlbW92ZXIgZmlsYXMgdmFjw61hcw0KYGBgDQoNCk1vZGVsbyBkZSBMREENCg0KYGBge3J9DQpsZGFfbW9kZWwgPC0gTERBKGR0bSwgayA9IDQsIGNvbnRyb2wgPSBsaXN0KHNlZWQgPSAxMjM0KSkgICMgNCB0ZW1hcw0KYGBgDQoNClBhbGFicmFzIGNsYXZlIHBvciB0ZW1hDQpgYGB7cn0NCnRlcm1zKGxkYV9tb2RlbCwgOCkgICMgVG9wIDggcGFsYWJyYXMgcG9yIHRlbWENCmBgYA0KDQpQb3NpYmxlcyBUZW1hcyBBc29jaWFkb3MNCg0KVMOzcGljbyAxOiBJbmZyYWVzdHJ1Y3R1cmEgeSBHZXN0acOzbiBQw7pibGljYQ0KUGFsYWJyYXMgY2xhdmU6IHBhw61zLCBtaWxsb25lcywgbmFjaW9uYWwsIGludmVyc2nDs24sIGNvbnN0cnVjY2nDs24sIG1pbmlzdGVyaW8uDQpQb3NpYmxlIGVuZm9xdWU6IE9icmFzIHDDumJsaWNhcywgcHJlc3VwdWVzdG8gZXN0YXRhbC4NCg0KVMOzcGljbyAyOiBQb2zDrXRpY2EgRWNvbsOzbWljYSB5IERlc2Fycm9sbG8NClBhbGFicmFzIGNsYXZlOiBzb2xlcywgcGVyw7osIGdvYmllcm5vLCBkZXNhcnJvbGxvLCBsaW1hLg0KUG9zaWJsZSBlbmZvcXVlOiBQb2zDrXRpY2FzIGVjb27Ds21pY2FzLCBjcmVjaW1pZW50byByZWdpb25hbC4NCg0KVMOzcGljbyAzOiBJbnZlcnNpw7NuIFNvY2lhbA0KUGFsYWJyYXMgY2xhdmU6IGludmVyc2nDs24sIG1pbGxvbmVzLCBnb2JpZXJubywgcGVyc29uYXMsIGRlc2Fycm9sbG8uDQpQb3NpYmxlIGVuZm9xdWU6IFByb2dyYW1hcyBzb2NpYWxlcywgZ2FzdG8gcMO6YmxpY28gZW4gZWR1Y2FjacOzbi9zYWx1ZC4NCg0KVMOzcGljbyA0OiBDaWZyYXMgTWFjcm9lY29uw7NtaWNhcw0KUGFsYWJyYXMgY2xhdmU6IG1pbGxvbmVzLCBuYWNpb25hbCwgYcOxbywgc29sZXMsIHNlcnZpY2lvLg0KUG9zaWJsZSBlbmZvcXVlOiBSZXBvcnRlcyBmaW5hbmNpZXJvcywgbWV0YXMgYW51YWxlcy4NCg0KDQoNCg==