Ya empleamos R en alguna entrada anterior para analizar textos. Ahora nos metemos con el programa electoral del Partido Popular a 20 días de las elecciones en España. En este enlace podéis descargaros el programa. Lejos de lo insustanciales que suelen ser este tipo de documentos y alguna frase mítica del tipo «Crecimiento sin empleo no es recuperación», nos limitaremos a contar las palabras que emplean en este programa mediante técnicas de Text Mining.

Accedemos al programa en formato PDF, seleccionamos todo el documento, lo copiamos en un archivo .txt y ya podemos trabajar con R. El código empleado es similar al ya comentado en este blog:

# Análisis del programa del PP
# Leemos el fichero de una ubicación local
ubicacion <- "D:\\raul\\wordpress\\text minning R\\programa_PP.txt"
texto_raw <- read.table(ubicacion, sep = "\r")

# Dejamos todas las palabras en mayúsculas
texto <- toupper(texto_raw$V1)

# El texto lo transformamos en una lista separada por espacios
texto_split <- strsplit(texto, split = " ")

# Deshacemos esa lista y creamos un data.frame de palabras
texto_col <- as.character(unlist(texto_split))
texto_col_df <- data.frame(V1 = texto_col)

# Limpiamos caracteres especiales usando expresiones regulares
texto_col_df$V1 <- gsub("([[:space:]])", "", texto_col_df$V1)
texto_col_df$V1 <- gsub("([[:digit:]])", "", texto_col_df$V1)
texto_col_df$V1 <- gsub("([[:punct:]])", "", texto_col_df$V1)

# Calculamos la longitud de cada palabra
texto_col_df$largo <- nchar(texto_col_df$V1)

# Filtramos palabras con más de 4 caracteres
texto_filtrado <- subset(texto_col_df, largo > 4)

# Realizamos el conteo de frecuencias con sqldf
library(sqldf)
contador <- sqldf("
  SELECT V1 AS palabra, COUNT(*) AS frec
  FROM texto_filtrado
  GROUP BY palabra
  ORDER BY COUNT(*) DESC
")

head(contador, 20)

CAMBIO, POLÍTICA, SOCIEDAD y EMPLEO son las palabras más empleadas. SOCIAL aparece en la posición 50 y JÓVENES mucho más abajo. CRISIS es otra de las palabras que no son muy destacadas. Abrid R, seguid los pasos que os indico y obtendréis un análisis muy interesante. Saludos.