Extraction de données textuelles à partir de fichiers PDF
Est-il possible d'analyser les informations de texte des fichiers PDF en R? ne semble pas être un paquet pertinent pour une telle extraction , mais quelqu'un a-t-il essayé ou vu Cela fait dans R?
dans Python il y a le PDFMiner , mais je voudrais garder cette analyse tout en R si possible.
des suggestions?
7 réponses
systèmes Linux ont pdftotext
que j'ai eu un succès raisonnable avec. Par défaut, il crée foo.txt
à partir d'un give foo.pdf
.
cela dit, les paquets d'exploration de texte peuvent avoir des convertisseurs. Un rapide rseek.org la recherche semble correspondre à votre recherche crantastic.
il s'agit d'un fil très ancien, mais pour référence future: le paquet pdftools R extrait le texte de PDFs.
un collègue m'a branché sur cet outil open-source pratique: http://tabula.nerdpower.org / . Installez, téléchargez le PDF, et sélectionnez la table dans le PDF qui nécessite data-izzation. Pas une solution directe en R, mais certainement meilleure que le travail manuel.
une solution purement R pourrait être:
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]])
alors vous aurez des lignes pdf dans un tableau.
l'application tabula PDF table extractor est basée sur une application en ligne de commande basée sur un paquet Java JAR, tabula-extractor .
le r Paquet tabuliseur fournit un r wrapper qui le rend facile à passer dans le chemin vers un fichier PDF et obtenir des données extraites des tableaux de données.
Tabula aura un bon aller à deviner où les tables sont, mais vous pouvez également dire il partie d'une page à regarder en spécifiant une zone cible de la page.
Les donnéespeuvent être extraites de plusieurs pages, et une zone différente peut être spécifiée pour chaque page, si nécessaire.
Pour un exemple de cas d'utilisation, voir: Lorsque les Documents Deviennent des Bases de données – Tabulizer R Wrapper pour Tabula PDF Extracteur de Table .
install.packages("pdftools")
library(pdftools)
download.file("http://www.nfl.com/liveupdate/gamecenter/56901/DEN_Gamebook.pdf",
"56901.DEN.Gamebook", mode = "wb")
txt <- pdf_text("56901.DEN.Gamebook")
cat(txt[1])
j'ai utilisé un utilitaire externe pour faire la conversion et l'ai appelé à partir de R. Tous les fichiers avaient une table principale avec l'information désirée
définit le chemin vers pdftotxt.exe et convertir pdf en texte
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)
}