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?

40
demandé sur Community 2010-10-04 05:44:32

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.

28
répondu Dirk Eddelbuettel 2010-10-04 01:56:22

il s'agit d'un fil très ancien, mais pour référence future: le paquet pdftools R extrait le texte de PDFs.

26
répondu Remko Duursma 2016-07-06 08:08:13

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.

9
répondu NiuBiBang 2013-08-05 17:48:47

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.

9
répondu willallgs 2016-06-06 22:27:02

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ées

peuvent ê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 .

5
répondu psychemedia 2016-05-02 13:34:02
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])
4
répondu DataProphets 2018-09-20 04:18:55

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)
}
2
répondu Alastair Muir 2016-03-07 23:08:04