Planear a aplicação LUIS

Importante

O LUIS será descontinuado a 1 de outubro de 2025 e a partir de 1 de abril de 2023 não poderá criar novos recursos do LUIS. Recomendamos que migre as suas aplicações LUIS para a compreensão de linguagem de conversação para beneficiar do suporte contínuo do produto e das capacidades multilingues.

Um esquema de aplicação Language Understanding (LUIS) contém intenções e entidades relevantes para o seu domínio de assunto. As intenções classificam as expressões do utilizador e as entidades extraem dados das expressões de utilizador. Intenções e entidades relevantes para o seu domínio de assunto. As intenções classificam as expressões de utilizador.

Uma aplicação LUIS aprende e tem um desempenho mais eficiente quando a desenvolve de forma iterativa. Eis um ciclo de iteração típico:

  1. Criar uma nova versão
  2. Edite o esquema da aplicação LUIS. O que está incluído:
    • Intenções com expressões de exemplo
    • Entidades
    • Funcionalidades
  3. Preparar, testar e publicar
  4. Testar a aprendizagem ativa ao rever as expressões enviadas para o ponto final de predição
  5. Recolher dados de consultas de ponto final

Uma captura de ecrã a mostrar o ciclo de criação

Identificar o seu domínio

Uma aplicação LUIS está centrada num domínio de assunto. Por exemplo, pode ter uma aplicação de viagens que processa a reserva de bilhetes, voos, hotéis e carros alugados. Outra aplicação pode fornecer conteúdos relacionados com o exercício, o controlo dos esforços de fitness e a definição de objetivos. Identificar o domínio ajuda-o a encontrar palavras ou expressões relevantes para o seu domínio.

Dica

O LUIS oferece domínios pré-criados para muitos cenários comuns. Verifique se pode utilizar um domínio pré-criado como ponto de partida para a sua aplicação.

Identificar as suas intenções

Pense nas intenções que são importantes para a tarefa da sua aplicação.

Vejamos o exemplo de uma aplicação de viagens, com funções para reservar um voo e verificar a meteorologia no destino do utilizador. Pode definir duas intenções: BookFlight e GetWeather para estas ações.

Numa aplicação mais complexa com mais funções, provavelmente teria mais intenções e deve defini-las cuidadosamente para que não sejam muito específicas. Por exemplo, BookFlight e BookHotel podem ter de ser intenções separadas, mas BookInternationalFlight e BookDomesticFlight podem ser demasiado semelhantes.

Nota

É uma melhor prática utilizar apenas as intenções necessárias para executar as funções da sua aplicação. Se definir demasiadas intenções, torna-se mais difícil para o LUIS classificar corretamente as expressões. Se definir poucos, podem ser tão gerais que se sobrepõem.

Se não precisar de identificar a intenção geral do utilizador, adicione todas as expressões de utilizador de exemplo à None intenção. Se a sua aplicação precisar de mais intenções, pode criá-las mais tarde.

Criar expressões de exemplo para cada intenção

Para começar, evite criar demasiadas expressões para cada intenção. Depois de determinar as intenções necessárias para a sua aplicação, crie 15 a 30 expressões de exemplo por intenção. Cada expressão deve ser diferente das expressões fornecidas anteriormente. Inclua uma variedade de contagens de palavras, escolhas de palavras, tempos verbais e pontuação.

Para obter mais informações, veja Compreender as boas expressões das aplicações LUIS.

Identificar as entidades

Nas expressões de exemplo, identifique as entidades que pretende extrair. Para reservar um voo, precisa de informações como o destino, data, companhia aérea, categoria de bilhete e aula de viagem. Crie entidades para estes tipos de dados e, em seguida, marque as entidades nas expressões de exemplo. As entidades são importantes para realizar uma intenção.

Ao determinar quais as entidades a utilizar na sua aplicação, lembre-se de que existem diferentes tipos de entidades para capturar relações entre tipos de objetos. Veja Entidades no LUIS para obter mais informações sobre os diferentes tipos.

Dica

O LUIS oferece entidades pré-criadas para cenários comuns de utilizador conversacional. Considere utilizar entidades pré-criadas como ponto de partida para o desenvolvimento da sua aplicação.

Intenções versus entidades

Uma intenção é o resultado pretendido de toda a expressão, enquanto as entidades são partes de dados extraídas da expressão. Normalmente, as intenções estão associadas a ações que a aplicação cliente deve executar. As entidades são informações necessárias para efetuar esta ação. Do ponto de vista da programação, uma intenção acionaria uma chamada de método e as entidades seriam utilizadas como parâmetros para essa chamada de método.

Esta expressão tem de ter uma intenção e pode ter entidades:

"Comprar um bilhete de avião de Seattle para o Cairo"

Esta expressão tem uma única intenção:

  • Comprar um bilhete de avião

Esta expressão pode ter várias entidades:

  • Localizações de Seattle (origem) e Cairo (destino)
  • A quantidade de um único pedido

Resolução em expressões com mais do que uma função ou intenção

Em muitos casos, especialmente quando trabalham com conversações naturais, os utilizadores fornecem uma expressão que pode conter mais do que uma função ou intenção. Para resolver este problema, uma estratégia geral é compreender que a saída pode ser representada por intenções e entidades. Esta representação deve ser aplicável às ações da aplicação cliente e não tem de estar limitada a intenções.

Int-ent-ties é o conceito de que as ações (geralmente entendidas como intenções) também podem ser capturadas como entidades no resultado da aplicação e mapeadas para ações específicas. Por exemplo, a negação depende geralmente da intenção e da entidade para extração total. Considere as duas expressões seguintes, que são semelhantes na escolha de palavras, mas têm resultados diferentes:

  • "Por favor, agende o meu voo do Cairo para Seattle"
  • "Cancelar o meu voo do Cairo para Seattle"

Em vez de ter duas intenções separadas, deve criar uma única intenção com uma entidade flightAction machine learning. Esta entidade de machine learning deve extrair os detalhes da ação para agendar e cancelar pedidos e uma localização de origem ou destino.

Esta entidade FlightAction seria estruturada com a seguinte entidade de machine learning de nível superior e subentidades:

  • FlightAction
    • Ação
    • Origem
    • Destino

Para ajudar na extração, adicionaria funcionalidades às subentidades. Escolheria as funcionalidades com base no vocabulário que espera ver nas expressões do utilizador e os valores que pretende que sejam devolvidos na resposta de predição.

Melhores práticas

Planear o seu esquema

Antes de começar a criar o esquema da sua aplicação, deve identificar como e onde planeia utilizar esta aplicação. Quanto mais minucioso e específico for o seu planeamento, melhor será a sua aplicação.

  • Pesquisar utilizadores visados
  • Definir personas ponto a ponto para representar a sua aplicação – voz, avatar, processamento de problemas (proativo, reativo)
  • Identificar canais de interações do utilizador (como texto ou voz), entregar soluções existentes ou criar uma nova solução para esta aplicação
  • Percurso do utilizador ponto a ponto
    • O que espera que esta aplicação faça e não faça? Quais são as prioridades do que deve fazer?
    • Quais são os principais casos de utilização?
  • Recolher dados – saiba mais sobre como recolher e preparar dados

Não preparar e publicar com cada expressão de exemplo

Adicione 10 ou 15 expressões antes da preparação e publicação. Isto permite-lhe ver o impacto na precisão da predição. Adicionar uma única expressão pode não ter um impacto visível na classificação.

Não utilizar o LUIS como uma plataforma de preparação

O LUIS é específico do domínio de um modelo de linguagem. Não se destina a funcionar como uma plataforma de preparação de linguagem natural geral.

Criar a sua aplicação iterativamente com versões

Cada ciclo de criação deve estar contido numa nova versão, clonada a partir de uma versão existente.

Não publicar muito rapidamente

Publicar a sua aplicação demasiado rapidamente e sem um planeamento adequado pode levar a vários problemas, tais como:

  • A sua aplicação não funcionará no seu cenário real a um nível aceitável de desempenho.
  • O esquema (intenções e entidades) pode não ser adequado e, se tiver desenvolvido a lógica da aplicação cliente ao seguir o esquema, poderá ter de o refazer. Isto pode causar atrasos inesperados e custos adicionais para o projeto em que está a trabalhar.
  • As expressões que adicionar ao modelo podem causar preconceitos em relação a expressões de exemplo que são difíceis de depurar e identificar. Também dificultará a remoção da ambiguidade depois de se ter comprometido com um determinado esquema.

Monitorizar o desempenho da sua aplicação

Monitorize a precisão das predições com um conjunto de testes em lote.

Mantenha um conjunto separado de expressões que não sejam utilizadas como expressões de exemplo ou expressões de ponto final. Continue a melhorar a aplicação para o conjunto de teste. Adapte o conjunto de teste em função de expressões de utilizadores reais. Utilize este conjunto de teste para avaliar cada iteração ou versão da aplicação.

Não criar listas de expressões com todos os valores possíveis

Forneça alguns exemplos nas listas de expressões , mas não todas as palavras ou expressões. O LUIS generaliza e tem em conta o contexto.

Passos seguintes

Intenções