Instalar los paquetes necesarios
install.packages(c("tm", "SnowballC", "wordcloud", "pdftools"))
Error in install.packages : Updating loaded packages
Cargar las librerias
library(tm)
Aviso: package ‘tm’ was built under R version 4.4.3Cargando paquete requerido: NLP
Aviso: package ‘NLP’ was built under R version 4.4.2
library(SnowballC)
library(wordcloud)
Aviso: package ‘wordcloud’ was built under R version 4.4.3Cargando paquete requerido: RColorBrewer
library(pdftools)
Aviso: package ‘pdftools’ was built under R version 4.4.3Using poppler version 23.08.0
Leer el texto del archivo en PDF
pdf_file <- file.choose()
texto_pdf <- pdf_text(pdf_file)
Crear un objeto Corpus
corpus <- Corpus(VectorSource(texto_pdf))
Limpiar el Texto
corpus <- tm_map(corpus, tolower) # Convertir a minúsculas
Aviso: transformation drops documents
corpus <- tm_map(corpus, removeNumbers) # Eliminar números
Aviso: transformation drops documents
corpus <- tm_map(corpus, removePunctuation) # Eliminar puntuación
Aviso: transformation drops documents
corpus <- tm_map(corpus, stripWhitespace) # Eliminar espacios en blanco
Aviso: transformation drops documents
corpus <- tm_map(corpus, removeWords, words = stopwords("spanish")) # Eliminar stopwords
Aviso: transformation drops documents
Steamming (opcional)
corpus <- tm_map(corpus, stemDocument, language = "spanish") # Stemming en español
Aviso: transformation drops documents
Crear una matriz de términos-documento (TDM)
tdm <- TermDocumentMatrix(corpus, control = list(
wordLengths = c(1, Inf) # Considera palabras de cualquier longitud
))
# Convertir la TDM a una matriz
matriz_tdm <- as.matrix(tdm)
# Obtener la frecuencia de palabras
frecuencia_palabras <- sort(rowSums(matriz_tdm), decreasing = TRUE)
Crear la nube de palabras
wordcloud(names(frecuencia_palabras), frecuencia_palabras,
max.words = 50, random.order = FALSE, colors = brewer.pal(name = "Dark2", n = 8))