Sintaxe de padrão
Importante
O LUIS será aposentado em 1º de outubro de 2025 e a partir de 1º de abril de 2023 você não poderá criar novos recursos do LUIS. Recomendamos migrar seus aplicativos LUIS para o entendimento de linguagem conversacional para se beneficiar do suporte contínuo ao produto e dos recursos multilíngues.
A sintaxe de padrão é um modelo para um enunciado. O modelo deve conter palavras e entidades que você deseja corresponder, bem como palavras e pontuação que você deseja ignorar. Não é uma expressão regular.
Atenção
Os padrões incluem apenas pais de entidades de aprendizado de máquina, não subentidades.
Entidades em padrões são cercadas por colchetes encaracolados, {}
. Os padrões podem incluir entidades e entidades com funções. Pattern.any é uma entidade usada apenas em padrões.
A sintaxe padrão suporta a seguinte sintaxe:
Function | Sintaxe | Nível de aninhamento | Exemplo |
---|---|---|---|
entidade | {} - Suportes encaracolados | 2 | Onde está o formulário {entity-name}? |
opcional | [] - colchetes Há um limite de 3 nos níveis de aninhamento de qualquer combinação de opcional e agrupamento |
2 | O ponto de interrogação é opcional [?] |
agrupamento | () - parênteses | 2 | é (a | b) |
ou | | - barra vertical (tubo) Há um limite de 2 nas barras verticais (Ou) em um grupo |
- | Onde está a forma ({form-name-short} | {nome-formulário-longo} | {número-formulário}) |
início e/ou fim do enunciado | ^ - Caret | - | ^iniciar o enunciado o enunciado está feito^ ^correspondência literal estrita de todo o enunciado com {número} entidade^ |
Sintaxe de aninhamento em padrões
A sintaxe opcional , com colchetes, pode ser aninhada em dois níveis. Por exemplo: [[this]is] a new form
. Este exemplo permite os seguintes enunciados:
Exemplo de enunciado opcional aninhado | Explicação |
---|---|
Este é um novo formulário | corresponde a todas as palavras no padrão |
é uma nova forma | Corresponde a palavras opcionais externas e palavras não opcionais no padrão |
um novo formulário | corresponde apenas às palavras necessárias |
A sintaxe de agrupamento , entre parênteses, pode ser aninhada em dois níveis. Por exemplo: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} )
. Esse recurso permite que qualquer uma das três entidades seja correspondida.
Se a Entidade1 for um Local com funções como origem (Seattle) e destino (Cairo) e a Entidade 2 for um nome de construção conhecido de uma entidade de lista (RedWest-C), os seguintes enunciados serão mapeados para esse padrão:
Exemplo de enunciado de agrupamento aninhado | Explicação |
---|---|
RedWest-C | corresponde à entidade de agrupamento externo |
Porto | corresponde a uma das entidades de agrupamento interno |
Cairo | corresponde a uma das entidades de agrupamento interno |
Limites de aninhamento para grupos com sintaxe opcional
Uma combinação de agrupamento com sintaxe opcional tem um limite de 3 níveis de aninhamento.
Permitido | Exemplo |
---|---|
Sim | ( [ ( test1 | test2 ) ] | teste3 ) |
Não | ( [ ( [ test1 ] | test2 ) | teste3 ) |
Limites de aninhamento para grupos com sintaxe or-ing
Uma combinação de agrupamento com sintaxe or-ing tem um limite de 2 barras verticais.
Permitido | Exemplo |
---|---|
Sim | ( teste1 | teste2 | ( teste3 | teste4 ) |
Não | ( teste1 | teste2 | teste3 | ( teste4 | teste5 ) |
Sintaxe para adicionar uma entidade a um modelo de padrão
Para adicionar uma entidade ao modelo de padrão, envolva o nome da entidade com chaves encaracoladas, como Who does {Employee} manage?
.
Padrão com entidade |
---|
Who does {Employee} manage? |
Sintaxe para adicionar uma entidade e função a um modelo de padrão
Uma função de entidade é indicada como {entity:role}
com o nome da entidade seguido por dois pontos e, em seguida, o nome da função. Para adicionar uma entidade com uma função ao modelo de padrão, envolva o nome da entidade e o nome da função com chaves curvas, como Book a ticket from {Location:Origin} to {Location:Destination}
.
Padrão com funções de entidade |
---|
Book a ticket from {Location:Origin} to {Location:Destination} |
Sintaxe para adicionar um pattern.any ao modelo pattern
A entidade Pattern.any permite que você adicione uma entidade de comprimento variável ao padrão. Desde que o modelo de padrão seja seguido, o pattern.any pode ter qualquer comprimento.
Para adicionar uma entidade Pattern.any ao modelo de padrão, envolva a entidade Pattern.any com as chaves encaracoladas, como How much does {Booktitle} cost and what format is it available in?
.
Padrão com entidade Pattern.any |
---|
How much does {Booktitle} cost and what format is it available in? |
Títulos de livros no padrão |
---|
Quanto custa este livro e em que formato está disponível? |
Quanto custa o pedido e em que formato está disponível? |
Quanto custa O Curioso Incidente do Cão na Noite e em que formato está disponível? |
As palavras do título do livro não são confusas para LUIS porque LUIS sabe onde o título do livro termina, com base na entidade Pattern.any.
Listas explícitas
criar uma Lista Explícita por meio da API de criação para permitir a exceção quando:
- Seu padrão contém um Pattern.any
- E essa sintaxe de padrão permite a possibilidade de uma extração de entidade incorreta com base no enunciado.
Por exemplo, suponha que você tenha um padrão contendo sintaxe []
opcional , e sintaxe de entidade, {}
, combinados de forma a extrair dados incorretamente.
Considere o padrão '[encontrar] e-mail sobre {assunto} [de {pessoa}]'.
Nos enunciados a seguir, o sujeito e a entidade pessoa são extraídos correta e incorretamente:
Expressão | Entidade | Extração correta |
---|---|---|
e-mail sobre cães de Chris | sujeito=cães pessoa=Chris |
✔ |
e-mail sobre o homem de La Mancha | sujeito=o homem pessoa=La Mancha |
X |
Na tabela anterior, o assunto deve ser the man from La Mancha
(um título de livro), mas como o assunto inclui a palavra from
opcional, o título é previsto incorretamente.
Para corrigir essa exceção ao padrão, adicione the man from la mancha
como uma correspondência de lista explícita para a entidade {subject} usando a API de criação para lista explícita.
Sintaxe para marcar texto opcional em um enunciado de modelo
Marque o texto opcional no enunciado usando a sintaxe de colchete da expressão regular, []
. O texto opcional pode aninhar colchetes até dois colchetes apenas.
Padrão com texto opcional | Significado |
---|---|
[find] email about {subject} [from {person}] |
find e from {person} são opcionais |
'Você pode me ajudar[?] | O sinal de pontuação é opcional |
Os sinais de pontuação (?
, !
, .
) devem ser ignorados e você precisa ignorá-los usando a sintaxe entre colchetes em padrões.
Próximos passos
Saiba mais sobre padrões:
Entenda como o sentimento é retornado na resposta .json.