1. Главная
  2. Блог
  3. RAG и базы знаний
  4. OCR и PDF для базы знаний: как достать текст из сложных документов

OCR и PDF для базы знаний: как достать текст из сложных документов

14 августа 2026
9

Значительная часть корпоративных знаний хранится в PDF: регламенты, техническая документация, договоры, паспорта изделий, отсканированные приказы. И это самый частый источник провалов RAG — причём провалов, которые обнаруживаются поздно.

Причина в том, что PDF не является текстовым форматом. Это описание того, как расположить символы на странице. Логической структуры — где заголовок, где таблица, где колонка — в нём может не быть вовсе. Извлечение текста из PDF всегда в той или иной степени реконструкция.

Три вида PDF, и они требуют разного

Текстовый. Внутри лежат символы, их можно извлечь напрямую. Быстро и точно, но структура всё равно требует внимания.

Сканированный. Внутри картинки. Текста нет вообще. Без распознавания вы получите пустоту — и это ровно тот случай, когда «документ загружен, но система его не видит».

Смешанный. Текстовый слой есть, но частичный: часть страниц отсканирована, схемы и таблицы вставлены картинками. Самый неприятный вариант, потому что выглядит как рабочий и молча теряет содержимое.

Первое, что надо сделать с корпусом PDF, — определить, чего и сколько. Проверка автоматизируется: посчитать долю страниц без текстового слоя. Результат обычно удивляет — в корпусах, которые считали текстовыми, регулярно обнаруживаются десятки процентов сканов.

Что ломается при извлечении

Многоколоночная вёрстка. Извлечение идёт по порядку символов в файле, а он не всегда совпадает с порядком чтения. Две колонки легко превращаются в чередование строк из левой и правой — текст становится нечитаемым и для человека, и для поиска.

Таблицы. Самая частая потеря. Таблица превращается в поток чисел без привязки к строкам и столбцам. Фрагмент «ТМ-40/6 148400 5 12 нет» бесполезен: непонятно, что цена, что срок, что признак наличия.

Заголовки. Если структура не распознана, заголовок становится обычной строкой. Дальше нарезка не может резать по разделам, и фрагменты теряют контекст — «Чанкинг документов».

Колонтитулы и номера страниц. Попадают в каждый фрагмент, зашумляя поиск: название компании из колонтитула повторяется тысячи раз и размывает векторы.

Сноски и примечания. Врезаются в середину предложения основного текста.

Переносы. Слово, разорванное между строками, становится двумя несуществующими словами и ломает словесный поиск.

Что нужно сохранить

Не «извлечь текст», а извлечь его так, чтобы он был пригоден для поиска:

  • порядок чтения — правильный при любой вёрстке;
  • иерархию заголовков — для нарезки по структуре;
  • таблицы как таблицы — со связью значений и заголовков колонок;
  • списки — нумерация нужна, чтобы «пункт 4.2» находился;
  • привязку к странице — для ссылок на источник;
  • подписи к рисункам — часто несут ключевые сведения.

И убрать: колонтитулы, номера страниц, водяные знаки, служебные пометки.

Распознавание сканов

Качество исходника решает больше, чем выбор инструмента. Скан с разрешением 150 точек на дюйм, перекошенный и с пятнами, не распознается хорошо ничем. Предобработка — выравнивание, чистка фона, повышение контраста — иногда даёт больший прирост, чем смена системы распознавания.

Русский язык требует явного указания. Распознавание по умолчанию настроено на латиницу, и на кириллице без указания языка выдаёт мусор, похожий на текст.

Таблицы в сканах — отдельная задача. Нужно распознать не только символы, но и разметку: где границы ячеек, где заголовки. Не все инструменты это умеют.

Проверка обязательна. Распознавание даёт ошибки, и часть из них тихие: «5» превращается в «S», «0» в «О», «1» в «l». В технической документации и прайсах это меняет смысл, не вызывая подозрений. Выборочная сверка распознанного с оригиналом — обязательный этап, а не перестраховка.

Отдельно стоит отметить: современные мультимодальные модели неплохо читают страницы целиком, включая таблицы и схемы. Это дороже классического распознавания, но на сложной вёрстке иногда единственный работающий путь.

Разбор: 4 000 сканов технической документации

Задача. Производственная компания, архив паспортов изделий и инструкций за 15 лет. Около 4 000 документов, значительная часть — сканы разного качества. Нужен поиск по параметрам оборудования.

Что было сделано сначала. Загрузили всё как есть, извлекли текст стандартными средствами, проиндексировали. Система заработала и отвечала — плохо, но отвечала.

Что показала проверка. Посчитали долю страниц без текстового слоя: 62 процента. То есть почти две трети архива в индекс не попали вовсе. Система отвечала по трети корпуса и не сообщала об этом — просто не находила остального.

Это характерно: отсутствие текста не вызывает ошибки. Документ обрабатывается «успешно», просто в нём ноль символов.

Что делали дальше.

Разделили корпус на три группы по наличию текстового слоя и обрабатывали по-разному.

Для сканов провели предобработку: выравнивание перекоса, чистка фона. На старых документах это дало заметный прирост качества распознавания.

Распознавание с явным указанием русского языка и с сохранением разметки таблиц. Параметры изделий лежали именно в таблицах, и без их структуры весь проект терял смысл.

Здесь вскрылась главная сложность. В паспортах изделий таблицы параметров имели двухуровневые заголовки: верхний ряд — режим работы, нижний — параметр. Стандартное распознавание давало плоскую таблицу, и значение теряло привязку к режиму. Ответ «допустимое давление 12 атм» без указания режима — неверный по существу.

Решили тем, что для этого класса документов таблицы обрабатывались отдельно, с восстановлением двухуровневой шапки, и каждая строка превращалась во фрагмент с приписанными обоими уровнями заголовков.

Провели выборочную проверку: 200 случайных страниц сверили с оригиналами. Нашли систематическую ошибку — в обозначениях изделий цифра «0» распознавалась как буква «О» примерно в каждом восьмом случае. Добавили правило постобработки для формата обозначений.

Сроки. Извлечение и распознавание заняли около трёх недель, из них две — на таблицы и проверку. Настройка поиска после этого — несколько дней.

Что стоит забрать. Подготовка документов оказалась основной частью проекта, а не подготовительной. Соотношение примерно такое: работа с исходниками — большая часть, настройка поиска — заметная, всё остальное — небольшая. Это типично для корпусов с бумажным происхождением, и это надо закладывать в план, а не обнаруживать в середине.

Что проверить до начала проекта

Полдня работы, которые предотвращают неприятные открытия:

  1. Какая доля страниц без текстового слоя? Определяет, нужно ли распознавание и в каком объёме.
  2. Есть ли таблицы и несут ли они ключевые сведения? Если да, это отдельная статья работ.
  3. Какое качество сканов? Разрешение, перекос, читаемость.
  4. Есть ли исходники? Иногда PDF сделан из документа, который до сих пор лежит у автора. Работать с оригиналом всегда лучше, чем реконструировать.
  5. Многоколоночная ли вёрстка? Требует контроля порядка чтения.

Пятый пункт часто закрывает вопрос неожиданным образом: обнаруживается, что половина архива есть в исходном формате, и распознавать нужно не 4 000 документов, а 900.

Частые вопросы

Почему RAG не работает с нашими PDF?

Скорее всего, текст из них не извлёкся. Если PDF сделан из сканов, внутри картинки, и без распознавания система получает пустоту — при этом обработка проходит «успешно», просто с нулевым результатом. Первое, что нужно проверить, — долю страниц без текстового слоя.

Чем извлечение текста отличается от распознавания?

Извлечение достаёт символы, которые уже есть внутри файла, — это быстро и точно. Распознавание читает текст с изображения, когда символов внутри нет, — медленнее и с ошибками. В смешанных корпусах нужны оба способа, применяемые к разным документам.

Как сохранить таблицы при извлечении?

Нужен инструмент, распознающий структуру, а не только символы: где границы ячеек и где заголовки. Дальше таблицу либо оставляют целым фрагментом, либо режут построчно, приписывая к каждой строке заголовки колонок. Без этого строка превращается в набор чисел без значения.

Насколько точно распознаётся русский текст?

На качественных сканах — хорошо, при условии, что язык указан явно: по умолчанию распознавание часто настроено на латиницу и выдаёт правдоподобный мусор. На старых, перекошенных и низкокачественных сканах ошибки неизбежны, и выборочная проверка результата обязательна.

Сколько времени занимает подготовка документов?

Для корпуса с большой долей сканов и таблиц это обычно основная часть проекта, а не подготовительный этап. Настройка поиска после хорошо подготовленных документов делается быстро; на плохо подготовленных она не спасает.

Можно ли обойтись без распознавания, если сканов немного?

Если сканы — это несущественная часть корпуса, можно начать без них и добавить позже. Важно знать их долю заранее: система, отвечающая по трети документов, выглядит работающей, но систематически не находит остального и об этом не сообщает.

Что дальше

После извлечения текст надо правильно нарезать — «Чанкинг документов». Требования к содержанию документов — «Подготовка базы знаний для ИИ» и «Готовность данных к внедрению ИИ». Если система не находит загруженное — «Почему RAG не находит документ».

Обработка архивов документов, включая распознавание со структурой таблиц, входит в работу по разработке и внедрению ИИ.