Проблема извлечения таблицы без полей в Python Camelot - PullRequest
0 голосов
/ 08 ноября 2018

Я очень стараюсь извлечь таблицу без полей, как показано на рисунке ниже, из файлов PDF. Я установил python-camelot, как показано здесь , и работает нормально только для граничных таблиц. Пожалуйста, найдите ниже детали:

платформа - Linux-4.5.5-300.fc24.x86_64-x86_64-with-fedora-24-Twenty_Four

sys - Python 3.6.1 (по умолчанию, 15 мая 2017 г., 11:42:04) [GCC 6.3.1 20161221 (Red Hat 6.3.1-1)]

numpy - NumPy 1.15.4

cv2 - OpenCV 3.4.3

Камелот - Камелот 0.3.2 enter image description here

Ответы [ 2 ]

0 голосов
/ 01 августа 2019

Чтобы улучшить обнаруженную область, вы можете увеличить значение edge_tol (по умолчанию: 50), чтобы противостоять эффекту размещения текста относительно далеко друг от друга по вертикали. Увеличение значения edge_tol приведет к обнаружению более длинных текстовых сообщений, что приведет к улучшению предположения об области таблицы. Давайте использовать значение 500.

>>> tables = camelot.read_pdf('edge_tol.pdf', flavor='stream', edge_tol=500)
>>> camelot.plot(tables[0], kind='contour')
>>> plt.show()
>>> tables[0].df
0 голосов
/ 06 марта 2019

Камелот по умолчанию использует решетку, которая опирается на четкие линии, разделяющие ячейки.

Для таблиц без строк вы хотите использовать поток:

tables = camelot.read_pdf('your_file_name.pdf', flavor = 'stream')
...