Извлечь / определить таблицы из PDF Python

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

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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

pdftotext -layout NAME_OF_PDF.pdf

УДИВИТЕЛЬНО!!

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

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

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

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

Другие вопросы по тегам