Sintaxe de padrão

Importante

O LUIS será descontinuado a 1 de outubro de 2025 e a partir de 1 de abril de 2023 não poderá criar novos recursos do LUIS. Recomendamos que migre as suas aplicações LUIS para a compreensão de linguagem de conversação para beneficiar do suporte contínuo do produto e das capacidades multilingues.

A sintaxe padrão é um modelo para uma expressão. O modelo deve conter palavras e entidades que pretende corresponder, bem como palavras e pontuação que pretende ignorar. Não é uma expressão normal.

Atenção

Os padrões incluem apenas pais de entidades de machine learning e não subentidades. As entidades em padrões estão rodeadas por parênteses encaracolados, {}. Os padrões podem incluir entidades e entidades com funções. Pattern.any é uma entidade utilizada apenas em padrões.

A sintaxe padrão suporta a seguinte sintaxe:

Função Syntax Nível de aninhamento Exemplo
entidade {} - parênteses encaracolados 2 Onde está o formulário {entity-name}?
opcional [] - parênteses retos

Existe 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 é (um | b)
ou | - barra vertical (pipe)

Existe um limite de 2 nas barras verticais (Ou) num grupo
- Onde está o formulário ({form-name-short} | {form-name-long} | {form-number})
início e/ou fim da expressão ^ - caret - ^iniciar a expressão
a expressão é feita^
^correspondência literal estrita de toda a expressão com {number} entidade^

Aninhar sintaxe em padrões

A sintaxe opcional , com parênteses retos, pode ser aninhada em dois níveis. Por exemplo: [[this]is] a new form. Este exemplo permite as seguintes expressões:

Exemplo de expressão opcional aninhada Explicação
este é um novo formulário corresponde a todas as palavras no padrão
é um novo formulário corresponde a palavra opcional externa e palavras não opcionais no padrão
um novo formulário corresponde apenas às palavras necessárias

A sintaxe de agrupamento , com parênteses, pode ser aninhada em dois níveis. Por exemplo: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} ). Esta funcionalidade permite que qualquer uma das três entidades seja correspondida.

Se Entity1 for uma Localização com funções como origem (Seattle) e destino (Cairo) e a Entidade 2 for um nome de edifício conhecido de uma entidade de lista (RedWest-C), as seguintes expressões serão mapeadas para este padrão:

Exemplo de expressão de agrupamento aninhado Explicação
RedWest-C corresponde à entidade de agrupamento externo
Seattle 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
Yes ( [ ( test1 | test2 ) ] | test3 )
No ( [ ( [ test1 ] | test2 ) ] | test3 )

Aninhar limites para grupos com sintaxe ou aninhamento

Uma combinação de agrupamento com sintaxe ou de agrupamento tem um limite de 2 barras verticais.

Permitido Exemplo
Yes ( teste1 | teste2 | ( teste3 | teste4 ) )
No ( 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, rodeie o nome da entidade com chavetas, como Who does {Employee} manage?.

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

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

Uma função de entidade é indicada como {entity:role} com o nome da entidade seguido de dois pontos e, em seguida, o nome da função. Para adicionar uma entidade com uma função ao modelo de padrão, rodeie o nome da entidade e o nome da função com chavetas, 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 padrão.qualquer a um modelo de padrão

A entidade Pattern.any permite-lhe adicionar uma entidade de comprimento variável ao padrão. Desde que o modelo de padrão seja seguido, o padrão.qualquer um pode ter qualquer comprimento.

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

Padrão com Pattern.any entity
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 é que pergunta o custo e em que formato está disponível?
Quanto custa o Incidente Curioso do Cão na Hora da Noite e em que formato está disponível?

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

Listas explícitas

crie uma Lista Explícita através da API de criação para permitir a exceção quando:

  • O seu padrão contém um Padrão.qualquer
  • E essa sintaxe de padrão permite a possibilidade de uma extração incorreta de entidades com base na expressão.

Por exemplo, suponha que tem um padrão que contém sintaxe opcional, []e sintaxe de entidade, {}, combinado de forma a extrair dados incorretamente.

Considere o padrão "[localizar] e-mail sobre {subject} [de {person}]".

Nas seguintes expressões, o assunto e a entidade pessoa são extraídos correta e incorretamente:

Expressão Entidade Extração correta
e-mail sobre cães de Chris subject=dogs
person=Chris
e-mail sobre o homem de La Mancha assunto=o homem
person=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 fromopcional , o título está incorretamente previsto.

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

Sintaxe para marcar texto opcional numa expressão de modelo

Marcar texto opcional na expressão com a sintaxe regular do parêntese reto da expressão, []. O texto opcional só pode aninhar parênteses retos até dois parênteses.

Padrão com texto opcional Significado
[find] email about {subject} [from {person}] find e from {person} são opcionais
"Pode ajudar-me[?] A marca de pontuação é opcional

As marcas de pontuação (?, !, .) devem ser ignoradas e tem de ignorá-las utilizando a sintaxe entre parênteses retos em padrões.

Passos seguintes

Saiba mais sobre padrões:

Compreenda como o sentimento é devolvido na resposta .json.