Инструмент разметки для обучения юридической OCR-модели

Собственный интерфейс разметки для обучения юридической OCR-модели, в котором размечали помощники юристов: каждое исправление становилось размеченными данными для обучения

Моя роль

Дизайнер-фрилансер

Год
2014
Отрасль
Юриспруденция, машинное обучение
Команда
Единственный дизайнер и один инженер, отвечавший за переобучение
  1. Наблюдал за работой трёх помощников юристов в региональном офисе, брал у них интервью и вместе с ними нарисовал карту их работы.
  2. Спроектировал и разработал собственный интерфейс разметки для обучения юридической OCR-модели: помощники юристов размечали фрагменты с низкой уверенностью, отмеченные моделью, выбирая из классификации ошибок четырёх типов.
  3. Работал с нашим инженером, который сделал часть, возвращавшую каждое исправление в модель для переобучения.
  • 86%→93% уверенность модели в сомнительных местах на 1250 обучающих документах; модель стала увереннее, но её точность не доказана
  • 4 из 6 голосов трёх помощников юристов за самый напряжённый момент пришлись на ручную проверку набранного текста
  • 4 типа ошибок, которые помощники юристов определили вместе с нашим инженером, первые подсказки, на которых училась модель

Кратко

Перед судом каждая сторона обязана передать свои документы, этот этап называется раскрытием доказательств (discovery), и он заваливает юристов тысячами отсканированных страниц. Программы OCR, то есть оптического распознавания символов, превращают изображение страницы в текст. На сильно потрёпанных медицинских документах они ошибаются настолько часто, что текст приходится проверять вручную, а помощники юристов не могли понять заранее, какие страницы потребуют такой работы.

Я спроектировал и разработал собственный интерфейс разметки для обучения юридической OCR-модели. Размечали помощники юристов: они исправляли фрагменты, в которых модель была меньше всего уверена, и каждое исправление становилось размеченными данными для обучения. Модель стала увереннее. Потом проект остановился, причём не из-за модели, а из-за того, кому она принадлежит.

Кто участвовал

  • Помощники юристов Трое в региональном офисе, переводившие потрёпанные медицинские документы в текст. Именно они задали порог, какие места проверять.
  • Наш инженер Инженер по машинному обучению, который сделал часть, отвечавшую за переобучение, и попросил короткий фиксированный список типов ошибок.
Инструмент исправлений в браузере: слева отсканированная карта экстренной помощи, каждое сомнительное место обведено красным, справа панель, где каждое такое место выведено отдельным редактируемым полем рядом с меню типа ошибки. Снимок готового инструмента исправлений. Документ приобщён к делу как доказательство; персональные данные закрашены.
Страница, где обведены сомнительные слова. Красным обведены только места, в которых программа уверена меньше чем на 86%, а остальная страница остаётся нетронутой.

Контекст

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

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

Исследование

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

Я дал каждому по два голоса, чтобы отдать их за самый напряжённый момент, и попросил объяснить почему. Четыре голоса получила ручная проверка текста, два ожидание сканирования. Когда мы сравнили бесплатную программу распознавания Tesseract с программой сканера, которая у них уже была, помощники юристов сами решили, где проходит граница ручной проверки: они хотели видеть всё, в чём программа уверена меньше чем на 86%.

Карта допущений
Карта пути помощников юристов: этапы подготовки отсканированных документов к OCR, что они делали на каждом и где, по их словам, работа шла не так.
Карта пути. Нарисована вместе с тремя помощниками юристов; по итогам голосования четыре голоса из шести пришлись на ручную проверку, хотя на карте семь точек из-за ошибки при подсчёте во время сессии.

Дизайн

Панель исправлений с заголовком Text Extractions: в строках сырые результаты распознавания вроде Pg4of34, po, i и wi, рядом с каждым меню типа ошибки, слева виден край отсканированного документа. Снимок готовой панели исправлений. Сворачивание и полупрозрачный фон описаны по работающему инструменту; на статичном снимке их не видно.
Панель вместо блокнота. По строке на каждый сомнительный фрагмент, в каждой распознанный текст, который нужно исправить, и меню типа ошибки.

Tesseract оценивает, насколько он уверен в каждом фрагменте текста, и всё, что ниже порога в 86%, обводится красным прямо на странице. Идея пришла из полиграфии, где корректуру правят на самой странице, а не в списке где-то в стороне.

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

Итерации

Две вещи, которые я поначалу считал само собой разумеющимися, не подтвердились. Первый раунд исправлений показал, что одного исправленного текста модели для обучения мало, поэтому помощники юристов вместе с нашим инженером выделили четыре типа ошибок: Misread (неверно прочитано), Incomplete (неполно), Bad format (неверный формат) и Other (другое). Неверное прочтение остаётся на совести модели, а неверный формат на совести страницы, поэтому их разделение позволяет модели извлечь из каждого случая правильный урок.

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

Панель исправлений с открытым в одной строке меню типа ошибки и четырьмя вариантами: Misread, Incomplete, Bad format и Other. В полях рядом сырые результаты распознавания вроде po, Complaint; и aiey. Снимок готовой панели исправлений. Четыре ярлыка образуют список в том виде, в каком он вышел; добавить пятый не мог ни один проверяющий.
Четыре слова, и одно из них Other. Благодаря Other список остаётся коротким и при этом честно признаёт, чего не охватывает.
Тот же документ с ползунком масштаба в крайнем правом положении. Страница увеличена в несколько раз, а красный контур по-прежнему точно лежит на слове Complaint, панель исправлений рядом не изменилась. Снимок готового инструмента исправлений при максимальном увеличении. Документ приобщён к делу как доказательство; персональные данные закрашены.
Масштаб пришлось делать своим. При максимальном увеличении красный контур остаётся на своём слове.
Панель исправлений рядом с консолью разработчика в браузере. Консоль записывает каждое исправление небольшой записью из четырёх частей: index, originalDescription, correctedDescription и errorType, со значениями вроде po, исправленного на smudge и отнесённого к Other. Снимок готового инструмента исправлений с открытой консолью. В каждой записи четыре показанные части; место на странице и уверенность программы остаются при исходных результатах распознавания и сопоставляются по номеру.
Каждое исправление сразу готово к использованию. Номер места, то, что прочитал Tesseract, то, что напечатал помощник юриста, и тип ошибки сохраняются одной записью.

Результаты

На 1250 обучающих документах уверенность модели в сомнительных местах выросла с 86% до 93%. Это показатель её уверенности, а не доказательство её правоты. Мы так и не отложили пачку страниц, на которых она не обучалась, чтобы проверить её на них, поэтому могу сказать только одно: модель стала увереннее в себе, но не точнее.

Сэкономленное время официально не измеряли. Затраты, с которыми его сравнивали, примерно 12 сомнительных мест на документ по 30 секунд на каждое при ставке $35 в час, это моя оценка по наблюдениям за сессиями, а не результат формального хронометража.

  • Список из четырёх типов ошибок, составленный помощниками юристов и нашим инженером.

  • Встроенное масштабирование, потому что масштаб браузера смещал контуры с их слов.

Ретроспектива: что его остановило

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