Распознавание именованных сущностей

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

Распознает именованные сущности в столбце текста.

категория: Анализ текста

Примечание

применимо к: только Машинное обучение Studio (классическая модель)

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Обзор модуля

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

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

  • Содержит ли Твит имя человека? Содержится ли в твите его текущее местоположение?

  • Какие компании упомянуты в новостной статье?

  • Были ли указанные продукты, упомянутые в жалобах или рецензиях?

Для получения списка именованных сущностей в качестве входных данных предоставляется набор данных, содержащий столбец текста. Затем в именованном модуле распознавания сущностей будут определены три типа сущностей: люди (на), расположения (LOC) и организации (org).

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

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

Входной текст Выходные данные модуля
"Бостон — отличное место для жизни". 0,Boston,0,6,LOC

Выходные данные можно интерпретировать следующим образом.

  • Первый "0" означает, что эта строка является первой входной статьей модуля.

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

  • Boston Распознанная сущность.

  • Следующий Boston параметр 0 означает, что сущность Boston начинается с первой буквы входной строки. Индексы отсчитываются от нуля.

  • 6 значение означает, что длина сущности Boston равна 6.

  • LOC означает, что сущность Boston является местом или расположением. Другие поддерживаемые именованные типы сущностей — Person ( PER ) и Organization ( ORG ).

Настройка распознавания именованных сущностей

  1. Добавьте именованный модуль распознавания сущностей в эксперимент в студии (классическая модель). модуль можно найти в категории Анализ текста .

  2. На входе с именем StoryПодключите набор данных, содержащий анализируемый текст.

    «Статья» должна содержать текст, из которого извлекаются именованные сущности.

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

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

    Примечание

    Второй вход, настраиваемые ресурсы (ZIP), в настоящее время не поддерживается.

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

  3. Запустите эксперимент.

Результаты

Модуль выводит набор данных, содержащий строку для каждой распознанной сущности, а также смещения.

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

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

Использовать распознавание именованных сущностей в веб-службе

при публикации веб-службы из Машинное обучение Studio (классической) и необходимости использования веб-службы с помощью C#, Python или другого языка, такого как R, необходимо сначала реализовать код службы, предоставленный на странице справки веб-службы.

Если веб-служба предоставляет несколько строк вывода, URL-адрес веб-службы, добавляемый в код C#, Python или R, должен иметь суффикс scoremultirow вместо score.

Например, предположим, что для веб-службы используется следующий URL: https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Чтобы включить вывод из нескольких строк, измените URL-адрес на https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Чтобы опубликовать эту веб-службу, необходимо добавить дополнительный модуль выполнить сценарий R после именованного модуля распознавания сущностей , чтобы преобразовать многострочный вывод в единый разделитель точкой с запятой (;). Причина для объединения нескольких строк вывода в одну — возвращение нескольких сущностей во входной строке.

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

Входной текст Выходные данные веб-службы
У корпорации Майкрософт два офиса в Бостоне. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

В следующем образце кода показано, как это сделать:

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Примеры

Этот блог содержит расширенное объяснение того, как работает распознавание именованных сущностей, его фоновый режим и возможные приложения:

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

Технические примечания

Поддержка языков

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

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

Ожидаемые входные данные

Имя Тип Описание
Описание Таблица данных Входной набор данных (DataTable), содержащий текстовый столбец, который необходимо проанализировать.
CustomResources Почтовый индекс (Необязательно) Файл в формате ZIP, содержащий дополнительные пользовательские ресурсы.

Этот параметр недоступен в данный момент и предоставляется для обеспечения прямой совместимости.

Выходные данные

Имя Тип Описание
Сущности Таблица данных Список смещения знаков и сущностей

См. также раздел

Анализ текста
Хэширование признаков
Оценка модели Vowpal Wabbit 7-4
Обучение модели Vowpal Wabbit 7-4