Definir intenções, enunciados e entidades

Concluído

Enunciados são as frases que um usuário pode inserir ao interagir com um aplicativo que usa seu modelo de linguagem. Uma intenção representa uma tarefa ou ação que o usuário deseja executar, ou mais simplesmente o significado de um enunciado. Você cria um modelo definindo intenções e associando-as a um ou mais enunciados.

Por exemplo, considere a seguinte lista de intenções e expressões associadas:

  • GetTime:
    • "Que horas são?"
    • "Qual é a hora?"
    • "Diga-me a hora"
  • GetWeather:
    • "Qual é a previsão do tempo?"
    • "Preciso de um guarda-chuva?"
    • "Vai nevar?"
  • TurnOnDevice
    • "Acenda a luz."
    • "Acenda a luz."
    • "Ligue o ventilador"
  • Nenhuma:
    • "Hello" (Olá)
    • "Adeus"

Em seu modelo, você deve definir as intenções que deseja que seu modelo entenda, portanto, dedique algum tempo considerando o domínio que seu modelo deve suportar e os tipos de ações ou informações que os usuários podem solicitar. Além das intenções que você define, cada modelo inclui uma intenção Nenhuma que você deve usar para identificar explicitamente enunciados que um usuário pode enviar, mas para os quais não há nenhuma ação específica necessária (por exemplo, saudações conversacionais como "olá") ou que estão fora do escopo do domínio para este modelo.

Depois de identificar as intenções que seu modelo deve suportar, é importante capturar vários exemplos diferentes para cada intenção. Colete expressões que você acha que os usuários entrarão; incluindo enunciados que significam a mesma coisa, mas que são construídos de maneiras diferentes. Tenha estas diretrizes em mente:

  • Capture vários exemplos diferentes ou formas alternativas de dizer a mesma coisa
  • Varie o comprimento dos enunciados de curto, médio a longo
  • Varie a localização do substantivo ou sujeito do enunciado. Coloque-o no início, no fim ou em algum lugar no meio
  • Use gramática correta e gramática incorreta em diferentes enunciados para oferecer bons exemplos de dados de treinamento
  • A precisão, consistência e integridade dos dados rotulados são fatores-chave para determinar o desempenho do modelo.
    • Rotule com precisão: rotule cada entidade sempre com o tipo certo. Inclua apenas o que deseja extrair, evite dados desnecessários em seus rótulos.
    • Rotular de forma consistente: a mesma entidade deve ter o mesmo rótulo em todos os enunciados.
    • Rotule completamente: rotule todas as instâncias da entidade em todos os seus enunciados.

As entidades são usadas para adicionar contexto específico às intenções. Por exemplo, você pode definir uma intenção TurnOnDevice que pode ser aplicada a vários dispositivos e usar entidades para definir os diferentes dispositivos.

Considere os seguintes enunciados, intenções e entidades:

Expressão Intenção Entidades
Qual é a hora? GetTime
Que horas são em Londres? GetTime Localização (Londres)
Qual é a previsão do tempo para Paris? GetWeather Localização (Paris)
Vou precisar de um guarda-chuva esta noite? GetWeather Hora (hoje à noite)
Qual é a previsão para Seattle amanhã? GetWeather Localização (Seattle), Hora (amanhã)
Acenda a luz . TurnOnDevice Dispositivo (leve)
Ligue o ventilador. TurnOnDevice Dispositivo (ventilador)

Você pode dividir entidades em alguns tipos de componentes diferentes:

  • As entidades aprendidas são o tipo mais flexível de entidade, e devem ser usadas na maioria dos casos. Você define um componente aprendido com um nome adequado e, em seguida, associa palavras ou frases a ele em enunciados de treinamento. Quando você treina seu modelo, ele aprende a combinar os elementos apropriados nos enunciados com a entidade.
  • As entidades de lista são úteis quando você precisa de uma entidade com um conjunto específico de valores possíveis - por exemplo, dias da semana. Você pode incluir sinônimos em uma definição de entidade de lista, para que você possa definir uma entidade DayOfWeek que inclua os valores "Sunday", "Monday", "Tuesday" e assim por diante, cada um com sinônimos como "Sun", "Mon", "Ter" e assim por diante.
  • As entidades pré-criadas são úteis para tipos comuns, como números, datas/hora e nomes. Por exemplo, quando componentes pré-construídos são adicionados, você detetará automaticamente valores como "6" ou organizações como "Microsoft". Você pode ver este artigo para obter uma lista de entidades pré-criadas suportadas.