You are on page 1of 6

Chatterbots – Do início aos dias atuais

Davi Francelino¹, Fábio Pittoli¹

¹Centro Universitário La Salle (Unilasalle)


92.010-000 – Canoas – RS – Brasil
{davifrance, fabio.pittoli}@gmail.com
Abstract. The following paper has the purpose of to presenting an overviewof
the concepts related to chatterbots: its appearance, objectives and main
applications that use chatterbots to facilitate certain activities that are
normally developed by human. Also will be presented the AIML language used
as a base for building of main existing chatterbots currently and a
presentation about the different generations of chatterbots with the objective
to show its continuing evolution over time. Finishing, will be presented a brief
overview about a chatterbot project for the auto industry to be developed in
future work.
Resumo. O seguinte artigo tem o proposito de apresentar uma visão geral
sobre os conceitos ligados a chatterbots: seu surgimento, objetivos e
principais aplicações que se utilizam do uso de chatterbots para facilitar
determinadas atividades que normalmente são desenvolvidas por humanos.
Será apresentada também a linguagem AIML utilizada como base para a
construção dos principais chatterbots existentes atualmente, bem como uma
breve apresentação sobre as diferentes gerações de chatterbots com o intuito
de mostrar sua constante evolução ao longo do tempo. Por fim, será
apresentada uma breve visão sobre um projeto de um chatterbot para o setor
automobilístico a ser desenvolvido em um trabalho futuro.

1. Introdução
Alan Turing, autor de grandes contribuições para a computação, levantou a seguinte
questão a respeito das máquinas no seu livro Turing: Computing, Machinery and
Intelligence, publicado em meados da década de 50: “As máquinas podem pensar?”. Em
1950, Turing propôs um jogo denominado Jogo da Imitação, conhecido posteriormente
como Teste de Turing. A ideia era que um interrogador, comunicando-se com um
software via terminal e, ao mesmo tempo, com outra pessoa, deveria descobrir quem era
quem.
Com o objetivo de melhor aproveitar os computadores, buscou-se, com o passar
dos anos, a possibilidade de oferecer as máquinas à capacidade de interagir com seres
humanos. Um dos ramos mais importantes da inteligência artificial tem sido
desenvolver maneiras de simular a comunicação humana em computadores. Isso
acarretou no surgimento de programas de computadores com a capacidade de simular
uma conversa com uma pessoa: os chamados chatterbots.
Por definição de Simon Laven [Laven 2002], chatterbots são programas de
computador que tem por finalidade simular uma conversação escrita, para, pelo menos
temporariamente, enganar um ser humano induzindo-o a pensar que está falando com
outra pessoa.
A primeira aparição de um software que se enquadra neste novo conceito
ocorreu em 1966 e foi batizado por seu criador com o nome de ELIZA. Ele se baseia no
princípio psicanalítico Rogeriano, o qual se repete as frases do paciente conseguindo
assim fazer com que o mesmo chegue às próprias conclusões sem que haja
envolvimento de opiniões por parte do psicanalista. Sua implementação é bem simples
visto que possui apenas 204 linhas de código, porém, mesmo assim, quando ele foi
apresentado pela primeira vez na década de 1960, algumas pessoas não acreditavam se
tratar de um programa de computador. Porém, fazendo uma análise aprofundada,
ELIZA é facilmente “desmascarada” visto que seu script não possui quase nenhuma
informação sobre o pensamento humano ou emoção, ao invés disto ele se utiliza de
truques de substituição de strings baseado nas frases enviadas pelo usuário. E ainda
apesar de ser bastante compreensivo com o paciente ele não lembra nada do que foi dito
durante a conversa. A programação de ELIZA tomou dois anos de desenvolvimento e
pesquisa de Joseph Weizenbaum, que iniciou seu desenvolvimento em 1964 no MIT
(Massachusetts Institute of Technology). O funcionamento do script segue os seguintes
passos:
1. ELIZA verifica se o "paciente" enviou alguma pergunta de fato e não apenas um
valor nulo. Caso um valor nulo seja encontrado então o programa responde com algum
fato encontrado em sua base de conhecimento.
2. Há algumas respostas que ELIZA pode reconhecer facilmente devido a certos
padrões. Para isto ele fragmenta as sentenças enviadas e tenta localizar palavras-chave
em sua base de conhecimento para assim definir qual o contexto da conversa.
3. Se nenhuma sentença for reconhecida, ELIZA busca por uma específica palavra-
chave para definir o contexto. Se esta não puder ser encontrada então o programa
incentiva o usuário a falar mais a respeito deste tópico.
4. Se o programa chegou neste ponto então uma resposta disponível é escolhida
randomicamente na base de conhecimento.
É importante mencionar que o programa trata todas as transposições necessárias,
como por exemplo:
Usuário: Estou querendo ir para São Paulo amanhã com minha esposa.
Eliza: E o que acontecerá se você não for para São Paulo com sua esposa?
Neste caso a o pronome "minha" foi trocada para a palavra "sua", fazendo assim sentido
na conversação. Além disso, para simular uma conversa entre humanos de forma mais
fiel ELIZA "escreve" vagarosamente e comete alguns erros de grafia.
Após a primeira geração de chatterbots que se iniciou com ELIZA, na qual se
utilizavam bases de conhecimento realmente pequenas e não existiam linguagens
apropriadas eis que surgem novas técnicas de Inteligência Artificial. Estas colaboraram
para a construção de novos programas como JULIA [Mauldin 1993], que além de
possuir uma base de conhecimento sobre um determinado assunto possuía também a
habilidade de aprender durante o diálogo, gerando uma sensação de “inteligência”
[Silva 2002].
Alguns anos mais tarde, uma nova geração de chatterbots tem início com a
utilização da linguagem de marcação XML (Extensible Markup Language). As
aplicações eram desenvolvidas com um propósito específico como atendimento ao
público ou apoio ao estudo à distância. O precursor desta geração é o ALICE [Alice
2003].

2. Chatterbot - aplicações
Inicialmente, os chatterbots tinham somente utilidade em aplicações fundamentalmente
acadêmicas. Nos dias de hoje, eles são considerados como sendo alternativas bastante
plausíveis para aplicações como ensino á distância ou até mesmo aplicações de
comércio eletrônico, atuando como se fossem facilitadores. Os chatterbots têm a
capacidade de explorar o comportamento social do usuário perante o computador,
mesmo quando não programados para este fim [Canuto e Victor 2005].
Chatterbots, atualmente, têm despertado o interesse tanto do meio acadêmico,
onde sempre teve atuação forte, como no mercado, pelo fato de, normalmente,
possuírem interfaces bastante simples e amigáveis, proporcionando maior naturalidade
durante a interação. Os chatterbots podem, além disso, explorar uma relação social
amigável dos usuários com as máquinas. Diversos estudos mostram que os principais
problemas na construção desse tipo de sistema são a aquisição e o gerenciamento da
base de conhecimento, a correta identificação das sentenças informadas pelos
utilizadores e o uso da personalidade [Galvão 2003].

2.1 Educação à distância


No campo da educação à distância, dois chatterbots que merecem destaque são o
ADELE [Johnson e Shaw 1997] e o STEVE [Rickel e Johnson 1997]. Estes chatterbots
atuam com os seguintes objetivos: responder os questionamentos feitos pelos
estudantes, monitorar suas ações e executar demonstrações. Uma das principais razões
que motivam a utilização de chatterbots nesses ambientes é o fato deles estarem sempre
disponiveis para os estudantes. Outra razão para uma proveitosa utilização dos
chatterbots no meio educacional é o fato de que ele pode agir como um incentivo para o
aluno, uma vez que exige dele uma participação mais ativa do que meramente a leitura
de um texto, por exemplo. Outro aspecto é o apelo motivacional, pois os estudantes
tendem a demonstrar grande interesse em interagir com esses robôs [Primo 2000].

2.2 Atendimento ao público


Um serviço de atendimento ao consumidor eficiente é fundamental para o bom
andamento dos negócios em qualquer segmento. Porém este tipo de serviço possui altos
custos agregados devida a demanda de diversos profissionais para que se possa oferecer
um serviço de qualidade. Uma das medidas que podem ser adotas por empresas que
possuem presença forte na internet é a utilização de chatterbots com o intuito de
solucionar as dúvidas dos consumidores e auxiliar na resolução de problemas. Tal
medida mostra-se bastante eficiente tendo em vista a diminuição dos custos e uma
maior velocidade nos atendimentos.
Um exemplo bastante importante de utilização de chatterbots nesse segmento é o
YODA [Lucas 2010] desenvolvido pela empresa Lucas Arts como o intuito de dar
suporte aos usuários dos seus jogos. O chatterbot encontra-se disponível 24hs por dia e
responde a questões relativas a problemas ocorridos durante a instalação ou uso dos
jogos. Caso ele não consiga responder a alguma dúvida, ele automáticamente sugere o
usuário a possibilidade de enviar um e-mail para a empresa.

2.3 Entretenimento
Para um chatterbot atingir o objetivo de entreter o usuário é necessário que ele tenha um
coportamento dinâmico e que seja capaz de simular vida através da sua personalidade.
O setor de entretenimento é aquele que apresenta uma quantidade maior de chatterbots
melhor desenvolvidos, como por exemplo, ALICE, JULIA, BRIAN [Brian 2010],
CYBELLE [Cybelle 2010] e MEGA-HAL.

3. A linguagem AIML
A linguagem de marcação AIML (Artificial Intelligence Markup Language) é uma
linguagem de código aberto e é baseada em uma meta-linguagem genérica chamada
SGML (Standart Generalized Markup Language) e, a partir desta linguagem podem-se
instanciar linguagens de marcação para diferentes fins.
A AIML teve inicio em 1995, pelo Dr. Richard Wallace e a comunidade de
software livre ALICEBOT, criadora do chatterbot A.L.I.C.E., que foi o primeiro
chatterbot criado utilizando-se da linguagem AIML.
Segundo definição de Wallace (2001), a AIML descreve uma classe de objetos
de dados chamados objetos AIML e descreve parcialmente o comportamento dos
programas que os processam. Tais objetos são constituídos de tópicos e categorias.
O AIML é baseado em padrões de entrada do usuário, conhecidos como
categorias. Uma frase escrita por um usuário é comparada aos padrões descritos na
linguagem e com base neste processo são selecionadas ou construídas as respostas.
O AIML, assim como o XML, sua linguagem de origem, apresenta um conjunto
de tags utilizadas para a representação dos dados e comandos simples para
implementação da base de conhecimento de um chatterbot e serve para analisar as
mensagens enviadas pelo usuário e definir a forma como estas mensagens devem ser
respondidas.
Todos os arquivos criados utilizando a linguagem AIML devem conter, pelo
menos, as seguintes tags básicas:
<aiml>: inicia e termina um bloco de código programado em AIML;
<category>: identifica uma “unidade de conhecimento” da base de conhecimento;
<pattern>: indica um padrão de mensagem simples a ser digitada pelo usuário;
<template>: contém a resposta para uma mensagem do usuário;
<random>: seleciona respostas aleatórias;
<li>: marca o bloco que contém as respostas aleatórias. É utilizado dentro do bloco
random;
<that>: grava a última sentença, gerando uma sequência no diálogo;
<srai>: redireciona para outra questão ou para outra categoria;
<javascript>: executa um comando em javascript.
É importante salientar que, com a utilização do AIML, pode-se definir mais de
uma resposta para um único padrão ou até critérios de escolha de cada uma das
respostas. Existem ainda mais de vinte outras tags que compõe a linguagem AIML. A
AIML é muito extensível e customizável, sendo que tecnologias como Javascript e
comandos do UNIX podem ser incorporadas ao AIML.

4. O chatterbot A.L.I.C.E.
A.L.I.C.E (Artificial Linguistic Internet Computer Entity) foi desenvolvido por Richard
Wallace, na Lehigh University, ativada em 1995 e utiliza a linguagem de marcação
denominada AIML. É considerada até hoje um dos chatterbots mais populares.
A grande novidade do chatterbot ALICE está na forma como se apresenta, pois além de
uma extensa documentação, pode apresentar também uma saudação sonora ao seu
utilizador. O chatterbot ALICE faz parte da terceira geração dos chatterbots, os quais
utilizam tecnologia desenvolvida com o propósito especifico de conversação baseado
em XML (eXtensive Markup Language). Sua base de conhecimento é formada por
diversos fatos, ideias e citações do seu criador. Seu vocabulário é composto atualmente
por mais de 5.000 palavras, além de não tentar esconder em momento algum sua
condição de chatterbot, pois faz mensões frequentes ao seu criador, além de mencionar
que já foi reiniciada algumas vezes. É importante destacar que o ALICE implementa o
modelo de aprendizagem supervisionado, onde o papel do botmaster é de extrema
importância. O botmaster tem por função analisar os logs dos diálogos, identificar as
melhorias necessárias e criar novos conteúdos na forma de arquivos AIML a fim de
tornar as próximas respostas mais refinadas. Outro fator a ser ressaltado é que não há
nenhuma tecnologia na concepção do ALICE, tais como redes neurais, busca em
profundidade, algoritmos genéticos ou algo do gênero, sendo que a ALICE é semelhante
à tecnologia Case-Based Reasoning (CBR10) que também implementa uma estrutura de
estímulo-resposta, os casos do CBR correspondem às categorias do AIML.
Atualmente existe, inclusive, uma fundação que promove o uso da linguagem
me marcação AIML e do software A.L.I.C.E. pois tanto a AIML quanto o projeto
ALICE representam o marco inicial para inúmeros projetos que envolvem a elaboração
dos chamados “robôs de conversação”.

5. A base de conhecimento
Um problema que é comumente encontrado em grande parte dos chatterbots é a escacez
de uma base de conhecimento consistente, permitindo responder questionamentos
diferentes daqueles considerados óbvios sobre um assunto em específico. Em se
tratando do chatterbot ALICE, especificamente, toda sua base de conhecimento é
baseada na linguagem AIML, sendo que, para criar uma base dessa magnitude, são
necessários os seguintes corporas:
A.Copora das perguntas genéricas – formado por textos que contenham diálogo e tendo
por objetivo identificar padrões genéricos de conversação.
B. Corpora de keywords – composto por textos que contenham palavras-chave sobre um
determinado assunto, tendo como objetivo de obter padrões para a obtenção de
respostas.
C. Corpora de perguntas específicas – formado por textos que contenham perguntas
especificas sobre um determinado domínio de conhecimento. Atualmente, a base de
conhecimento do chatterbot ALICE é constituída por centenas de fatos, citações e idéias
de seu criador e apresenta um vocabulário de mais de 5.000 palavras, além de módulos
de conversação que possibilitam a ela classificar o usuário por idade, sexo, localização
geográfica e profissão.

6. Trabalhos futuros
Tendo em vista o constante crescimento da utilização de chatterbots no auxilio e
execução das mais diversas tarefas, a ideia será, posteriormente, procurar desenvolver
um protótipo de chatterbot para uma famosa indústria automobilística cuja finalidade
será auxiliar o usuário a escolher para compra um veículo que atenda as suas
necessidades, levando em consideração, principalmente, a relação custo / benefício.
Após analisar diversos chatterbots existentes bem como a aplicação para qual cada um
deles foi desenvolvida, verificou-se uma carência de chatterbots no setor
automobilístico, principalmente no que diz respeito a auxiliar o usuário, levando em
consideração todas as opções hoje disponíveis, tais como cor, ano, número de lugares e
motorização.

7. Referências
Teixeira, S. e Menezes, C. (2006) “Chatterbot: uma ferramenta para motivar estudantes
de cursos à distância”, http://www.multicast.com.br/sergio/amcorabot-revista-
aprender.pdf, Setembro.
Leitão, D. (2004) “Um chatterbot para um ambiente de ensino de gerência de projetos”
http://php.cin.ufpe.br/~pmk/hp/publicacoes/tgs/tg_dal.pdf, Agosto.
University, L. (2009) “Assignment 1: Functional Chatterbots”
http://www.cs.lth.se/EDA120/assignment1/, Setembro
Lave, S. (2005) “What is a Chatterbot?”
http://www.simonlaven.com, Agosto
Franco, A., Rocha, M., Raabe, A., Martins, L., Miranda, E. (2003) “Chatterbot em
AIML para o Curso de Ciência da Computação”
http://inf.unisul.br/~ines/workcomp/cd/pdfs/2312.pdf, Setembro.
Pilastri, A., Brega, J., “Chatterbot com Interatividade ao Avatar Encapsulado no
Ambiente Virtual Second Life usando a base de conhecimento em AIML”
http://sites.unisanta.br/wrva/st%5C62377.pdf, Setembro
Rickel, J.; Johnson L (1997).” Integrating Pedagogical Capabilities in a Virtual
Environment Agent.” Em: Proceedings of the First International Conference on
Autonomous Agents, 30-88. New York: Association of Computing Machinery.
Johnson, W. L.; Shaw, E. (1997) “Using Agents to Overcome Deficiencies in Web-
Based Courseware.” Em: Workshop on Pedagogical Agents, 19 August, 1997, Kobe,
Japan.
Primo, A.; Paim, M; Coelho, L.; Reichel, D. (2000) “Júnior, um chatterbot para
educação a distância.” http://www.c5.cl/ieinvestiga/actas/ribie2000/papers/255/,
Setembro.
Fernandes, M., Cirne, L. “Chatterbots –Tudo sobre robôs virtuais.
http://supertrunfonet.tripod.com/trunfonticiadofuturo/id4.html., Setembro
Arts, L. “Yoda’s Help Desk” http://yodashelpdesk.lucasarts.com/, Setembro