Со 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. Мы рассмотрели следующие параметры для проверки каждого поля.

  1. Тип данных: строка, дата, целое число.
  2. Шаблон: проверка регулярного выражения, включая разрешенные символы.
  3. Правило: основанное на логике, например диапазон номеров, диапазон дат, максимальное количество и т. д.
  4. Проверки: внутренний или внешний поиск, например, допустим, мы хотим узнать, действителен ли распознанный MPRN. Нам нужно найти какую-то базу данных или внешний сервис.

Мы создали скрипт python, который принимает результаты распознавателя форм и проверяет их по файлу поиска JSON, состоящему из шаблона регулярного выражения каждого поля. Если шаблон соответствовал проверкам, определенным выше (правило, тип данных и проверки), мы перешли к следующему этапу рабочего процесса. Если проверка не удалась, мы попытались выполнить автокоррекцию и предложить пользователям возможные варианты с использованием алгоритмов машинного обучения и векторного пространства.

Автокоррекция текста

Для автокоррекции полей мы обнаружили сходство между правильными и неправильными словами. Например.

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

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

  1. Встраивание слова:

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

Основная цель заключалась в том, чтобы слова с похожим контекстом занимали близкие пространственные позиции. Математически косинус угла между такими векторами должен быть близок к 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.