Padrões nos aplicativos LUIS

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.

Os padrões são criados para aumentar a precisão quando enunciados múltiplos são muito parecidos. Um padrão permite que você obtenha maior precisão para uma intenção sem fornecer vários enunciados a mais.

Os padrões resolvem baixa confiabilidade de intenção

Considere um aplicativo de recursos humanos que relata o organograma em relação a um funcionário. Dado o nome e a relação de um funcionário, LUIS retorna os funcionários envolvidos. Considere um funcionário, Tom, com uma gerente chamada Alice e uma equipe de subordinados chamados Michael, Rebecca e Carl.

Uma captura de tela mostrando o uso de padrões

Declarações Intenção prevista Pontuação da intenção
Quem está subordinado a Tom? GetOrgChart 0,30
Quem é subordinado de Tom? GetOrgChart 0,30

Se um aplicativo tiver entre 10 e 20 expressões com comprimentos diferentes de frase, ordem de palavras diferentes e diferentes palavras (sinônimos de "subordinadas", "gerente", "relatório"), LUIS pode retornar uma baixa pontuação de confiabilidade. Crie um padrão para ajudar o LUIS a reconhecer a importância da ordem das palavras.

Os padrões resolvem as situações a seguir:

  • A pontuação da intenção é baixa
  • A intenção correta não é a pontuação superior, mas a que está muito próxima à pontuação superior.

Os padrões não são uma garantia de intenção

Os padrões usam uma mistura de tecnologias de previsão. Configurar uma intenção para um enunciado modelo em um padrão não é uma garantia da previsão da intenção, mas é um sinal forte.

Os padrões não melhoram a detecção de entidade de aprendizado de máquina

Um padrão destina-se principalmente a ajudar na previsão de funções e intenções. A entidade “pattern.any” é usada para extrair entidades de forma livre. Embora os padrões usem entidades, um padrão não ajuda a detectar uma entidade de aprendizado de máquina.

Não espere ver melhorias na previsão de entidade se você recolher várias declarações em um único padrão. Para que entidades simples sejam utilizadas pelo seu aplicativo, você precisa adicionar enunciados ou usar entidades de lista.

Os padrões usam funções de entidades

Se duas ou mais entidades em um padrão estiverem relacionadas contextualmente, os padrões usarão as funções da entidade para extrair informações contextuais sobre as entidades.

Pontuação da previsão com e sem padrões

Se tiver enunciados de exemplo suficientes, o LUIS poderá aumentar a confiabilidade da previsão sem os padrões. Os padrões de aumentam a pontuação de confiabilidade sem ter que fornecer tantas expressões.

Correspondência de padrões

A correspondência de um padrão é feita com base na detecção das entidades, primeiro dentro do padrão, e em seguida validando o restante das palavras e a ordem das palavras do padrão. As entidades são exigidas no padrão para que um padrão corresponda. O padrão é aplicado no nível de token, não no nível do caractere.

Entidade pattern.any

A entidade pattern.any permite localizar dados de formulário livre em que as palavras da entidade dificultam determinar o fim da entidade no resto do enunciado.

Por exemplo, considere um aplicativo de recursos humanos que ajuda os funcionários a localizar documentos da empresa. Esse aplicativo pode precisar entender os enunciados de exemplo a seguir.

  • "Onde está o HRF-123456?"
  • "Quem criou o HRF-123234?"
  • "O HRF-456098 foi publicado em francês?"

No entanto, cada documento tem um nome formatado (usado na lista acima) e um nome legível, como a Solicitação de realocação de funcionário novo na versão 5 da empresa 2018.

Enunciados com o nome legível pode ser parecidos com:

  • "Onde está Solicitar a realocação do funcionário novo para a versão 5 da empresa 2018?"
  • "Quem criou "Solicitar a realocação do funcionário novo para a versão 5 da empresa 2018"?"
  • Solicitar a realocação do funcionário novo para a versão 5 da empresa 2018 está publicado em francês?"

Os enunciados incluem palavras que podem confundir o LUIS sobre onde a entidade termina. Usar uma entidade Pattern.any em um padrão permite especificar o início e o fim do nome do documento, para que o LUIS extraia corretamente o nome do formulário. Por exemplo, os modelos de enunciado a seguir:

  • Onde está {FormName}[?]
  • Quem criou {FormName}[?]
  • O {FormName} foi publicado em francês[?]

Práticas recomendadas para padrões:

Adicionar padrões em iterações posteriores

É necessário entender como o aplicativo se comporta antes de adicionar padrões porque os padrões são ponderados de forma muito maior do que o exemplo de enunciados e distorcerá a confiança.

Depois de compreender como o aplicativo se comporta, adicionar padrões conforme se aplicam ao seu aplicativo. Você não precisa adicioná-los toda vez que itera no design do aplicativo.

Não há nenhum problema em adicioná-los no início do design do modelo, mas é mais fácil ver como cada padrão altera os resultados depois que o modelo é testado com enunciados.

Não adicione muitos padrões

Não adicione padrões demais. O LUIS destina-se a aprender rapidamente com menos exemplos. Não sobrecarregue o sistema desnecessariamente.

Recursos

No machine learning, um recurso é um traço ou atributo específico de dados que seu sistema observa e por meio do qual ele aprende.

Os recursos de machine learning fornecem indicações importantes do LUIS sobre onde pesquisar aspectos específicos de um conceito. São dicas que o LUIS pode usar, mas não são regras rígidas. O LUIS usa essas dicas em conjunto com os rótulos para localizar os dados.

Um recurso pode ser descrito como uma função, como f(x) = y. No enunciado de exemplo, o recurso informa onde procurar a característica específica. Use essas informações para ajudar a criar seu esquema.

Tipos de recursos

Os recursos são uma parte necessária do design do seu esquema. O LUIS dá suporte a listas de frases e modelos como recursos:

  • Recurso de lista de frases
  • Modelo (intenção ou entidade) como um recurso

Encontrar recursos nos seus enunciados de exemplo

Como o LUIS é um aplicativo baseado em linguagem, os recursos são baseados em texto. Escolha o texto que indica a característica que você deseja distinguir. Para o LUIS, a menor unidade é o token. Para o idioma inglês, um token é um intervalo contíguo de letras e números que não têm espaços nem pontuação.

Como os espaços e a pontuação não são tokens, concentre-se nas pistas de texto que você pode usar como recursos. Lembre-se de incluir variações de palavras, como:

  • Plurais
  • Tempos verbais
  • Abreviações
  • Ortografia e erros de ortografia

Determine se o texto precisa do seguinte porque ele distingue uma característica:

  • Corresponder a uma palavra ou frase exata: considere adicionar uma entidade de expressão regular ou uma entidade de lista como um recurso para a entidade ou intenção.
  • Corresponder a um conceito bem conhecido, como datas, horários ou nomes de pessoas: use uma entidade predefinida como um recurso para a entidade ou intenção.
  • Aprender novos exemplos com o tempo: use uma lista de frases de alguns exemplos do conceito como um recurso para a entidade ou intenção.

Criar uma lista de frases para um conceito

Uma lista de frases é uma lista de palavras ou frases que descrevem um conceito. Uma lista de frases é aplicada como uma correspondência que não diferencia maiúsculas de minúsculas no nível do token.

Ao adicionar uma lista de frases, você pode definir o recurso como global. Um recurso global se aplica a todo o aplicativo.

Quando usar uma lista de frases

Use uma lista de frases quando precisar que seu aplicativo LUIS generalize e identifique novos itens para o conceito. As listas de frases são como um vocabulário específico do domínio. Elas aprimoram a qualidade da compreensão para intenções e entidades.

Como usar uma lista de frases

Com uma lista de frases, o LUIS considera o contexto e generaliza para identificar itens que são semelhantes, mas não são uma correspondência de texto exata. Siga estas etapas para usar uma lista de frases:

  1. Comece com uma entidade machine-learning:
  2. Adicione enunciados de exemplo.
  3. Dê um rótulo de entidade machine-learning.
  4. Adicione uma lista de frases:
  5. Adicione palavras com significado semelhante. Não adicione todas as palavras ou frases possíveis. Em vez disso, adicione algumas palavras ou frases de cada vez. Em seguida, treine novamente e publique.
  6. Examine e adicione palavras sugeridas.

Um cenário típico para uma lista de frases

Um cenário típico para uma lista de frases é impulsionar palavras relacionadas a uma ideia específica.

Os termos médicos são um bom exemplo de palavras que podem precisar de uma lista de frases para aumentar a significação. Esses termos podem ter significados físicos, químicos, terapêuticos ou abstratos específicos. O LUIS não saberá que os termos são importantes para o domínio do assunto sem uma lista de frases.

Por exemplo, para extrair os termos médicos:

  1. Crie enunciados de exemplos e rotule os termos médicos dentro deles.
  2. Crie uma lista de frases com exemplos dos termos dentro do domínio do assunto. Essa lista de frases deve incluir o termo real rotulado e outros termos que descrevam o mesmo conceito.
  3. Adicione a lista de frases à entidade ou subentidade que extrai o conceito usado na lista de frases. O cenário mais comum é um componente (filho) de uma entidade machine-learning. Se a lista de frases deve ser aplicada em todas as intenções ou entidades, marque a lista de frases como uma lista de frases globais. O sinalizador enabledForAllModels controla esse escopo de modelo na API.

Correspondências de token para uma lista de frases

Uma lista de frases sempre se aplica no nível do token. A tabela a seguir mostra como uma lista de frases que tem a palavra Ana se aplica a variações dos mesmos caracteres nessa ordem.

Variação de token de “Ana” A lista de frases corresponde a quando o token é encontrado
ANA
aNA
Sim, o token é Ana
Da Ana Sim, o token é Ana
Anne Não, o token é Ane

Um modelo como recurso ajuda outro modelo

Você pode adicionar um modelo (intenção ou entidade) como recurso a outro modelo (intenção ou entidade). Adicionando uma intenção ou entidade como recurso, você vai adicionar um conceito bem definido que tem exemplos rotulados.

Ao adicionar um modelo como recurso, você pode definir o recurso como:

  • Obrigatório . Um recurso obrigatório deve ser encontrado para que o modelo seja retornado do ponto de extremidade de previsão.
  • Global . Um recurso global se aplica a todo o aplicativo.

Quando usar uma entidade como recurso para uma intenção

Adicione uma entidade como recurso a uma intenção quando a detecção dessa entidade for significativa para a intenção.

Por exemplo, se a intenção for reservar um voo, como BookFlight, e a entidade for uma informação da passagem (como o número de assentos, origem e destino), localizar a entidade ticket-information deve adicionar um peso significativo à previsão da intenção BookFlight.

Quando usar uma entidade como recurso para outra entidade

Uma entidade (A) deve ser adicionada como um recurso a outra entidade (B) quando a detecção dessa entidade (A) é significativa para a previsão da entidade (B).

Por exemplo, se uma entidade shipping-address estiver contida em uma subentidade street-address, a localização da subentidade street-address adicionará um peso significativo à previsão para a entidade de endereço de envio.

  • Endereço de envio (entidade machine-learning):
    • Número da rua (subentidade)
    • Endereço da rua (subentidade)
    • Cidade (subentidade)
    • Estado ou província (subentidade)
    • País/região (subentidade)
    • CEP (subentidade)

Subentidades aninhadas com recursos

Uma subentidade machine-learning indica que um conceito está presente na entidade pai. O pai pode ser outra subentidade ou a entidade superior. O valor da subentidade funciona como um recurso para o pai dela.

Uma subentidade pode ter uma lista de frases e um modelo (outra entidade) como recurso.

Quando a subentidade tiver uma lista de frases, ela aumentará o vocabulário do conceito, mas não adicionará nenhuma informação à resposta JSON da previsão.

Quando a subentidade tem um recurso de outra entidade, a resposta JSON inclui os dados extraídos dessa outra entidade.

Recursos necessários

Um recurso obrigatório deve ser encontrado para que o modelo seja retornado do ponto de extremidade de previsão. Use um recurso obrigatório quando você souber que seus dados de entrada devem corresponder ao recurso.

Se o texto do enunciado não corresponder ao recurso obrigatório, ele não será extraído.

Um recurso obrigatório usa uma entidade que não é de machine learning:

  • Entidade de expressão regular
  • Entidade de lista
  • Entidade predefinida

Se você tiver certeza de que seu modelo será encontrado nos dados, defina o recurso como obrigatório. Um recurso obrigatório não retornará nada se não for encontrado.

Continuando com o exemplo do endereço de envio:

Endereço de envio (entidade com machine learning)

  • Número da rua (subentidade)
  • Endereço da rua (subentidade)
  • Nome da rua (subentidade)
  • Cidade (subentidade)
  • Estado ou província (subentidade)
  • País/região (subentidade)
  • CEP (subentidade)

Recurso obrigatório usando entidades predefinidas

As entidades predefinidas, como cidade, estado e país/região, geralmente são um conjunto fechado de listas, o que significa que elas não mudam muito ao longo do tempo. Essas entidades podem ter os recursos recomendados relevantes e esses recursos podem ser marcados como obrigatórios. No entanto, o sinalizador isRequired só está relacionado à entidade à qual ele foi atribuído, e não afeta a hierarquia. Se o recurso de subentidade predefinida não for encontrado, isso não afetará a detecção nem o retorno da entidade pai.

Como exemplo de um recurso obrigatório, considere que você deseja detectar os endereços. Você pode considerar tornar o número da rua um requisito. Isso permitiria que um usuário inserisse "1 Microsoft Way" ou "One Microsoft Way", e ambos seriam resolvidos para o numeral "1" para a subentidade de número da rua. Confira o artigo sobre entidade predefinida para obter mais informações.

Recurso obrigatório usando entidades de lista

Uma entidade de lista é usada como uma lista de nomes canônicos junto com os sinônimos deles. Como um recurso obrigatório, se o enunciado não incluir o nome canônico nem um sinônimo, a entidade não será retornada como parte do ponto de extremidade de previsão.

Suponha que sua empresa seja enviada apenas para um conjunto limitado de países/regiões. Você pode criar uma entidade de lista que inclui várias maneiras pelas quais o cliente pode referenciar o país/região. Se LUIS não encontrar uma correspondência exata dentro do texto do enunciado, a entidade (que tem o recurso obrigatório da entidade de lista) não será retornada na previsão.

Nome canônico** Sinônimos
Estados Unidos EUA
E.U.A.
EUA
EUA
0

Um aplicativo cliente, como um bot de chat, pode fazer uma pergunta de acompanhamento para ajudar. Isso ajuda o cliente a entender que a seleção de país/região é limitada e obrigatória.

Recurso obrigatório usando entidades de expressão regular

Uma entidade de expressão regular usada como um recurso obrigatório fornece funcionalidades avançadas de correspondência de texto.

No exemplo de endereço de envio, você pode criar uma expressão regular que captura regras de sintaxe dos CEPs do país/região.

Recursos globais

Embora o uso mais comum seja aplicar um recurso a um modelo específico, você pode configurar o recurso como um recurso global para aplicá-lo a todo o seu aplicativo.

O uso mais comum de um recurso global é acrescentar um vocabulário adicional ao aplicativo. Por exemplo, se os clientes usam um idioma principal, mas esperam poder usar outro idioma dentro do mesmo enunciado, você pode adicionar um recurso que inclui palavras do idioma secundário.

Como o usuário espera usar o idioma secundário em qualquer intenção ou entidade, adicione palavras do idioma secundário à lista de frases. Configure a lista de frases como um recurso global.

Combinar recursos para obter mais benefícios

Você pode usar mais de um recurso para descrever uma característica ou um conceito. Um emparelhamento comum é usar:

Exemplo: recursos de entidade de reserva de passagem para um aplicativo de viagem

Como um exemplo básico, considere um aplicativo para reservar um voo com uma intenção de reserva de voo e uma entidade de reserva de passagem. A entidade ticket-booking captura as informações para reservar uma passagem de avião em um sistema de reservas.

A entidade machine-learning da reserva de passagem tem duas subentidades para capturar a origem e o destino. Os recursos precisam ser adicionados a cada subentidade, não à entidade de nível superior.

Uma captura de tela mostrando entidades de exemplo para um aplicativo de reserva de tíquetes.

A entidade de reserva de passagem é uma entidade machine-learning, com subentidades que inlcuem Origem e Destino. Essas subentidades indicam uma localização geográfica. Para ajudar a extrair os locais e distinguir entre Origem e Destino, cada subentidade deve ter recursos.

Type Subentidade de origem Subentidade de destino
Modelo como recurso Entidade predefinida geographyV2 Entidade predefinida geographyV2
Lista de frases Palavras de origem : iniciar em, começar de, sair Palavras de destino : para, chegar, pousar em, ir, indo, ficar, em direção a
Lista de frases Códigos de aeroporto: a mesma lista para origem e destino Códigos de aeroporto: a mesma lista para origem e destino
Lista de frases Nomes de aeroporto: a mesma lista para origem e destino Códigos de aeroporto: a mesma lista para origem e destino

Se você previr que as pessoas usam códigos e nomes de aeroportos, o LUIS deverá ter listas de frases que usem os dois tipos de frases. Os códigos de aeroportos podem ser mais comuns com o texto inserido em um chatbot, enquanto os nomes de aeroportos podem ser mais comuns com uma conversa falada, como um chatbot habilitado para fala.

Os detalhes de correspondência dos recursos são retornados somente para modelos, não para listas de frases porque apenas modelos são retornados no JSON de previsão.

Rotulagem de reserva de passagem na intenção

Depois de criar a entidade machine-learning, você precisará adicionar os enunciados de exemplo a uma intenção e rotular a entidade pai e todas as subentidades.

Para o exemplo de reserva de passagem, rotule os enunciados de exemplo na intenção com a entidade TicketBooking e todas as subentidades no texto.

Uma captura de tela mostrando a rotulagem para um exemplo de enunciado.

Exemplo: aplicativo para pedir pizza

Para um segundo exemplo, considere um aplicativo para uma pizzaria, que recebe pedidos de pizza, incluindo os detalhes do tipo de pizza que alguém está pedindo. Cada detalhe da pizza deve ser extraído, se possível, para concluir o processamento do pedido.

A entidade machine-learning neste exemplo é mais complexa com subentidades aninhadas, listas de frases, entidades predefinidas e entidades personalizadas.

Uma captura de tela mostrando uma entidade de machine learning com subentidades diferentes.

Este exemplo usa recursos no nível de subentidade e o filho do nível de subentidade. O nível que obtém o tipo de lista de frases ou o modelo como recurso é uma parte importante do design de sua entidade.

Embora as subentidades possam ter muitas listas de frases como recursos que ajudam a detectar a entidade, cada uma delas tem apenas um modelo como recurso. Neste aplicativo de pizza, esses modelos são primordialmente listas.

Uma captura de tela mostrando uma entidade de machine learning com muitas listas de frases como recursos.

Os enunciados de exemplo corretamente rotulados são exibidos de modo a mostrar como as entidades são aninhadas.

Próximas etapas