Извлекать текст из PDF в JSON или XML или что-то еще? - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь извлечь данные [цену, информацию и количество] из PDF (у меня более 10 000 PDF, поэтому бесплатная пробная версия сайта не будет работать).Вот один пример PDF, который я получаю:

enter image description here

Я попробовал его на Python (новичок в этом виде задач, а также на Python) с несколькими пакетамикак PyPDF2, pdfx и т. д., но я получаю только такой текст

с PyPDF2:

enter image description here

Так что это возможноизвлекать цену, число и информацию, но у меня другой формат pdf, поэтому невозможно просто с текстом и некоторые алгоритмы извлекать информацию.

Что я хочу сделать, и это возможно, потому чтомногие сайты делают это и заставляют людей платить за это.Я хочу прочитать его по вертикали и преобразовать данные, извлеченные в XML / JSON или просто в набор данных.

Я хочу читать документ по столбцам, а не по строке

enter image description here

Есть ли способ сделать это на python или других языках?

1 Ответ

0 голосов
/ 01 января 2019

Прежде всего позвольте мне сказать вам, что эту проблему нелегко решить, поскольку PDF-файлы в дикой природе, как правило, довольно разнообразны по макетам.Я могу предложить попробовать проект с открытым исходным кодом, который действительно хорошо работает для извлечения информации из таблиц в файлах PDF.Он называется Tabula, вы можете получить его по адресу https://tabula.technology.

Tabula будет обнаруживать таблицы на каждой странице и экспортировать содержимое в формате CSV.Как только вы получите его в CSV, вам будет проще получать информацию с помощью Python.Обратите внимание, что компоновка CSV зависит от компоновки таблицы в PDF, а это означает, что вам может потребоваться создать несколько функций для правильного извлечения информации.

Табула не идеальна, но она должна работать с большинством файлов PDF, для тех, которые не работают, вам может потребоваться извлечь информацию вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...