Два разных PDF, которые выглядят одинаково
Файл PDF может хранить две принципиально разные вещи, и на экране они неотличимы.
«Цифровой» PDF — выгруженный из Word, «Google Документов», вёрстки или отчётной системы — хранит настоящие символы. Каждая буква и пробел записаны как данные: их можно выделить, найти поиском, скопировать.
«Сканированный» PDF — это контейнер с фотографиями страниц. Глазу человека — та же страница текста. Программе — набор пикселей, читаемый ровно настолько же, насколько текстовый файл читается из фотографии дорожного знака.
Разница невидима в обычном использовании и становится очевидной в ту секунду, когда что-то пытается извлечь из файла текст. И именно поэтому «возьми модель поумнее» тут не помогает: суммаризация работает с текстом, а текста в файле нет. Чинить нужно на шаг раньше — на превращении изображения в символы, то есть распознаванием.
Как бот ведёт себя со сканом
Разбор PDF ищет в файле текстовый слой. Нашёл — дальше обычный путь: выжимка тезисами, абзацами, ключевыми выводами или коротким TL;DR.
Не нашёл — возвращается честная ошибка: в PDF нет извлекаемого текста, файл сканированный или состоит из изображений. Не выдуманная выжимка по названию файла, не догадка по первой странице — отказ.
Распознавания в этом пути нет, и это не недоделка, которую вот-вот закроют. Распознавание многостраничного скана — заметно более тяжёлая операция, чем извлечение текста, и встраивать её в каждую загрузку ради меньшинства файлов означало бы замедлить подавляющее большинство. Честнее отказать быстро и понятно и показать, что сделать дальше.
Четыре признака, что PDF сканированный
Проверяется за десять секунд, до всякой отправки:
- Текст не выделяется. Пробуете выделить абзац мышью — выделяется прямоугольник целиком, как картинка.
- Поиск по документу ничего не находит. Ищете слово, которое точно видите на экране, — ноль результатов.
- Страница слегка перекошена, есть тени и серый фон. Следы съёмки или сканера.
- Файл неожиданно тяжёлый. Двадцать страниц текста весят мегабайты — значит, внутри изображения, а не символы.
Отдельный, самый коварный случай — «гибрид»: скан, поверх которого уже прогнали распознавание, но плохо. Текст выделяется, поиск что-то находит, а в извлечённом виде вместо «отчёт» стоит «отчёг». Такой файл обработается без ошибки, и мусор попадёт в выжимку молча. Поэтому после любого распознавания есть смысл выделить пару абзацев и посмотреть, что реально скопировалось.
Что сделать со сканом
Распознавание в том, чем вы уже пользуетесь. Штатные средства операционной системы, приложение сканера, офисный пакет — почти в каждом есть режим «распознать текст» или «сохранить как PDF с возможностью поиска». Отдельный сервис для этого обычно не нужен.
Проверьте результат до отправки. Откройте распознанный файл, найдите поиском слово с середины документа и выделите абзац. Если копируется читаемый текст — файл готов.
Простой запасной путь: скопировать текст руками. Для двух-трёх страниц это быстрее любых манипуляций с форматами: вставленный в чат текст обрабатывается напрямую.
Проверьте качество исходника. Кривая съёмка при плохом свете распознаётся плохо в любом инструменте. Переснять страницу ровно и при дневном свете — дешевле, чем чинить последствия.
Чего ещё не будет
Фотография страницы, скриншот и присланное изображение не читаются: нужен текст либо PDF с текстовым слоем. Защищённый паролем файл не откроется. Ограничения на PDF: до 15 МБ, до 50 страниц, до 5000 слов извлечённого текста — длинный документ разумно делить по главам.
Почему честный отказ лучше догадки
Инструмент, который на пустом входе выдаёт правдоподобный текст, опаснее инструмента, который отказывается. Выжимка по договору, которого никто не прочитал, выглядит убедительно и ровно поэтому попадает в переписку и в решение.
Отказ стоит вам минуты на распознавание. Выдуманная выжимка стоит доверия к документу, и обнаруживается это обычно позже, чем хотелось бы.
Когда текстовый слой появился
Дальше работает обычный разбор PDF: до 15 МБ, до 50 страниц, извлечение с сохранением границ страниц.
Отдельно полезное: у загруженного файлом документа появляется возможность задать по нему уточняющие вопросы — короткий диалог по PDF. Для PDF, открытого по ссылке, такой кнопки не будет: диалог работает только с файлом, который вы прислали в чат.
И то же, что на остальных страницах: выжимка приходит на языке вашего интерфейса Telegram. Англоязычный отчёт даёт русский конспект без отдельного перевода.
Сколько это стоит
Три коротких выжимки в день бесплатно. Дальше короткий текст — $0.05, длинный — $0.10. Списание происходит после того, как выжимка готова: за отказ по сканированному файлу денег не берут — неудачный разбор не оплачивается.