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

На ODSC Europe 2018 Хьюберт «подробно рассказал, как его команда создала довольно успешное программное обеспечение для обработки почты для молодой страховой компании. Система глубокого обучения успешно обработала две трети всей полученной почты со скоростью 1000 писем в час. Это ознаменовало улучшение по сравнению со сторонним сервисом сортировки, который компания использовала раньше.

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

Отдельные рукописные и печатные буквы

Команда Хьюберта на раннем этапе решила, что для их области глубокого обучения было бы лучше работать с рукописными и печатными буквами по-разному. Поэтому они должны были пометить буквы в предоставленном наборе обучающих данных как написанные от руки, напечатанные или и то, и другое. Им также нужно было отделить все, что не было письмом (конверты, бланки и т. Д.). Команда создала веб-платформу и вручную пометила около 2000 документов по этим четырем категориям.

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

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

Хьюберт отправил 2000 изображений в автоэнкодеры и представил их вручную определенные метки в скрытом пространстве. Это упростило традиционному алгоритму машинного обучения маркировку всех изображений в наборе данных. Модель со скрытым пространством позволяет достичь 97-процентной производительности AUC и очень низкого уровня ошибок, что означает, что она очень эффективно распознает рукописные буквы по сравнению с печатными.

Работа с набранными буквами

Хьюберт сказал, что работа с печатными письмами была самой простой частью создания системы обработки почты. Используя инструмент под названием Tesseract Open Source Optical Recognition Engine, команда просто ввела изображения и указала их язык. Тессеракт вывел полностью оцифрованный текст.

Инструмент Tesseract несовершенен. Например, когда он пытается разобрать подписи, он производит дикие и неточные символы. Однако в целом инструмент оказался очень эффективным для команды Хьюберта: оцифровка слов сделала сортировку тривиальной задачей. Для сортировки команда просто использовала метрики частотно-обратной частоты писем в документе (или tf-idf). Выполнение логистической регрессии по этим показателям дает хорошие результаты сортировки.

Таким образом, печатные письма можно было относительно легко пересылать в соответствующие отделы.

Обнаружение слов в рукописных письмах

Напротив, обнаружение слов в написанных от руки буквах довольно сложно. Из букв, которые выглядят так:

сеть глубокого обучения должна была извлечь все слова и найти способ их оцифровывать.

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

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

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

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

График этих сумм показывает, как метод профиля проекции определяет пробелы, разделяющие строки и отдельные слова:

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

Извлечение слов из изображений

Глубокое обучение может преобразовывать изображения слов в компьютеризированный формат, из которого в конечном итоге можно будет читать и систематизировать методы обработки естественного языка.

Команда Хьюберта немного пометила себя и дополнила эти изображения, чтобы расширить набор данных, но им потребовалось больше данных для обучения, чтобы создать действительно надежный инструмент глубокого обучения. Поэтому они объединили свои помеченные данные с онлайн-базой данных IAM, которая содержит более 100 000 правильно написанных от руки слов. Затем они добавили изображения слов, сделанные из различных шрифтов, похожих на человеческий почерк.

Между этими тремя источниками их корпус вырос до 300 000 изображений с пометками.

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

Основываясь на оцифрованных словах, команда снова смогла использовать tf-idf, чтобы найти тему писем и определить, в какой отдел следует отправлять каждое письмо.

Положительные результаты

Из всех писем, отсканированных в систему, отдел глубокого обучения решил отсортировать 78 процентов из них, и из этих 90 процентов были отправлены в соответствующий отдел. В 22 процентах случаев система не могла определить преобладающую тему, и письмо приходилось сортировать вручную вместе с теми 10 процентами писем, которые направлялись не в тот отдел.

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

Оригинальная история здесь.

— — — — — — — — — — — — — — — — — —

Прочтите больше статей по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от новичка до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг.