Intençõ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.

Uma intenção representa uma tarefa ou ação que o usuário deseja executar. É uma finalidade ou meta expressa na declaração de um usuário.

Defina um conjunto de intenções que corresponda às ações que os usuários desejem executar em seu aplicativo. Por exemplo, um aplicativo de viagem teria várias intenções:

Intenções do aplicativo de viagem Exemplo de enunciados
BookFlight "Reserve um voo para mim para o Rio na semana que vem"
"Coloque-me num voo para o Rio no dia 24"
"Preciso de uma passagem de avião no próximo domingo para o Rio de Janeiro"
Saudação "Oi"
"Olá"
"Bom dia"
CheckWeather "Como está o clima em Boston?"
"Mostre-me a previsão para este fim de semana"
Nenhum "Encontre uma receita de biscoitos para mim"
"Os Lakers venceram?"

Todos os aplicativos vêm com a intenção predefinida "None", que é a intenção de fallback.

Intenções predefinidas

O LUIS fornece intenções predefinidas e os enunciados para cada um dos domínios predefinidos. As intenções podem ser adicionadas sem adicionar todo o domínio. A adição de uma intenção é o processo de adicionar uma intenção e seus enunciados ao aplicativo. Tanto o nome da intenção como a lista de enunciados podem ser modificados.

Retornar pontuações de todas as intenções

Atribua uma declaração a uma única intenção. Quando o LUIS recebe um enunciado, por padrão, ele retorna a primeira intenção desse enunciado.

Se desejar as pontuações de todas as intenções do enunciado, é possível 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 comparada com a entidade

A intenção representa a ação que o aplicativo deve executar para o usuário, com base no enunciado inteiro. Um enunciado pode ter apenas uma intenção de pontuação superior, mas pode ter inúmeras entidades.

Crie uma intenção quando a intenção do usuário poderia disparar uma ação em seu aplicativo cliente, como uma chamada à função checkweather() a partir da tabela acima. Em seguida, crie entidades para representar os parâmetros necessários para executar a ação.

Intencional Entidade Exemplo de enunciado
CheckWeather { "type": "location", "entity": "seattle" }
{ "type": "builtin.datetimeV2.date","entity": "tomorrow","resolution":"2018-05-23" }
Como está o clima em Seattle tomorrow?
CheckWeather { "type": "date_range", "entity": "this weekend" } Mostre-me a previsão para this weekend

Intenção None

A intenção None é criada, mas deixada vazia de propósito. A intenção None é uma intenção necessária e não pode ser excluída nem renomeada. Preencha-a com declarações que estejam fora de seu domínio.

A intenção None é a intenção de fallback e deve ter 10% dos enunciados totais. Ela é importante em todos os aplicativos, pois é usado para ensinar ao LUIS enunciados que não são importantes no domínio do aplicativo (área de assunto). Se você não adicionar nenhuma declaração para a intenção None, o LUIS forçará uma declaração que está fora do domínio para uma das intenções do domínio. Isso distorcerá as pontuações de previsão ensinando ao LUIS a intenção incorreta para a declaração.

Quando um enunciado é previsto como a intenção None, o aplicativo cliente pode fazer mais perguntas ou fornecer um menu para direcionar o usuário para escolhas válidas.

Intenções negativas

Se desejar determinar intenções negativas e positivas, como "Eu quero um carro" e "Eu não quero um carro", será possível criar duas intenções (uma positiva e uma negativa) e adicionar declarações adequadas para cada uma. Ou é possível 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 parcial ou totalmente 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 do padrão garante que uma intenção exata seja retornada.

Equilíbrio de intenções

As intenções do domínio de aplicativo devem ter um equilíbrio de declarações em cada intenção. Por exemplo, não tenha a maioria de suas intenções com 10 enunciados e outra intenção com 500 enunciados. Isso não está equilibrado. Nessa situação, talvez você queira revisar a intenção com 500 enunciados para ver se muitas das intenções podem ser reorganizadas em um padrão.

A intenção None não está incluída no equilíbrio. A intenção deve conter 10% das declarações totais no aplicativo.

Limites de intenção

Revise os limites para entender a quantidade de intenções que você pode adicionar a um modelo.

Dica

Se precisar de mais do que o número máximo de intenções, considere se o seu sistema está usando muitas intenções e determine se várias intenções podem ser combinadas em uma única intenção com entidades. Intenções muito semelhantes poderão dificultar sua diferenciação pelo LUIS. As intenções devem ser variadas o suficiente para capturar as principais tarefas que o usuário está solicitando, mas elas não precisam capturar todo caminho que seu código usa. Por exemplo, duas intenções: BookFlight() e FlightCustomerService() podem ser intenções separadas em um aplicativo de viagem, mas BookInternationalFlight() e BookDomesticFlight() são semelhantes demais. Se o sistema precisar diferenciá-las, use entidades ou outra lógica, em vez de intenções.

Solicite ajuda para aplicativos com quantidades significativas de intenções

Se a redução do número de intenções ou a divisão das suas intenções em vários aplicativos não funcionar para você, contate o suporte. Se a assinatura do Azure incluir serviços de suporte, contate o suporte técnico do Azure.

Melhores práticas para intenções:

Definir intenções distintas

Verifique se o vocabulário para cada intenção é apenas para essa intenção e não está se sobrepondo a uma intenção diferente. Por exemplo, se desejar ter um aplicativo que manipula organizações de viagem como voos por companhia aérea e hotéis, será possível optar por tê-las como áreas de assunto, intenções separadas ou a mesma intenção com entidades para dados específicos dentro da declaração.

Se o vocabulário entre duas intenções for o mesmo, combine a intenção e use entidades.

Considere os seguintes exemplos de declaração:

  1. Reservar um voo
  2. Reservar um hotel

"Reservar um voo" e "reservar hotel" usam o mesmo vocabulário de "reservar um <substantivo>". Esse formato é o mesmo, portanto deve ser a mesma intenção com palavras diferentes de voo e hotel como entidades extraídas.

Adicionar recursos a intenções

Os recursos descrevem os conceitos de uma intenção. Um recurso pode ser uma lista de frases de palavras que são significativas para a intenção ou uma entidade que seja significativa para a intenção.

Localizar ponto ideal para intenções

Use dados de previsão do LUIS para determinar se suas intenções estiverem se sobrepondo. Intenções sobrepostas confundem o LUIS. O resultado é que a principal intenção de pontuação está muito perto de outra intenção. Como o LUIS não usa o mesmo caminho exato por meio dos dados para treinamento a cada vez, uma intenção sobreposta tem uma chance de ser a primeira ou a segunda no treinamento. É conveniente que a pontuação da declaração para cada intenção esteja mais distante, para que essa variância não aconteça. A boa distinção para intenções deve resultar na principal intenção esperada toda vez.

Equilibrar enunciados entre intenções

Para as previsões do LUIS serem precisas, a quantidade de enunciados de exemplo em cada intenção (exceto para a intenção None), deve ser relativamente semelhante.

Se você tiver uma intenção com 500 enunciados de exemplo e todas as outras intenções com 10 enunciados de exemplo, a intenção com 500 enunciados terá uma taxa de previsão superior.

Adicionar enunciados de exemplo à intenção None

Essa é a intenção fallback, indicar tudo fora do seu aplicativo. Adicione um exemplo de declaração à intenção None para todos os 10 exemplos de declarações no restante do seu aplicativo LUIS.

Não adicione muitos exemplos de declaração a intenções

Depois que o aplicativo for publicado, adicione apenas enunciados do aprendizado ativo no processo do ciclo de vida de desenvolvimento. Se as declarações forem semelhantes demais, adicione um padrão.

Não misture a definição de intenções e entidades

Criar uma intenção para qualquer ação que seu bot usará. Use entidades como parâmetros que possibilitam a ação.

Por exemplo, para obter um bot que fará reservas de voos de companhias aéreas, crie uma intenção BookFlight. Não crie uma intenção para toda companhia aérea ou para todo destino. Use essas partes de dados como entidades e marque-as nos exemplos de declarações.

Próximas etapas

Como usar intenções