Разбор PDF Python с помощью Camelot и извлечение заголовка таблицы - PullRequest
0 голосов
/ 01 октября 2019

Camelot - фантастическая библиотека Python для извлечения таблиц из файла PDF в виде фрейма данных. Однако я ищу решение, которое также возвращает текст описания таблицы, написанный прямо над таблицей.

Код, который я использую для извлечения таблиц из pdf, таков:

import camelot
tables = camelot.read_pdf('test.pdf', pages='all',lattice=True, suppress_stdout = True)

Я хотел бы извлечь текст, написанный над таблицей, т. Е. ОСОБЕННОСТИ , как показано на рисунке ниже.

Какой для меня должен быть наилучший подход? ценю любую помощь. спасибо

enter image description here

1 Ответ

1 голос
/ 09 октября 2019

Вы можете создать синтаксический анализатор Lattice непосредственно

            parser = Lattice(**kwargs)
            for p in pages:
                t = parser.extract_tables(p, suppress_stdout=suppress_stdout,
                                          layout_kwargs=layout_kwargs)
                tables.extend(t)

Тогда у вас есть доступ к parser.layout, который содержит все компоненты на странице. Все эти компоненты имеют bbox (x0, y0, x1, y1), а извлеченные таблицы также имеют объект bbox. Вы можете найти ближайший компонент к таблице сверху и извлечь текст.

...