Inteligência artificial aplicada no Chatbot

Reconhecimento de Assunto em Dúvidas de Clientes de Aluguel de Veículos

Daniel Almeida
Oct 5 · 4 min read

As redes sociais revolucionaram o modo como as empresas interagem com os seus clientes. Recebendo cada vez mais mensagens, tornou-se inviável escalar o tratamento manual de cada uma delas.

Como solução para esse desafio, apresentam-se os chatbots. No entanto, esse tipo de solução costuma ter um alto custo, além de um grande esforço de configuração e curadoria. Por isso, neste artigo busco mostrar uma maneira simples de nos utilizarmos da ciência de dados para agrupar as mensagens por assunto, mostrando que nem sempre é necessária a aquisição de um produto grande e complexo para solucionar um problema real.

O conjunto de dados consiste de um grupo de mensagens dos clientes enviadas por meio do messenger do Facebook diretamente para a página de uma marca. Aqui, vamos analisar o case da Localiza como referência. Elas foram extraídas usando a Graph API, uma forma programática de ler dados do Facebook. Um exemplo de código para fazer isso pode ser encontrado no github do Julian Eisenschlos.

De posse de uma amostra de mensagens dos clientes, o próximo passo é filtrar apenas as dúvidas deles. Por já possuir um chatbot capaz de fazer reservas, a grande maioria das mensagens tinha esse objetivo, que não nos interessa nesse momento para este artigo. No caso do nosso exemplo, filtrá-las foi facilitado pelo fato de o chatbot já existente ter levado todas as dúvidas pelo mesmo fluxo, como mostrado na imagem abaixo.

Image for post
Image for post
Exemplo de solicitação de atendimento humano

Assim, foi possível usar esse padrão para filtrar apenas as mensagens que continham dúvidas de clientes. Para determinar os rótulos (assuntos) de cada dúvida, foi só usar a resposta padrão que foi direcionada para o cliente. Desse modo, obtemos o dataset final mostrado abaixo, contendo as dúvidas dos três assuntos mais recorrentes: cotações, requisitos para alugar um veículo e informações sobre a oferta Uber.

Para começarmos a diferenciar as mensagens de acordo com seu assunto, o primeiro passo é extrair características (features) que ajudem a separá-las. Para isso, podemos usar o TF-IDF (Term-Frequency Inverse-Document-Frequency), um método bem simples de processamento de linguagem natural. Simplesmente contando o número de vezes que algumas palavras aparecem em cada dúvida e em todas elas, transformamos cada dúvida em um vetor de números, determinados pelas contagens citadas.

Alguns cuidados importantes a serem tomados antes de aplicar um método de processamento de linguagem natural são:

  • Remoção de acentos e letras maiúsculas
  • Remoção das chamadas Stop Words (palavras que não possuem significado próprio, como preposições, conjunções, artigos, etc.)
  • Unificação da representação de palavras com sentido similar (como conjugações verbais, por exemplo)

Após todo esse processamento, podemos verificar a qualidade da nossa representação numérica das dúvidas checando quais termos tem maiores valores absolutos de TF-IDF para cada assunto de dúvidas, como mostrado nas tabelas a seguir.

Image for post
Image for post
Unigrams com maior importância por assunto
Image for post
Image for post
Bigrams com maior importância por assunto

Percebe-se que as palavras realmente tem relação com os assuntos das dúvidas. O fato de a palavra “uber’ aparecer em todos eles acontece pois mesmo sua ausência acaba se tornando um forte indicador dos outros dois temas.

Com uma representação numérica significativa de nossas dúvidas, o próximo passo é treinar um modelo de classificação para identificar o assunto da mensagem. Para isso, foram testados quatro tipos diferentes de modelo, usando cinco divisões diferentes de conjunto de treino e validação, com a técnica de validação cruzada. Os resultados desse experimento estão mostrados no boxplot abaixo.

Image for post
Image for post

Os melhores resultados foram obtidos com o modelo de SVC Linear, um classificador que usa máquinas de vetor de suporte, que obteve uma acurácia média de 88,5%. Isso equivale aproximadamente a acertar o assunto em 8 de cada 9 dúvidas, um índice bastante satisfatório levando em conta a simplicidade da solução.

#LocalizaLabs

O laboratório de tecnologia e inovação da Localiza

Daniel Almeida

Written by

Cientista de Dados

#LocalizaLabs

Já somos mais de 700 profissionais de tecnologia com um propósito único: construir o futuro da mobilidade. Por aqui falamos de infraestrutura, inovação, cultura, mobilidade e tudo que envolva o ecossistema de tecnologia. Sejam bem-vindes!

Daniel Almeida

Written by

Cientista de Dados

#LocalizaLabs

Já somos mais de 700 profissionais de tecnologia com um propósito único: construir o futuro da mobilidade. Por aqui falamos de infraestrutura, inovação, cultura, mobilidade e tudo que envolva o ecossistema de tecnologia. Sejam bem-vindes!

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store