В прошлом году мы добавили функцию отслеживания изменений для документов Word: вы отправляете DOCX с правками, а получаете Markdown и HTML, где каждая вставка, удаление и комментарий помечены встроенными тегами. Это работало хорошо, но с одним существенным ограничением: функция поддерживала только DOCX, так как считывала разметку правок напрямую из XML документа.
Большинство документов с правками приходят не в формате DOCX. Контрагенты присылают PDF-файлы, чтобы их нельзя было редактировать. Законодательные органы публикуют измененные законопроекты в формате PDF с зачеркнутым и подчеркнутым текстом. Суды подают приказы с правками. Рецензенты распечатывают черновик, вносят пометки и сканируют его обратно. Во всех этих случаях отслеживаемые изменения существуют только как «чернила» на странице.
Сегодня мы расширяем возможности отслеживания изменений на PDF-файлы и отсканированные изображения. Тот же эндпоинт /track-changes теперь принимает PDF или изображение и возвращает ту же встроенную разметку <ins>, <del> и <comment>, считывая её со страницы с помощью новой модели, обученной специально для этой задачи.
Что делает модель
Страница с правками не имеет структуры, которую мог бы извлечь парсер. Она содержит визуальные условности: подчеркнутый или цветной текст для вставок, зачеркивание для удалений, текст в скобках, выноски «Inserted:» и «Deleted:» на полях, пузырьки комментариев с примечанием и иногда инициалами. Каждый редактор и каждый законодательный орган оформляет это по-разному.
Мы обучили модель компьютерного зрения на базе нашего семейства Surya OCR для распознавания этих условностей. Она берет отрендеренную страницу и создает HTML с учетом макета, точно так же, как наш обычный OCR, но с тремя дополнениями:
- Вставленный текст заключается в теги <ins>.
- Удаленный текст заключается в теги <del>, независимо от того, зачеркнут ли он, взят в скобки или вынесен в поле.
- Комментарии на полях превращаются в <comment text="..."> вокруг фрагмента, к которому они привязаны, при этом текст комментария помещается в атрибут text.
Страница без видимой разметки возвращается как обычный результат парсинга, поэтому вы можете прогонять через неё весь документ целиком, не решая постранично, где есть правки, а где нет.
Вот реальный вывод из PDF-файла с правками требований к контракту на распределенную генерацию Illinois Shines — публичного нормативного документа, который пересматривается из года в год, где изменения показаны красным подчеркиванием и зачеркиванием. Скачайте его и прогоните через эндпоинт, чтобы получить тот же результат. В этой версии были обновлены даты публикации и соблюдения требований, а также добавлено примечание вверху:
Это Markdown, который эндпоинт возвращает для этого заголовка:
Обратите внимание на детализацию. Редактор изменил отдельные цифры внутри даты, и модель помечает именно эти цифры, а не всю строку целиком. Ниже термин был заменен внутри маркированного списка, и HTML-вывод сохраняет его на месте внутри списка:
Теги сохраняются во всех форматах вывода. HTML и чанки сохраняют их как есть. В Markdown обычно нет способа выразить вставку или комментарий, поэтому в режиме отслеживания изменений вывод Markdown сохраняет эти три тега как буквальный встроенный HTML, а не преобразует их.
Текст внутри рисунков транскрибируется дословно, а не подписывается, так как в документе с правками рисунок часто представляет собой таблицу или диаграмму, содержимое которой и было изменено.
DOCX и PDF, один эндпоинт
Для документов Word ничего не меняется. DOCX по-прежнему считывается непосредственно из его XML-разметки правок, что является единственным способом получить автора и временную метку для каждого изменения. Эти метаданные не печатаются на странице, поэтому PDF-путь не может их восстановить. PDF-путь восстанавливает то, что видит рецензент: какой текст был добавлен, какой удален и что сказано в комментариях.
Эндпоинт выбирает путь обработки в зависимости от типа файла. Отправьте DOCX, и вы получите точное извлечение. Отправьте PDF, PNG, TIFF или любой другой поддерживаемый формат документа, и он будет отрендерен и прочитан моделью. Сканы обрабатываются так же, как и цифровые PDF, поскольку модель видит только пиксели.
Использование
Установите extras=track_changes в эндпоинте парсинга или вызовите /track-changes напрямую. Форматы вывода: markdown, html и chunks. Параметры page_range, max_pages, paginate, webhook_url и processing_location работают так же, как и везде.
Размеченный вывод — отличный входной сигнал для модели. Поскольку изменения помечены, а не просто описаны, вы можете запросить сводку изменений или сравнить две версии правок, не заставляя модель сначала разбираться, что означает зачеркивание:
Вы также можете извлекать изменения программно, так как теги являются обычным HTML:
Функция также доступна в песочнице (playground). Включите карточку Track Changes и перетащите PDF или изображение.
Где это применимо
- Переговоры по контрактам. Вторая сторона присылает PDF с правками. Извлеките изменения, обобщите их и направьте рецензенту те, которые меняют риски или обязательства.
- Законодательное и нормативное отслеживание. Измененные законопроекты и поправки к правилам публикуются в виде PDF с правками. Превратите каждый из них в структурированный список добавленного и удаленного в масштабах всей сессии.
- Судебные документы. Проекты приказов и измененные ходатайства с правками, прямо из реестра.
- Отсканированные правки. Распечатанный черновик, размеченный вручную или в PDF-редакторе и отсканированный обратно. Модель считывает его так же, как и цифровой PDF.
- Сверка версий. Когда у вас есть PDF с правками и вам нужен чистый текст обеих версий, примите вставки и удалите правки для новой версии или наоборот для старой.
Цены и доступность
Отслеживание изменений в PDF и изображениях оплачивается по той же ставке, что и существующая функция для DOCX: $6 за 1000 страниц сверх стоимости конвертации, и доступно на всех тарифных планах. Функция работает в наших регионах США и ЕС, поэтому processing_location=eu сохраняет изображения страниц внутри региона.
Она также доступна в нашем локальном контейнере (on-prem) для команд, которые не могут отправлять документы вовне. Свяжитесь с нами, если вам это нужно.
Если у вас есть корпус документов с правками, с которыми модель не справляется, или условности, которые мы еще не видели, напишите на [email protected]. Реальные документы — это то, как модель стала такой, и то, как она становится лучше.