Este documento descreve o desenvolvimento de um chatbot chamado Brandon para gerenciar manuais de marca. O chatbot foi construído usando processamento de linguagem natural em Ruby sem inteligência artificial para fornecer respostas rápidas e precisas a perguntas sobre elementos de identidade visual como logotipos, cores e fontes.
3. Quem
somos
Ederson de Lima
Formado em Ciências da
Computação
Dev desde 2003
com Ruby há 7 anos
André Benjamim
Ex-aluno Campus Code
Formado em Ciências da
Computação
Dev desde 2014
com Ruby há 2 anos
10. E começam as perguntas…
Onde eu consigo o
logo mais
adequado?
Quais os códigos
das cores?
Qual a fonte correta para
colocar nas camisetas?
Tem algum grafismo
que eu possa
utilizar?
Manual da Marca
Brand
Book
12. Auxiliar e entender
a jornada do cliente
Por que
um
chatbot?
Fácil de interagir e
interface amigável
Maior
eficiência no
atendimento
Fácil
gerenciamento
de conteúdo
13. Desafio 1 mês de desenvolvimento
para o MVP
A plataforma precisa atender
mais de um cliente
Disponibilidade em vários
canais de comunicação
Fácil gerenciamento
de conteúdos
15. Como construir
nosso chatbot?
Inteligência Artificial
Pouco conhecimento da
tecnologia
Treinar o Bot para cada
manual!?
Não tínhamos dados
para treino
Pouco tempo Pouca margem de
erro
17. Domínio
Aberto vs Fechado
• Você pode falar de vários
assuntos que não só o do seu
domínio
• A precisão das respostas pode
ser menor
• Necessita de muitos dados
• Repostas com
acurácia maior
• Não sabe lidar com o contexto
fora do seu domínio
• Diminui a sensação de interação
humana
Como construir
nosso chatbot?
19. Como construir
nosso chatbot?
Domínio fechado
Qua, 03 de Outubro de 2018, 16:59:16 -0300
Opa! Me diz o que você precisa
da nossa marca?
amar é gostar de alguém
Não entendi muito bem. Sou apenas um .
te amo
21. Intenção: logo - Entidade: logo
Entidades e
Intenções
Preciso do logo da empresa,
você me ajuda?
Onde eu acho o logo?
Qual logotipo eu posso usar?
Você tem a logomarca?
Preciso da imagem agora!
22. Intenção: logo colorido - Entidades: logo; cor
Entidades e
Intenções
Qual a paleta de cores do
nosso logo?
Quais as cores da nossa marca?
Preciso do hexadecimal do
logo, você pode me ajudar?
O front-end precisa do RGB
do nosso logotipo vc tem?
Manda o logotipo colorido?
24. Capacidade das máquinas em processar e entender a
linguagem dos seres humanos
Reconhecer o contexto, fazer análise sintática,
semântica, léxica e morfológica
Natural
Language
Processing
38. Chatbot em
Ruby
Pouco tempo para
desenvolver
Time
experiente
com Ruby
Time com cultura
de testes
consolidada
Muitos Bots em
Node.js ou Python
> All Files (99.81% covered)
40. Processando
perguntas
1. Sanitize
Remover espaços em branco,
caracteres inválidos, acentuação…
onde aerosko encontro os logos coloridos
Onde Ærøskø ENCONTRO os LogoS coloridos ???nn
Destaque: remover caracteres que não são ASCII para um ASCII
aproximado - ActiveSupport::Inflector.transliterate
41. Processando
perguntas
2. Tokenize
Existem bibliotecas NLP que podem ajudam nessa etapa
para gerar tokens com regras complexas.
["onde", "aerosko", "encontro", "os", "logos", "coloridos"]
onde aerosko encontro os logos coloridos
Transformar a string do passo anterior em um array.
42. Processando
perguntas
3. Filter
Destaque: https://github.com/brenes/stopwords-filter
Tem uma lista de várias palavras em diversas línguas,
sendo possível customizá-las
["onde", "aerosko", "encontro", "logos", "coloridos"]
["onde", "aerosko", "encontro", "os", "logos", "coloridos"]
Filtras palavras que não trazem relevância ao contexto, artigos
(o, a, os, as, ..) e uma uma série de outras palavras
44. Processando
perguntas
5. Comparação
Obs: Atenção às entidades compostas, ex: “Preto e Branco"
Ordem das entidades pode ser relevante para desempate
["onde", "aerosk", "encontr", "log", "color"]
Achei seu Logo Colorido !!!!
• Busca a intenção que contém as entidades identificadas
• Verifica se é uma alternativa
• Obtêm as respostas
50. • Extrair entidades e intenções do brand book
• Criar a personalidade do Brandon
• Cadastro do conteúdo (entidades / intenções / respostas)
• Criar App no Bot Framework da Microsoft
• Teste supervisionado com cliente
• Refinamento dos assets, entidades e intenções
• Produção!!!
Publicando o
Brandon
53. • IA não é a única opção para fazer um Chatbot
• Com NLP é possível processar texto com linguagem humana
• Ruby tem implementações de NLP
• Testes nunca são demais, inclusive com os usuários
• Importante alguém para criar a personalidade do Chatbot
Conclusão