Desenvolvendo um chatbot / chatterbot

23
1 DESENVOLVIMENTO DE UM CHATTERBOT BASEADO EM AIML PARA O SITE DE UMA INSTITUIÇÃO DE ENSINO SUPERIOR Lucas Pereira dos Santos 1 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: [email protected] 2 Orientadora do trabalho de conclusão de curso, Renata de Souza França. Contato eletrônico: [email protected]

description

Desenvolvido por Lucas Pereira dos Santos

Transcript of Desenvolvendo um chatbot / chatterbot

Page 1: Desenvolvendo um chatbot / chatterbot

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:

[email protected] 2 Orientadora do trabalho de conclusão de curso, Renata de Souza França. Contato eletrônico:

[email protected]

Page 2: Desenvolvendo um chatbot / chatterbot

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.

Page 3: Desenvolvendo um chatbot / chatterbot

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

Page 4: Desenvolvendo um chatbot / chatterbot

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.

Page 5: Desenvolvendo um chatbot / chatterbot

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.

Page 6: Desenvolvendo um chatbot / chatterbot

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.

Page 7: Desenvolvendo um chatbot / chatterbot

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.

Page 8: Desenvolvendo um chatbot / chatterbot

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

Page 9: Desenvolvendo um chatbot / chatterbot

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.

Page 10: Desenvolvendo um chatbot / chatterbot

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

Page 11: Desenvolvendo um chatbot / chatterbot

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.

Page 12: Desenvolvendo um chatbot / 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)

Page 13: Desenvolvendo um chatbot / chatterbot

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

Page 14: Desenvolvendo um chatbot / chatterbot

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.

Page 15: Desenvolvendo um chatbot / chatterbot

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)

Page 16: Desenvolvendo um chatbot / chatterbot

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

Page 17: Desenvolvendo um chatbot / chatterbot

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

Page 18: Desenvolvendo um chatbot / chatterbot

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

Page 19: Desenvolvendo um chatbot / chatterbot

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:

[email protected] 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

Page 20: Desenvolvendo um chatbot / chatterbot

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

Page 21: Desenvolvendo um chatbot / chatterbot

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

Page 22: Desenvolvendo um chatbot / chatterbot

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

Page 23: Desenvolvendo um chatbot / chatterbot

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.