Синтаксис шаблона
Внимание
LUIS будет прекращена 1 октября 2025 г. и с 1 апреля 2023 г. вы не сможете создать новые ресурсы LUIS. Мы рекомендуем перенести приложения LUIS в понимание общения, чтобы воспользоваться продолжением поддержки продуктов и многоязычными возможностями.
Синтаксис шаблона — это шаблон фразы. Шаблон должен содержать слова и объекты, которые вы хотите сопоставить, а также слова и пунктуацию, которые вы хотите игнорировать. Это не регулярное выражение.
Внимание
Шаблоны включают только родительские объекты машинного обучения, но не их компоненты.
Сущности в шаблонах заключены в фигурные скобки ({}
). Шаблоны могут включать сущности и сущности с ролями. Pattern.any — это сущность, используемая только в шаблонах.
Синтаксис шаблона поддерживает следующий синтаксис:
Function | Синтаксис | Уровень вложенности | Пример |
---|---|---|---|
Сущность | {} — фигурные скобки | 2 | Где форма {имя-сущности}? |
необязательно | [] — квадратные скобки Существует ограничение в 3 уровня вложенности для любой комбинации необязательного и группового |
2 | Вопросительный знак является необязательным [?] |
группирование | () — круглые скобки | 2 | имеет значение (a | b) |
or | | — вертикальная черта (канал) Максимальное количество вертикальных полос (Или) в одной группе — 2 |
- | Где форма ({form-name-short} | {form-name-long} | {form-number}) |
начало и (или) конец высказывания | ^ — знак вставки | - | ^начать высказывание высказывание сделано^ ^строгое буквальное совпадение всего высказывания с сущностью {число}^ |
Синтаксис вложения в шаблонах
Необязательный синтаксис с квадратными скобками может быть двухуровневым. Например: [[this]is] a new form
. В этом примере разрешены следующие высказывания:
Пример вложенного необязательного высказывания | Описание |
---|---|
это новая форма | соответствует всем словам в шаблоне |
является новой формой | соответствует внешнему необязательному слову и необязательным словам в шаблоне |
новая форма | соответствует только обязательным словам |
Синтаксис группировки с круглыми скобками может быть двухуровневым. Например: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} )
. Эта функция позволяет сопоставить любой из трех объектов.
Если Сущность1 — Location с такими ролями, как происхождение (Сиэтл) и место назначения (Cairo), а Сущность 2 — известное имя здания из объекта списка (RedWest-C), следующие высказывания будут соответствовать этому шаблону:
Пример вложенного группирующего высказывания | Описание |
---|---|
RedWest-C | соответствует внешнему группирующему объекту |
Seattle | соответствует одной из внутренних группирующих сущностей |
Каир | соответствует одной из внутренних группирующих сущностей |
Пределы вложенности для групп с дополнительным синтаксисом
Комбинация группировки с необязательным синтаксисом имеет ограничение в 3 уровня вложенности.
Допустимо | Пример |
---|---|
Да | ( [ ( test1 | test2 ) ] | test3 ) |
No | ( [ ( [ test1 ] | test2 ) ] | test3 ) |
Пределы вложенности для групп с синтаксисом or-ing
Комбинация группировки с синтаксисом or-ing имеет ограничение в 2 вертикальные полосы.
Допустимо | Пример |
---|---|
Да | (test1 | test2 | (test3 | test4)) |
No | ( test1 | test2 | test3 | ( test4 | test5 ) ) |
Синтаксис, предназначенный для добавления сущности в шаблон
Чтобы добавить сущность в шаблон, заключите имя сущности в фигурные скобки, например Who does {Employee} manage?
.
Шаблон с сущностью |
---|
Who does {Employee} manage? |
Синтаксис, предназначенный для добавления сущности и роли в шаблон
Роль сущности обозначается как {entity:role}
: имя сущности, за которым следует двоеточие, а затем имя роли. Чтобы добавить сущность с ролью в шаблон, заключите имя сущности и имя роли в фигурные скобки, например Book a ticket from {Location:Origin} to {Location:Destination}
.
Шаблон с ролями сущности |
---|
Book a ticket from {Location:Origin} to {Location:Destination} |
Синтаксис, предназначенный для добавления сущности Pattern.any в шаблон
Сущность Pattern.any позволяет добавлять сущность переменной длины в шаблон. Если формат шаблона соблюдается, Pattern.any может быть любой длины.
Чтобы добавить сущность Pattern.any в шаблон, заключите сущность Pattern.any в фигурные скобки, например How much does {Booktitle} cost and what format is it available in?
.
Шаблон с сущностью Pattern.any |
---|
How much does {Booktitle} cost and what format is it available in? |
Наименования книг в шаблоне |
---|
Сколько стоит эта книга и в каком формате она доступна? |
Сколько стоит запрос и в каком формате она доступна? |
Сколько стоит Загадочное ночное убийство собаки и в каком формате она доступна? |
Слова в названии книги не сбивают с толку LUIS, потому что LUIS знает, где заканчивается название книги, на основе сущности Pattern.any.
Явные списки
создайте Явный список через API разработки, чтобы разрешить исключение, когда:
- Ваш шаблон содержит Pattern.any
- И этот синтаксис шаблона допускает возможность неправильного извлечения сущности на основе высказывания.
Предположим, имеется шаблон, содержащий и дополнительный синтаксис []
и синтаксис сущности {}
, которые объединены так, что данные будут извлекаться некорректно.
Рассмотрим шаблон "[найти] сообщение о {тема} [от {человек}]".
В следующей фразе сущности тема и человек извлекаются правильно и неправильно:
Фраза | Объект | Правильное извлечение |
---|---|---|
сообщение о собаках от Глеба | тема=собаки человек=Глеб |
✔ |
сообщение о мужчине из Ла-Манча | тема=мужчина человек=Ла-Манч |
X |
В предыдущей таблице тема должна быть the man from La Mancha
(название книги), но поскольку в теме есть необязательное слово from
, заголовок предсказывается неверно.
Чтобы исправить это исключение в шаблоне, добавьтеthe man from la mancha
как сопоставление явного списка для сущности {тема}, используя API авторизации для явного списка.
Синтаксис, предназначенный для отметки дополнительного текста в шаблоне фразы
Отметьте необязательный текст во фразе, используя синтаксис регулярного выражения с квадратными скобками []
. В необязательном тексте может быть не более двух экземпляров открывающих и закрывающих квадратных скобок.
Шаблон с необязательным текстом | Значение |
---|---|
[find] email about {subject} [from {person}] |
find и from {person} являются необязательными |
`Можете ли вы мне помочь [?] | Знак препинания указывать необязательно |
Знаки препинания (?
, !
, .
) следует игнорировать, и вам нужно игнорировать их, используя синтаксис квадратных скобок в шаблонах.
Следующие шаги
Узнайте больше о шаблонах:
Разберитесь, как тональность возвращается в ответе .json.