Со 2 по 4 марта 2021 года Microsoft провела виртуальный хакатон, на котором были собраны отличные идеи. Программа «Один коммерческий партнер» (OCP) ускоряет рост, открывая новые рынки и предлагая решения для преобразования методов работы предприятий. Стремясь внедрять инновации и возглавлять НОВОЕ, в сотрудничестве с Microsoft, Acclaim запустила программу Microsoft OCP - путешествие, которое обещает массу знаний и отличные награды.
Версия 1 - Команда инноваций:
В хакатоне приняла участие команда из 4 человек из команды инноваций версии 1. Команда по инновациям работала над инструментом просмотра и ввода форм с несколькими своими государственными клиентами. Инструмент используется при обработке заявок, состоящих из многочисленных PDF / отсканированных форм. Основная цель участия в хакатоне - изучить возможности дальнейшей постобработки и проверки данных перед окончательной проверкой и отправкой.
Пример использования: интеллектуальный сбор данных
Мы выбрали общую проблему, с которой сталкиваются наши клиенты. Они тратят огромное количество времени и ресурсов на ручной ввод данных. Распознаватель форм отлично справляется с извлечением печатного текста из форм, но рукописные формы иногда могут быть очень сложными. Поэтому мы хотели создать решение на основе возможностей Form Recognisers, автоматически предлагая и исправляя, когда это происходит при обработке рукописного текста.
Очистка вывода Form Recogniser для рукописных форм путем выделения предлагаемых исправлений и построения проверок (с использованием векторных пробелов).
Функцию надстройки можно использовать в таких полях, как:
- Имя (Имя и Фамилия)
- Адрес
- округ
- Страна
- Эл. адрес
- Eircode
Автоматическое предложение / исправление текста для плохо распознанных данных из Azure Form Recognizer
Распознаватель форм Azure:
Form Recogniser - это служба извлечения документов на базе искусственного интеллекта, которая понимает формы и извлекает пары ключ-значение, таблицы и текст из таких документов, как налоговые отчеты W2, отчеты о завершении, счета-фактуры и заказы на закупку. В Form Recogniser добавлена поддержка рукописных и смешанных (печатных и рукописных) и печатных форм.
В нашем решении мы разработали приложение Flask, которое использовало пользовательскую модель Form Recogniser для извлечения вышеупомянутых полей из отсканированных форм, которые в основном были написаны от руки.
Чтобы узнать больше о настройке Azure Form Recognizer и создании пользовательской модели, прочитайте наш предыдущий блог.
Проблемы:
При анализе документов мы обнаружили, что Form Recogniser испытывал трудности с обработкой документов с плохим почерком или неправильно сканировал. Некоторые символы распознаны неправильно.
Наше решение:
Добавьте дополнительный уровень проверок, которые будут использовать предопределенные шаблоны регулярных выражений (на основе определенных полей), чтобы определить, имеют ли извлеченные данные допустимый формат или нет. Если какие-либо значения полей не проходят проверку, мы отправляем эти данные в нашу модель автокоррекции (поясняется ниже), чтобы сгенерировать предложения, близкие к фактическому ответу.
Проверка поля
На хакатоне мы сосредоточились только на проверке некоторых полей, таких как MPRN, Eircode и RECI Number. Мы рассмотрели следующие параметры для проверки каждого поля.
- Тип данных: строка, дата, целое число.
- Шаблон: проверка регулярного выражения, включая разрешенные символы.
- Правило: основанное на логике, например диапазон номеров, диапазон дат, максимальное количество и т. д.
- Проверки: внутренний или внешний поиск, например, допустим, мы хотим узнать, действителен ли распознанный MPRN. Нам нужно найти какую-то базу данных или внешний сервис.
Мы создали скрипт python, который принимает результаты распознавателя форм и проверяет их по файлу поиска JSON, состоящему из шаблона регулярного выражения каждого поля. Если шаблон соответствовал проверкам, определенным выше (правило, тип данных и проверки), мы перешли к следующему этапу рабочего процесса. Если проверка не удалась, мы попытались выполнить автокоррекцию и предложить пользователям возможные варианты с использованием алгоритмов машинного обучения и векторного пространства.
Автокоррекция текста
Для автокоррекции полей мы обнаружили сходство между правильными и неправильными словами. Например.
В приведенной выше таблице слова справа неверны, но они тесно связаны со словами слева. Итак, при визуализации этих слов на двухмерной плоскости слова с одинаковым написанием оказываются ближе друг к другу, как показано ниже.
Мы разработали аналогичную модель, которая автоматически исправляла ирландские имена, работала над следующими тремя концепциями.
- Встраивание слова:
Это векторное представление слов, в котором каждое значение в векторе имеет веса. Это заученное представление текста, в котором слова, имеющие одинаковое значение, имеют аналогичное представление. Преимущество использования этого метода заключается в том, что они имеют низкоразмерное пространство и плотные (большинство значений в векторе ненулевые).
Основная цель заключалась в том, чтобы слова с похожим контекстом занимали близкие пространственные позиции. Математически косинус угла между такими векторами должен быть близок к 1, то есть угол близок к 0. Интуитивно мы вводим некоторую зависимость одного слова от других слов.
2. Word2Vec:
Это метод построения упомянутых выше вложений. Его можно получить с помощью двух подходов, в каждом из которых задействованы нейронные сети.
- Непрерывный набор слов (CBOW): этот метод принимает контекст каждого слова (один или несколько контекстов) в качестве входных данных и пытается предсказать слово, соответствующее контексту.
- Пропустить грамм: мы используем целевое слово (представление которого мы хотим создать), чтобы предсказать контекст, генерируя представления.
Для получения более подробной информации о Word2Vec и его подходах прочтите эту ссылку.
3. Char2Vec:
Модель Word2Vec использует фиксированный словарь, который обычно не учитывает редкие слова или опечатки. Чтобы устранить это ограничение, нам потребовались вложения слов, основанные только на их написании, и сопоставление векторов, похожих на слова с аналогичным написанием.
Модель Char2Vec представляет каждую последовательность символов произвольной длины с вектором фиксированной длины; метрика расстояния между векторами представляет собой сходство в написании слов.
Для хакатона мы создали пользовательскую модель Char2Vec с ирландскими и английскими символами и обучили модель LSTM. После обучения модели мы создали векторное пространство всех имеющихся имен. Модель работала таким образом, что имя входной тестовой ошибки было векторизовано, а косинусное расстояние вычислялось с остальной частью векторного пространства. Было возвращено слово с минимальным углом косинуса или наивысшим сходством.
Уроки и выводы
В целом, Хакатон был отличным событием, поскольку он познакомился с амбициозными разработчиками, получил положительные отзывы о нашей стратегии от Microsoft и рассказал о версии 1.
Мы также определили несколько ограничений Azure Form Recognizer и направили проблемы группе продуктов Microsoft, и получили от них быстрый ответ. Было бы целесообразно рассматривать будущие хаки, которые они запускают, и потенциальные идеи как возможность преодолеть любые технические проблемы. Microsoft предоставляет для них отличную поддержку и гораздо более быстрый доступ к людям (и группам продуктов), чем обычно.
Об авторах
Анкит Кумар в настоящее время работает специалистом по анализу данных в CeADAR, Ирландия, работает в лаборатории инноваций версии 1 в качестве специалиста по данным по инновациям, который создает творческие решения и доказательства концепций для предприятий, чтобы обеспечить версию 1 на переднем крае прорывных инноваций.
Сумит Кумар (Sumit Kumar), консультант по инновационным данным, работает в инновационной лаборатории версии 1.