Você está na página 1de 12

Chatterbot em AIML para o Curso de Cincia da Computao

ngelo Franco Neto, Anita Maria da Rocha Fernandes, Andr Luis Alice Raabe, Luis Carlos Martins, Elisangela Maschio de Miranda Curso de Cincia da Computao Centro de Cincias Tecnolgicas da Terra e do Mar Universidade do Vale do Itaja (UNIVALI) Itaja SC Brazil
{anita,luca,elis,araabe}@inf.univali.br, af.neto@terra.com.br

Abstract. This paper presents the development of a chatterbot responsible by presenting information about the Computer Science course of CCTMar/UNIVALI to the public. The system has its interface in Flash,and in its knowledge base it was used AIML pattern. To develop the chatterbot it was necessary: to translate the standard knowledge base from English to Portuguese, organizing an initial generic; to develop a form to the course professors and students, in which they gave suggestions about questions and answers that the chatterbot must; to add new questions and answers to the knowledge base; to configure the interpreter in web pages server of CTTMar/UNIVALI; to develop the interface; to test and to validate the system. Resumo. Este trabalho apresenta a criao de um chatterbot responsvel por apresentar ao pblico, informaes sobre o Curso de Cincia da Computao do CTTMar/UNIVALI. O sistema tem sua interface em Flash, e em sua base de conhecimento foi utilizado o padro AIML. A metodologia utilizada foi: traduzir a base de conhecimento padro em ingls para portugus, formando uma base inicial genrica; desenvolver um formulrio para professores e alunos do curso, onde os mesmos deram sugestes sobre perguntas e respostas que o chatterbot deveria responder; adicionar novas perguntas e respostas base de conhecimento; configurar o interpretador no servidor de pginas web da UNIVALI; desenvolver a interface; testar e validar.

1. Introduo
Este trabalho props a criao de um chatterbot responsvel por apresentar ao pblico informaes sobre o Curso de Cincia da Computao da UNIVALI. Segundo Simon Laven (LAVEN, 2002), um chatterbot um programa que tem por finalidade simular uma conversao escrita, com o objetivo de, pelo menos temporariamente, enganar um ser humano induzindo-o a pensar que est falando com outra pessoa. Este sistema dever possuir uma interface em Flash, facilitando a comunicao com o usurio e tornando a conversa mais agradvel. Para tanto, foi utilizada a linguagem AIML (Artificial Intelligence Markup Language). De acordo com Wallace (2001), a AIML descreve uma classe de objetos de dados chamados objetos AIML e parcialmente descreve o comportamento dos programas que os processam. Estes objetos so constitudos de tpicos e categorias. Por

sua natureza, objetos AIML esto de acordo com documentos XML (Extensible Markup Language). Como o XML uma forma restrita de SGML, Standard Generalized Markup Language (ISO 8879), objetos AIML tambm esto de acordo com documentos SGML. Segundo Flynn (2003), XML, ou linguagem de marcao extensvel, feito para aumentar a funcionalidade da Web fornecendo uma identificao mais flexvel e adaptvel para informaes. chamado extensvel porque no fixa como HTML (HyperText Markup Language, uma linguagem de marcao simples e pr-definida). Pelo contrrio, XML na verdade uma meta-linguagem usada para descrever outras linguagens, que permite desenvolver linguagens de marcao prprias e customizadas para infinitos tipos diferentes de documentos. De acordo com Silva (2003), existem diversos tipos e categorias de chatterbots conforme sua finalidade: Entretenimento: so aqueles que tm por finalidade divertir o usurio. Para tanto, preciso que o chatterbot simule melhor a personalidade humana, com gostos e desejos prprios; Chatterbots FAQs: tm a mesma finalidade que os FAQS (Frequently Asked Questions, ou perguntas feitas com freqncia), porm usando linguagem natural para se comunicar com o usurio; Suporte ao consumidor: so chatterbots que ajudam o cliente a descobrir e fornecer a soluo para um determinado problema; Marketing: so os chatterbots responsveis por fazer a propaganda de determinado produto ou servio; Chatterbots de propsito geral: so aqueles sem um objetivo definido. Alguns destes chatterbots tm a capacidade de aprender o que os usurios os ensinam. Cada chatterbot baseado em AIML possui um mdulo chamado interpretador AIML, que responsvel por identificar a entrada do usurio na base e retornar a resposta adequada. Estes interpretadores podem ser desenvolvidos em diversas linguagens e ambientes. Segundo A.L.I.C.E. (2003), entre os interpretadores mais populares esto: Program Z: implementado em Common Lisp. Esta implementao vem junto com completa hospedagem grtis e ferramentas de desenvolvimento AIML no site www.pandorabots.com; Program D: uma implementao em Java. Esta a verso que usa a tecnologia mais moderna e com compatibilidade total com o padro AIML; Program M: implementado em uma linguagem antiga chamada SETL (Set Theory and Mathematical Logic). mais uma especificao formal para AIML do que uma aplicao prtica e funcional. Para usar o Program M, necessrio instalar a linguagem SETL, que roda somente em mquinas com Linux; Program E: (mais conhecido como PHiliP) uma implementao em PHP que est gerando muita expectativa. Ainda est em seus estgios iniciais, porm compatvel com o padro AIML e possui uma comunidade que est crescendo rapidamente; Program V: uma implementao em Perl de um interpretador AIML e tambm compatvel com AIML 1.0.1.; Program P: mais conhecido como PASCALice, tendo sido desenvolvido em Delphi.

Dentre estes interpretadores, o Program D (PROGRAMD, 2003) parece ser mais adequado s necessidades do projeto, alm de ser o mais utilizado e mais compatvel com o padro AIML 1.0.1.

2. Justificativa
Embora os chatterbots existam desde a dcada de 60, h um aumento no interesse nestas tecnologias desde a generalizao da Internet. A Internet fez os chatterbots acessveis ao pblico em geral e ao mesmo tempo criou para os Web sites a necessidade de terem uma interface parecida com a humana para fornecer informaes de forma agradvel milhares de pessoas por dia (AGENTLAND, 2003). De fato, mais e mais esforos esto sendo direcionados pesquisa e desenvolvimento de chatterbots. Embora adquirir inteligncia humana ainda seja um sonho distante, a tecnologia dos chatterbots s tende a crescer. Parece certo que chatterbots tm um papel significante na Internet do futuro (ibidem). Atualmente, existem poucos chatterbots em AIML no Brasil. Entre os mais famosos esto o chatterbot de marketing Se7e Zoom do site da Close-UP (SET7EZOOM, 2003) e o Pixelbot (PIXELBOT, 2003) da Universidade Federal de Pernambuco, que alm de no possuir um objetivo especfico, no possui uma interface amigvel.

3. Discusso
A primeira etapa do projeto foi a configurao do programa interpretador AIML. O interpretador usado no projeto foi o Program D, pela sua total compatibilidade com o padro AIML e sua compatibilidade com os atuais servidores Web da UNIVALI. Seus pr-requisitos para o funcionamento no so muitos, sendo possvel at mesmo instal-lo em ambiente Windows com o servidor de pginas Web APACHE. necessrio, entretanto, que esteja instalado no mesmo servidor uma verso do Java 2 JRE (Java Runtime Edition). A segunda etapa foi a criao de uma base de conhecimento AIML. Esta base dividida em dois tipos: Base de conhecimento genrica; Base de conhecimentos especficos. 3.1 Contador de Categorias A base de conhecimento genrica baseada no projeto A.L.I.C.E. (ALICE, 2003), sendo que esta encontra-se disponvel gratuitamente. Para a traduo da base de conhecimento genrica, foi desenvolvido um programa em Delphi para a contagem de categorias j traduzidas. Entretanto, para que o mesmo funcione, necessrio que a traduo seja executada da seguinte maneira: do incio do arquivo at o fim; quando o processo de traduo for temporariamente parado, inclui-se a tag <traduzido> imediatamente aps a ltima categoria traduzida. Seguindo este padro, o programa capaz de contar quantas categorias existem

antes da tag <traduzido>. O programa tambm mostra a porcentagem total de categorias traduzidas. A Figura 1 apresenta a interface do programa Conta Categorias.
Figura 1. Programa Conta Categorias

3.2 Base de Conhecimentos Especficos O chatterbot desenvolvido teve sua base de conhecimento formada a partir do levantamento feito entre alunos e professores do Curso de Cincia da Computao do CTTMar/UNIVALI. O curso composto de 385 alunos e 32 professores. Deste universo, foram entrevistados 99 alunos e 12 professores, escolhendo-se entre os alunos, turmas do incio do curso (1 perodo), meio do curso (5 perodo) e do final do curso (9 perodo). As entrevistas foram feitas atravs de um formulrio especfico para alunos e para professores. Com respeito as informaes que os alunos gostariam que o chatterbot responde-se tm-se: Quantidade de pessoas reprovadas em cada matria (%); Sobre as matrias e os professores; Principais mudanas na matriz curricular do curso; Configuraes dos computadores da UNIVALI; Professores do curso; reas para atuar, salrios, linguagens que iro aprender; Quanto tempo em mdia um aluno leva para completar o curso; A vida aps formado, as pessoas que so destaque na rea; Informaes mais aprofundadas nas disciplinas; Bolsa de pesquisa; Mercado de trabalho, perspectivas aps formado; Aconselhamento para alunos do ensino mdio que esto escolhendo que curso fazer; Notas das avaliaes; rea que poderia atuar; Esclarecimento sobre pr-requisitos; Informaes gerais sobre a UNIVALI; Objetivos do curso; Regulamentao da profisso; Sobre as avaliaes do curso (provo) e avaliaes de professores e alunos; Oportunidades acadmicas (monitoria, grupos de pesquisa) Quais as matrias mais difceis? Quais os melhores alunos que j passaram pelo curso; Eventos e palestras; Infra-estrutura do curso. Referente a entrevista com os professores, os tipos de perguntas que eles gostariam que o chatterbot respondesse foram: Que conhecimentos deve ter para iniciar o curso? Por qu existem disciplinas obrigatrias? Qual o objetivo da disciplina X na formao profissional? Por qu a computao uma cincia? E o que isso implica? O que envolve a disciplina X? Do que se trata a disciplina X? O que eu estudo em X? Quais os contedos trabalhados na disciplina X? Qual a formao dos professores? Qual a rea de atuao dos profissionais de Cincia da Computao? O curso oferece oportunidades de estgio? Em que reas? Qual a necessidade da disciplina X no curso? Como fazer trabalho voluntariado? A base de conhecimentos especficos foi desenvolvida a partir das informaes apresentadas pelos professores. Estas informaes foram obtidas atravs de um questionrio com questes que posteriormente foram analisadas serviram de base para novas categorias. Este questionrio foi baseado nas questes propostas pelos alunos e professores na primeira pesquisa. Ao desenvolver as novas categorias, todo o cuidado foi tomado para que as mais diversas frases pudessem ser reconhecidas. Existem diversas maneiras de se perguntar sobre um assunto, e o chatterbot deve ser capaz de reconhec-las. A maioria das respostas redirecionar o usurio para alguma parte especfica do site. Entretanto,

algumas perguntas no sero reconhecidas de imediato pelo chatterbot mas com as ferramentas de aprendizagem ser possvel melhor-lo com o tempo. 3.3 Base de Conhecimentos Especficos O desenvolvimento da base de conhecimento iniciou-se pela traduo da base de conhecimento padro do chatterbot A.L.I.C.E. Esta base de distribuio gratuita e est disponvel em diversas lnguas. Entretanto, ainda no existe uma base AIML gratuita disponvel em portugus. A base original escolhida foi a de lngua inglesa. Devido s diferenas entre o ingls e o portugus, algumas categorias no foram traduzidas e, por consequncia, retiradas da base de conhecimento. Isto deve-se ao fato de que algumas expresses s existem em ingls, e no em portugus, alm do fato de que existem palavras que so sinnimos em ingls mas que no existem correspondentes na lngua portuguesa. Outro inconveniente a questo do gnero. Por exemplo, considerando as seguintes frases em ingls: That house is ugly. That car is ugly. Para estas frases, o seguinte padro seria indicado: <pattern>THAT * IS UGLY</pattern> Entretanto, somente uma categoria no seria o suficiente para identificar estas duas frases: Aquela casa feia. Aquele carro feio. So necessrias, na verdade, duas categorias diferentes: <pattern>AQUELA * FEIA</pattern>; <pattern>AQUELE * FEIO</pattern> Ento, durante o processo de traduo, o devido cuidado foi tomado para que os adjetivos e substantivos sejam separados em categorias diferentes de acordo com o gnero. Uma questo importante durante a traduo foi a utilizao do ponto de interrogao. Na lngua portuguesa, o que difere uma afirmao de uma pergunta muitas vezes somente o sinal '?' no final da frase. Entretanto, na lngua inglesa, a diferena muito mais evidente do que um simples sinal. O verbo, por exemplo, passa a ficar antes do sujeito. Devido a este fato, o sinal '?' no identificado pelo Program D, pois praticamente intil. Por exemplo, o seguinte padro em ingls nitidamente uma pergunta: <pattern>DO YOU COOK</pattern>. Mas, no caso da traduo para portugus, no h como definir se a entrada uma pergunta ou no: <pattern>VOC COZINHA</pattern> Este problema menos srio do que aparenta, pois a resposta pode ser formulada para que sirva tanto para afirmaes como para perguntas. <template>Eu tenho cara de microondas?</template> Em ambos os casos (afirmao e pergunta) esta resposta ser acionada. Desta forma, a conversa ainda parece manter uma certa coerncia, ainda que no seja a soluo ideal. Visto que isto aplicvel maioria dos casos, preferiu-se adotar este mtodo de traduo, ou seja, desconsiderando o ponto de interrogao. O mesmo vale para o reconhecimento de padres na tag <that>, j que o ProgramD tambm ignora o sinal '?' nesta tag. Outro tratamento importante se refete aos acentos. O arquivo substitutions.xml contm uma srie de substituies do tipo: <substitute find="" replace="a"/> ; <substitute find="" replace="e"/>

Estas substituies filtram a entrada para que a acentuao seja ignorada. Este processo previne que o chatterbot deixe de reconhecer uma determinada palavra por falta ou excesso de acentos. Sendo assim, nos arquivos aiml, a tag <pattern> no possui acentos, exceto em um caso especial. As palavras "" e "e" possuem significados e utilidades muito diferentes para que a acentuao seja ignorada. Todo o sentido de uma frase pode se modificar caso estas duas palavras sejam trocadas. Devido a este fato, esta acentuao no modificada. Nos casos onde a letra e acentuada faz parte de uma palavra (por exemplo, tambm , algum, pattico) necessrio criar duas categorias diferentes que reconheam respectivamente a palavra com e sem acento. O arquivo substitutions.xml constitudo de quatro partes: Input: so vrias regras que definem quais caracteres ou palavras sero substitudos nas entradas dos usurios. Desta forma, a entrada normalizada e mais facilmente reconhecida pelo interpretador. Como mencionado anteriormente, nesta parte que todos os acentos so retirados. Existem regras que substituem contraes e abreviaes, economizando categorias desnecessrias. Exemplo: <substitute find=" pq " replace=" porque "/> <substitute find=" qq " replace=" qualquer "/> Gender: estas substituies so usadas quando a tag AIML <gender> utilizada. So instrues para troca de gnero em uma determinada frase. Exemplo: <substitute find=" ele " replace=" ela "/> <substitute find=" dela " replace=" dele "/> Person: substituies de primeira para terceira pessoa e vice-versa. Estas substituies so usadas quando a tag AIML <person> utilizada. Exemplo: <substitute find=" ele " replace=" eu "/> Person2: substituies de primeira para segunda pessoa e vice-versa. Estas substituies so usadas quando a tag AIML <person2> utilizada. Exemplo: <substitute find=" comigo " replace=" com voc "/> <substitute find=" voc " replace=" eu sou "/> O texto contido em find faz distino entre letras acentuadas, porm trata igualmente caracteres em minsculo e maisculos. 3.4 Aprendizado A base de conhecimentos genricos possui uma ampla variedade de categorias que abrangem diversos assuntos e, mesmo assim, estes assuntos foram baseados no chatterbot A.L.I.C.E, que possui um contexto cultural completamente diferente do chatterbot proposto para este trabalho. Sendo assim, a base de conhecimentos genricos ainda que til, no consegue identificar todas as particularidades da lngua portuguesa ou at mesmo da cultura brasileira. Os usurios que tiveram a oportunidade de conversar com o chatterbot nos

seus estgios iniciais puderam observar que muitas perguntas no obtiveram a resposta apropriada ou coerente. Deste modo, faz-se necessrio um processo de aprendizado e adaptao a esse novo ambiente. O Program D oferece uma ferramenta muito til para esta tarefa, o Targeting. Trata-se de um aplicativo em Java que mostra as entradas dos usurios e as respectivas respostas do chatterbot. O botmaster pode navegar entre os registros do log gerado e decidir qual resposta foi adequada ou no. Nos casos onde a resposta no foi satisfatria, o botmaster pode cadastrar uma nova baseada na pergunta que no foi respondida corretamente. Entretanto, este aplicativo s funciona em ambientes grficos e isto nem sempre possvel obter nos servidores onde o ProgramD instalado. O mais adequado neste caso seria uma aplicao de aprendizado escrita em alguma linguagem para a web, visto que o prprio chatterbot uma aplicao para a web. Assim, o botmaster poderia facilmente ensinar o chatterbot, at mesmo distncia. Alm disso, o programa Targeting parece se perder na navegao de algumas categorias e tambm uma aplicao pesada. Nos testes feitos, foi notado um uso considervel de recursos do sistema para esta aplicao. Para este trabalho foi desenvolvida uma ferramenta de aprendizagem alternativa voltada para a web. Esta ferramenta foi desenvolvida em PHP, por se tratar de uma linguagem relativamente fcil para o desenvolvimento desta aplicao. Foi utilizada a classe SimpleXmlParser, desenvolvida por Marcos Pont (PONT, 2003). Esta classe a responsvel por ler o arquivo de log que est no formato XML, e montar uma rvore em memria com os dados deste arquivo. Trata-se de uma classe simples, que no oferece outras funcionalidades alm desta. Um parser XML o programa ou rotina responsvel por validar a sintaxe de um arquivo XML, alm de oferecer funes para a navegao pela rvore do arquivo. O arquivo targets.xml contm uma tag raz chamada <targets>. Dentro desta tag existem diversas tags <target> que contm informaes referentes cada troca de informaes com os clientes, alm do tpico da conversa e a categoria que foi acionada. A tag <input> referente entrada do usurio. A tag <match> corresponde categoria que foi acionada por esta entrada. A tag <reply> corresponde resposta mostrada ao usurio. Lendo estas informaes, o programa pode montar um formulrio para que o usurio visualize estas informaes e as modifique se quiser. Em seguida, o usurio pode gravar esta categoria modificada. Cada nova resposta gravada em um arquivo aiml prprio, que depois adicionado base de conhecimento. A Figura 2 mostra a interface da aplicao desenvolvida.

Figura 2: Ferramenta de aprendizado.

Para isto, o padro AIML possui a tag <learn>, que responsvel por recarregar todos os arquivos da base de conhecimento. Para acion-la, preciso criar uma tag especfica para este propsito. O Program D oferece uma funcionalidade ainda mais til. possvel programlo para que, em intervalos de tempo pr-determinados, os arquivos AIML sejam verificados e, caso haja alguma modificao, o programa recarrega estes arquivos automaticamente. 3.5 Interface em Flash A Interface em Flash para o chatterbot foi desenvolvida utilizando-se o modelo AlicebotFlash, disponvel para download no site do projeto A.L.I.C.E. (2003). Trata-se de um movie clip que encapsula todas as funes necessrias para que qualquer aplicativo feito em Flash possa se comunicar com o ProgramD remotamente. Com a fonte deste movie clip, possvel modificar ou adicionar novas funcionalidades. O cliente AlicebotFlash mais eficiente e rpido que o cliente HTML, visto que no necessrio recarregar a pgina para cada resposta do chatterbot. A comunicao entre a interface Flash e o Program D d-se da seguinte maneira: O usurio digita a mensagem em um campo texto da interface Flash. Ao apertar enter, o texto enviado para o Program D atravs do endereo http://localhost:2001/CHAT?flash=true. Existe um arquivo de configurao usado pelo Program D chamado chat.flash. O contedo deste arquivo determinar a maneira como o programa enviar as informaes de volta para a interface Flash.

As tags <bot_name>, <userinput>, <reply> e <response> sero preenchidas pelo Program D quando uma resposta for solicitada. Em seguida, o texto enviado para o cliente Flash. Os textos que possuem o sinal & sero identificadas pelo Flash como variveis que podero ser mostradas para o usurio. O AlicebotFlash foi feito em Flash 5, e a interface cliente requer o plugin Flash Player 5 ou superior, sendo que o mesmo no funciona na verso standalone (arquivo Flash executvel), somente em browsers. interessante notar que o arquivo Flash (swf) deve ficar no mesmo servidor que o Program D, seno no funcionar. Esta uma restrio de segurana do prprio Flash. No possvel acessar arquivos ou dados de outro servidor. No necessrio que os arquivos html e swf estejam no mesmo diretrio que o Program D. Nesta fase do projeto, foi desenvolvido o mascote Luka. A Figura 3 mostra a interface em Flash final do chatterbot Luka.

Figura 3. Interface Flash

3.6 Configurando o Servidor Primeiramente preciso obter os arquivos do Program D em www.alicebot.org. preciso colocar todos os arquivos do Program D para o servidor que ir rodar a aplicao. Recomenda-se coloc-lo em um diretrio chamado ProgramD dentro do diretrio onde esto os arquivos da pgina web do chatterbot. Estes so os principais diretrios do Program D: aiml : onde os arquivos da base de conhecimento so guardados. Somente os arquivos com a extenso "aiml" sero considerados. Este o diretrio criado para este projeto, entretanto este diretrio pode ser definido nas configuraes do Program D; logs : Contm os registros das conversas, dos erros e as mensagens geradas pelo servidor. Este diretrio no existe at que o servidor seja rodado pela primeira vez; targets: o local onde ficam os dados gerados para a ferramenta Targeting; templates: Contm os modelos para as interfaces em html e flash;

conf: Contm os arquivos de configurao do chatterbot; database: Contm os scripts para a gerao das tabelas usadas pelo ProgramD. Estas tabelas somente se for necessrio gravar os logs em algum banco de dados; resources: Contm as DTDs e StyleSheets usados nos arquivos de log XML. Estes so os principais arquivos utilizados pelo Program D: server.sh: o script shell para rodar o servidor no Linux (Unix) e MacOS X; run.bat : Arquivo de lote para rodar o servidor em ambiente Windows (o arquivo server.bat no deve ser usado); server.properties: Este arquivo contm a configurao geral do servidor; version.txt: Arquivo que contm informaes sobra a verso do servidor. preciso que o JRE (Java Runtime Enviroment) esteja instalado na mquina. Para verificar isso, basta digitar o comando "java" no prompt de comando. Se o comando no for encontrado, preciso instalar o JRE, ou ento o servidor no funcionar. Aps a instalao necessrio reiniciar o computador. Antes de rodar o servidor necessrio configurar o chatterbot. Os arquivos aiml devem estar separados em uma determinada pasta, que no caso deste trabalho chama-se "ProgramD\AIML". Dentro do diretrio conf, existe o arquivo startup.xml onde possvel determinar diversas caractersticas do chatterbot, inclusive o caminho onde se encontram os arquivos aiml (relativos ao diretrio onde o Program D se encontra) Com todas as configuraes feitas, pode-se rodar o programa do servidor. No Linux/Unix, basta digitar "server.sh". Talvez seja necessrio modificar os atributos para tornar este arquivo executvel (via chmod). No Windows, deve-se executar o arquivo "run.bat". Para testar, basta digitar alguma frase no prprio console ou usar a interface web no endereo http://localhost:2001. interessante notar que no Internet Explorer deve-se sempre incluir "http://" no endereo quando se especifica o nmero da porta. Para finalizar o servidor, basta digitar "/exit" no prompt de comando. Este comando no funciona via browser. 3.7 Evoluo do Projeto Nos testes iniciais, a base de conhecimento possua cerca de sete mil categorias sobre os mais diversos assuntos. Isto corresponde a aproximadamente um tero da quantidade esperada de categorias para o fim do projeto. Verificou-se que a maioria das perguntas no era identificada corretamente. Muitas vezes a categoria mais geral era acionada e o chatterbot respondia que no sabia a resposta. Algumas vezes o chatterbot possua uma categoria que correspondia entrada do usurio, mas a resposta no se adequava ao contexto da conversa. O programa muitas vezes se perde ou confunde as perguntas do usurio. Mas, com o processo de aprendizagem, o botmaster revisa cada pergunta e capaz de dar uma resposta apropriada para cada uma delas. Esta uma conversa retirada dos logs aps um perodo em que o chatterbot aprendeu algumas categorias novas atravs da ferramenta de aprendizagem. 3.8 Testes e Validao A fim de validar o desempenho do programa Luka Virtual no mundo real, foi aplicado um questionrio on-line. De acordo com as pessoas que utilizaram o programa. Algumas

concluses puderam ser tiradas. A seguir tem-se a descrio dos usurios, bem como as suas respostas. A primeira pergunta feita ao usurio foi quanto a sua categoria: aluno, professor ou outros (esta categoria refere-se a pessoas externas ao curso). A maioria dos usurios que testaram o sistema foram de fora do curso. Ao serem solicitados a darem uma nota para a conversa com o sistema, os usurios forneceram uma nota no intervalo de 0 a 10 e a nota mdia alcanada foi 5,68. Quanto a nota para interface, tambm em uma escala de 0 a 10, a nota mdia foi de 8,63. Quanto a pergunta relativa a presena do Luka no site, todos os usurios foram favorveis (100% de aprovao). Dos 47 usurios, 13 fizeram perguntas sobre o curso de Cincia da Computao e o chatterbot infelizmente no conseguiu responder satisfatoriamente, o que faz com que a base de conhecimento seja reavaliada. As sugestes dadas pelos usurios, de maneira geral foram: a letra usada para mostrar as respostas estava muito pequena; em geral, acharam que poderia responder melhor s perguntas; o chatterbot poderia ser um pouco mais animado.

4. Concluses
O trabalho realizado reuniu conhecimentos sobre inteligncia artificial, processamento de linguagem natural, e agentes de software. O objetivo foi tentar criar um programa de computador que pensasse como um ser humano ou, pelo menos, levasse as pessoas a pensar que se trata de uma pessoa de verdade. A rea especfica do trabalho voltada para o marketing via web, apresentando uma nova ferramenta que capta a ateno dos usurios. Para a implementao do sistema, foi usada a linguagem de marcao AIML, que alm de poderosa fcil de ser usada. importante ressaltar a dificuldade encontrada em se conseguir desenvolver uma base deconhecimentos padro, pelo excesso de perguntas que foi preciso traduzir. Mesmo assim, tentar criar algo to complexo como uma conversa entre seres humanos uma tarefa difcil e que leva muito tempo. Ao analisar o esforo dedicado ao processo de traduo, percebeu-se que o desempenho do chatterbot poderia ser melhor se a base de conhecimentos especficos tivesse sido desenvolvida primeiro. O tempo e esforo necessrios para traduzir a base do chatterbot Alice foram demasiados e o desenvolvimento das categorias sobre o Curso de Cincia da Computao foi prejudicado. Por estes motivos, a base de conhecimentos especficos ficou relativamente pequena, contendo basicamente informaes sobre os professores e disciplinas. Outro ponto interessante do trabalho foi notar que, por sua prpria natureza e funcionamento, o Program D no permite que o chatterbot seja pr-ativo, ou seja, que faa suas prprias perguntas. possvel, entretanto, que a maneira como as perguntas so respondidas provoquem mais questionamentos. As conversas onde o chatterbot simplesmente responde s perguntas tendem a se tornar curtas e pouco interessantes. A prpria base de conhecimento herdada do chatterbot Alice pode ser considerada um pouco pr-ativa, pois suas respostas geralmente se tornam perguntas para os usurios. Como recomendaes para trabalhos futuros, a melhoria mais bvia seria na base de conhecimentos. Atualmente a base AIML possui relativamente poucas categorias, sendo que uma base bem formada e com uma performance boa possui aproximadamente quarenta mil categorias. Existem outras linguagens XML para o desenvolvimento de

chatterbots mais complexas que no foram abordadas neste trabalho e que levam em conta alguns pontos negativos da linguagem AIML como, por exemplo, a dificuldade de se determinar o contexto da conversa. Tambm seria interessante o desenvolvimento de um programa interpretador AIML prprio em alguma outra linguagem de programao.

Referncias
Agentland (2003). Inteligent agents and bots. Disponvel em <www.agentland.com>. Acesso em 4 de maro de 2003. Alice. Alicebot Org (2003). Disponvel em <www.alicebot.org>. Acesso em 7 de maro de 2003. Flynn, Peter (2003). The XML FAQ. Disponvel em: <http://www.ucc.ie/xml/>. Acesso em: 20 de maio de 2003. Laven, Simon (2003). The Simon Laven page. <www.simonlaven.com>. Acesso em 4 de maro de 2003. Disponvel em

Pixelbot (2003). Pixelbot. Chatterbot acadmico da Universidade Federal de Pernambuco. Disponvel em <150.161.189.220/pixel>. Acesso em 7 de maro de 2003. Pont, Marcos. (2003) Disponvel em SimpleXMLParser. http://phpbrasil.com/scripts/script.php/id/822>. Acesso em 6 de novembro de 2003. ProgramD (2003). Getting Started With Program D. Disponvel em: <www.alicebot.org/resources/programd/readme.html>. Acesso em 7 de maro de 2003. SE7TEZOOM (2003). Se7e zoom. Disponvel em <www.setezoom.com.br>. Acesso em 7 de maro de 2003. Silva, Adriana Barbosa (2003). Um chatterbot em AIML plus que conversa sobre horscopo. Disponvel <www.cin.ufpe.br/~tg/2002-1/abs2.doc>. Acesso em 2 de maro de 2003. Wallace, Richard (2003). Artificial Intelligence Markup Language (AIML) Version 1.0.1. Disponvel em <www.alicebot.org/TR/2001/WD-aiml>. Acesso em 3 de maro de 2003.

Você também pode gostar