“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==