Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент Regex

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

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

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

Варианты сущностей

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

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

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

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

Пример

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

Снимок экрана, на котором показана перекрепляющаяся сущность обучения и списка.

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

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

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

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

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

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

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

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

Пример

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

Снимок экрана, на котором показан пример обученной и перекрываемой сущности списка.

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

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

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

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

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

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

Пример

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

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

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

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

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

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

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

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

Примечание.

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