从PDF文件中提取文本数据
是否有可能从R中的PDF文件parsing文本数据? 似乎没有这样的提取相关的包 ,但有任何人试图或看到这在R完成?
在Python中有PDFMiner ,但是如果可能的话 ,我想保留这个分析。
有什么build议么?
Linux系统有我已经合理成功的pdftotext
。 默认情况下,它会从give foo.pdf
创buildfoo.txt
。
也就是说,文本挖掘软件包可能有转换器。 一个快速的rseek.orgsearch似乎同意你的crantasticsearch。
这是一个非常古老的线程,但为了将来的参考: pdftools R包从PDF中提取文本。
一位同事把我转到了这个方便的开源工具: http : //tabula.nerdpower.org/ 。 安装,上传PDF,然后在PDF中select需要数据化的表格。 R不是直接的解决scheme,但肯定比体力劳动更好。
纯粹的R解决scheme可能是:
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行。
tabula PDF表提取器应用程序基于一个基于Java JAR包, tabula提取器的命令行应用程序。
R tabulizer包提供了一个R包装器,可以很容易地将path传递到PDF文件,并从数据表中提取数据。
Tabula可以很好地猜测表格的位置,但是您也可以通过指定页面的目标区域来告诉它要查看页面的哪一部分。
数据可以从多个页面中提取,并且如果需要,可以为每个页面指定不同的区域。
有关示例用例,请参阅: 文档成为数据库时Tabulizer R Tabula PDF表提取器的包装器 。
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])
我使用了一个外部工具来完成转换,并从R中调用它。所有文件都有一个包含所需信息的引导表
设置pathpdftotxt.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) }