Objetivo

El mensaje a la nación fue descargado de Scribd 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í

Limpieza de data

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")

# Utilicemos readPDF para leer directamente el PDF!
my_pdf <- readPDF(control=list(text="-layout"))(elem=list(uri="MENSAJE.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 – 28 de Julio de 2018", "", text_raw)
text_raw<-gsub("Perus", "Peru", text_raw)
text_raw<- text_raw[-c(1:2,37)]

# 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")
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 analizar el discurso!

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")