Sintaxe de padrões

Importante

O LUIS será desativado em 1º de outubro de 2025 e, a partir de 1º de abril de 2023, você não poderá criar novos recursos do LUIS. É recomendável migrar seus aplicativos LUIS para a compreensão da linguagem coloquial a fim de usufruir do suporte contínuo ao produto e dos recursos multilíngues.

Sintaxe de padrão é um modelo para uma expressão. O modelo deverá conter palavras e entidades das quais deseja fazer a correspondência, bem como palavras e sinais de pontuação que deseja ignorar. Não é uma expressão regular.

Cuidado

Os padrões incluem apenas os pais da entidade de machine learning, não as subentidades. As entidades em padrões estão entre chaves, {}. Os padrões podem incluir entidades e entidades com funções. Pattern.any é uma entidade usada apenas em padrões.

A sintaxe de padrão dá suporte à seguinte sintaxe:

Função Sintaxe Nível de aninhamento Exemplo
entidade {}: chaves 2 Em que local está o formulário {nome-da-entidade}?
opcionais []: colchetes

Há um limite de três em níveis de aninhamento de qualquer combinação de opcional e agrupamento
2 O ponto de interrogação é opcional [?]
agrupamento (): parênteses 2 is (a | b)
ou | – barra vertical

Há um limite de duas nas barras verticais (ou) em um grupo
- Em que o formato é ({form-name-short} | {form-name-long} | {form-number})
início e/ou fim de enunciado ^: circunflexo - ^iniciar o enunciado
o enunciado foi concluído^
^correspondência literal estrita do enunciado inteiro com a entidade {número}^

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. Esse exemplo permite os seguintes enunciados:

Exemplo de enunciado opcional aninhado Explicação
este é um novo formulário encontra a correspondência de todas as palavras no padrão
é um novo formulário encontra a correspondência da palavra opcional externa e das palavras não opcionais no padrão
um novo formulário encontra a correspondência apenas das palavras obrigatórias

A sintaxe de agrupamento, com parênteses, pode ser aninhada em dois níveis. Por exemplo: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} ). Esse recurso permite que uma das três entidades tenha um termo correspondente.

Se a Entity1 for uma Location com funções como origem (Seattle) e destino (Cairo) e a Entity2 for um nome de edifício 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 encontra a correspondência da entidade de agrupamento externa
Seattle encontra a correspondência de uma das entidades de agrupamento internas
Cairo encontra a correspondência de uma das entidades de agrupamento internas

Limites de aninhamento para grupos com sintaxe opcional

Uma combinação da sintaxe agrupamento e opcional tem um limite de três níveis de aninhamento.

Permitido Exemplo
Sim ( [ ( test1 | test2 ) ] | test3 )
No ( [ ( [ test1 ] | test2 ) ] | test3 )

Limites de aninhamento para grupos com sintaxe or-ing

Uma combinação da sintaxe agrupamento e ou-ing tem um limite de duas barras verticais.

Permitido Exemplo
Sim ( test1 | test2 | ( test3 | test4 ) )
No ( test1 | test2 | test3 | ( test4 | test5 ) )

Sintaxe para adicionar uma entidade em um modelo de padrão

Para adicionar uma entidade no modelo de padrão, coloque o nome de entidade entre chaves, como Who does {Employee} manage?.

Padrão com entidade
Who does {Employee} manage?

Sintaxe para adicionar uma entidade e função em um modelo de padrão

Uma função de entidade é denotada como {entity:role} com o nome de entidade, seguido por dois-pontos e, em seguida, o nome da função. Para adicionar uma entidade com uma função no modelo de padrão, coloque o nome de entidade e o nome da função entre chaves, 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 em um modelo de padrão

A entidade Pattern.any permite que você adicione uma entidade de comprimento variado para o padrão. O pattern.any pode ser qualquer comprimento desde que o modelo de padrão seja seguido.

Para adicionar uma entidade Pattern.any no modelo padrão, coloque a entidade Pattern.any com as chaves, como How much does {Booktitle} cost and what format is it available in?.

Padrão com a entidade Pattern.any
How much does {Booktitle} cost and what format is it available in?
Títulos de livro no padrão
Quanto custa roubar este livro e em que formato está disponível?
Quanto custa perguntar e em que formato está disponível?
Quanto custa O curioso incidente do cachorro no tempo de noite e em que formato está disponível?

As palavras do título do livro não são confusas para o LUIS porque ele sabe em que ponto o título do livro termina, com base na entidade Pattern.any.

Listas explícitas

Crie uma Lista Explícita por meio da API de criação para permitir a exceção quando:

  • O padrão contiver um Pattern.any
  • E essa sintaxe de padrão permitir a possibilidade de uma extração de entidade incorreta com base no enunciado.

Por exemplo, supondo que você tem um padrão que com sintaxe opcional, [], e sintaxe de entidade, {}, combinadas de uma forma para extrair dados incorretamente.

Considere o padrão '[localizar] email sobre {assunto} [de {pessoa}]'.

Nas expressões a seguir, as entidades assunto e pessoa são extraídas correta e incorretamente:

Enunciado Entidade Extração correta
email sobre cachorros de Chris assunto=cachorros
pessoa=Chris
email sobre o homem de La Mancha assunto=o homem
pessoa=La Mancha
X

Na tabela anterior, o assunto deveria ser the man from La Mancha (o título de um livro), mas como o assunto inclui a palavra opcional from, o título é previsto incorretamente.

Para corrigir esta expressão no padrão, adicione the man from la mancha como uma correspondência de lista explícita para a entidade {assunto} usando a API de criação para lista explícita.

Sintaxe para marcar texto opcional em uma expressão de exemplo

Marque texto opcional na expressão usando a sintaxe colchete de expressão regular, []. O texto opcional pode aninhar colchetes até apenas dois colchetes.

Padrão com texto opcional Significado
[find] email about {subject} [from {person}] find e from {person} são opcionais
`Can you help me[?] O sinal de pontuação é opcional

Os sinais de pontuação (?, ! e .) devem ser ignorados usando a sintaxe de colchetes em padrões.

Próximas etapas

Saiba mais sobre padrões:

Entenda como o sentimento é retornado na resposta .json.