SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Brandon
Um chatbot para gerenciar o manual de marcas
https://www.brandonbot.com
Quem
somos
Por que saber programar muda
a vida das pessoas
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
Manual da Marca
Brand
Book
Manual da Marca
Brand
Book
Manual da Marca
Brand
Book
• Arquitetura da marca
• Logotipo
• Cores
• Tipografia
• Elementos gráficos
• Estilo fotográfico
Manual da Marca
Brand
Book
44 páginas
119 páginas
83 páginas
Manual da Marca
Brand
Book
Manual da Marca
Brand
Book
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
BrandonO chatbot do seu brand book
&
Uma parceria
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
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
Como
construir
nosso
chatbot?
Inteligência Artificial?
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
Como construir
nosso chatbot?
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?
https://chatbotslife.com/ultimate-guide-to-leveraging-nlp-machine-learning-for-you-chatbot-531ff2dd870c
Como construir
nosso chatbot?
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
• Dialogflow
• Wit.ai
• IBM Watson
• Microsoft
API’s
Como construir
nosso chatbot?
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!
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?
NLP
Natural Language Processing
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
https://github.com/arbox/nlp-with-ruby
https://github.com/diasks2/ruby-nlp
Natural
Language
Processing
Stemming e Lammatization (reduz
a palavra flexionada a sua
representação do radical)
Stop Words (filtro de palavras
não relevantes)
Correção ortográfica
Geração de tokens e identificação
de sentenças
Soundex (comparação pela
fonética)
Expressão regular
Comparação aproximada
entre palavras
Identificação de línguas
…
Gato == Gatos == Gatas == Gata



Mariza == Marisa
Natural
Language
Processing
1 Mês …
Vamos lá, batucar no teclado !!!
Gerenciamento de

Conteúdo

(entidades, intenções,
respostas…)
Código adaptável às principais
plataformas de mensagem
comportamentais do mercado
API para perguntasBotframework
Abordagem
<Entidade>
Logo
Logotipo
Logomarca
<Entidade>
Colorido
Paleta de Cores
Hexdecimal
Gerenciamento
de conteúdo
Entidade / Intenção
preciso do logo colorido, agora!
<Intenção>
Logo / Colorido
Respostas
Gerenciamento
de conteúdo
Mensagens
> Botões
Gerenciamento
de conteúdo
Mensagens
> Cards
Gerenciamento
de conteúdo
Mensagens
> Imagens
Gerenciamento
de conteúdo
Alternativas
Gerenciamento
de conteúdo
Alternativas
Cor
Texto
ImpressasDigitais
Texto Texto
Qual a nossa Cor ?
Em qual ambiente vai usar ?
Digitais Impressas
HEX #C8D419
Integrar com vários
canais de comunicação
Node.js
Canais de
comunicação
Chatbot em Ruby
Por que fazer em Ruby ?
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)
Processando
perguntas
1. Sanitize
2. Tokenize
3. Filter
4. Stemmer
5. Compare
Onde Ærøskø ENCONTRO os LogoS coloridos ???nn
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
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.
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
Processando
perguntas
4. Stemmer
Destaque: https://github.com/aurelian/ruby-stemmer

Suporte a várias línguas
["onde", "aerosk", "encontr", "log", "color"]
["onde", "aerosko", "encontro", "logos", "coloridos"]
Reduzir a palavra a representação do seu radical
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
Eventos no Chatbot
Melhorando a experiência do usuário
• Welcome
• Welcome Back
• Not Found
Eventos do
Chatbot
Melhorando a
experiência do
usuário
Melhorando a
experiência do
usuário
Artificial Intelligence Markup Language
AIML
https://github.com/mariohmol/aiml-portugues
Publicando 

o Brandon
• 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
Ferramenta
para testes
Conclusão
• 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
Não precisa
de IA
+
Dá para fazer em Ruby
Obrigado!!!
Perguntas?

Mais conteúdo relacionado

Semelhante a Brandon, um ChatBot com NLP em Ruby

Gerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o ComposerGerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o ComposerAndre Cardoso
 
Sistemas de Processamento de Linguagem Natural na Prática
Sistemas de Processamento de Linguagem Natural na PráticaSistemas de Processamento de Linguagem Natural na Prática
Sistemas de Processamento de Linguagem Natural na PráticaWilliam Colen
 
Introdução a Front-end
Introdução a Front-endIntrodução a Front-end
Introdução a Front-endDiego Collares
 
Manual de Marca Moda Praia
Manual de Marca Moda PraiaManual de Marca Moda Praia
Manual de Marca Moda PraiaEdu Ribeiro
 
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultados
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultadosEntendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultados
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultadosCcaps Translation and Localization
 
Processo de criação de um logotipo
Processo de criação de um logotipoProcesso de criação de um logotipo
Processo de criação de um logotipoIntrus
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Luiz Carvalho
 
Php usar-ou-nao-usar
Php usar-ou-nao-usarPhp usar-ou-nao-usar
Php usar-ou-nao-usarThiago Rigo
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 RefactoringWildtech
 
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdfAnatalia Saraiva Martins Ramos
 
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assimArrayOf.io
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosRafael Martins
 
Introdução ao Wordpress
Introdução ao WordpressIntrodução ao Wordpress
Introdução ao WordpressAline Corso
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em ElixirAdolfo Neto
 

Semelhante a Brandon, um ChatBot com NLP em Ruby (20)

Gerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o ComposerGerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o Composer
 
Sistemas de Processamento de Linguagem Natural na Prática
Sistemas de Processamento de Linguagem Natural na PráticaSistemas de Processamento de Linguagem Natural na Prática
Sistemas de Processamento de Linguagem Natural na Prática
 
Aula Naming
Aula NamingAula Naming
Aula Naming
 
Introdução a Front-end
Introdução a Front-endIntrodução a Front-end
Introdução a Front-end
 
Manual de Marca Moda Praia
Manual de Marca Moda PraiaManual de Marca Moda Praia
Manual de Marca Moda Praia
 
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultados
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultadosEntendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultados
Entendendo a tradução - Negociação gerenciamento de qualidade, DTP e resultados
 
Processo de criação de um logotipo
Processo de criação de um logotipoProcesso de criação de um logotipo
Processo de criação de um logotipo
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?
 
Php usar-ou-nao-usar
Php usar-ou-nao-usarPhp usar-ou-nao-usar
Php usar-ou-nao-usar
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 Refactoring
 
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf
2023_Enanpad_Workshop Ferramentas de IA na Pesquisa.pdf
 
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
 
Web Standards
Web StandardsWeb Standards
Web Standards
 
Introdução ao Wordpress
Introdução ao WordpressIntrodução ao Wordpress
Introdução ao Wordpress
 
GFS - Branding
GFS - BrandingGFS - Branding
GFS - Branding
 
ELABORAÇÃO E EDIÇÃO DE TEXTOS
ELABORAÇÃO E EDIÇÃO DE TEXTOSELABORAÇÃO E EDIÇÃO DE TEXTOS
ELABORAÇÃO E EDIÇÃO DE TEXTOS
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
 

Brandon, um ChatBot com NLP em Ruby