Подтвердить что ты не робот

Чтение данных из файлов PDF в R

Это даже возможно!?!

У меня есть куча устаревших отчетов, которые мне нужно импортировать в базу данных. Тем не менее, они все в формате pdf. Есть ли R пакеты, которые могут читать pdf? Или я должен оставить это для инструмента командной строки?

Отчеты были сделаны в excel, а затем в pdfed, поэтому они имеют регулярную структуру, но много пустых "ячеек".

4b9b3361

Ответ 1

Просто предупреждение для других, которые могут надеяться извлечь данные: PDF - это контейнер, а не формат. Если исходный документ не содержит фактического текста, в отличие от растровых изображений текста или, возможно, даже более уродливых вещей, чем я могу себе представить, ничего, кроме OCR, может вам помочь.

Кроме того, в моем печальном опыте нет гарантии, что приложения, которые создают документы PDF, ведут себя одинаково, поэтому данные в вашей таблице могут быть или не быть считаны в желаемом порядке (в результате документ был построен). Будь осторожен.

Вероятно, лучше сделать пару студентов-градиентов, которые транскрибируют данные для вас. Они дешевые: -)

Ответ 2

Итак... это закрывает меня даже на довольно сложной таблице.

Загрузить образец pdf из bmi pdf

library(tm)

pdf <- readPDF(PdftotextOptions = "-layout")

dat <- pdf(elem = list(uri='bmi_tbl.pdf'), language='en', id='id1')

dat <- gsub(' +', ',', dat)
out <- read.csv(textConnection(dat), header=FALSE)

Ответ 3

Текущий пакет du jour для получения текста из PDF файлов pdftools (преемник Rpoppler, отмеченный выше) отлично работает на Linux, Windows и OSX:

install.packages("pdftools")
library(pdftools)
download.file("http://arxiv.org/pdf/1403.2805.pdf", "1403.2805.pdf", mode = "wb")
txt <- pdf_text("1403.2805.pdf")

# first page text
cat(txt[1])

# second page text
cat(txt[2])

Ответ 4

Вы также можете (теперь) использовать новый (2015-07) Rpoppler pacakge:

Rpoppler::PDF_text(file)

Он включает в себя 3 функции (4, на самом деле, но вы просто получаете ptr для объекта PDF):

  • PDF_fonts Информация о шрифте PDF
  • PDF_info Информация о документе PDF
  • PDF_text извлечение PDF-текста

(размещение в качестве ответа, чтобы помочь новым поисковым машинам найти пакет).

Ответ 5

за zx8754... в Win7 работает с pdftotext.exe в рабочем каталоге:

library(tm)
uri = 'bmi_tbl.pdf'
pdf = readPDF(control = list(text = "-layout"))(elem = list(uri = uri),
                                                language = "en", id = "id1")