El mensaje a la nación fue descargado de Onedrive para poder conocer un poco más de las funcionalidades de R y el poder del análisis del texto.
Recuerden que si desean aprender esto o más cosas pueden llevar el nuestro curso de R para Data Science, sin prerrequisitos necesarios! Y si te preinscribes sin costo alguno, recibirás un descuento de 200 soles! Preinscríbite aquí
Esta es la parte menos divertida y más trabajosa… Aprendamos a leer un PDF!
#Primero activemos los paquetes que necesitamos, si no los tienes usa install.packages("nombre-del-paquete")
library(pdftools)
library(tm)
library(wordcloud)
library(stringi)
library(DT)
# Configura tu directorio de trabajo
setwd("D:/ABCN/OneDrive/best/paquetes data bruta/varios/mensaje a la nacion - diciembre 2018")
# Utilicemos readPDF para leer directamente el PDF!
my_pdf <- readPDF(control=list(text="-layout"))(elem=list(uri="MENSAJE3.pdf"), language="es")
# Limpiemos un poco la data que está sucia... Por temas de compatibilidad y con fines de que sea reproducible para cualquier sistema operativo, hemos decidido quitar las tildes y la ñ.
text_raw <- my_pdf$content
text_raw<-gsub("á", "a", text_raw)
text_raw<-gsub("é", "e", text_raw)
text_raw<-gsub("í", "i", text_raw)
text_raw<-gsub("ó", "o", text_raw)
text_raw<-gsub("ú", "u", text_raw)
text_raw<-gsub("Á", "A", text_raw)
text_raw<-gsub("É", "E", text_raw)
text_raw<-gsub("Í", "I", text_raw)
text_raw<-gsub("Ó", "O", text_raw)
text_raw<-gsub("Ú", "U", text_raw)
text_raw<-gsub("ñ", "n", text_raw)
text_raw<-gsub("Ñ", "N", text_raw)
# Quitemos también algunos detalles extras...
text_raw<-gsub("Mensaje a la Nacion\r\n", "", text_raw)
text_raw<-gsub("\r\n", "", text_raw)
# Quitemos también algunos detalles extras...
text_corpus <- Corpus(VectorSource(text_raw))
corpus_clean <- tm_map(text_corpus, stripWhitespace)
corpus_clean <- tm_map(corpus_clean, removeNumbers)
corpus_clean <- tm_map(corpus_clean, content_transformer(tolower))
corpus_clean <- tm_map(corpus_clean, removeWords, stopwords("es"))
my_stopwords <- c("mas","ello","asi","tambien","vamos","anos","ano","solo","dar","fin","hemosplanteado","poderavanzar","ytenemos","primerosejes","alcongreso","estableci","elpremier","oficialtratamiento","politicaque","laciudadania","estecongreso","alcongreso","congresopocos","tales","esosproyectos","obligacionde","puede","realizar","lalucha","ypresentamos","mismos","anuestra","unacomision","seguirasi","elejecutivo","losnuevos","paisquiero","elcompromiso","ydecidir","laoficina","han reafirmado","esteesfuerzo","muestranuna","corrupciony","elfortalecimiento","fuimostestigos","politicay","decompromisos","lagravedad","queel","masque","decompromisos","confianzabuenas","reciensean","kitelectorales","porel","decidirsi","congresopocos","delpresidente","hanreafirmado","primermensaje","haciendo","mismo","dicidirsi","mehan","yhacerle","permite","contribuirdesde","unpunto","llevariamosadelante","unpais","nochesquiero","solotiene","actualsituacion","kitselectorales","aldescubierto","tratamientocomision","congresopocos","paisquiero","esemomento","embargo","congresopocos","comopersonas","comopresidente","luego")
corpus_clean <- tm_map(corpus_clean, removeWords, my_stopwords)
corpus_clean <- tm_map(corpus_clean, removePunctuation)
dtm <- TermDocumentMatrix(corpus_clean)
m <- as.matrix(dtm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
Hora de ponernos creativos. Comencemos con lo facil
wordcloud(words = d$word, freq = d$freq, min.freq = 1,
max.words=200, random.order=FALSE, rot.per=0.35,
colors=brewer.pal(8, "Dark2"))
¿interesado en buscar una palabra especifica?
datatable(d)
Finalmente terminemos con un bonito gráfico de frecuencias
barplot(d[1:10,]$freq, las = 2, names.arg = d[1:10,]$word,
col ="lightblue", main ="Palabras más usadas en el Discurso",
ylab = "Frecuencia de palabras")