Извлечение содержимого таблицы из коллекции файлов PDF

У меня есть стопка PDF-файлов - потенциально сотни или тысячи. Они не все отформатированы одинаково, но в любой из них МОЖЕТ быть одна или несколько таблиц с интересной информацией, которую я хотел бы собрать в отдельную базу данных.

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

Я смотрю на CAM::Parse (используя клубничный Perl), но я не уверен, как его использовать для поиска и извлечения таблиц из файлов. Я предполагаю, что предпочитаю Perl, но на самом деле мне нужно что-то надежно работающее и достаточно простое для манипуляций со строками.

Каков хороший подход для чего-то подобного? Я на первом месте, поэтому, если у java (или python и т. д.) есть лучшие хуки, сейчас самое время узнать об этом. Общие указатели хорошие; стартовый код был бы настоятельно предпочтительнее.


person elbillaf    schedule 20.06.2013    source источник
comment
Ваше описание PDF-файлов, возможно, содержащих интересную информацию, но, возможно, отформатированных по-другому, указывает на то, что вы понятия не имеете, какие данные у вас есть. Прежде чем приступить к проекту извлечения текста из PDF, попробуйте проанализировать данные, которые вам нужно будет обработать, достаточно хорошо, чтобы правильно сформулировать свои требования.   -  person mkl    schedule 21.06.2013


Ответы (1)


  1. Формат PDF с момента своего появления (более 20 лет назад) никогда не предназначался для размещения извлекаемых, осмысленно структурированных данных< /сильный>.

  2. Его цель состояла в том, чтобы быть надежным визуальным представлением текста, изображений и диаграмм в документе — своего рода цифровой бумаге (которая также надежно переносилась бы на реальную бумагу посредством печати). Только позже в его разработке были добавлены дополнительные функции, которые должны помочь в повторном извлечении данных (google для Tagged PDF).

  3. Некоторые примеры проблем, возникающих при очистке таблиц данных из PDF-файлов, см. в этой статье:

  4. Противоречит моему пункту "1". выше, а теперь я скажу следующее: потрясающее семейство инструментов, которое с каждой неделей становится все лучше и лучше для извлечения табличных данных из PDF-файлов (если только они не являются отсканированными страницами), смотрите по этим ссылкам:

Так что: иди ищи Табулу. Если какие-либо инструменты могут делать то, что вы хотите, в настоящее время Tabula, вероятно, является одним из лучших для этой работы!


Обновлять

Недавно я создал скринкаст ASCiinema, демонстрирующий использование интерфейса командной строки Tabula для извлечения большой таблицы из PDF-файла в формате CSV:

asciicast

(Нажмите на изображение выше, чтобы увидеть, как он работает. Если он работает слишком быстро, чтобы вы могли прочитать весь текст, используйте кнопку "Пауза" (символ ||). )

Он размещен здесь:

person Kurt Pfeifle    schedule 29.09.2014
comment
Библиотека, рекомендованная в верхнем комментарии, устарела. Для людей с такими потребностями вы должны использовать эту новую библиотеку: github.com/tabulapdf/tabula-java - person Jérôme B; 09.03.2018
comment
он работает только с текстовыми pdf-файлами, а не с изображениями. Есть ли что-нибудь похожее на это, где он может извлекать данные из pdf-изображений? - person Sundeep Pidugu; 30.11.2018
comment
@Sundeep: Конечно он может работать только с текстовыми PDF-файлами. Если вы хотите извлечь таблицы из изображения, вы должны сначала попытаться запустить процесс OCR (оптическое распознавание символов) на изображении, а затем применить извлечение таблицы к тексту. Качество окончательного результата во многом будет зависеть от успешности этапа OCR. - person Kurt Pfeifle; 30.11.2018
comment
Я ищу инструменты, которые могут это сделать, кстати, спасибо за информацию @KurtPfeifle - person Sundeep Pidugu; 30.11.2018
comment
@Sundeep: Вы можете начать искать, какие инструменты упомянуты здесь: stackoverflow.com/questions/tagged/ocr - person Kurt Pfeifle; 30.11.2018
comment
Какое решение лучше сейчас (2021 г.)? - person Pedro77; 16.03.2021