Распознавание PDF нейросетью: сначала текст, потом смысл
Распознавание PDF нейросетью начинается с проверки файла: текстовый слой или скан. Разбираем OCR, сверку чисел и подготовку читаемого текста к анализу в чате.
Денис
Продакт LibraChat
6 мин чтения
В каталоге экспонатов один код читался то как «Б-08», то как «Б-0В». Для обычного пересказа разница почти незаметна. Для поиска нужной коробки это разные записи. Когда я разбираю распознавание PDF нейросетью, начинаю с такого вопроса: нам нужен понятный рассказ о странице или точный текст с сохранением спорных символов?
Под словом «распознать» часто прячутся сразу несколько действий. Одно дело получить буквы из изображения. Другое — извлечь уже существующий текст. Третье — составить по нему краткую заметку. Их удобно разделить до выбора программы, иначе красивый пересказ скроет плохое распознавание.
Распознавание PDF нейросетью: что находится внутри файла
Расширение PDF само по себе не отвечает, есть ли в документе доступный текст. Страница может содержать текстовые объекты, изображение от сканера или сочетание разных элементов. В одном файле также встречаются страницы разного происхождения.
Открой документ в просмотрщике и попробуй выделить несколько слов, затем скопировать их в простой текстовый редактор. Сверь результат с картинкой страницы. Сделай это не только на обложке: проверь страницу из середины и ту, где есть сложная таблица.
Если слова копируются нормально, первичная задача может свестись к извлечению текста. Если страница выделяется как картинка, а слова получить не удаётся, вероятно, понадобится OCR. Но это предварительный признак, не окончательный диагноз: на копирование могут влиять устройство PDF, кодировки и разрешения документа.
Даже у скана иногда уже есть невидимый распознанный слой. Тогда выделение работает, но в буфер попадает старый результат OCR со своими ошибками. Возможность копировать не доказывает качество.
Я различаю три этапа:
Этап · Что поступает на вход · Что проверяем на выходе
Извлечение имеющегося текста — PDF с пригодным текстовым слоем — Символы, порядок чтения, переносы
OCR — Изображения страниц — Совпадение распознанных знаков с изображением
Разбор содержания — Проверенный читаемый текст — Выводы, ссылки на фрагменты, отсутствие додуманных сведений
Если сначала перепутался код экспоната, последующий пересказ не обязан это обнаружить. Он может лишь убедительно повторить неправильный код.
Что делает OCR и при чём здесь нейросеть
OCR — оптическое распознавание символов. Задача системы состоит в том, чтобы получить машинно читаемый текст из изображения. Нейросетевые методы могут участвовать в этом процессе: например, у движка Tesseract есть режим на основе LSTM-сети для распознавания строк.
Это не означает, что любой чат, умеющий обсуждать документы, автоматически заменяет OCR-программу. Способ получения текста, поддержка языков, обработка таблиц и формул зависят от конкретного инструмента и режима.
Я представляю, как буду пользоваться страницей после обработки. Для поиска по архиву подойдёт PDF с распознанным текстовым слоем. Для переноса заметок может понадобиться отдельный текст. Для расчётов из таблицы важно восстановить отношения между строками и колонками. Просто получить последовательность слов в последнем случае недостаточно.
Как один из вариантов отдельного OCR можно рассмотреть настольный Adobe Acrobat с доступной функцией распознавания. В его актуальной справке путь начинается с инструментов сканирования и OCR: открыть файл, выбрать распознавание текста в этом файле, задать страницы и язык, выполнить операцию и сохранить результат.
Названия команд зависят от интерфейса и доступных функций установленной версии. Наличие просмотрщика PDF не означает наличие нужного OCR-режима. Перед обработкой большого каталога я бы проверил возможность на одной типичной странице, а не начинал с всего архива.
Есть и специализированные сервисы обработки документов, в том числе для программных конвейеров. Их стоит оценивать по нужному виду результата, языкам и условиям работы с файлами. Слово «нейросеть» на кнопке само по себе не отвечает ни на один из этих вопросов.
Сначала контрольная страница, затем остальные
Для каталога с кодами я выбрал бы страницу, на которой есть обычный абзац, номера и небольшая таблица. Это не обязательно самая чистая страница. Нам нужно увидеть, как процесс справляется с характерными трудностями документа.
Рабочая последовательность такая:
Сохрани исходный PDF отдельно и работай с копией.
Проверь ориентацию и читаемость страницы. Если доступен лучший исходник, используй его.
Запусти OCR для контрольной страницы, указав подходящий язык.
Скопируй полученный текст и сопоставь его с изображением.
Только после оценки результата выбирай обработку остальных страниц.
Для коротких кодов отдельно сверяй:
ноль и букву О;
единицу и латинскую I;
похожие кириллические и латинские буквы.
В обычном слове ошибка может броситься в глаза, а в коротком коде выглядеть правдоподобно.
Для примера с «Б-08» я не разрешаю угадывать последнюю позицию по соседним записям. Если изображение не даёт уверенного ответа, оставляю пометку «последний символ неразборчив» и номер страницы. Это лучше, чем превращать предположение в точную запись.
Отдельно проверь порядок чтения. В двухколоночном тексте строки могут оказаться перемешаны. В таблице значение из правого столбца может оторваться от своего названия. Дата, код и заголовок иногда читаются верно по отдельности, но вместе образуют неправильную строку.
Я также отмечаю знаки минуса, десятичные разделители и единицы. Условные «1,5» и «15» выглядят близко, а означают разное. Исправлять число по смыслу без обращения к изображению нельзя.
После переноса проверенного текста в рабочий документ пригодится инструкция как сохранить документ в Word. Но сохранение в другом формате ещё не подтверждает правильность распознавания.
Что передавать в чат после сверки
Для LibraChat не стоит рассчитывать на надёжное чтение сканированного PDF как на замену отдельного OCR. Практический путь здесь — сначала получить читаемый текст и проверить важные места. После этого можно обсуждать содержание.
В каталоге я отделил бы две задачи: точную расшифровку строк и редакторскую заметку для посетителя. В первой нельзя исправлять обозначения на более красивые. Во второй можно упростить язык, сохранив исходные факты и явно отмеченные пробелы.
Попробуй сейчас LibraChat с небольшим проверенным фрагментом и ясной границей задачи:
Ниже текст после OCR, который я сверил со страницей [номер]. Составь краткую заметку об экспонате. Коды и числа переноси дословно. Места [неразборчиво] не заполняй догадкой. Отдельно перечисли вопросы, на которые исходный фрагмент не отвечает. Текст: [фрагмент].
Когда заметка готова, вновь сравни коды с проверенным текстом. Если нужен отдельный документ, сначала уточни его содержание; переформулировка не восстанавливает исходный макет. А перед обработкой длинных материалов прочти условия тарифов LibraChat, чтобы выбрать подходящий вариант работы.
Я сохраняю рядом изображение страницы, проверенный текст и заметку. У каждой версии своя роль: изображение позволяет вернуться к спорному символу, текст удобен для поиска, заметка помогает читателю понять содержание.
Хороший итог распознавания не всегда выглядит идеально гладко. Иногда это аккуратная строка с одной честной пометкой «неразборчиво». Пока новый исходник не прояснит код, такая пометка точнее любого уверенного продолжения.