Извлечение текста и таблиц из PDF-файла в PythonPython

Программы на Python
Ответить
Anonymous
 Извлечение текста и таблиц из PDF-файла в Python

Сообщение Anonymous »

Я ищу решение для извлечения текста и таблиц из файла PDF. Хотя некоторые пакеты хороши для извлечения текста, они недостаточно хороши для извлечения таблиц.
  • Одним из решений может быть использование модели макета Распознаватель форм Azure, но это терпит неудачу, когда у нас есть сочетание текста и таблицы, в частности, когда таблицы имеют текстовый формат и смешивают содержимое таблиц и текста (см. Код Распознавателя форм Azure). https://github.com/Azure-Samples/cognit ... extract.md).

    Я также пробовал pypdf2 и pdfplumber; вот код для pypdf2:

    Код: Выделить всё

    import PyPDF2
    data_path = "directory/to/pdf/files"
    texts = []
    
    for fp in os.listdir(data_path):
    pdfFileObj = open(os.path.join(data_path, fp), 'rb')
    print(pdfFileObj)
    #
    pdfreader=PyPDF2.PdfFileReader(pdfFileObj)
    #
    count=pdfreader.numPages
    #
    text = " "
    for i in range(count):
    page = pdfreader.getPage(i)
    text += page.extractText()
    
    texts.extend([text])
    
  • Во-первых, pypdf2 неплохо работает для некоторых PDF-файлов, но он дает сбой и не сохраняет пробелы между словами для некоторых PDF-файлов, например (pdf-файл от https://www.researchgate.net/publicatio ... _Anaанализ):
Изображение
  • Во-вторых, как я могу извлечь таблицы, если они существуют на странице? pdfplumber может извлекать как текст, так и таблицы, используя методы Extract_text() и Extract_table(). В некоторых документах не удается сохранить пробелы между словами. Это также не удается, когда у нас есть PDF-файлы с двумя столбцами, как это было ранее.
  • Tabula — еще одна альтернатива, но она хороша для таблиц, как я вижу на их веб-сайте. https://github.com/tabulapdf/tabula. Мой конечный вопрос заключается в том, как лучше всего извлекать содержимое, текст и таблицы из PDF-файлов с использованием страниц с одним или двумя столбцами.


Подробнее здесь: https://stackoverflow.com/questions/692 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»