Native PDF или OCR: как выбрать путь обработки
В invoice parsing часть документов native PDF, часть сканы. Как определить, какой путь обработки использовать и какие ошибки ждать?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Пробуем извлечь text layer и координаты; если текста нет или он мусорный, идем в OCR. Для обоих путей сохраняем layout и confidence.
Полный разбор
Native PDF обычно содержит текстовый слой: его можно извлечь быстрее, дешевле и точнее, чем OCR. Но текст может быть разбит странно, таблицы могут потерять структуру, а порядок чтения может не совпадать с визуальным.
Для сканов нужен OCR: там появляются ошибки распознавания символов, повороты, шум, плохое качество картинки, разрывы строк и неправильные таблицы. Поэтому pipeline должен сначала классифицировать документ: есть ли text layer, сколько текста извлекается, похож ли он на реальные слова/числа, есть ли страницы без текста.
Дальше оба пути лучше привести к одному формату: blocks/tables/cells with coordinates and confidence. Это упрощает downstream extraction и eval.
Типичные ошибки
- Всегда гонять OCR и платить лишнюю latency/cost.
- Доверять text layer без проверки качества.
- Терять координаты и layout при извлечении текста.
Как отвечать на собеседовании
- Скажи про unified layout representation.
- Упомяни confidence и fallback между путями.