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.