2015-02-16 4 views
25

Существуют ли библиотеки с открытым исходным кодом, поддерживающие идентификацию таблицы & извлечение?Извлечение/идентификация таблиц из PDF python

Под этим я имею в виду:

  1. Определить структуру таблица существует
  2. классифицируют таблицы из его содержимого
  3. Извлечение данных из таблицы в удобном формате вывода, например, JSON/CSV и т.д.

Я просмотрел подобные вопросы на эту тему и нашел следующее:

  • PDFMiner который решает проблему 3, но мне кажется, пользователю необходимо указать PDFMiner, где структура таблицы существует для каждой таблицы (исправьте меня, если я ошибаюсь)
  • pdf-table-extract, который пытается решить проблему 1, но согласно списку To-Do, в настоящее время не может идентифицировать таблицы, разделенные пробелами. Это проблема, так как все таблицы в моих PDF-файлах разделены пробелами!

В настоящее время я думаю, что мне пришлось бы потратить много времени на разработку решения машинного обучения для определения структур таблиц из PDF-файлов. Поэтому любые альтернативные подходы были бы более чем приветствуются!

+4

Если вы можете использовать инструменты за пределами python, вы можете взглянуть на [tabula] (http://tabula.technology/). – mkl

+0

спасибо. Обязательно изучите это. Я увлекаюсь поиском решения в python, хотя из-за скорости, с которой python может быть записано –

ответ

17

Вы определенно должны взглянуть на этот ответ мой:

, а также взглянуть на все ссылки в них включены.

Tabula/TabulaPDF В настоящее время это лучший инструмент для извлечения таблицы, который доступен для очистки PDF-файлов.

+2

просто обновление об эффективности этого ответа ... Я взломал решение вместе, используя 'tabula' в прошлом году, чтобы пройти через около 100 PDF-файлы с несколькими форматами. Это было некрасиво, но это было лучшее из худшего и сэкономило значительное время. –

+0

Будет ли https://pypi.python.org/pypi/pdftable соответствовать требованиям? –

8

Я просто хотел бы добавить к очень полезный ответ от Kurt Pfeifle - теперь есть Python оболочка для Tabula, и это, кажется, работает очень хорошо до сих пор: https://github.com/chezou/tabula-py

Это превратит ваш стол в формате PDF к кадру данных Pandas. Вы также можете установить область в координатах x, y, что, очевидно, очень удобно для нерегулярных данных.

15

После многих плодотворных часов изучения библиотек OCR, ограничивающих блоков и алгоритмов кластеризации - я нашел решение настолько простым, что заставляет вас плакать!

Надеюсь, вы используете Linux;

pdftotext -layout NAME_OF_PDF.pdf

AMAZING !!

Теперь у вас есть хороший текстовый файл со всей информацией, выстраивались в хороших колонках, теперь она тривиальна для форматирования в CSV-файл и т.д ..

Это в течение времени, как это, что я люблю Linux, эти ребята придумал решения для всех и поставил его БЕСПЛАТНО!

+0

Ссылка на документы? Примеры? Если упоминаемая вами библиотека является той, которую я подозреваю, она, похоже, не соответствует критериям для 1. или 2. –

+0

Спасибо, это работает очень хорошо! :) –

+0

OMG, это работало удивительно хорошо !!! – vy32