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

Извлечение/идентификация таблиц из PDF python

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

Под этим я подразумеваю:

  • Определить структуру таблицы.
  • Классифицировать таблицу из ее содержимого
  • Извлечь данные из таблицы в полезный формат вывода, например. JSON/CSV и т.д.

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

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

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

4b9b3361

Ответ 1

Вы обязательно должны посмотреть на мой ответ:

а также посмотреть все ссылки, включенные в него.

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

Ответ 2

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

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

pdftotext -layout NAME_OF_PDF.pdf

AMAZING!!

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

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

Ответ 3

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

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