Bots, do IRC a Cortana e além


No início, era o verbo 

Os chatbots são o assunto do momento, mas eles já estão presentes no mercado há bastante tempo. O primeiro bot conhecido da história chamava-se Eliza. Este chatbot foi criado pelo pesquisador Joseph Weizenbaum, pesquisador do MIT. A Eliza tinha o objetivo de simular uma psicóloga virtual. Em 1984, no Brasil, foi desenvolvido uma chatbot com o mesmo objetivo, com o nome de Carla, baseado na Eliza. 

De lá para cá muito se desenvolveu na tecnologia dos bots. Na história mais recente temos alguns bots que marcaram história, como exemplo, temos um baseado em inteligência artificial foi capaz de algumas façanhas, uma das mais conhecidas foi vencer o jogo Jeopardy. 

Atualmente, temos muitos assistentes virtuais que têm como uma de suas funções, atuar como chatbot. A Cortana, da Microsoft, é um deles. Com a Cortana, além da função de conversação, é possível enviar lembretes baseados em horas, locais ou pessoas, rastrear pacotes, gerenciar calendário, listas e muito mais. Embora tenham funções de chatbot, estes assistentes virtuais são muito mais que chatbots, eles são fortemente baseados em inteligência artificial, machine learning, deep learning e NLP, o que facilita o seu uso e amplifica seu desenvolvimento com o uso diário. 

Receita de bolo 

Desenvolver um chatbot (simples) atualmente é algo até banal para desenvolvedores com experiência. Existe uma receita de bolo no qual os desenvolvedores podem se basear e muitos frameworks que nos auxiliam neste processo. 

Os pontos que mais diferenciam os bots atuais dos antigos são a aplicação do deep learning (DL), machine learning (ML) e NLP. Com o DL e o ML os bots são capazes de aprender com o histórico das conversações e gerar inferências “próprias” sobre o assunto em questão. Mas uma das grandes dificuldades na conversação é entender as nuances da linguagem. A língua portuguesa, por exemplo, é uma das mais complexas conhecidas. Tempos verbais, ortografia complexa e formas de linguagem dificultam até para os seres humanos a sua compreensão. O aumento das pesquisas em NLP foi crucial para que esse entendimento esteja cada vez mais possível para as máquinas. 

Mas como tudo isso é possível? A receita de bolo simples baseia-se em algumas linhas de código, uma base de dados robusta, treinamento (normalmente baseado em Pareto) e por fim, treinamento contínuo para melhorar cada vez mais o seu bot. 

Depois da sua base de código pronta, você utiliza uma base de dados com perguntas e respostas para o seu bot. Esta base de dados você aplica a algum algoritmo de treinamento de ML. Aqui podemos utilizar muitos algoritmos como árvore de decisão, classificação Naive Bayes, regressão linear, regressão logística, clustering, etc. Normalmente este treinamento é feito baseado no princípio de Pareto. Você submete 80% da sua base a algum destes algoritmos. Em sequência, você aplica os demais 20% ao chatbot e analisa o quão próximo ele chegou das respostas esperadas. Então, você corrige as respostas erradas para tunar o seu bot. 

O ideal é que este treinamento seja ininterrupto, assim, podemos aplicar uma melhoria contínua ao nosso bot. 

Alguns bots mais avançados são capazes de identificar sentimentos dos usuários por meio de serviços cognitivos. Assim, além de interpretar corretamente o desejo do usuário, eles também são capazes de identificar a melhor abordagem do problema também de acordo com o emocional. 

Resultado 

Se você chegou até este ponto deve estar pensando, “cara, não é nada simples”. Realmente, a ideia em si é simples, porém a execução fica um pouco longe disso. Embora existam muitos frameworks e códigos disponibilizados pela comunidade, a construção de um bot do zero não é tão simples quanto parece. É necessário estudar muita matemática, inclusive, para que possamos entender como os algoritmos de ML funcionam. 

Pensando nessa necessidade do mercado e na complexidade da solução deste problema, a Microsoft desenvolveu um curso, a Maratona de Bots. 

Maratona de Bots 

O curso da Microsoft é online e totalmente gratuito. Nele você vai aprender a desenvolver bots de conversação interativos e inteligentes. O aluno aprenderá sobre o desenvolvimento de bots por meio do Bot framework, consumo de API de dados e integração com Cognitive Services, a plataforma de inteligência da Microsoft. 

O curso é destinado a pessoas que tenham conhecimento em C# ou Node.js e que tenham interesse em aprender sobre o Bot framework. 

Quer saber mais sobre a Maratona de Bots? Acesse o link: https://aka.ms/maratonabots 


Autor: Microsoft Tech