web-dev-qa-db-ja.com

PDFファイルからテキストデータを抽出する

RのPDFファイルからのテキストデータを解析することは可能ですか? そのような抽出に関連するパッケージではないようです Rで?

PythonにはPDFMinerがあります ですが、可能であれば、この分析をすべてRに保持したいと思います。

助言がありますか?

41
DrewConway

Linuxシステムにはpdftotextがあり、私はこれでかなりの成功を収めました。デフォルトでは、foo.txtギブからfoo.pdf

ただし、テキストマイニングパッケージにはコンバーターが含まれている場合があります。 クイックrseek.org検索 は、あなたの厳rantな検索と一致するようです。

29

これは非常に古いスレッドですが、将来の参照のために: pdftools RパッケージはPDFからテキストを抽出します。

26
Remko Duursma

同僚が、この便利なオープンソースツール http://tabula.nerdpower.org/ に切り替えました。 PDFをインストールしてアップロードし、データ化が必要なPDFの表を選択します。Rの直接的な解決策ではありませんが、確かに手作業よりも優れています。

9
NiuBiBang

純粋なRソリューションは次のようになります。

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]])

配列内にpdf行があります。

9
willallgs
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])
5
DataProphets

tabula PDFテーブル抽出アプリは、Java JARパッケージ、 tabula -extractor

R tabulizer package は、PDFファイルへのパスを渡し、データテーブルから抽出されたデータを取得することを容易にするRラッパーを提供します。

Tabulaはテーブルの場所を推測するのに役立ちますが、ページのターゲット領域を指定することで、ページのどの部分を見るかを指示することもできます。

データは複数のページから抽出でき、必要に応じて、ページごとに異なる領域を指定できます。

ユースケースの例については、 ドキュメントがデータベースになる場合-Tabulizer RのTabulaのラッパーPDF Table Extractor

5
psychemedia

外部ユーティリティを使用して変換を実行し、Rから呼び出しました。すべてのファイルには、必要な情報を含む先頭のテーブルがありました

Pdftotxt.exeへのパスを設定し、pdfをテキストに変換します

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
Alastair Muir