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 from
opcional , 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.