Как работает Распознавание элементов

Распознавание элементов, также известное как распознавание именованных элементов (NER), представляет собой процесс извлечения информации из предложений, абзацев, текстовых отчетов или других форм неструктурированного текста. Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты, которые используют методы обработки естественного языка (NLP) для обучения моделей распознавания элементов и использования этих моделей для извлечения элементов из неструктурированного текста.

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

Возможное применение

Ниже приведены потенциальные варианты применения этого инструмента:

  • Извлечение из отчетов о преступлениях таких данных, как местонахождение, докладывающий офицер или использованное оружие. Это может помочь отобразить тенденции и планировать мероприятий по улучшению ситуации.
  • Такая информация, как местонахождение или необходимость помощи, может быть извлечена из записей в Twitter или сообщений в социальных сетях. Это может помочь определить области, где требуется немедленная помощь во время стихийного бедствия.
Блок-схема модели распознавания элементов
Эта модель распознавания элементов предназначена для извлечения из текстовых отчетов таких элементов, как дата, время и местоположение.

Модели распознавания элементов в ArcGIS основаны на двух внутренних компонентах: один основан на архитектуре Transformer, а другой на библиотеке spaCy, которая работает в среде Embed, encode, attend, predict (встраивание, кодирование, отслеживание, прогнозирование).

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

Внутренний компонент на базе transformer использует архитектуру, предложенную Васвани и др. в статье ”Attention Is All You Need”. Она позволяет моделям быть более точными и распараллеливаемыми, но при этом для обучения требуются менее точно размеченные данные. Внутри ArcGIS модели распознавания элементов на основе transformer состоят из двух компонентов:

  • Кодировщик — кодировщик служит опорой модели и преобразует входной текст в представление объекта в виде векторов фиксированного размера. В модели используются известные кодировщики, такие как BERT, ALBERT и RoBERTa, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста.
  • Классификатор на уровне токенов - Классификатор на уровне токенов служит головной частью модели и классифицирует представление объекта каждого токена по нескольким категориям, представляющим различные элементы. Классификатор часто представляет собой простой линейный слой в нейронной сети.
Компоненты модели распознавания элементов

Примечание:

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

Используйте модели распознавания элементов

Вы можете использовать инструмент Извлечь элементы при помощи глубокого обучения, чтобы применить обученную модель распознавания элементов к неструктурированному тексту и извлечь из него полезную информацию в виде структурированных данных. Вы можете использовать предварительно обученные модели распознавания элементов из ArcGIS Living Atlas of the World или обучить свои собственные модели с помощью инструмента Обучение модели распознавания элементов.

Входными данными для инструмента Извлечь элементы при помощи глубокого обучения является папка, содержащая текстовые файлы, в которых будет выполняться распознавание именованных элементов. Входной моделью может быть файл определения модели Esri JSON (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другие параметры модели. Некоторые модели могут иметь дополнительные аргументы модели.

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

Хотя инструмент может работать на центральном процессоре, для обработки рекомендуется использовать графический процессор, поскольку глубокое обучение требует больших вычислительных ресурсов. Чтобы запустить этот инструмент с помощью графического процессора, установите для параметра среды Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте параметр среды GPU ID.

Обучение моделей распознавания элементов

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

Обучающие данные предоставляются в виде папки, содержащей обучающие данные в виде стандартных наборов данных для задач NER. Обучающие данные представлены в виде файлов .json или .csv. Поддерживаются следующие типы наборов данных:

  • ner_json — папка должна содержать файл .json с текстом и размеченными элементами, отформатированными с использованием формата обучения spaCy JSON.
  • IOB — формат «внутри, снаружи, начало» (IOB), предложенный Рэмшоу и Маркусом в статье "Text Chunking using Transformation-Based Learning.". В этом формате папка должна содержать следующие два файла .csv:
    • token.csv — этот файл должен содержать текст в качестве входных фрагментов.
    • tags.csv — этот файл должен содержать теги IOB для фрагментов текста.
  • BILUO — расширение формата IOB, содержащее следующие теги: B для 'beginning', I для 'inside', L для 'last', U для 'unit', O для 'outside'. При использовании этого формата папка с обучающими данными должна содержать следующие два файла .csv:
    • token.csv — этот файл должен содержать текст в качестве входных фрагментов.
    • tags.csv — этот файл должен содержать теги BILUO для фрагментов текста.

Для получения дополнительной информации об этих форматах и размеченных данных в этих форматах изучите руководство Разметка текста с помощью Doccano.

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

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

Предварительно обученная модель может быть файлом определения модели Esri (.emd) или файлом пакета глубокого обучения (.dlpk). Выходная модель также сохраняется в этих форматах в указанной папке Выходная модель.

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

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

Параметр Опорная модель указывает предварительно сконфигурированную нейронную сеть, которая служит кодировщиком для модели и извлекает представления объектов входного текста. Эта модель поддерживает кодировщики на основе BERT, ALBERT, RoBERTa и spaCy, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста полуконтролируемым образом.

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

Параметр Скорость обучения — один из самых важных гиперпараметров. Это скорость, с которой вес модели корректируется во время обучения. Если вы укажете низкую скорость обучения, модель будет улучшаться медленно, и обучение может занять много времени, что приведет к излишней трате времени и ресурсов. Высокая скорость обучения может быть контрпродуктивной, и модель может плохо обучаться. При высоких скоростях обучения веса модели могут резко измениться, что приведет к ошибочным результатам. Часто лучше не указывать значение параметра Скорость обучения, так как инструмент использует автоматический определитель скорости обучения, основанный на статье Лесли Н. Смит "Циклические скорости обучения для обучения нейронных сетей".

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

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

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

Справочная информация

Васвани, Ашиш, Ноам Шазир, Ники Пармар, Якоб Ушкорейт, Ллион Джонс, Айдан Н. Гомес, Лукаш Кайзер, Илья Полосухин. "Attention Is All You Need." 6 декабря, 2017. https://arxiv.org/abs/1706.03762.

Хоннибал, Мэтью. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.

Девлин, Джейкоб, Мин-Вей Чанг, Кентон Ли и Кристина Тутанова. "Fully Understanding the Hashing Trick." Май 22, 2018. https://arxiv.org/pdf/1805.08539.pdf.

"Doccano." https://github.com/doccano/doccano.

Девлин, Джейкоб, Мин-Вей Чанг, Кентон Ли и Кристина Тутанова. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." Май 24, 2019. https://arxiv.org/pdf/1810.04805.pdf.

Смит, Лесли Н. "Cyclical Learning Rates for Training Neural Networks." 4 апреля, 2017. https://doi.org/10.48550/arxiv.1506.01186.

Рэмшоу, Лэнс и Митч Маркус. "Text Chunking using Transformation-Based Learning." 1995. 3-й семинар Very Large Corpora.