Перейти к содержимому
pdftools.kz
Конвертация

OCR и извлечение текста — разные операции

Извлечение читает символы, которые уже записаны в файле, и ошибиться в них не может: буква «щ» была сохранена как «щ» и вернётся как «щ». Распознавание работает там, где символов нет ни одного, и восстанавливает их по картинке — то есть всегда приблизительно. Первое считается в браузере за доли секунды на страницу, второе идёт на сервере по 2–5 секунды. Путают их постоянно, а выбирать нужно по одному признаку: есть в файле текстовый слой или нет.

Локально в браузередо 1 ГБбез регистрации

Коротко о цифрах

Извлечение
читает готовые символы, ошибок распознавания нет
Распознавание
создаёт символы по картинке, всегда приблизительно
Где считается
извлечение — в браузере, распознавание — на сервере
Скорость
извлечение — доли секунды на страницу, распознавание — 2–5 с
Признак для выбора
выделяется ли абзац мышью в просмотрщике
Нормализация при извлечении
NFKC: лигатура fi и разложенная ә склеиваются в один символ

Две операции рядом

  • Извлечение: вход — PDF с текстовым слоем, выход — TXT, точность полная, обработка целиком в браузере.
  • Распознавание: вход — скан без слоя, выход — тот же PDF со слоем, точность зависит от качества скана, обработка на сервере.
  • Извлечение не меняет исходный файл, распознавание возвращает новый — с добавленным невидимым слоем.
  • Извлечение работает с документом любого объёма в пределах гигабайта, распознавание ограничено 20 страницами и 30 МБ.
  • У извлечения нет очереди и лимита обращений, у распознавания есть и то и другое, потому что оно тяжёлое.

Как за минуту понять, что у вас за файл

  1. Откройте PDF и попробуйте выделить абзац мышью. Строки подсвечиваются — слой есть.
  2. Если вместо строк тянется прямоугольная рамка поверх страницы, перед вами картинка.
  3. Сомневаетесь — прогоните файл через извлечение текста: пустой результат подтверждает отсутствие слоя.
  4. Смешанный случай тоже бывает: несколько страниц с текстом и остальные сканы. Тогда нужны обе операции.
  5. После распознавания извлечение начнёт работать на том же файле — теперь ему есть что читать.

Что происходит внутри каждой из них

Извлечение обходит страницы и собирает текстовые элементы, которые в них записаны, вместе с координатами. Переносы строк берутся из самого документа, а не угадываются: pdfjs помечает последний элемент каждой визуальной строки, и мы это учитываем. Результат нормализуется по NFKC, поэтому лигатура fi становится обычным «fi», а казахская ә, записанная как «а» с отдельным диакритическим знаком, склеивается в один символ — иначе поиск по скачанному файлу вёл бы себя странно.

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

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

Извлечение текста вернуло пустой файл. Инструмент сломался?

Нет, он отработал правильно и сообщил, что читать нечего. Пустой результат означает отсутствие текстового слоя, то есть перед вами скан — и здесь нужна другая операция, распознавание.

Можно ли распознать документ, в котором текст уже есть?

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

Почему извлечение бесплатно и мгновенно, а распознавание нет?

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

Что делать, если часть страниц текстовые, а часть — сканы?

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

Рядом

Частые задачи с этим инструментом