texto - editar metadatos pdf online
Extraer datos de texto de archivos PDF (8)
¿Es posible analizar datos de texto de archivos PDF en R? No parece haber un paquete relevante para tal extracción , pero ¿alguien ha intentado o visto esto en R?
En Python hay PDFMiner , pero me gustaría mantener este análisis en R si es posible.
¿Alguna sugerencia?
Este es un hilo muy antiguo, pero para referencia futura: el paquete pdftools R extrae texto de archivos PDF.
La aplicación tabula PDF table extractor se basa en una aplicación de línea de comandos basada en un paquete Java JAR, tabula-extractor .
El paquete tabulador R proporciona un contenedor R que facilita la transferencia de datos a un archivo PDF y permite extraer datos de las tablas de datos.
Tabula tendrá una buena oportunidad para adivinar dónde están las tablas, pero también puede decirle qué parte de una página debe mirar especificando un área objetivo de la página.
Los datos se pueden extraer de varias páginas, y se puede especificar un área diferente para cada página, si es necesario.
Para ver un ejemplo de caso de uso, consulte: Cuando los documentos se convierten en bases de datos: Tabulizer R Wrapper para Tabula PDF Table Extractor .
Un colega me dirigió a esta útil herramienta de código abierto: http://tabula.nerdpower.org/ . Instale, cargue el PDF y seleccione la tabla en el PDF que requiere data -ización. No es una solución directa en R, pero ciertamente es mejor que el trabajo manual.
Una solución puramente R podría ser:
library(''tm'')
file <- ''namefile.pdf''
Rpdf <- readPDF(control = list(text = "-layout"))
corpus <- VCorpus(URISource(file),
readerControl = list(reader = Rpdf))
corpus.array <- content(content(corpus)[[1]])
entonces tendrás líneas de pdf en una matriz.
Usé una utilidad externa para hacer la conversión y la llamé desde R. Todos los archivos tenían una tabla principal con la información deseada
Establezca la ruta a pdftotxt.exe y convierta el pdf al texto
exeFile <- "C:/Projects/xpdfbin-win-3.04/bin64/pdftotext.exe"
for(i in 1:length(pdfFracList)){
fileNumber <- str_sub(pdfFracList[i], start = 1, end = -5)
pdfSource <- paste0(reportDir,"/", fileNumber, ".pdf")
txtDestination <- paste0(reportDir,"/", fileNumber, ".txt")
print(paste0("File number ", i, ", Processing file ", pdfSource))
system(paste(exeFile, "-table" , pdfSource, txtDestination, sep = " "), wait = TRUE)
}
Los sistemas Linux tienen pdftotext
que tuve un éxito razonable. Por defecto, crea foo.txt
desde un give foo.pdf
.
Dicho esto, los paquetes de minería de textos pueden tener convertidores. Una búsqueda rápida de rseek.org parece coincidir con su búsqueda crantastic.
install.packages("pdftools")
library(pdftools)
download.file (" http://www.nfl.com/liveupdate/gamecenter/56901/DEN_Gamebook.pdf ", "56901.DEN.Gamebook", modo = "wb")
txt <- pdf_text("56901.DEN.Gamebook")
cat(txt[1])