Padrões em aplicativos LUIS
Importante
O LUIS será aposentado em 1º de outubro de 2025 e a partir de 1º de abril de 2023 você não poderá criar novos recursos do LUIS. Recomendamos migrar seus aplicativos LUIS para o entendimento de linguagem conversacional para se beneficiar do suporte contínuo ao produto e dos recursos multilíngues.
Os padrões são projetados para melhorar a precisão quando vários enunciados são muito semelhantes. Um padrão permite que você obtenha mais precisão para uma intenção sem fornecer vários outros enunciados.
Os padrões resolvem a confiança de baixa intenção
Considere um aplicativo de Recursos Humanos que informe sobre o organograma em relação a um funcionário. Dado o nome e a relação de um funcionário, a LUIS devolve os funcionários envolvidos. Considere um funcionário, Tom, com uma gerente chamada Alice e uma equipe de subordinados nomeados: Michael, Rebecca e Carl.
Expressões | Intenção prevista | Pontuação de intenção |
---|---|---|
Quem é o subordinado de Tom? | GetOrgChart | 0.30 |
Quem é o subordinado de Tom? | GetOrgChart | 0.30 |
Se um aplicativo tiver entre 10 e 20 enunciados com diferentes comprimentos de frase, ordem de palavras diferente e até mesmo palavras diferentes (sinônimos de "subordinado", "gerenciar", "relatar"), o LUIS pode retornar uma baixa pontuação de confiança. Crie um padrão para ajudar o LUIS a entender a importância da ordem das palavras.
Os padrões resolvem as seguintes situações:
- A pontuação de intenção é baixa
- A intenção correta não é a pontuação máxima, mas muito próxima da pontuação máxima.
Os padrões não são uma garantia de intenção
Os padrões usam uma mistura de técnicas de previsão. Definir uma intenção para um enunciado de modelo em um padrão não é uma garantia da previsão de intenção, mas é um sinal forte.
Os padrões não melhoram a deteção de entidades de aprendizado de máquina
Um padrão destina-se principalmente a ajudar na previsão de intenções e papéis. A entidade "pattern.any" é usada para extrair entidades de forma livre. Embora os padrões usem entidades, um padrão não ajuda a detetar uma entidade de aprendizado de máquina.
Não espere ver a previsão de entidade melhorada se você recolher vários enunciados 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 entidade
Se duas ou mais entidades em um padrão estiverem contextualmente relacionadas, os padrões usarão funções de entidade para extrair informações contextuais sobre entidades.
Pontuações de previsão com e sem padrões
Dado o suficiente exemplos de enunciados, o LUIS pode ser capaz de aumentar a confiança na previsão sem padrões. Os padrões aumentam a pontuação de confiança sem ter que fornecer tantos enunciados.
Correspondência de padrões
Um padrão é correspondido detetando as entidades dentro do padrão primeiro e, em seguida, validando o resto das palavras e a ordem das palavras do padrão. As entidades são necessárias no padrão para que um padrão corresponda. O padrão é aplicado no nível do token, não no nível do caractere.
Entidade Pattern.any
A entidade pattern.any permite localizar dados de forma livre em que o texto da entidade dificulta distinguir o final da entidade do resto da expressão.
Por exemplo, considere um aplicativo de Recursos Humanos que ajude os funcionários a encontrar documentos da empresa. Este aplicativo pode precisar entender os seguintes enunciados de exemplo.
- "Onde está o HRF-123456?"
- "Quem foi o autor do HRF-123234?"
- "HRF-456098 é publicado em francês?"
No entanto, cada documento tem um nome formatado (usado na lista acima) e um nome legível por humanos, como Solicitar realocação de funcionário novo para a empresa versão 5 de 2018.
Os enunciados com o nome legível por humanos podem ser parecidos com:
- "Onde está a solicitação de realocação de funcionário novo para a empresa versão 5 de 2018?"
- "Quem foi o autor de "Solicitar realocação de funcionário novo para a empresa 2018 versão 5"?"
- O pedido de realocação de funcionário novo para a empresa 2018 versão 5 é publicado em francês?"
Os enunciados incluem palavras que podem confundir 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 seguintes enunciados de modelo:
- Onde está {FormName}[?]
- Quem é o autor de {FormName}[?]
- {FormName} é publicado em francês[?]
Práticas recomendadas para padrões:
Adicionar padrões em iterações posteriores
Você deve entender como o aplicativo se comporta antes de adicionar padrões, porque os padrões são mais pesados do que os enunciados de exemplo e distorcerão a confiança.
Depois de entender como seu aplicativo se comporta, adicione padrões à medida que eles se aplicam ao seu aplicativo. Você não precisa adicioná-los cada vez que iterar no design do aplicativo.
Não há nenhum dano em adicioná-los no início do design do modelo, mas é mais fácil ver como cada padrão muda o modelo depois que o modelo é testado com enunciados.
Não adicione muitos padrões
Não adicione muitos padrões. O LUIS pretende aprender rapidamente com menos exemplos. Não sobrecarregue o sistema desnecessariamente.
Funcionalidades
No aprendizado de máquina, um recurso é um traço distintivo ou atributo de dados que seu sistema observa e aprende.
Os recursos de aprendizado de máquina dão ao LUIS pistas importantes sobre onde procurar coisas que distingam um conceito. São dicas que o LUIS pode usar, mas não são regras rígidas. O LUIS usa essas dicas com os rótulos para encontrar os dados.
Um recurso pode ser descrito como uma função, como f(x) = y
. No enunciado de exemplo, o recurso informa onde procurar o traço distintivo. Use essas informações para ajudar a criar seu esquema.
Tipos de funcionalidades
Os recursos são uma parte necessária do seu design de esquema. O LUIS suporta listas de frases e modelos como características:
- Recurso de lista de frases
- Modelo (intenção ou entidade) como um recurso
Encontre recursos em seus enunciados de exemplo
Como o LUIS é um aplicativo baseado em idioma, os recursos são baseados em texto. Escolha um texto que indique o traço que deseja distinguir. Para LUIS, a menor unidade é o token. Para a língua inglesa, um token é uma extensão contígua de letras e números que não tem espaços ou pontuação.
Como espaços e 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, tais como:
- Formas plurais
- Tempos verbais
- Abbreviations
- Ortografia e erros ortográficos
Determine se o texto precisa do seguinte porque 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 à entidade ou intenção.
- Corresponder a um conceito bem conhecido, como datas, horas ou nomes de pessoas: use uma entidade pré-criada como um recurso para a entidade ou intenção.
- Aprenda novos exemplos ao longo do 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 do seu aplicativo LUIS para generalizar e identificar novos itens para o conceito. As listas de frases são como vocabulário específico de domínio. Eles melhoram 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 exata de texto. Siga estas etapas para usar uma lista de frases:
- Comece com uma entidade de aprendizado de máquina:
- Adicione exemplos de enunciados.
- Rotule com uma entidade de aprendizado de máquina.
- Adicione uma lista de frases:
- 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.
- Reveja 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 o seu significado. Estes 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 seu domínio de assunto sem uma lista de frases.
Por exemplo, para extrair os termos médicos:
- Crie exemplos de enunciados e rotule termos médicos dentro desses enunciados.
- Crie uma lista de frases com exemplos dos termos dentro do domínio do assunto. Esta lista de frases deve incluir o termo real que você rotulou e outros termos que descrevem o mesmo conceito.
- 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 de aprendizado de máquina. 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 global. 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 com a palavra Ann se aplica a variações dos mesmos caracteres nessa ordem.
Variação de token de "Ann" | A lista de frases corresponde quando o token é encontrado |
---|---|
ANN aNN |
Sim - token é Ann |
Ann's | Sim - token é Ann |
Ana | Não - token é Anne |
Um modelo como recurso ajuda outro modelo
Você pode adicionar um modelo (intenção ou entidade) como um recurso a outro modelo (intenção ou entidade). Ao adicionar uma intenção ou entidade existente como um recurso, você está adicionando um conceito bem definido que rotulou exemplos.
Ao adicionar um modelo como um recurso, você pode definir o recurso como:
- Necessário. Um recurso necessá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 um recurso para uma intenção
Adicione uma entidade como um recurso a uma intenção quando a deteção dessa entidade for significativa para a intenção.
Por exemplo, se a intenção for reservar um voo, como o BookFlight , e a entidade for informações do bilhete (como o número de assentos, origem e destino), encontrar a entidade de informações do bilhete deve adicionar um peso significativo à previsão da intenção do BookFlight .
Quando usar uma entidade como um recurso para outra entidade
Uma entidade (A) deve ser adicionada como uma característica a outra entidade (B) quando a deteção dessa entidade (A) for significativa para a previsão da entidade (B).
Por exemplo, se uma entidade de endereço de remessa estiver contida em uma subentidade de endereço de rua, a localização da subentidade de endereço de rua adicionará um peso significativo à previsão para a entidade de endereço de remessa.
- Endereço de entrega (entidade de aprendizagem automática):
- Número da rua (subentidade)
- Endereço (subentidade)
- Cidade (subentidade)
- Estado ou Província (subentidade)
- País/Região (subentidade)
- Código postal (subentidade)
Subentidades aninhadas com recursos
Uma subentidade de aprendizado de máquina indica que um conceito está presente para a entidade pai. O pai pode ser outra subentidade ou a entidade superior. O valor da subentidade atua como um recurso para sua empresa-mãe.
Uma subentidade pode ter uma lista de frases e um modelo (outra entidade) como um recurso.
Quando a subentidade tem uma lista de frases, ela aumenta o vocabulário do conceito, mas não adiciona 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.
Funcionalidades necessárias
Um recurso necessário deve ser encontrado para que o modelo seja retornado do ponto de extremidade de previsão. Use um recurso necessário quando souber que os dados de entrada devem corresponder ao recurso.
Se o texto do enunciado não corresponder ao recurso necessário, ele não será extraído.
Um recurso necessário usa uma entidade que não é de aprendizado de máquina:
- Entidade de expressão regular
- Entidade de lista
- Entidade pré-construída
Se você tiver certeza de que seu modelo será encontrado nos dados, defina o recurso conforme necessário. Um recurso necessário não retorna nada se não for encontrado.
Continuando com o exemplo do endereço de envio:
Endereço de entrega (entidade aprendida por máquina)
- Número da rua (subentidade)
- Endereço (subentidade)
- Nome da rua (subentidade)
- Cidade (subentidade)
- Estado ou Província (subentidade)
- País/Região (subentidade)
- Código postal (subentidade)
Recurso necessário usando entidades pré-criadas
Entidades pré-construídas, como cidade, estado e país/região, geralmente são um conjunto fechado de listas, o que significa que não mudam muito ao longo do tempo. Estas entidades podem ter as características recomendadas relevantes e essas características podem ser marcadas conforme necessário. No entanto, o sinalizador isRequired está relacionado apenas à entidade à qual está atribuído e não afeta a hierarquia. Se o recurso de subentidade pré-criada não for encontrado, isso não afetará a deteção e o retorno da entidade pai.
Como exemplo de um recurso necessário, considere que você deseja detetar endereços. Você pode considerar tornar um número de rua um requisito. Isso permitiria que um usuário digitasse "1 Microsoft Way" ou "One Microsoft Way", e ambos resolveriam para o numeral "1" para a subentidade de número de rua. Consulte o artigo da entidadepré-criada para obter mais informações.
Recurso necessário usando entidades de lista
Uma entidade de lista é usada como uma lista de nomes canônicos juntamente com seus sinônimos. Como um recurso necessário, se o enunciado não incluir o nome canônico ou um sinônimo, a entidade não será retornada como parte do ponto de extremidade de previsão.
Suponha que a sua empresa apenas envia para um conjunto limitado de países/regiões. Você pode criar uma entidade de lista que inclua várias maneiras de seu cliente fazer referência ao país/região. Se o LUIS não encontrar uma correspondência exata no texto do enunciado, a entidade (que tem o recurso necessário da entidade da lista) não será retornada na previsão.
Nome canônico** | Sinónimos |
---|---|
Estados Unidos da América | U.S. Estados Unidos da América 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 necessária.
Recurso necessário usando entidades de expressão regular
Uma entidade de expressão regular que é usada como um recurso necessário fornece recursos de correspondência de rich text.
No exemplo de endereço de entrega, você pode criar uma expressão regular que captura regras de sintaxe dos códigos postais de país/região.
Características 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 para um recurso global é adicionar um vocabulário adicional ao aplicativo. Por exemplo, se seus clientes usam um idioma principal, mas esperam poder usar outro idioma dentro do mesmo enunciado, você pode adicionar um recurso que inclua 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.
Combine recursos para obter benefícios adicionais
Você pode usar mais de um recurso para descrever uma característica ou conceito. Um emparelhamento comum é usar:
- Um recurso de lista de frases: você pode usar várias listas de frases como recursos para o mesmo modelo.
- Um modelo como um recurso: entidade pré-construída, entidade de expressão regular, entidade de lista.
Exemplo: funcionalidades da entidade de reserva de bilhetes para uma aplicação de viagens
Como exemplo básico, considere um aplicativo para reservar um voo com intenção de reserva de voo e uma entidade de reserva de bilhetes. A entidade de reserva de bilhetes captura as informações para reservar um bilhete de avião num sistema de reservas.
A entidade de aprendizado de máquina para ticket-book tem duas subentidades para capturar origem e destino. Os recursos precisam ser adicionados a cada subentidade, não à entidade de nível superior.
A entidade de reserva de bilhetes é uma entidade de aprendizagem automática, com subentidades que incluem Origem e Destino. Estas subentidades indicam ambas 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 | geographyV2 entidade pré-construída | geographyV2 entidade pré-construída |
Lista de frases | Palavras de origem : começar em, começar de, sair | Palavras de destino : to, arrive, land at, go, going, stay, heading |
Lista de frases | Códigos de aeroporto - mesma lista para origem e destino | Códigos de aeroporto - mesma lista para origem e destino |
Lista de frases | Nomes de aeroportos - mesma lista para origem e destino | Códigos de aeroporto - mesma lista para origem e destino |
Se você prevê que as pessoas usam códigos de aeroporto e nomes de aeroportos, então LUIS deve ter listas de frases que usam ambos os tipos de frases. Os códigos de aeroporto podem ser mais comuns com texto inserido em um chatbot, enquanto os nomes de aeroportos podem ser mais comuns com conversas faladas, como um chatbot habilitado para fala.
Os detalhes correspondentes dos recursos são retornados apenas para modelos, não para listas de frases, porque apenas modelos são retornados no JSON de previsão.
Etiquetagem de reserva de bilhetes na intenção
Depois de criar a entidade de aprendizado de máquina, você precisa adicionar expressões de exemplo a uma intenção e rotular a entidade pai e todas as subentidades.
Para o exemplo de reserva de bilhetes, rotule os enunciados de exemplo na intenção com a entidade TicketBooking e quaisquer subentidades no texto.
Exemplo: aplicativo de pedidos de 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, a fim de completar o processamento do pedido.
A entidade de aprendizado de máquina neste exemplo é mais complexa com subentidades aninhadas, listas de frases, entidades pré-criadas e entidades personalizadas.
Este exemplo usa recursos no nível de subentidade e filho de nível de subentidade. Qual nível obtém que tipo de lista de frases ou modelo como um recurso é uma parte importante do design da sua entidade.
Embora as subentidades possam ter muitas listas de frases como recursos que ajudam a detetar a entidade, cada subentidade tem apenas um modelo como recurso. Neste aplicativo de pizza, esses modelos são principalmente listas.
Os enunciados de exemplo rotulados corretamente são exibidos de forma a mostrar como as entidades são aninhadas.