View
174
Download
2
Category
Preview:
DESCRIPTION
Desenvolvido por Lucas Pereira dos Santos
Citation preview
1
DESENVOLVIMENTO DE UM CHATTERBOT BASEADO EM AIML PARA O SITE
DE UMA INSTITUIÇÃO DE ENSINO SUPERIOR
Lucas Pereira dos Santos1
Renata de Souza França 2
RESUMO
O objetivo deste trabalho é apresentar uma proposta para o desenvolvimento de um
chatterbot, também conhecido como chatbot, enfatizando a importância da tecnologia e os
preceitos da linguagem AIML (Artificial Intelligence Markup Language). Através dos
estudos deste trabalho, serão demonstrados passos para a criação de um robô de conversação
baseado no padrão aberto de inteligência artificial AIML, propondo sua aplicação em uma
instituição de ensino superior. A metodologia utilizada baseou-se em referências
bibliográficas e em um estudo de caso para aplicação do tema proposto.
Palavras-chave: Chatterbot, Ensino, Artificial, Aiml, Motor de Busca.
ABSTRACT
The aim of this paper is to present a proposal for the development of a chatterbot, also known
as chatbot, emphasizing the importance of technology and the precepts of language AIML
(Artificial Intelligence Markup Language). Through studies of this work will be shown steps
to create a chat robot based on open standard AI AIML, suggesting its application in a higher
education institution. The methodology used was based on references and a case study for
application of the proposed topic.
Keywords: Chatterbot, Education, Artificial, AIML, Search Engine.
1. INTRODUÇÃO
Nos dias atuais, a informática tem proporcionado grande influência à sociedade,
principalmente na educação, em que a forma de se aprender tornou-se mais dinâmica, além de
influenciar na maneira como as pessoas vivem.
1 Graduando do curso de Ciência da Computação da Faculdade Pitágoras Betim. Contato eletrônico:
lucaspprof@gmail.com 2 Orientadora do trabalho de conclusão de curso, Renata de Souza França. Contato eletrônico:
profrenatafranca@gmail.com
2
Devido à diversidade nos meios de utilização da internet, diversos
questionamentos são apontados, em relação aos impactos, tanto positivos, quanto negativos,
que sua utilização pode gerar. Segundo Seabra (2004),
a tecnologia em si não é boa ou ruim, mas amplifica e potencializa a ação humana, tal como
um megafone pode fazer o bom cantor alegrar multidões e o desafinado incomodar muito
mais gente.
Para que a sociedade consiga acompanhar a dinamicidade do mundo, é necessário
que as pessoas tenham acesso à informática e a tecnologia. Para que esse acesso seja
equivalente a todos os seres, necessita-se de meio de Inclusão digital, que segundo Becker
(2009), é o nome dado ao processo de democratização do acesso às tecnologias da
informação, de forma a permitir a inserção de todos na sociedade da informação.
Um incluído digitalmente não é aquele que apenas utiliza o mundo digital para
trocar e-mails, mas aquele que usufrui desse suporte para melhorar as suas condições de vida.
Não é suficiente que o cidadão possua um simples computador conectado à internet para se
dizer que está incluído digitalmente.
Segundo o IBGE no Censo 2010, apenas 38,3% dos domicílios possuem
computador em um contexto em que menos de 40 % deles possuem tanto telefone fixo quanto
celular. De acordo com um levantamento feito pela Network Wizards 3 (2011), o Brasil possui
o maior número de hosts4 de Internet da America do Sul, sendo o 4º do mundo, o que reafirma
a ideia de que novos métodos devem ser desenvolvidos para se interagir com a tecnologia,
métodos esses que proporcionem uma inserção maior das pessoas no universo tecnológico.
A AIML (Artificial Intelligence Markup Language) é uma linguagem que desafia
os paradigmas da ciência da computação, pois possibilita que humanos conversem com
sistemas computacionais usando linguagem natural (linguagem utilizada no dialogo entre
duas pessoas). Enquanto pensa-se ser complexo para uma máquina conversar com um
humano sobre assuntos diversos, o Dr. Richard S. Wallace, criador da linguagem AIML
demonstra que não é bem assim.
Técnicas que facilitem a interação entre homem e máquina aumentam,
exponencialmente, o alcance de uma tecnologia. Desta forma, novos métodos para interação
surgem não sendo bastante desenvolver uma ferramenta sem pensar nos usuários.
3 Organização sem fins lucrativos dedicada a apoiar a infraestrutura da Internet universal. A Network Wizards
calcula o número de usuários de um determinado país tomando o número de hosts e multiplicando-o por dez, que
é o número estimado de usuários por host. 4 Em informática, host é qualquer dispositivo ou computador conectado a uma rede.
3
Um chatterbot, ou chatbot, é um programa de computador que assume o lugar de
um interlocutor, dialogando com pessoas comuns através de textos pré-programados. Em
inglês bot é a abreviação de robot, significando robô enquanto chatter significa conversador
(AIRES, 2008, p.2). Chatterbots podem ser utilizados de diversas maneiras, e os teóricos de
Inteligência Artificial definem em súmula que uma das funções mais importantes de um ser
artificial seria a capacidade de o mesmo se comunicar de maneira independente, o que
aumenta significativamente a interatividade de qualquer sistema.
Desta forma, este trabalho tem como objetivo desenvolver a temática da inclusão
digital, através de uma proposta de um chatterbot que atenda os usuários do site de uma
instituição de ensino superior, tirando dúvidas simples através do portal, demonstrando a
forma de construí-lo. Este trabalho está dividido em 4 partes. A primeira parte relatou uma
breve introdução sobre o assunto, assim como o objetivo do trabalho. A parte 2 abordará os
conceitos e fundamentos da inteligência artificial. Seguindo para a parte 3, descrevesse e
explorasse o universo dos chatterbots, demonstrando os passos necessários para o seu
desenvolvimento. A parte 4 será o fim do desenvolvimento e a personalização do chatterbot
para que ele se adapte ao sistema. Enfatiza-se que o trabalho tem por objetivo personalizar um
chatterbot para o SAC (Serviço de atendimento ao Cliente) de uma instituição de ensino. Ao
final, será feita uma análise sobre a proposta.
2. INTELIGÊNCIA ARTIFICIAL (IA)
Inteligência Artificial (IA) é um ramo da ciência da computação que se propõe a
elaborar dispositivos que simulem a capacidade humana. Segundo Rich (1994, p.3) a IA
“permite que objetos tecnológicos tenham ações humanas como de raciocinar, perceber, tomar
decisões e resolver problemas, enfim, a capacidade de ser inteligente”.
“[...] a palavra “inteligência” vem do latim inter (entre) e legere (escolher).
[...] A palavra “artificial” vem do latim artificiale, significa algo não natural,
isto é, produzido pelo homem [...]”
Portanto, pode-se definir Inteligência Artificial como “[...] um tipo de
inteligência produzida pelo homem para dotar as máquinas de algum tipo de
habilidade que simula a inteligência do homem.”(FERNANDES, 2005,
p.160)
O desenvolvimento da área começou logo após a Segunda Guerra Mundial, com o
artigo "Computing Machinery and Intelligence" do matemático inglês Alan Turing, e o
próprio nome foi cunhado em 1956. Seus principais idealizadores foram os cientistas Herbert
4
Simon, Allen Newell, John McCarthy, Warren McCulloch, Walter Pitts e Marvin Minsky,
entre outros.
A construção de máquinas inteligentes interessa à humanidade há muito tempo,
havendo na história um registro significante de seres mecânicos (reais) e personagens
místicos, como o Golem5 e o Frankenstein6, que demonstram um sentimento ambíguo do
homem, composto de fascínio e de medo, em relação à Inteligência Artificial.
Com o surgimento do computador moderno, é que a inteligência artificial ganhou
meios e massa crítica para se estabelecer como ciência integral, com problemáticas e
metodologias próprias. Desde então, seu desenvolvimento tem extrapolado os clássicos
programas de xadrez ou de conversão e envolvido áreas como visão computacional, análise e
síntese da voz, lógica difusa, redes neurais artificiais e muitas outras.
De acordo com Helder Coelho (1994), há uma discussão em que se consideram
duas propostas básicas para a IA: uma conhecida como "forte" e outra conhecida como
"fraca".
Inteligência artificial forte: Aborda a criação da forma de inteligência baseada em
computador que consiga raciocinar e resolver problemas; uma forma de IA forte é
classificada como autoconsciente. É um tema bastante controverso.
Segundo John Pollock (1989) a tese da IA forte é a de que podemos construir uma
pessoa (uma coisa que literalmente pensa, sente e é consciente) por meio da
construção de um sistema físico dotado de “inteligência artificial” apropriada.
Inteligência artificial fraca: Trata-se da noção de como lidar com problemas não
determinísticos. Centra a sua investigação na criação de inteligência artificial que não
é capaz de, verdadeiramente, raciocinar e resolver problemas. Uma tal máquina com
esta característica de inteligência agiria como se fosse inteligente, mas não tem
autoconsciência ou noção de si. Segundo Searle, (1986, p.112) “... ainda que uma
máquina possa parecer falar chinês por meio de recursos de exame comparativo com
mostras e tabelas de referência, binárias, isso não implica que tal máquina fale e
entenda efetivamente a língua”.
O teste clássico para aferição da inteligência em máquinas é o Teste de Turing
(TT). O teste consiste em se fazer perguntas a uma pessoa e a um computador que não se pode
5 Ser animado artificial mítico, associado à tradição do judaísmo, que pode ser trazido à vida através de um
processo mágico. É muitas vezes visto como um gigante de pedra. 6 Personagem criado por Mary Shelley no filme Frankenstein em 1994. No filme um cientista costura partes de
diversos cadáveres para criá-lo.
5
ver. Um computador e seus programas passam no TT se, pelas respostas, for impossível a
alguém distinguir qual interlocutor é a máquina e qual é a pessoa.
Enquanto o progresso direcionado ao objetivo final de uma inteligência similar à
humana tem sido lento, muitas derivações surgiram no processo. Muitos outros sistemas úteis
têm sido construídos usando tecnologias que ao menos uma vez eram áreas ativas em
pesquisa de IA. Alguns exemplos incluem:
Lógica incerta, uma técnica para raciocinar dentro de incertezas, tem sido amplamente
usada em sistemas de controles industriais.
Sistemas tradutores.
Redes Neurais vêm sendo usadas em uma larga variedade de tarefas, de sistemas de
detecção de intrusos a jogos de computadores.
Reconhecimento de voz está disponível comercialmente e é amplamente usado.
Sistemas de álgebra computacional, tais como Matemática e Macsyma, são bons
exemplos de aplicações de IA na solução de problemas algébricos.
Aplicações utilizando Vida Artificial são utilizadas na indústria de entretenimento e no
desenvolvimento da Computação Gráfica.
Chatterbots (robôs de software para conversação), personagens virtuais que
conversam em linguagem natural como se fossem humanos de verdade, são cada vez
mais comuns na internet.
A visão da Inteligência Artificial, substituindo julgamento humano profissional,
tem surgido muitas vezes na história, em Ficção Científica e, hoje em dia, em algumas áreas
especializadas em que "Sistemas Especialistas" são usados para melhorar ou para substituir o
julgamento humano. Autores, como Wittgenstein (citado por Shanker, 1987,p.28) e Piaget
(1968, pp. 121-152), sustentam que mesmo nesses termos não seria possível afirmar que as
máquinas pensam, pois o pensamento seria uma característica humana, não se tratando de um
processo mecânico estruturado por regras lógicas. Caracterizá-lo dessa forma seria transgredir
sua própria natureza. Todavia, deve ser lembrando a definição de pensamento proposta por
Turing (1950, p.59), “pensamento é o processo pelo qual se resolve problemas manipulando-
se informações”.
Assim, algo que pensa é algo que resolve problemas, não importando se o
processo pelo qual se chega às respostas seja lógico-formal e mecanicista ou baseado em
modelos mentais e estratégias. Dessa forma, há tanto homens quanto máquinas plenamente
capazes de resolver problemas.
6
3. INTERATIVIDADE
Vive-se em um tempo que nada acontece fora do universo tecnológico e a cada
momento as pessoas encontram-se diante da interação homem-máquina. A cada momento
experimentam-se formas de interação técnica e social. Em uma era das mídias digitais e das
tecnologias em rede, percebe-se a utilização constante do termo interatividade. (PRIMO,1999,
p.165)
“Características como bidirecionalidade, resposta imediata, controle do
usuário, quantidade de ações do usuário, respostas (feedback), transparência,
entre outras, se consideradas isoladamente não garantem o caráter interativo
da comunicação. Refere-se à habilidade do usuário de perceber a experiência
como uma simulação da comunicação interpessoal,alem é claro de permitir
que o usuário exerça influência sobre o conteúdo ou a forma da comunicação
mediada.” (RAFAELI, 1988, p.16)
Já segundo Andrew Lippman (BRAND, 1988, p.5), pode-se definir interatividade
como uma “atividade mútua e simultânea da parte dos dois participantes, normalmente
trabalhando em direção de um mesmo objetivo”. Sendo assim, a interatividade seria um tipo
de relação tecno-social, como um diálogo, uma conversação entre homens e máquinas, em
tempo real. A relação deixaria de ser passiva ou representativa, passando a ser ativa e
permitindo inclusive a relação inteligente entre máquinas inteligentes sem a mediação
humana. (PRIMO,1999, p.165)
4. CHATTERBOTS
Chatterbot (ou chatbot) é um programa de computador que tenta simular um ser
humano na conversação com as pessoas. O objetivo é responder as perguntas de tal forma que
as pessoas tenham a impressão de estar conversando com outra pessoa e não com um
programa de computador. (SGANDERLA, 2008).
Após o envio de perguntas em linguagem natural, o programa consulta uma base
de conhecimento e em seguida fornece uma resposta que tenta imitar o comportamento
humano. O termo Chatterbot surgiu da junção das palavras chatter (a pessoa que conversa) e
da palavra bot (abreviatura de robot), ou seja, um robô (em forma de software) que conversa
com as pessoas. (AIRES, 2008, p.2)
A palavra foi inventada por Michael Mauldin (Criador do primeiro Verbot7, Julia)
em 1994, para descrever estes robôs de conversação na Twelfth National Conference on
7 Verbot é um chatterbot, ou Chatbot, programa desenvolvido para tentar se passar por um humano.
7
Artificial Intelligence8. Embora os chatterbots existam desde a década de 60, há um aumento
no interesse destas tecnologias desde a generalização da Internet. A Internet fez os
chatterbots acessíveis ao público em geral e ao mesmo tempo criou para os Web sites a
necessidade de terem uma interface parecida com a humana para fornecer informações de
forma agradável a milhares de pessoas por dia.
4.1 Desafios
De fato, mais e mais esforços estão sendo direcionados à pesquisa e
desenvolvimento de chatterbots. Embora adquirir inteligência humana ainda seja um sonho
distante, a tecnologia dos chatterbots só tende a crescer. (AGENTLAND, 2003).
Os chatbots também apresentam algumas desvantagens, sendo a principal delas o
fato de que é um programa de computador e não é capaz de pensar e aprender da mesma
forma que um ser humano o faz. Como a quantidade de sentenças que um ser humano pode
produzir é praticamente infinita, dificilmente um software será capaz de lidar com todos os
tipos de entradas fornecidas pelos usuários.
Segundo Primo (2000) como a linguagem humana é muito complexa, quanto mais
pessoas participarem das conversas, e da escrita do cérebro do chatterbot, melhor será o
desempenho do dialógico. Apesar das limitações, esse tipo de programa não pode ser
desprezado como ferramenta auxiliar. O potencial para o uso dessa tecnologia é enorme em
áreas como educação, atendimento ao cliente, suporte on-line ou para qualquer serviço que
necessite de consulta à base de dados. Pois proporciona um ambiente mais agradável e de
fácil interação, alem de ser uma tecnologia relativamente barata que pode ser usada por vários
usuários simultaneamente.
4.2 Vantagens e Características
Um robô não precisa de salário, vale alimentação ou vale transporte;
Vocabulário e respostas do robô totalmente personalizável;
24 horas disponível;
Todas as mensagens trocadas entre o robô e usuários são gravadas e podem ser
visualizadas posteriormente;
8 Fundada em 1979, a Associação para o Avanço da Inteligência Artificial (AAAI) é uma sociedade científica
sem fins lucrativos dedicada ao avanço do conhecimento científico dos mecanismos subjacentes de pensamento
e comportamento inteligente e a sua incorporação em máquinas.
8
Custo de manutenção muito baixo.
Antes de classificar-se os chatterbots é importante esclarecer a diferença entre
chatterbots e agentes. Segundo Primo (2000), nem todo agente é um agente de conversação.
Software agente é um sinônimo para software robot ou simplesmente “bot”. Existe agente que
busca por ofertas, sugere produtos, etc., mas não entende linguagem natural.
Um chatterbot é um tipo específico de bot capaz de entender linguagem natural.
Talvez, o termo “entender” seja um tanto ambicioso, como diz Primo (2000), já que
reconhecer signos não quer dizer propriamente que haja uma verdadeira compreensão por
parte do robô.
Enfim, deve-se entender que um robô de conversação não compreende a fala, mas
sim, reconhece a linguagem podendo reagir a ela. De forma geral, os chatterbots podem ser
analisados segundo uma série de características dentre as quais se destaca: (Franklin e
Graesser, 1996).
Capacidade de aprender – capacidade do chatterbot de aprender durante o diálogo
com o usuário. O chatterbot pode aprender sobre o domínio e sobre o usuário. Este
tipo de chatterbot tem uma maior probabilidade de manter diálogo por mais tempo
sem ser percebido o fato de ser um programa.
Memória – capacidade de lembrar os diálogos passados e sentenças mencionadas
previamente dentro de um mesmo diálogo.
Domínio – possíveis temas para diálogo. Alguns chatterbots não fazem restrição de
domínio, contudo podem ser especialistas em determinados assuntos. Em outros
chatterbots existe a opção do usuário escolher qual o domínio da conversa.
Robustez – capacidade do robô de responder a sentenças do usuário não reconhecidas.
Autoconhecimento – capacidade de o robô falar sobre si mesmo.
Os chatterbots podem ser classificados segundo sua área de aplicação como de
entretenimentos, de busca, acadêmicos, de comércio, dentre outros. Laven (2000) apresenta
uma classificação que considera os recursos utilizados. Nesta classificação os chatterbots
podem ser encontrados nas seguintes categorias: clássicos, complexos, amigáveis e
ensináveis.
Clássicos: chatterbots criados com o objetivo inicial de estudar a complexidade na
comunicação em linguagem natural entre homens e máquinas.
Complexos: criados a partir de linguagens de programação mais sofisticadas, A idéia
principal neste programa é avaliar a natureza da comunicação entre homem e
9
computador. Seu funcionamento é baseado em padrões de mapeamentos das perguntas
mais comuns de usuários nas respostas adequadas.
Amigáveis: são capazes de reproduzir o comportamento de uma pessoa.
Ensináveis: Chatterbots que possuem capacidade de aprendizagem.
4.3 Artificial intelligence markup language (AIML)
Os Chatterbots são baseados em uma rotina de “estímulo – resposta”, ou seja,
você pergunta, e ele responde com base na sua pergunta. Para criar um chatterbot, pode-se
utilizar uma linguagem de marcação desenvolvida para esse propósito, como a Artificial
Intelligence Markup Language (AIML), que é virtualmente independente de linguagem de
programação, tudo que se precisa para AIML funcionar, é um processador de AIML escrito
na linguagem escolhida pelo desenvolvedor.
Pode-se também usar Prolog9, ou outra linguagem de programação em lógica, e
criar um chatterbot a partir do zero, ou ainda adaptar uma versão existente de algum
programa desse tipo, o que requer conhecimentos elaborados de programação de
computadores e de programação em lógica.
O AIML é baseado num padrão de entradas e saídas, assim, quando o usuário
digita algo, o bot já tem uma saída para aquela pergunta. O chatterbot é composto por tags
que irão definir todo o contexto necessário para se programar em AIML. (WALLACE, 2003)
Existem inúmeros chatterbots na internet, porém, um deles ganha destaque neste
conceito, trata-se da A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) escrita em
AIML, criada por Richard S. Wallace, e ganhadora de muitos prêmios por sua eficiência e
realismo (ALICE, 2003).
Ainda, segundo o autor, o AIML tem como principais tags:
<aiml> inicia e terminar o bloco AIML.
<category> indica uma categoria ou unidade de conhecimento.
<pattern> Indica o padrão da mensagem que será digitada pelo usuário.
<template> indica a resposta para o que foi digitado
<random> proporciona respostas aleatórias
<li> marca bloco de respostas aleatórias é usado dentro do bloco <random>
<that> registra a ultima sentença, gerando uma sequencia no dialogo.
9 Linguagem de programação puramente lógica, especialmente associada com a inteligência
artificial e linguística computacional.
10
<srai> Redireciona para outra questão ou categoria.
A base de conhecimento do chatterbot é formada pelas tags da linguagem AIML,
ou seja, todas as possíveis perguntas e respostas do usuário ficam armazenadas nessa base,
conforme observa-se na Figura 1:
A Figura 1 possui exemplos de perguntas cadastradas na base de conhecimento do
chatterbot. Cada bloco pode possuir milhares de questões. No exemplo 1, sempre que o
usuário digitar “oi” o chatterbot responderá “ola, tudo bem?”. Já no exemplo 2, ao ser
digitado “qual o seu nome?” o chatterbot vai sortear uma das respostas que estão dentro do
bloco <random>.
4.4 Exemplos de chatterbots
Segundo Alcione (2010) em pesquisas realizadas, descobriu-se que já existem
diversos chatterbots, os quais possuem como função atender clientes de empresas. Cada vez
mais as empresas investem nessa nova modalidade de atendimento. Os chatterbots estão
inclusos em diversas áreas, como: saúde, educação, comercial, governamental, entre outras. A
seguir, destacam-se os principais agentes de conversação disponíveis na internet.
Eliza: Iniciando a primeira geração de chatterbot em 1966 e desenvolvido por Joseph
Weizenbaum, no Massachussets Institute of Technology (Instituto de Tecnologia de
Massachussets), nasceu o primeiro chatterbot, Eliza. Este tinha por objetivo fazer uma
psicanálise e diagnosticar, por meio de diálogos amigáveis, problemas psicológicos em
pacientes. Já naquela época obtinha-se êxito. Porém, Eliza não mantinha em base as conversas
realizadas anteriormente, com isso deixava um pouco a desejar (LEONHARDT, 2003).
Exemplo 1 <aiml> <category> <pattern> oi </pattern> <template> Ola, tudo bem? </template> </category> </aiml>
Exemplo 2 <aiml> <category> <pattern>qual o seu nome?</pattern> <template> <random> <li>Sou chamado de chatterbot</li> <li>Me chamo chatterbot</li> <li>Chatterbot</li> <li>pode me chamar de chatterbot</li> </random> </template> </category> </aiml>
Figura 1: Exemplo AIML
Fonte: Elaborado pelo autor
11
Cybelle (Nacional): Já no Brasil, o estudo de chatterbots é mais recente. Criado por
Alex Primo, em 2000, o primeiro chatterbot brasileiro é chamado de Cybelle. Com poder de
expressões emocionais, como tristeza, humor, entre outros, isso ajudou a quebrar as
limitações com o humano em relação à comunicação, além, é claro, de propiciar um bom
bate-papo para descontrair. Cybelle possui uma base de conhecimento composta por várias
respostas pré-programadas, possibilitando maior abrangência e flexibilidade com o humano
(LEONHARDT, 2003).
Ed: Desenvolvido pela Insite e lançado pela Petrobrás em 20 de outubro de 2004,
surgiu para interagir com o meio social em um público-alvo infanto-juvenil, com a intenção
de conscientizar quanto ao consumo racional energético brasileiro. Integrado ao site da
Conpet (Programa Nacional de Racionalização do Uso dos Derivados do Petróleo e do Gás
Natural), fornece amplo material, como vídeos, apostilas e centenas de links para saciar as
dúvidas em questão (OLIVEIRA, 2004).
Sete Zoom: Também desenvolvida pela Insite, para o site da Close Up, pela sua
personalidade atrevida, é considerada a modelo virtual mais famosa do Brasil. Vários
contextos e características de comunicação humana foram implementados; possui capacidade
de bolar idéias a partir de assuntos abordados durante a conversa. Suas respostas são baseadas
em uma personalidade forte por meio de uma base de conhecimento pré-alimentada pelos
programadores. Em sua implementação, destacam a habilidade de memorizar assuntos já
conversados, como seu nome, por exemplo. Tem capacidade de direcionamento de assunto
baseado na inserção do internauta, além de apresentar e elaborar ideias (FERREIRA, 2008).
5. ESTUDO DE CASO SOBRE O DESENVOLVIMENTO DE UM CHATTERBOT
Esse estudo tem como objetivo desenvolver uma proposta de chatterbot a ser
inserido em um site de instituição de ensino superior, para apoiar a página de dúvidas
frequentes. O chatterbot poderá ser implantando tanto no site quanto em terminais espalhados
pela instituição, visto que a interatividade e a facilidade de interagir com páginas web são
fatores de bastante relevância para o usuário. Será desenvolvido um chatterbot a partir de um
motor de busca já existente.
Para poder explicar melhor como se dará o desenvolvimento do chatterbot, o
trabalho será dividido em 3 partes, a primeira sobre o que é necessário para se desenvolver o
chatterbot, a segunda sobre como instalar o motor de busca e como é seu funcionamento e a
terceira vai demonstrar como personalizar o motor de busca e criar o chatterbot.
12
5.1 O desenvolvimento
O chatterbot será criado baseando-se no projeto “PROGRAM-O v1.0.3”
desenvolvido por Elizabeth Perreau e lançado com o código-fonte aberto em janeiro 2009,
que desde então vem recebendo atualizações de uma grande comunidade de desenvolvedores
ao redor do mundo, o que justifica a escolha desse motor de busca para o desenvolvimento do
trabalho.
Para instalar o motor de busca é necessário que o computador tenha um servidor
Web instalado. Nesse trabalho, adotou-se o programa WampServer2.1e-x32(Wamp)10
, que é
um pacote de programas que instala automaticamente o Apache 1.331, PHP5, MySQL
database, PHPmyadmin e SQLitemanager. Sendo que cada um dos programas instalados tem
a sua função durante o desenvolvimento.
Para que seja possível criar e editar as páginas web, trabalha-se com o software
PHP Editor 2.22, que é um editor gratuito e totalmente em português destinado a edição de
páginas PHP11
e HTML12
.
5.2 Motor de busca
Depois de baixado o motor de busca (PROGRAM-O, 2012), faz-se necessário
instalá-lo no servido web, para isso basta abrir a pasta “www directory” que pode ser
encontrada clicando no ícone do Wamp na área de notificação do Windows e colar os
arquivos(Figura 2)
10
Pacote com os programas: Apache como servidor web, PHP5 que interpreta códigos na linguagem PHP,
PHPmyadmin para controlar a parte administrativa do PHP e o SQLitemanager responsável pelos códigos (SQL)
usados no banco de dados 11
PHP ou Hypertext Preprocessor é uma linguagem de programação livre utilizada para gerar conteúdo
dinâmico na Internet 12
HTML ou HyperText Markup Language é uma linguagem de programação utilizada para produzir páginas
estáticas na Internet.
Figura 2: Wamp (Área de notificação)
Fonte: Wamp Server 2.1 (2012)
13
O motor de busca conta com o seguinte diretório:
Pasta Admin: Onde se encontram todos os scripts para a parte administrativa do
motor de busca.
Pasta: Bot: Contém os arquivos necessários para o bot funcionar, como scripts para
buscar a resposta no bando de dados.
Arquivo Index.php: Página inicial do nosso motor de busca, onde de fato poderemos
conversar com nosso personagem.
Arquivo install_programo.php: Script para instalar o motor de busca no servidor
web.
5.2.1 Instalação do motor de busca
Para instalar o motor de busca primeiro é necessário criar um banco de dados para
armazenar as suas informações, para este estudo foi criado um banco de dados chamado
“banco” usando o aplicativo PhpMyAdmin.
Depois de criado o banco de dados, configura-se o acesso a ele. Para isso abra a
pasta “bot” que se encontra na pasta “www directory”. Dentro da pasta há um arquivo
chamado “config.php” que contém as configurações de acesso ao banco de dados. O arquivo
possui 4 constantes que devem ser alteradas:
$dbh: Localização do servidor
$dbn: Nome do banco de dados
$dbu: Nome de usuário do banco de dados
$dbp: Senha do banco de dados
No wamp a localização padrão do servidor é “localhost”, o usuário padrão é “root” e não há
uma senha predefinida, Logo as constantes recebem os seguintes valores:
$dbh = "localhost";
$dbn = "banco";
$dbu = "root";
$dbp = "";
Esse processo também deve ser feito no arquivo “config.php” da área
administrativa do motor de busca, em “www directory\admin\funcs\” .
Para iniciar a instalação do motor de busca tem-se que abrir o browser e digitar
na barra de endereço: localhost/install_programo.php , depois clicar em “click here to
14
proceed” para que o script crie as tabelas necessárias para o motor de busca funcionar. As
tabelas são:
Tabela 1: Tabelas do banco de dados
TABELA COMENTÁRIO
AIML Armazena os scripts AIML instalados com o
motor de busca
AIML_USERUNDEFINED Armazena os scripts AIML instalados por
usuários desconhecidos
BOTPERSONALITY Armazena informações sobre a personalidade
do Chatterbot
CONVERSATION_LOG Armazena os diálogos realizados pelo
chatterbot
SPELLCHECK
Armazena palavras erradas e as suas
correções. Mesmo que o usuário digite errado
o chatterbot vai entender.
UNDEFINED_DEFAULTS Armazena padrões definidos para o chatterbot
UNKNOWN_INPUTS Armazena entradas desconhecidas pelo
chatterbot
USERS Armazena dados referentes aos usuários da
área administrativa Fonte: PhpMyAdmin (2012) - Gerado pelo projeto Program-o
Posteriormente, adicionam-se alguns scripts AIML no banco de dados para
simular uma inteligência básica ao chatterbot. Além disso, as tabelas: Undefined_defaults,
botpersonality e spellcheck são preenchidas com valores padrões do chatterbot. Tudo isso,
baseando-se na língua inglesa.
A partir desse momento o motor de busca já está instalado e funcionando em seu
servidor web, agora torna-se necessário configurar a parte administrativa. Clicando em “To
install My Program-O admin área” abre-se a instalação da área administrativa, desta forma
segue-se as instruções para que seja criado um nome de usuário e uma senha para o
administrador do chatterbot. Nesse trabalho utilizou-se o nome de usuário “admin” e a senha
“123”.
O processo de instalação do motor de busca está completo, acessando através da
abertura do browser e digitando na barra de endereço: Localhost, assim será redirecionado
para a página inicial do chatterbot. Já para acessar a área administrativa digita-se:
Localhost\admin na barra de endereço.
15
5.2.2 Funcionamento do motor de busca
O motor de buscas funciona de acordo com a lógica da linguagem AIML, logo
para se fazer o motor de busca e transformá-lo em um chatterbot adiciona-se as sentenças de
acordo com a linguagem AIML na área administrativa do chatterbot.
Com a área administrativa aberta tem-se uma serie de opções, tais como:
Logs: Exibe o histórico das conversas do chatterbot;
Bot Personality: Permite alterar informações relacionadas a personalidade do
chatterbot, como religião, idade e filme favorito;
Teach: Permite adicionar a “inteligência” do chatterbot, através de perguntas e
respostas baseadas em AIML;
Upload AIML: Permite adicionar arquivos AIML ao banco de dados. Isso feito
através da linguagem SQL;
Search Edit AIML: Permite pesquisar e editar as sentenças em AIML do banco de
dados;
Demo Chat: Para visualizar uma demonstração do chatterbot.;
A partir daí é possível criar o chatterbot de acordo com um objetivo, adicionando
palavras ou expressões comuns dentro de um cenário.
5.3 Personalizando o chatterbot
O Banco de dados encontra-se carregado com palavras e expressões em inglês,
então, exclui-se as informações das tabelas: AIML e spellcheck. Para isso, abre-se o
PhpMyAdmin e clique em SQL no canto superior esquerdo da tela (Figura 3):
Figura 3: PhpMyAdmin Página inicial
Fonte: PhpMyAdmin(2012)
16
Digita-se: TRUNCATE aiml; TRUNCATE spellcheck e clica-se em executar.
Desta forma, as duas tabelas terão seus conteúdos apagados e para adicionar as novas
sentenças, clica-se no botão “teach” da área administrativa. A Figura 4 representa a tela que
será aberta.
Onde:
Topic: Indica a qual tópico ou categoria a pergunta pertence.
Previous Bot Res: Ultima resposta do chatterbot.
User Input: Pergunta digitada pelo usuário.
Bot Response: Resposta do chatterbot.
Os únicos campos obrigatórios são: User Input e Bot Response. Após o
preenchimento clica-se em “teach” e a pergunta e resposta serão adicionadas na tabela AIML
do banco de dados. Maiores exemplos serão mostrados na posposta no capítulo posterior.
6. PERSONALIZANDO UM CHATTERBOT PARA O SAC DE UMA INSTITUIÇÃO
DE ENSINO SUPERIOR
Com a popularização das telecomunicações, passou a ser comum as empresas
disponibilizarem a seus clientes centrais de atendimento, a fim de que eles pudessem,
oficialmente, regisrar suas reclamações, fazer solicitações e oferecer sugestões para o
aperfeiçoamento dos serviços existentes, alem de possibilitar o esclarecimento das duvidas
mais comuns. Essas centrais de atendimento passaram a ser chamadas de SAC- Serviço de
Atendimento ao Consumidor, que por sua vez vem recebendo investimentos para que os
consumidores sejam atendidos da melhor maneira possivel.
Para que o chatterbot desenvolvido seja capaz de responder as principais dúvidas
de alunos e usuários do site da instituição de ensino é necessário inserí-las em sua base de
dados. Tudo isso usando uma linguagem não muito formal, a fim de deixar o chatterbot o
mais humano possivel.
Figura 4: Ensinando o chatbot
Fonte: Área administrativa do chatbot
17
Após todos os passos seguidos de configuração do ambiente para funcionamento
do chatterbot, incluí-se as dúvidas mais comuns no banco de dados por meio do botão “teach”
da área administrativa do chatterbot. (Figura 5)
Após uma análise minuciosa do que se poderia disponiblizar no SAC, têm-se
exemplos de perguntas e respostas inseridas no Chatterbot Programa Científico, para atender
uma Instituição de ensino Superior.
1) User input: Qual * endereço da escola?
Bot Response: Estamos na Av. Juscelino Kubitscheck, 229 – Centro – Betim
Figura 6: Ensinando o Chatbot 2
Fonte: Área administrativa do chatbot
Figura 5: Botão Teach
Fonte: Área administrativa do Chatbot
Figura 7: Página inicial do chatbot (simples)
Fonte: página inicial do ChatBot
18
2) User input: * psicologia
Bot Response: Dá uma olhada nessa página: http://www.faculdadepitagoras.com.br/ psicologia.aspx
Esse exemplo, em particular, oferece a possibilidade do usuário clicar em um link
e ser redirecionado a uma página que responda a sua dúvida. A pergunta poderia ser: “Como é
o curso de psicologia”, “Qual o foco do curso de psicologia”, “ Fale sobre o curso de
psicologia”, etc. isso porque foi feito o uso do curinga “*” .
3) User input: Quanto custa * ?
Bot Response: <Random><li> Vá a escola e tire todas as suas duvidas</li> <li>Entre em
contato com a escola através do telefone (31) 2101-9000 para obter essa informação
</li><li>Vá a escola e uma de nossas atendentes pode te mostrar nossa tabela de preços e
descontos</li>
A tag “Random” é usada para deixar a resposta mais interessante. A resposta pode
ser qualquer uma que esteja dentro das tags “<li> </li>”, usando um método aleatório de
escolha.
Figura 8: Ensinando o Chatbot 4
Fonte: Área administrativa do chatbot
Figura 9: Ensinando o Chatbot 5 Fonte: Área administrativa do chatbot
19
4) User input: Qual o preço *13
?
Bot Response: <srai> Quanto custa * ?</srai>
A tag “srai” permite que a resposta dessa pergunta seja a mesma de outra, ou seja,
a pergunta “Qual o preço * ?” terá a mesma resposta da pergunta “Quanto custa * ?”.
5) User input: *14
Bot Response: <Random><li> Não entendi muito bem o que você disse, pode repetir a
pergunta?</li> <li>Entre em contato com a escola através do telefone (31) 2101-9000 para
obter essa informação </li><li>Não tenho essa informação, entre em contato pelo email:
contato@escola.com.br e retornaremos assim que tivermos a resposta</li>
Ao clicar no botão “teach” as perguntas são adicionadas na tabela “aiml” do
banco de dados de acordo com a imagem a seguir (Figura 11):
13
Em AIML o sinal “*” representa tudo ou qualquer coisa, ou seja, se o usuário digitar uma pergunta que
comece com “Qual” e termine com “nome” não importa o que tenha entre essas duas palavras, a resposta do
Chatbot será: “Meu nome é Personagem Cientifico”. Logo não há diferença entre se perguntar: “Qual seu nome”
de “Qual é seu nome”, para o chatbot serão as mesmas perguntas. 14
O Sinal “*” sozinho representa uma resposta padrão que será retornada pelo chatbot caso a pergunta feita pelo
usuário não conste no banco de dados
Figura 10: Página inicial do Chatbot(com foto)
Fonte: Página inicial do chatbot
Figura 11: PhpMyAdmin
Fonte: Tabela AIML
20
7. Análise da proposta
Empresas querem estar perto de seus clientes, saber o que eles pensam e assim
melhorar seus produtos. Em uma Instituição de Ensino não é diferente, pois ela pode perder
alunos caso seu site não seja de fácil acesso, fazendo-o procurar o site de outra instituição de
ensino que tire suas duvidas de maneira mais rápida. O chatterbot pode dar respostas em um
curto espaço de tempo e proporcionar um ambiente amigável ao usuário, já que é possível
sanar as duvidas usando perguntas em linguagem natural, criando assim um ambiente de fácil
acesso.
Porém para que isso aconteça é necessária uma constante manutenção no
chatterbot e em seus equipamentos, visto que um grande número de usuários podem acessar o
sistema e não obterem a resposta desejada. Isso faz com que o desenvolvimento do chatterbot
para instituição de ensino superior seja constante e sem data prevista de termino, sempre que
uma pergunta nova for feita um administrador terá que adicioná-la a base de dados.
Após a desmistificação do chatterbot, percebe-se que é muito importante se
pensar em uma lógica antes de adicionar as perguntas ao banco de dados, é preciso se pensar
nas perguntas frequentes e nas possíveis respostas que os usuários esperam. O Uso das tags
AIML é essencial para fazer com que o chatterbot ganhe realismo, alem disso um banco de
dados recheado de possíveis respostas também pode simular um chatterbot bastante
inteligente, sendo assim necessário se prever as prováveis perguntas que serão feitas ao
chatterbot. O que fica evidenciado é que o realismo e a qualidade do chatterbot estão
diretamente relacionados à base de dados disponíveis para o chatterbot consultar.
Percebe-se então, que o Chatterbot para uma instituição de ensino pode ser muito
útil quando se trata de ajudar os usuários, pois fornece um serviço diferenciado em que as
dúvidas, críticas ou sugestões podem ser discutidas em um ambiente informal e bem natural.
8. CONCLUSÃO
No mundo em que se vive sempre será necessário resolver problemas de maneira
rápida e pratica, tecnologias que envolvam um relacionamento mais natural com as máquinas
são uma tendência para o futuro, o que demonstra a importância de se desenvolver
ferramentas pensando no usuário.
A técnica de criação de um chatterbot parte com o propósito principal de
manter uma comunicação natural com as pessoas, para que elas não percebam que estão
lidando com uma máquina, ou que pelo menos a comunicação seja feita de uma forma mais
21
agradável. As possibilidades de um chatterbot são imensas, ele pode ser aplicando em
qualquer situação em que um sistema computacional interaja com pessoas.
O objetivo desse trabalho foi de apresentar como é possível desenvolver um
chatterbot usando a linguagem AIML como base, sendo feito um estudo de caso no site de
uma instituição de ensino para avaliar como um chatterbot poderia auxiliar usuários. O que
pelas analises é completamente possível de ser realizado com os softwares e hardwares
disponíveis atualmente.
Deixando claro que há muitas aplicações para um chatterbot, permitindo seu uso
em qualquer tipo de sistema uma vez que a linguagem de marcação AIML independe de
outras linguagens de programação, aumentando consideravelmente suas possibilidades.
O chatterbot apresentado permite a criação de diálogos entre usuários e maquinas
por meio de escrita, porem a lógica da AIML permite que o chatterbot receba informações em
forma de texto, imagem, áudio, dentre outras. O que deixa espaço para os programadores
modificarem o código fonte do motor de busca utilizado, a fim de construir um chatterbot
totalmente funcional e compatível com as necessidades de cada tipo de serviço.
Como trabalho futuro, pretende-se desenvolver um chatterbot com
reconhecimento de voz para inclusão digital de deficientes visuais, visto que é um publico
carente de softwares específicos para atender suas necessidades.
9. REFERÊNCIAS BIBLIOGRÁFICAS
AGENTLAND (2003). Inteligent agents and bots. Disponível em <www.agentland.com>.
Acesso em 26 de fevereiro de 2012.
AIRES, João Clayton. Desenvolvimento de um Chatterbot para o Portal de Ensino da
Universidade do Oeste de Santa Catarina. Trabalho de Conclusão de Curso (Graduação em
Sistemas de Informação)−Universidade do Oeste de Santa Catarina, São Miguel do Oeste,
2008.
ALCIONE, Miguel Franz. Desenvolvimento de um Chatterbot para o Sicoob de São
Miguel do Oeste ,2010 p. 147
ALICE. Alicebot Org (2003). Disponível em <www.alicebot.org>. Acesso em 26 de
fevereiro de 2012.
BRAND, Stewart. The media lab: inventing the future at M.I.T. Harmonsworth:
Penguin,1988.
BECKER, Maria, Inclusão digital e cidadania: as possibilidades e as ilusões da "solução"
Editora UEPG, 2009 - 200 páginas
22
COELHO, Helder. Inteligência Artificial em 25 Lições. Lisboa: Fundação Calouste
Gulbenkian, 1994. 532 p. p. 341
FERNANDES, Anita Maria da Rocha. Inteligência Artificial: noções gerais. Florianópolis:
Visualbooks, 2005.
FERREIRA, Leonardo. Trocas comunicativas em ambientes virtuais e inteligências
artificiais. 2008. Disponível em: http://www.intercom.org.br/papers/regionais/nor
deste2008/resumos/R12-0355-1. pdf>. Acesso em: 1 março 2012.
FRANKLIN, S.; GRAESSER, A. Is it an Agent, or just a program?: A taxonomy for
JENSEN, J. F. Interactivity: Tracing a new concept in media and communication
studies. vol. 19. Nordicom Review. 1998. pp. 185–204.
LAVEN, Simon. The Simon Lavel Homepage, 2000. Disponível em:
http://www.simonlaven.com/Acesso em: 06 março 2012.
LEONHARDT, Michelle Denise et al. Elektra: Um Chatterbot para Uso em Ambiente
Educacional, v. 1, n. 2, setembro, 2003. Disponível em: < http://penta3.ufrgs.br/~elektra/info/artigos/chatterbot-Elektra%5B1%5D.PDF >. Acesso em:
03 março 2012.
PIAGET, J. (1968). A explicação em psicologia e o paralelismo psicofísico. Em: Piaget, J.;
Fraisse, P. e Reuchlin, M. (Eds.), Tratado de Psicologia Experimental: Volume 1 (pp. 121-
152). Rio de Janeiro: Editora Forense.
POLLOCK, John. How to Build a Person: A prolegomenon, MIT Press, 1989.
PRIMO, Alex e CASSOL, Márcio. Explorando o Conceito de interatividade: definições e
taxonomias, 1999. Disponível em:
http://seer.ufrgs.br/InfEducTeoriaPratica/article/view/6286/3756 . Acesso em: 15 de março de
2012.
PRIMO, Alex Fernando Teixeira; Coelho, Luciano Roth; Paim, Marcos Flávio Rodrigues
etal. O uso de chatterbots na educação à distância. Universidade Federal do Rio Grande do
Sul, Porto Alegre, 2000.
PROGRAM-O, Blog Program-o. Disponível em: http://blog.program-o.com . Acesso em :
07/07/2012
RAFAELI, S. (1988). Interactivity: From new media to communication. In R. P. Hawkins,
J. M. Wiemann, & S. Pingree (Eds.), Sage Annual Review of Communication Research:
Advancing Communication Science: Merging Mass and Interpersonal Processes, 16, 110-134.
Beverly Hills: Sage.
RICH, Elaine; Knight, Kevin. Inteligência Artificial. 2ª ed. Rio de Janeiro: McGraw-Hill,
1994. 722 p. p. 3. ISBN 85-346-0122-4
SEABRA, Carlos, Inclusão digital:Algumas promessas e muitos desafios. Disponível em:
www.cidec.futuro.usp.br/artigos/artigo12.html capturado em 16/03/2012
23
SEARLE, John L. Minds, Brains, and Programs. Cambridge, Massachusetts: Harvard
University Press, 1986. 112 p
SGANDERLA, Rachele Bianchi. Chatterbot para Interação com Usuários. 2008.
Disponível em:
<http://tecnociencia.inf.br/comunidade/index.php?option=com_content&task=view&id=119
&Itemid=41>. Acesso em: 06 março 2012.
SHANKER, S.G. (1987). Wittgenstein versus Turing on the nature of Church's
thesis. Notre Dame J. Formal Logic, 28 (4), 615-649.
TURING, A. (1950). Computing machinery and intelligence. Mind, 59 (236), 423-460
WALLACE, Richard (2003). Artificial Intelligence Markup Language (AIML) Version
1.0.1. Disponível em <www.alicebot.org/TR/2001/WD-aiml>. Acesso em 7 de março de
2012.
Recommended