Ordem das palavras e diversidade de expressões

Este tutorial aprofunda como criar conjuntos ótimos de expressões para seu modelo de NLP usando ordem de palavras e diversidade de termos.

Para garantir que seu chatbot compreenda efetivamente os usuários, ele deve analisar dois elementos-chave:

  • as palavras específicas usadas

  • a ordem em que essas palavras são usadas

Ordem das palavras

A ordem das palavras pode impactar significativamente o significado. Por exemplo, Quero pegar o trem, não o carro difere de Quero pegar o carro, não o trem, apesar de conter as mesmas palavras em ordem diferente.

Ao gerar expressões para seu chatbot, é crucial considerar todas as ordens de palavras e estruturas sintáticas plausíveis.

Exemplo

Por exemplo, se você está alimentando sua intenção book_train_ticket com expressões, certifique-se de levar em conta diferentes:

  • Quero pegar o trem para Paris.

  • Para Paris, quero pegar o trem.

  • Quero ir para Paris de trem.

Embora algumas estruturas possam não ser perfeitamente gramaticais, é importante incluí-las, pois os usuários podem nem sempre estar sintaticamente corretos. Se o significado for claro para um humano, deve fazer parte do seu modelo.

Diversidade vocabular

Para garantir que seu chatbot entenda a diferença entre entradas boas e ruins, use palavras diversas pertinentes ao caso de uso. Para casos restritos, controle rigorosamente o vocabulário.

Vetores de palavras

Para tornar as palavras utilizáveis por algoritmos de aprendizado de máquina, elas são convertidas em vetores numéricos com centenas ou milhares de dimensões, semelhantes a coordenadas em um gráfico.

A vantagem dessa abordagem é que ela naturalmente agrupa palavras com significados semelhantes, como "barco" e "navio", próximas umas das outras no espaço vetorial. Com as técnicas certas, os vetores de palavras podem capturar relações ainda mais intrincadas. Por exemplo, "carros" e "aviões" são ambos meios de transporte e estarão relacionados, embora suas diferenças também sejam preservadas.

Se colocarmos esses modos de transporte em um gráfico simples, fica algo assim:

Exemplo de como as palavras são representadas para aprendizado de máquina.
Exemplo

Por exemplo, para projetar um chatbot para organizar transporte terrestre, você deve ser preciso com o eixo horizontal—sem água significa sem transporte por barco. O eixo vertical pode ser mais flexível; por exemplo, uma bicicleta é suficiente para pacotes pequenos em cidades movimentadas, enquanto cargas maiores exigem caminhões ou trens. Os diferentes métodos de transporte que você consideraria estão destacados em amarelo abaixo.

Considere outro cenário em que você precisa transportar algo grande, independentemente do modo de transporte—terrestre, aquático ou aéreo. Aqui, carros e bicicletas são inadequados, mas um barco, trem ou avião seriam apropriados. Nesse cenário, você deve permitir alguma variedade horizontalmente, mas limitar a diversidade vertical, como ilustrado pela caixa azul na figura.

Como criar conjuntos ótimos de expressões

Agora que sabemos quão importantes são a diversidade vocabular e a ordem das palavras, podemos usar essa percepção para criar um guia passo a passo sobre como fazer um bom conjunto de expressões.

Para facilitar esse processo, gerar expressões do seu Intents aba..

Para ser ideal em sua entrada manual de expressões:

  1. Crie uma lista de expressões com ordens de palavras bem diferentes. Tente inventar o maior número possível de frases estranhas que possam transmitir sua intenção de pegar o trem. Não se preocupe se esquecer algo, você sempre pode voltar a esta etapa mais tarde e adicionar outras frases.

Exemplo

Se analisarmos as expressões mostradas acima para pegar o trem, já podemos usar as frases acima e acrescentar mais algumas:

  1. Quero pegar o trem para Paris

  2. Para Paris quero pegar o trem

  3. Quero ir para Paris de trem

  4. De trem é como quero ir para Paris

  5. Para Paris de trem é como quero ir

  1. Seja diverso. Nesta etapa, pegue todas as frases listadas acima e crie o maior número possível de sinônimos.

  • Comece dividindo uma expressão geral que represente sua intenção em uma série de componentes.

Exemplo

Para ilustrar como isso funciona, vamos usar a frase: Quero ir para Paris de trem. Primeiro você retira desta frase seus componentes, assim:

  • Quero

  • ir

  • para

  • Paris

  • de

  • treinar

  • Encontre sinônimos para cada um desses componentes. Aqui é importante cobrir a maior diversidade de palavras possível para cada termo.

Exemplo

Pegue Quero por exemplo. Você pode substituir isto por:

  • Eu gostaria de

  • Eu devo

  • Eu deveria

  • Eu prefiro

  • Deixe-me

  1. Repita isso para cada palavra ou conjunto de palavras.

Exemplo

Usando geração de expressões, isso vai ficar algo como:

  • Quero ir para Paris

  • Eu gostaria de viajar na direção de Paris

  • Eu deveria ir para Paris

Se mais tarde você encontrar um sinônimo adicional, pode simplesmente adicioná-lo à lista de alternativas. Dessa forma você não precisa revisar todas as suas expressões novamente para ver se esqueceu algo.

Seguindo essa abordagem você pode gerar rapidamente uma grande quantidade de expressões. Se você olhar o exemplo acima para “Quero ir para Paris de trem”, todas as combinações possíveis para essa frase chegam a 6 x 3 x 3 x 2 x 2 x 3 = 648 expressões! Então, se você repetir isso para todas as 5 frases acima, terminará com mais de 3.000 expressões e você só precisou inventar 5 ou 6 frases. Fácil assim.

Last updated

Was this helpful?