1DESENVOLVIMENTO 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] 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 manipulandose 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: 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 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). 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) Figura 2: Wamp (Área de notificação) Fonte: Wamp Server 2.1 (2012) 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. 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 AIML AIML_USERUNDEFINED BOTPERSONALITY CONVERSATION_LOG SPELLCHECK UNDEFINED_DEFAULTS UNKNOWN_INPUTS USERS COMENTÁRIO Armazena os scripts AIML instalados com o motor de busca Armazena os scripts AIML instalados por usuários desconhecidos Armazena informações sobre a personalidade do Chatterbot Armazena os diálogos realizados pelo chatterbot Armazena palavras erradas e as suas correções. Mesmo que o usuário digite errado o chatterbot vai entender. Armazena padrões definidos para o chatterbot Armazena entradas desconhecidas pelo chatterbot 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. Figura 4: Ensinando o chatbot Fonte: Área administrativa do chatbot 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. 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) Figura 5: Botão Teach Fonte: Área administrativa do Chatbot 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 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 Figura 8: Ensinando o Chatbot 4 Fonte: Área administrativa do chatbot 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> Figura 9: Ensinando o Chatbot 5 Fonte: Área administrativa do chatbot 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. 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 * ?”. Figura 10: Página inicial do Chatbot(com foto) Fonte: Página inicial do chatbot 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): Figura 11: PhpMyAdmin Fonte: Tabela AIML 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 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 fevereiro de 2012. (2003). Disponível em <www.alicebot.org>. Acesso em 26 de 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, http://www.simonlaven.com/Acesso em: 06 março 2012. 2000. Disponível em: 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. 121152). 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.