Intenções
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.
Uma intenção representa uma tarefa ou ação que o usuário deseja executar. É um propósito ou objetivo expresso no enunciado de um usuário.
Defina um conjunto de intenções que corresponda às ações que os usuários desejam executar em seu aplicativo. Por exemplo, uma aplicação de viagens teria várias intenções:
Intenções da aplicação de viagens | Expressões de exemplo |
---|---|
ReservarBilhete | "Reserve um voo para o Rio na próxima semana" "Voe-me para o Rio no dia 24" "Preciso de uma passagem de avião no próximo domingo para o Rio de janeiro" |
Greeting (Saudação) | "Olá" "Olá" "Good morning" (Bom dia) |
CheckWeather | "Como é o clima em Boston?" "Mostre-me a previsão para este fim de semana" |
Nenhuma | "Obtenha-me uma receita de biscoito" "Os Lakers ganharam?" |
Todos os aplicativos vêm com a intenção predefinida, "Nenhuma", que é a intenção de fallback.
Intenções pré-construídas
O LUIS fornece intenções pré-construídas e seus enunciados para cada um dos seus domínios pré-construídos. As intenções podem ser adicionadas sem adicionar todo o domínio. Adicionar uma intenção é o processo de adicionar uma intenção e seus enunciados ao seu aplicativo. Tanto o nome da intenção quanto a lista de enunciados podem ser modificados.
Devolver as pontuações de todas as intenções
Você atribui um enunciado a uma única intenção. Quando LUIS recebe um enunciado, por padrão, ele retorna a intenção superior para esse enunciado.
Se desejar as pontuações para todas as intenções do enunciado, você pode fornecer um sinalizador na cadeia de caracteres de consulta da API de previsão.
Versão da API de previsão | Sinalizador |
---|---|
V2 | verbose=true |
V3 | show-all-intents=true |
Intenção em comparação com a entidade
A intenção representa a ação que o aplicativo deve tomar para o usuário, com base em todo o enunciado. Um enunciado pode ter apenas uma intenção de pontuação, mas pode ter muitas entidades.
Crie uma intenção quando a intenção do usuário acionar uma ação em seu aplicativo cliente, como uma chamada para a função checkweather() da tabela acima. Em seguida, crie entidades para representar os parâmetros necessários para executar a ação.
Intenção | Entidade | Expressão de exemplo |
---|---|---|
CheckWeather | { "type": "localização", "entidade": "Seattle" } { "type": "builtin.datetimeV2.date","entidade": "amanhã","resolução":"2018-05-23" } |
Como está o tempo em Seattle tomorrow ? |
CheckWeather | { "type": "date_range", "entity": "este fim de semana" } | MOSTRE-ME A PREVISÃO PARA this weekend |
Intenção None (Nenhuma)
A intenção Nenhum é criada, mas deixada vazia de propósito. A intenção Nenhum é uma intenção necessária e não pode ser excluída ou renomeada. Preencha-a com expressões que estejam fora do seu domínio.
A intenção Nenhum é a intenção de fallback, e deve ter 10% do total de enunciados. É importante em todos os aplicativos, porque é usado para ensinar enunciados LUIS que não são importantes no domínio do aplicativo (área temática). Se você não adicionar nenhum enunciado para a intenção Nenhum, o LUIS forçará um enunciado que está fora do domínio em uma das intenções do domínio. Isso distorcerá as pontuações de previsão, ensinando ao LUIS a intenção errada para o enunciado.
Quando um enunciado é previsto como a intenção Nenhum, o aplicativo cliente pode fazer mais perguntas ou fornecer um menu para direcionar o usuário para opções válidas.
Intenções negativas
Se você quiser determinar intenções negativas e positivas, como "Eu quero um carro" e "Eu não quero um carro", você pode criar duas intenções (uma positiva e uma negativa) e adicionar expressões apropriadas para cada uma. Ou você pode criar uma única intenção e marcar os dois termos positivos e negativos diferentes como uma entidade.
Intenções e padrões
Se você tiver enunciados de exemplo, que podem ser definidos em parte ou no todo como uma expressão regular, considere usar a entidade de expressão regular emparelhada com um padrão.
O uso de uma entidade de expressão regular garante a extração de dados para que o padrão seja correspondido. A correspondência de padrões garante que uma intenção exata seja retornada.
Equilíbrio de intenções
As intenções do domínio do aplicativo devem ter um equilíbrio de expressões em cada intenção. Por exemplo, não tenha a maioria das suas intenções com 10 enunciados e outra intenção com 500 enunciados. Isto não é equilibrado. Nessa situação, você gostaria de rever a intenção com 500 enunciados para ver se muitas das intenções podem ser reorganizadas em um padrão.
A intenção Nenhum não está incluída no saldo. Essa intenção deve conter 10% do total de declarações no aplicativo.
Limites de intenção
Analise os limites para entender quantas intenções você pode adicionar a um modelo.
Gorjeta
Se você precisar de mais do que o número máximo de intenções, considere se seu sistema está usando muitas intenções e determine se várias intenções devem ser combinadas em uma única intenção com entidades. Intenções muito semelhantes podem tornar mais difícil para o LUIS distingui-las. As intenções devem ser variadas o suficiente para capturar as principais tarefas que o usuário está pedindo, mas eles não precisam capturar todos os caminhos que seu código toma. Por exemplo, duas intenções: BookFlight() e FlightCustomerService() podem ser intenções separadas em um aplicativo de viagem, mas BookInternationalFlight() e BookDomesticFlight() são muito semelhantes. Se o seu sistema precisar distingui-los, use entidades ou outra lógica em vez de intenções.
Solicite ajuda para aplicativos com um número significativo de intenções
Se reduzir o número de intenções ou dividir suas intenções em vários aplicativos não funcionar para você, entre em contato com o suporte. Se a sua subscrição do Azure incluir serviços de suporte, contacte o suporte técnico do Azure.
Práticas recomendadas para intenções:
Definir intenções distintas
Certifique-se de que o vocabulário para cada intenção é apenas para essa intenção e não se sobrepõe a uma intenção diferente. Por exemplo, se você quiser ter um aplicativo que lida com planos de viagem, como voos de companhias aéreas e hotéis, você pode optar por ter essas áreas de assunto como intenções separadas ou a mesma intenção com entidades para dados específicos dentro do enunciado.
Se o vocabulário entre duas intenções for o mesmo, combine a intenção e use entidades.
Considere os seguintes exemplos de enunciados:
- Reservar um voo
- Reserve um hotel
"Reserve um voo" e "reserve um hotel" usam o mesmo vocabulário de "reservar um <substantivo>". Este formato é o mesmo, por isso deve ser a mesma intenção com as diferentes palavras de voo e hotel como entidades extraídas.
Adicione recursos às intenções
Os recursos descrevem conceitos para uma intenção. Um recurso pode ser uma frase, uma lista de palavras que são significativas para essa intenção ou uma entidade que é significativa para essa intenção.
Encontre o ponto ideal para intenções
Use os dados de previsão do LUIS para determinar se suas intenções estão sobrepostas. Intenções sobrepostas confundem LUIS. O resultado é que a intenção de pontuação máxima está muito próxima de outra intenção. Como o LUIS não usa exatamente o mesmo caminho através dos dados para treinamento de cada vez, uma intenção sobreposta tem uma chance de ser a primeira ou a segunda no treinamento. Você quer que a pontuação do enunciado para cada intenção esteja mais distante, para que essa variação não aconteça. Uma boa distinção para intenções deve resultar sempre na intenção máxima esperada.
Equilibre os enunciados entre intenções
Para que as previsões LUIS sejam precisas, a quantidade de enunciados de exemplo em cada intenção (exceto para a intenção Nenhuma) deve ser relativamente igual.
Se você tiver uma intenção com 500 enunciados de exemplo e todas as suas outras intenções com 10 enunciados de exemplo, a intenção de 500 enunciados terá uma taxa maior de previsão.
Adicionar expressões de exemplo a nenhuma intenção
Essa intenção é a intenção de fallback, indicando tudo fora do seu aplicativo. Adicione um enunciado de exemplo à intenção Nenhum para cada 10 expressões de exemplo no resto do seu aplicativo LUIS.
Não adicione muitos exemplos de declarações às intenções
Depois que o aplicativo for publicado, adicione apenas expressões da aprendizagem ativa no processo de ciclo de vida do desenvolvimento. Se os enunciados forem muito semelhantes, adicione um padrão.
Não misture a definição de intenções e entidades
Crie uma intenção para qualquer ação que seu bot realizará. Use entidades como parâmetros que tornam essa ação possível.
Por exemplo, para um bot que reservará voos de companhias aéreas, crie uma intenção BookFlight . Não crie uma intenção para cada companhia aérea ou cada destino. Use esses dados como entidades e marque-os nos enunciados de exemplo.