Извлечение текста из PDF
Определение
Извлечение текста из PDF — получение символов из текстового содержимого файла. Распознавание надписей на изображениях требует отдельного шага — OCR.
Также ищут: извлечение текста PDF · PDF text extraction
Зачем это знать
В счёте или спецификации перепутанный порядок колонок меняет смысл цены и количества. Сверяйте ключевые поля с изображением страницы.
Карта понятия
Что подтверждено
pypdf извлекает уже записанный в PDF текст; распознавать символы непосредственно на изображениях он не умеет.
Граница применимости: pypdf 5.0.0; чтение существующего текстового содержимого, включая ранее созданный OCR-слой.
Извлекаемый текстовый слой не доказывает совпадение текста с изображением: он может содержать результат прежнего OCR, а ошибки распознавания сохраняются.
Граница применимости: Проверяйте слой по странице, особенно для артикулов, количества и цены.
PyMuPDF извлекает обычный текст в исходной последовательности PDF; параметр sort упорядочивает его сверху вниз и слева направо. Блоки и слова доступны с координатами.
Граница применимости: Сортировка не гарантирует порядок колонок.
Page.find_tables() находит таблицы, а Table.extract() возвращает текст их ячеек. Таблицы без линий или рамок могут распознаваться ненадёжно.
Граница применимости: Найденная структура требует сверки с оригиналом.
При извлечении текста страницы через pypdf слова, находящиеся только в изображении, остаются вне результата, даже если соседний обычный текст извлёкся.
Граница применимости: Вывод только о pypdf без OCR и готового OCR-слоя.
Что проверить
- Сверьте извлечённые артикул, количество и цену с изображением страницы.
- Если колонки смешались, проверьте координаты блоков или слов и разделите области страницы.
- Для таблицы сравните найденные ячейки, строки и заголовки с расположением данных на странице.
- Если текст есть только на изображении, установите, прошла ли эта область OCR; пустой результат не означает пустую страницу.
Первоисточники
- Extract Text from a PDF
Why Text Extraction is hard; OCR vs Text Extraction. Чтение существующего текста и ошибки прежнего распознавания. Документация версии 5.0.0; локальная лаборатория использует 5.1.0.
- Appendix 1: Details on Text Extraction
Plain Text, BLOCKS, WORDS: порядок и координаты. Плавающая документация; установленную в лаборатории версию 1.25.5 проверяли отдельно.
Утверждения: 03