Таблицы не найдены, а текст объединенного столбца при извлечении данных из этого PDF-файла с помощью Camelot

Я получаю UserWarning: No tables found on page-1, когда пытаюсь извлечь таблицы из прикрепленного PDF-файла. Однако, когда я посмотрел на извлеченные данные, часть текста столбца была объединена в один столбец ».

введите описание изображения здесь

Я использую Camelot для анализа этих PDF-файлов.

Шаги по воспроизведению: camelot --output m27.csv --format csv stream m27.pdf

Вот ссылка на PDF-файл, который я пытаюсь разобрать: https://github.com/tabulapdf/tabula-java/blob/master/src/test/resources/technology/tabula/m27.pdf


person Arpit Solanki    schedule 09.11.2018    source источник


Ответы (1)


PDF-файл просто содержит инструкции по размещению символа в координатах x, y на двумерной плоскости, не сохраняя при этом никаких сведений о словах, предложениях или таблицах.

Camelot использует PDFMiner под капотом для группировки символов в слова и слов в предложения. Иногда, когда символы расположены слишком близко, PDFMiner может сгруппировать символы, принадлежащие разным словам, в один.

Поскольку символы в вашей таблице PDF расположены очень близко, они объединяются в одно слово, и, следовательно, Camelot не может правильно определять столбцы. Вы можете указать разделители столбцов, чтобы получить таблицу в этом случае. Чтобы получить x-координаты разделителей столбцов, вы можете проверить руководство по визуальной отладке. Кроме того, вы можете указать split_text=True, чтобы вырезать слово по указанным вами разделителям столбцов. Вот код (я получил координаты x, создав график matplotlib текста в PDF с помощью $ camelot stream -plot text m27.pdf):

Используя CLI:

$ camelot --output m27.csv --format csv -split stream -C 72,95,209,327,442,529,566,606,683 m27.pdf

Используя API:

>>> import camelot
>>> tables = camelot.read_pdf('m27.pdf', flavor='stream', columns=['72,95,209,327,442,529,566,606,683'], split_text=True)
person Vinayak Mehta    schedule 09.11.2018
comment
У меня похожая проблема, но мой PDF-файл - это изображение таблицы, и в этой большой таблице каждая строка имеет разный размер, я также получаю сообщение об ошибке: UserWarning: No tables found on page-1 any ide, как ее решить? как вы думаете, это связано с этими размерами линий? - person sygneto; 16.03.2020