Компоненты сущности

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

Типы компонентов

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

Изученный компонент

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

Снимок экрана: пример изученных компонентов для сущностей.

Компонент списка

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

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

Снимок экрана: пример компонентов списка для сущностей.

Предварительно созданный компонент

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

Снимок экрана: пример предварительно созданных компонентов для сущностей.

Компонент регулярного выражения

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

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

Снимок экрана: пример компонентов регулярных выражений для сущностей.

Параметры сущности

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

Объединять компоненты

Все компоненты соединяются в одну сущность при перекрытии.

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

Пример

Предположим, у вас есть сущность с именем "Программное обеспечение" с компонентом списка, который содержит запись "Proseware OS". В данных речевых фрагментов у вас есть сообщение "Я хочу купить Proseware OS 9", где фрагмент "Proseware OS 9" помечен как "Программное обеспечение":

Снимок экрана: перекрывающиеся изученная сущность и сущность списка.

Используя объединение компонентов, сущность возвращает полный контекст в виде "Proseware OS 9" вместе с ключом из компонента списка:

Снимок экрана: результат объединенного компонента.

Предположим, у вас есть тот же речевой фрагмент, но изученный компонент предсказал только "OS 9":

Снимок экрана: речевой фрагмент операционной системы 9, прогнозируемый изученным компонентом.

При объединении компонентов сущность по-прежнему возвращается в виде "Proseware OS 9" с ключом из компонента списка:

Снимок экрана: возвращенная сущность программного обеспечения.

Не объединять компоненты

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

Пример

Предположим, у вас есть сущность с именем "Программное обеспечение" с компонентом списка, который содержит запись "Proseware Desktop". В данных речевых фрагментов у вас есть сообщение "Я хочу купить Proseware Desktop Pro", где фрагмент "Proseware Desktop Pro" помечен как "Программное обеспечение":

Снимок экрана: пример перекрывающихся изученной сущности и сущности списка.

Если компоненты не объединяются, сущность возвращается дважды:

Снимок экрана: возвращенная дважды сущность.

Необходимые компоненты

Сущность иногда может быть определена несколькими компонентами, но требует наличия одного или нескольких из них. Каждый компонент может быть задан в соответствии с требованиями, что означает, что сущность не будет возвращена, если этого компонента не было. Например, если у вас есть сущность с компонентом списка и обязательным изученным компонентом, гарантируется, что любая возвращаемая сущность содержит изученный компонент; Если это не так, сущность не будет возвращена.

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

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

Пример

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

Как правило, вы добавляете предварительно созданный компонент для Quantity.Number , который уже извлекает все числа. Однако если ваша сущность была определена только с предварительно созданной, она также будет извлекать другие числа в составе сущности Количество билетов, например "Забронировать два билета завтра в Каир в 15:00".

Чтобы устранить эту проблему, необходимо пометить изученный компонент в обучающих данных для всех чисел, которые должны быть количеством билетов. Сущность теперь имеет 2 компонента: предварительно созданный, который знает все числа, и выученный, который прогнозирует, где количество билетов находится в предложении. Если требуется изученный компонент, убедитесь, что количество билетов возвращается только тогда, когда изученный компонент прогнозирует его в правильном контексте. Если вам также требуется предварительно созданный компонент, вы можете гарантировать, что возвращенная сущность "Количество билетов" является одновременно числом и находится в правильном положении.

Использование компонентов и параметров

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

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

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

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

Примечание

Ранее в общедоступной предварительной версии службы было доступно 4 варианта: самое длинное перекрытие, точное перекрытие, перекрытие объединения и возврат по отдельности. Режимы Самое длинное перекрытие и Точное перекрытие являются устаревшими и будут поддерживаться только для проектов, где они были выбраны ранее. Режим Перекрытие объединения был переименован в Объединять компоненты, а Возврат всех экземпляров отдельно — в режим Не объединять компоненты.

Дальнейшие действия

Поддерживаемые предварительно созданные компоненты