Chatbots com NLP: conheça os 5 métodos mais usados

Diferente das alternativas clássicas como navegação por menus e botões, chatbots, robôs de conversas, com Inteligência Artificial tentam deixar a conversa mais aberta e natural para as pessoas que interagem com o chatbot.  Isso porque quando aliamos canais conversacionais com tecnologias de NLP – Natural Language Processing, é possível extrair significado de frases escritas ou faladas.

Vale esclarecer: extrair significado não é o mesmo que entender o significado. Essa distinção é importante para desmistificar um pouco da ‘febre’ em torno de robôs e IA: ainda estamos longe dos robôs de sci-fi como a simpática ‘Rosie’ dos Jetsons ou o genial ‘Data’ de Jornada nas Estrelas: a Nova Geração (da mesma forma que estamos longe da temível Skynet de O Exterminador do Futuro). A Inteligência Artificial dos dias de hoje só funciona bem em contextos restritos e trabalha muito mais com ‘comparação estatística’ do que propriamente com o ‘entendimento’ da linguagem usada pelos seres humanos.

Quais são os 5 métodos de NLP mais usados no contexto de chatbots?

Abrindo a caixa de ferramentas

Os métodos de NLP mais usados no contexto de chatbots geralmente são:

1.  Intent Matching: identifica o que o usuário quer dentre os processos que o bot atende.

2. Question Answering: respostas a perguntas através de busca em bases de conhecimento.

3. Entity Extraction: extrai as informações relevantes de uma frase (nomes, datas, locais, produtos, etc).

4. Sentiment Analysis: identifica o sentimento de frases (positivo, neutro, negativo).

5. Keyword Identification: extrai os termos principais de uma frase.

 Intent Matching é o mais relevante no início de conversas receptivas e em perguntas abertas, juntamente com o Question Answering. Observe alguns exemplos:

Quando se pergunta a um bot a previsão do tempo, ele pode identificar como
intenção a tarefa ‘previsão do tempo’ dentre as tarefas que ele está programado para realizar: Intent Matching em plena forma.

No
 entanto, quando se pergunta o preço da gasolina, o resultado pode ser uma busca na Web. Nesse caso, o método usado é diferente. Sem uma programação prévia para esse tipo de pergunta, o bot faz uma busca em uma base de conhecimento (nesse caso, o próprio Google, mas poderia ser algo tão simples quanto um FAQ) e devolve a resposta que achou mais relevante, ou seja, um exemplo de
 Question Answering
.



 

Para perguntas fechadas com poucas opções, menus e botões são suficientes, mas onde as respostas podem ter muitos valores (ex.: datas, locais, produtos, etc.), a Entity Extraction se faz necessária. Essa técnica permite extrair as informações relevantes para refinar uma busca ou realizar uma consulta a um sistema.

Fica mais fácil explicar com um exemplo: digamos que eu pergunte ao bot “quais são as tele entregas de hamburguer próximas a mim?”. Nesse caso a intenção entendida pelo bot é algo como ‘buscar tele entregas’. Mas só isso retornaria uma busca muito ampla. No entanto, eu fui mais específico e informei dois parâmetros ou entidades na minha busca:

  • estou procurando tele-entregas de hamburgueres
  • e que estejam localizadas perto de onde eu estou.

Identificar ou extrair esses parâmetros da frase é o trabalho de algoritmos de Entity Extraction.

Note que fica bem mais simples e natural para o usuário interagir dessa forma ‘Google like’ do que navegar por listas de estabelecimentos e marcando checkboxes de filtros como ‘tele-entrega’, ‘hamburguer’ e ‘X (localidade que eu estiver)’.

Contudo, concluir um processo de negócio via chat é só parte do desafio. Toda empresa também quer saber se o seu cliente ficou satisfeito com a conversa pelo bot. Na análise de uma conversa, as ferramentas de Sentiment Analysis e Keyword Identification podem trazer insights valiosos sobre o que se passa na cabeça dos consumidores.

Para ilustrar, veja o caso de pesquisas de satisfação: em geral, para que a pesquisa possa ser transformada em indicadores para a empresa, as perguntas são feitas no formato:

“Em relação do nosso [atendimento/preço/produto/etc.], responda com uma nota de 1 a 5, sendo 1 para ‘Muito Insatisfeito’ e 5 para ‘Muito Satisfeito’ “.



Em relação ao nosso [atendimento|preço|produto|etc.], responda com uma nota de 1 a 5, sendo 1 para 'Muito Insatisfeito' e 5 para 'Muito Satisfeito'. Em relação ao nosso [atendimento|preço|produto|etc.], responda com uma nota de 1 a 5, sendo 1 para 'Muito Insatisfeito' e 5 para 'Muito Satisfeito'. 

E se o cliente quiser comentar sobre algo que não foi listado na pesquisa? Não seria mais natural deixar o consumidor dizer o que ele considera mais relevante na experiência dele com uma empresa? “Ah, mas dessa forma não tem como montar indicadores”, você pode estar pensando. É justamente aí que entram em cena as ferramentas de Sentiment Analysis.

 
Para ilustrar, digamos que você faça uma pesquisa com seus clientes onde uma das perguntas seja aberta, como “Qual é a sua opinião sobre o nosso [produto|serviço|atendimento]
?”. Seus clientes respondem frases do tipo:
 
  • “Show de bola!!! Atendimento nota mil”
  • “O preço tá muito bom, mas demorei pra ser atendido”
  • “Demoraram demais pra entregar o produto, achei uma falta de respeito!”
  • “Ainda não usei o produto, não sei opinar”

Como criar indicadores a partir dessas opiniões? Uma forma seria atribuir uma conotação como “positiva”, “negativa”, ou “neutra” a cada uma delas. Para pesquisas pontuais e baixo volume de respostas, dá pra pedir para o estagiário fazer. Mas, e se o volume é alto e você quer monitorar as opiniões nas redes sociais também? Não seria legal automatizar isso e ter indicadores em tempo real?

Com ferramentas de Keyword Extraction e Sentiment Analysis, isso é possível. As opiniões de uma pesquisa podem ser analisadas de forma automática e traduzidas em indicadores, como exemplificado abaixo:

  • “Show de bola!!! Atendimento nota mil”

Sentimento: Positivo

Palavra-chave: atendimento

Palavra-chave x sentimento:  atendimento = positivo

  • “O preço tá muito bom, mas demorei pra ser atendido”

Sentimento: Positivo

Palavra-chave: preço, atendimento

Palavra-chave x sentimento:  preço = positivo / atendimento = negativo

 
Dessa forma, é possível acompanhar não só a evolução do sentimento (positivo|neutro|negativo) em relação à sua empresa, mas também em relação a pontos específicos do seus produtos ou serviços (como preço, entrega e atendimento nos exemplos acima).

Todos esses recursos estão a disposição das empresas que querem criar chatbots inteligentes. E o melhor: em vez de licenças caras e infra-estrutura de hardware própria, é possível usar essas ferramentas na nuvem, pagando apenas pelo que usar, na base de centavos por mensagem processada.

Os principais players do setor já tem inclusive suporte a Português Brasileiro, e alguns, como o Facebook, também oferecem NLP totalmente integrado à sua plataforma de bots. Se você tem um perfil mais técnico e quer saber mais, fique à vontade para explorar os links abaixo:

Zenvia API's
Escrito por

Zenvia