Coleta de dados para seu aplicativo

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.

Um aplicativo de Reconhecimento Vocal (LUIS) precisa de dados como parte do desenvolvimento do aplicativo.

Dados usados no LUIS

O LUIS usa texto como dados para treinar e testar seu aplicativo LUIS quanto à classificação de intenções e extração de entidades. Você precisa de um conjunto de dados grande o suficiente para ter os dados necessários para criar conjuntos de dados separados de treinamento e teste que tenham a diversidade e a distribuição destacadas especificamente abaixo. Os dados nesses conjuntos não devem se sobrepor.

Seleção de dados de treinamento para enunciados de exemplo

Selecione enunciados para seu conjunto de treinamento com base nos seguintes critérios:

  • Os dados reais são melhores:

    • Dados reais do aplicativo cliente: selecione enunciados que sejam dados reais do aplicativo cliente. Se o cliente enviar um formulário da Web com sua consulta hoje e você estiver criando um bot, você poderá começar usando os dados do formulário da Web.
    • Dados fornecidos pelo público: se você não tiver nenhum dado existente, considere enunciados fornecidos pelo público. Tente obter enunciados da sua população de usuários real para seu cenário para obter a melhor aproximação dos dados reais para seu aplicativo. Enunciados humanos fornecidos pelo público são melhores do que enunciados gerados por computador. Quando você compilar um conjunto de dados de enunciados sintéticos gerados em padrões específicos, ele não terá grande parte da variação natural que você verá com as pessoas criando os enunciados, e a produção não será generalizada o suficiente.
  • Diversidade de dados:

    • Diversidade de região: certifique-se de que os dados de cada intenção sejam os mais diversos possíveis, incluindo fraseamento (escolha de palavras) e gramática. Se você estiver ensinando uma intenção sobre as políticas de RH referente a dias de férias, certifique-se de ter enunciados que representam os termos usados para todas as regiões que você está atendendo. Por exemplo, na Europa, as pessoas podem perguntar sobre taking a holiday e nos EUA as pessoas podem perguntar sobre taking vacation days.
    • Diversidade de idioma: se você tiver usuários com vários idiomas nativos que estão se comunicando em um segundo idioma, certifique-se de ter enunciado que representem falantes não nativos.
    • Diversidade de entrada: considere o caminho de entrada de dados. Caso você esteja coletando dados de uma pessoa, uma departamento ou um dispositivo de entrada (microfone), provavelmente não possui a diversidade que será importante para seu aplicativo aprender sobre todos os caminhos de entrada.
    • Diversidade de pontuação: considere que as pessoas usam níveis variados de pontuação em aplicativos de texto, e verifique se você tem uma diversidade de como a pontuação é usada. Se você estiver usando dados provenientes da fala, ela não terá pontuação, portanto, os dados também não devem ter.
  • Distribuição de dados: verifique se os dados espalhados entre as intenções representam a mesma propagação de dados que o aplicativo cliente recebe. Se o aplicativo LUIS classificar enunciados de solicitações para agendar uma licença (50%) e visualizar enunciados sobre a consulta de dias de licença restantes (20%), aprovação de licenças (20%) e outros fora do escopo e bate-papo (10%), o conjunto de dados deverá ter os percentuais de exemplo de cada tipo de enunciado.

  • Usar todas as formas de dados: se seu aplicativo LUIS receber dados em várias formas, certifique-se de incluir essas formas em seu enunciado de treinamento. Por exemplo, se o seu aplicativo cliente usa entradas de fala e de texto digitado, você precisa ter enunciados de reconhecimento de fala, bem como enunciados digitados. Você verá diferentes variações em como as pessoas falam e como digitam, além de erros diferentes no reconhecimento de fala e erros de digitação. Toda essa variação deve ser representada em seus dados de treinamento.

  • Exemplos positivos e negativos: para ensinar um aplicativo LUIS, ele deve saber qual é a intenção (positivo) e o que não é (negativo). No LUIS, os enunciados só podem ser positivos para uma única intenção. Quando um enunciado é adicionado a uma intenção, o LUIS automaticamente torna este mesmo exemplo de enunciado um exemplo negativo para todas as outras intenções.

  • Dados fora do escopo do aplicativo: se o aplicativo visualizar enunciados fora de suas intenções definidas, certifique-se de fornecê-los. Os exemplos que não são atribuídos a uma intenção específica definida, serão rotulados com a intenção Nenhuma. É importante ter exemplos realistas para a intenção Nenhuma a fim de prever corretamente enunciados que estão fora do escopo das intenções definidas.

    Por exemplo, se você está criando um bot de RH focado no tempo de licença e tiver três intenções:

    • agendar ou editar uma licença
    • consultar os dias de licença disponíveis
    • aprovar/reprovar uma licença

    Você precisa ter certeza de que possui enunciados abrangendo essas duas intenções, mas que também abrangem enunciados potenciais fora desse escopo que o aplicativo deve fornecer da seguinte forma:

    • What are my medical benefits?
    • Who is my HR rep?
    • tell me a joke
  • Exemplos raros: seu aplicativo precisará ter exemplos raros, bem como exemplos comuns. Se seu aplicativo nunca tiver visto exemplos raros, ele não será capaz de identificá-los na produção. Se você estiver usando dados reais, poderá prever com mais precisão como seu aplicativo LUIS funcionará em produção.

Qualidade em vez de quantidade

Considere a qualidade dos dados existentes antes de adicionar mais dados. Com o LUIS, você está usando o Machine Teaching. A combinação de seus rótulos e os recursos de aprendizado de máquina que você define é o que seu aplicativo LUIS usa. Ele não depende simplesmente da quantidade de rótulos para fazer a melhor previsão. A diversidade de exemplos e sua representação do que seu aplicativo LUIS verá em produção é a parte mais importante.

Dados de pré-processamento

As seguintes etapas de pré-processamento ajudarão a criar um aplicativo LUIS melhor:

  • Remover duplicatas: enunciados duplicados não prejudicarão, mas também não ajudarão, portanto, a remoção dos mesmos economizará tempo de rotulagem.
  • Aplicar o mesmo pré-processamento de aplicativo cliente: se o aplicativo cliente, que chama o ponto de extremidade de previsão do LUIS, aplica o processamento de dados em tempo de execução antes de enviar o texto para o LUIS, você deve treinar o aplicativo LUIS com os dados que são processados da mesma maneira.
  • Não aplicar novos processos de limpeza que o aplicativo cliente não usa: se seu aplicativo cliente aceitar texto gerado por fala diretamente sem qualquer limpeza, como gramática ou pontuação, seus enunciados precisarão refletir o mesmo, incluindo qualquer pontuação ausente e qualquer outra falha no reconhecimento que você precisará considerar.
  • Não limpar os dados: não se livre da entrada malformada que você pode obter do reconhecimento de fala ilegível, pressionamentos acidentais de tecla ou texto digitado/grafado incorretamente. Se seu aplicativo visualiza entradas como essas, é importante que ele seja treinado e testado em conformidade. Adicione uma intenção de entrada malformada se você não esperar que seu aplicativo a entenda. Rotule esses dados para ajudar seu aplicativo LUIS a prever a resposta correta no tempo de execução. O aplicativo cliente pode escolher uma resposta apropriada para enunciados ininteligíveis, como Please try again.

Rotulando dados

  • Rotular texto como se estivesse correto: o exemplo de enunciados deve ter todas as formas de uma entidade rotulada. Isso inclui texto com ortografia incorreta, digitado incorretamente e erro de tradução.

Análise de dados após o aplicativo LUIS entrar em produção

Examine o enunciado do ponto de extremidade para monitorar o tráfego real do enunciado depois de implantar um aplicativo para produção. Isso permite que você atualize seus enunciados de treinamento com dados reais, o que melhorará seu aplicativo. Qualquer aplicativo compilado com dados de cenário fictício ou fornecidos pelo público precisará ser melhorado com base em seu uso real.

Testar a seleção de dados para teste em lotes

Todos os princípios listados acima para enunciados de treinamento se aplicam aos enunciados que você deve usar para o conjunto de teste. Verifique se a distribuição entre intenções e entidades espelha a distribuição real o máximo possível.

Não reutilize enunciados do conjunto de treinamento em seu conjunto de teste. Isso desvia incorretamente seus resultados e não lhe dará a indicação correta de como será o desempenho do seu aplicativo LUIS em produção.

Depois que a primeira versão do aplicativo for publicada, você deverá atualizar o conjunto de testes com enunciados do tráfego real para garantir que o conjunto de testes reflita sua distribuição de produção e você possa monitorar o desempenho realista ao longo do tempo.

Próximas etapas

Saiba como o LUIS altera seus dados antes da previsão