Chatterbot em AIML para o Curso de Ciência da Computação (PDF
Transcrição
Chatterbot em AIML para o Curso de Ciência da Computação (PDF
Chatterbot em AIML para o Curso de Ciência da Computação Ângelo Franco Neto, Anita Maria da Rocha Fernandes, André Luis Alice Raabe, Luis Carlos Martins, Elisangela Maschio de Miranda Curso de Ciência da Computação – Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí (UNIVALI) Itajaí – SC – Brazil {anita,luca,elis,araabe}@inf.univali.br, [email protected] 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 criação de um chatterbot responsável por apresentar ao público, informações sobre o Curso de Ciência da Computação do CTTMar/UNIVALI. O sistema tem sua interface em Flash, e em sua base de conhecimento foi utilizado o padrão AIML. A metodologia utilizada foi: traduzir a base de conhecimento padrão em inglês para português, formando uma base inicial genérica; desenvolver um formulário para professores e alunos do curso, onde os mesmos deram sugestões sobre perguntas e respostas que o chatterbot deveria responder; adicionar novas perguntas e respostas à base de conhecimento; configurar o interpretador no servidor de páginas web da UNIVALI; desenvolver a interface; testar e validar. 1. Introdução Este trabalho propôs a criação de um chatterbot responsável por apresentar ao público informações sobre o Curso de Ciência da Computação da UNIVALI. Segundo Simon Laven (LAVEN, 2002), um chatterbot é um programa que tem por finalidade simular uma conversação 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 comunicação com o usuário e tornando a conversa mais agradável. 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 são constituídos de tópicos e categorias. Por sua natureza, objetos AIML estão de acordo com documentos XML (Extensible Markup Language). Como o XML é uma forma restrita de SGML, Standard Generalized Markup Language (ISO 8879), objetos AIML também estão de acordo com documentos SGML. Segundo Flynn (2003), XML, ou linguagem de marcação extensível, é feito para aumentar a funcionalidade da Web fornecendo uma identificação mais flexível e adaptável para informações. É chamado extensível porque não é fixa como HTML (HyperText Markup Language, uma linguagem de marcação simples e pré-definida). Pelo contrário, XML é na verdade uma “meta-linguagem” usada para descrever outras linguagens, que permite desenvolver linguagens de marcação próprias e customizadas para infinitos tipos diferentes de documentos. De acordo com Silva (2003), existem diversos tipos e categorias de chatterbots conforme sua finalidade: Entretenimento: são aqueles que têm por finalidade divertir o usuário. Para tanto, é preciso que o chatterbot simule melhor a personalidade humana, com gostos e desejos próprios; Chatterbots FAQs: têm a mesma finalidade que os FAQS (Frequently Asked Questions, ou perguntas feitas com freqüência), porém usando linguagem natural para se comunicar com o usuário; Suporte ao consumidor: são chatterbots que ajudam o cliente a descobrir e fornecer a solução para um determinado problema; Marketing: são os chatterbots responsáveis por fazer a propaganda de determinado produto ou serviço; Chatterbots de propósito geral: são aqueles sem um objetivo definido. Alguns destes chatterbots têm a capacidade de aprender o que os usuários os ensinam. Cada chatterbot baseado em AIML possui um módulo chamado interpretador AIML, que é responsável por identificar a entrada do usuário 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 estão: •Program Z: é implementado em Common Lisp. Esta implementação vem junto com completa hospedagem grátis e ferramentas de desenvolvimento AIML no site www.pandorabots.com; •Program D: é uma implementação em Java. Esta é a versão que usa a tecnologia mais moderna e com compatibilidade total com o padrão AIML; •Program M: é implementado em uma linguagem antiga chamada SETL (Set Theory and Mathematical Logic). É mais uma especificação formal para AIML do que uma aplicação prática e funcional. Para usar o Program M, é necessário instalar a linguagem SETL, que roda somente em máquinas com Linux; •Program E: (mais conhecido como “PHiliP”) é uma implementação em PHP que está gerando muita expectativa. Ainda está em seus estágios iniciais, porém é compatível com o padrão AIML e possui uma comunidade que está crescendo rapidamente; •Program V: é uma implementação em Perl de um interpretador AIML e também é compatível 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, além de ser o mais utilizado e mais compatível com o padrão AIML 1.0.1. 2. Justificativa Embora os chatterbots existam desde a década de 60, há um aumento no interesse nestas 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 à milhares de pessoas por dia (AGENTLAND, 2003). 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. Parece certo que chatterbots têm um papel significante na Internet do futuro (ibidem). Atualmente, existem poucos chatterbots em AIML no Brasil. Entre os mais famosos estão o chatterbot de marketing Se7e Zoom do site da Close-UP (SET7EZOOM, 2003) e o Pixelbot (PIXELBOT, 2003) da Universidade Federal de Pernambuco, que além de não possuir um objetivo específico, não possui uma interface amigável. 3. Discussão A primeira etapa do projeto foi a configuração do programa interpretador AIML. O interpretador usado no projeto foi o Program D, pela sua total compatibilidade com o padrão AIML e sua compatibilidade com os atuais servidores Web da UNIVALI. Seus pré-requisitos para o funcionamento não são muitos, sendo possível até mesmo instalá-lo em ambiente Windows com o servidor de páginas Web APACHE. É necessário, entretanto, que esteja instalado no mesmo servidor uma versão do Java 2 JRE (Java Runtime Edition). A segunda etapa foi a criação de uma base de conhecimento AIML. Esta base é dividida em dois tipos: Base de conhecimento genérica; Base de conhecimentos específicos. 3.1 Contador de Categorias A base de conhecimento genérica é baseada no projeto A.L.I.C.E. (ALICE, 2003), sendo que esta encontra-se disponível gratuitamente. Para a tradução da base de conhecimento genérica, foi desenvolvido um programa em Delphi para a contagem de categorias já traduzidas. Entretanto, para que o mesmo funcione, é necessário que a tradução seja executada da seguinte maneira: do início do arquivo até o fim; quando o processo de tradução for temporariamente parado, inclui-se a tag <traduzido> imediatamente após a última categoria traduzida. Seguindo este padrão, o programa é capaz de contar quantas categorias existem antes da tag <traduzido>. O programa também 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 Específicos O chatterbot desenvolvido teve sua base de conhecimento formada a partir do levantamento feito entre alunos e professores do Curso de Ciência da Computação 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 início do curso (1º período), meio do curso (5º período) e do final do curso (9º período). As entrevistas foram feitas através de um formulário específico para alunos e para professores. Com respeito as informações que os alunos gostariam que o chatterbot responde-se têm-se: Quantidade de pessoas reprovadas em cada matéria (%); Sobre as matérias e os professores; Principais mudanças na matriz curricular do curso; Configurações dos computadores da UNIVALI; Professores do curso; Áreas para atuar, salários, linguagens que irão aprender; Quanto tempo em média um aluno leva para completar o curso; A vida após formado, as pessoas que são destaque na área; Informações mais aprofundadas nas disciplinas; Bolsa de pesquisa; Mercado de trabalho, perspectivas após formado; Aconselhamento para alunos do ensino médio que estão escolhendo que curso fazer; Notas das avaliações; Área que poderia atuar; Esclarecimento sobre pré-requisitos; Informações gerais sobre a UNIVALI; Objetivos do curso; Regulamentação da profissão; Sobre as avaliações do curso (provão) e avaliações de professores e alunos; Oportunidades acadêmicas (monitoria, grupos de pesquisa) Quais as matérias mais difíceis? 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 obrigatórias? Qual o objetivo da disciplina “X” na formação profissional? Por quê a computação é uma ciência? 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 conteúdos trabalhados na disciplina “X”? Qual a formação dos professores? Qual a área de atuação dos profissionais de Ciência da Computação? O curso oferece oportunidades de estágio? Em que áreas? Qual a necessidade da disciplina “X” no curso? Como fazer trabalho voluntariado? A base de conhecimentos específicos foi desenvolvida a partir das informações apresentadas pelos professores. Estas informações foram obtidas através de um questionário com questões que posteriormente foram analisadas serviram de base para novas categorias. Este questionário foi baseado nas questões 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 usuário para alguma parte específica do site. Entretanto, algumas perguntas não serão reconhecidas de imediato pelo chatterbot mas com as ferramentas de aprendizagem será possível melhorá-lo com o tempo. 3.3 Base de Conhecimentos Específicos O desenvolvimento da base de conhecimento iniciou-se pela tradução da base de conhecimento padrão do chatterbot A.L.I.C.E. Esta base é de distribuição gratuita e está disponível em diversas línguas. Entretanto, ainda não existe uma base AIML gratuita disponível em português. A base original escolhida foi a de língua inglesa. Devido às diferenças entre o inglês e o português, algumas categorias não foram traduzidas e, por consequência, retiradas da base de conhecimento. Isto deve-se ao fato de que algumas expressões só existem em inglês, e não em português, além do fato de que existem palavras que são sinônimos em inglês mas que não existem correspondentes na língua portuguesa. Outro inconveniente é a questão do gênero. Por exemplo, considerando as seguintes frases em inglês: That house is ugly. That car is ugly. Para estas frases, o seguinte padrão seria indicado: <pattern>THAT * IS UGLY</pattern> Entretanto, somente uma categoria não seria o suficiente para identificar estas duas frases: Aquela casa é feia. Aquele carro é feio. São necessárias, na verdade, duas categorias diferentes: <pattern>AQUELA * É FEIA</pattern>; <pattern>AQUELE * É FEIO</pattern> Então, durante o processo de tradução, o devido cuidado foi tomado para que os adjetivos e substantivos sejam separados em categorias diferentes de acordo com o gênero. Uma questão importante durante a tradução foi a utilização do ponto de interrogação. Na língua portuguesa, o que difere uma afirmação de uma pergunta muitas vezes é somente o sinal '?' no final da frase. Entretanto, na língua inglesa, a diferença é muito mais evidente do que um simples sinal. O verbo, por exemplo, passa a ficar antes do sujeito. Devido a este fato, o sinal '?' não é identificado pelo Program D, pois é praticamente inútil. Por exemplo, o seguinte padrão em inglês é nitidamente uma pergunta: <pattern>DO YOU COOK</pattern>. Mas, no caso da tradução para português, não há como definir se a entrada é uma pergunta ou não: <pattern>VOCÊ COZINHA</pattern> Este problema é menos sério do que aparenta, pois a resposta pode ser formulada para que sirva tanto para afirmações como para perguntas. <template>Eu tenho cara de microondas?</template> Em ambos os casos (afirmação e pergunta) esta resposta será acionada. Desta forma, a conversa ainda parece manter uma certa coerência, ainda que não seja a solução ideal. Visto que isto é aplicável à maioria dos casos, preferiu-se adotar este método de tradução, ou seja, desconsiderando o ponto de interrogação. O mesmo vale para o reconhecimento de padrões na tag <that>, já que o ProgramD também ignora o sinal '?' nesta tag. Outro tratamento importante se refete aos acentos. O arquivo substitutions.xml contém uma série de substituições do tipo: <substitute find="ã" replace="a"/> ; <substitute find="õ" replace="e"/> Estas substituições filtram a entrada para que a acentuação 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> não possui acentos, exceto em um caso especial. As palavras "é" e "e" possuem significados e utilidades muito diferentes para que a acentuação seja ignorada. Todo o sentido de uma frase pode se modificar caso estas duas palavras sejam trocadas. Devido a este fato, esta acentuação não é modificada. Nos casos onde a letra “e” acentuada faz parte de uma palavra (por exemplo, “também” , “alguém”, “patético”) é necessário criar duas categorias diferentes que reconheçam respectivamente a palavra com e sem acento. O arquivo substitutions.xml é constituído de quatro partes: • Input: são várias regras que definem quais caracteres ou palavras serão substituídos nas entradas dos usuários. Desta forma, a entrada é normalizada e mais facilmente reconhecida pelo interpretador. Como mencionado anteriormente, é nesta parte que todos os acentos são retirados. Existem regras que substituem contrações e abreviações, economizando categorias desnecessárias. Exemplo: <substitute find=" pq " replace=" porque "/> <substitute find=" qq " replace=" qualquer "/> • Gender: estas substituições são usadas quando a tag AIML <gender> é utilizada. São instruções para troca de gênero em uma determinada frase. Exemplo: <substitute find=" ele " replace=" ela "/> <substitute find=" dela " replace=" dele "/> • Person: substituições de primeira para terceira pessoa e vice-versa. Estas substituições são usadas quando a tag AIML <person> é utilizada. Exemplo: <substitute find=" ele " replace=" eu "/> • Person2: substituições de primeira para segunda pessoa e vice-versa. Estas substituições são 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 distinção entre letras acentuadas, porém trata igualmente caracteres em minúsculo e maiúsculos. 3.4 Aprendizado A base de conhecimentos genéricos 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 genéricos ainda que útil, não consegue identificar todas as particularidades da língua portuguesa ou até mesmo da cultura brasileira. Os usuários que tiveram a oportunidade de conversar com o chatterbot nos seus estágios iniciais puderam observar que muitas perguntas não obtiveram a resposta apropriada ou coerente. Deste modo, faz-se necessário um processo de aprendizado e adaptação 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 usuários e as respectivas respostas do chatterbot. O botmaster pode navegar entre os registros do log gerado e decidir qual resposta foi adequada ou não. Nos casos onde a resposta não foi satisfatória, o botmaster pode cadastrar uma nova baseada na pergunta que não foi respondida corretamente. Entretanto, este aplicativo só funciona em ambientes gráficos e isto nem sempre é possível obter nos servidores onde o ProgramD é instalado. O mais adequado neste caso seria uma aplicação de aprendizado escrita em alguma linguagem para a web, visto que o próprio chatterbot é uma aplicação para a web. Assim, o botmaster poderia facilmente ensinar o chatterbot, até mesmo à distância. Além disso, o programa Targeting parece se perder na navegação de algumas categorias e também é uma aplicação pesada. Nos testes feitos, foi notado um uso considerável de recursos do sistema para esta aplicação. 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 fácil para o desenvolvimento desta aplicação. Foi utilizada a classe SimpleXmlParser, desenvolvida por Marcos Pont (PONT, 2003). Esta classe é a responsável por ler o arquivo de log que está no formato XML, e montar uma árvore em memória com os dados deste arquivo. Trata-se de uma classe simples, que não oferece outras funcionalidades além desta. Um parser XML é o programa ou rotina responsável por validar a sintaxe de um arquivo XML, além de oferecer funções para a navegação pela árvore do arquivo. O arquivo “targets.xml” contém uma tag “raíz” chamada <targets>. Dentro desta tag existem diversas tags <target> que contém informações referentes à cada troca de informações com os clientes, além do tópico da conversa e a categoria que foi acionada. A tag <input> é referente à entrada do usuário. A tag <match> corresponde à categoria que foi acionada por esta entrada. A tag <reply> corresponde à resposta mostrada ao usuário. Lendo estas informações, o programa pode montar um formulário para que o usuário visualize estas informações e as modifique se quiser. Em seguida, o usuário pode gravar esta categoria modificada. Cada nova resposta é gravada em um arquivo aiml próprio, que depois é adicionado à base de conhecimento. A Figura 2 mostra a interface da aplicação desenvolvida. Figura 2: Ferramenta de aprendizado. Para isto, o padrão AIML possui a tag <learn>, que é responsável por recarregar todos os arquivos da base de conhecimento. Para acioná-la, é preciso criar uma tag específica para este propósito. O Program D oferece uma funcionalidade ainda mais útil. É possível programálo para que, em intervalos de tempo pré-determinados, os arquivos AIML sejam verificados e, caso haja alguma modificação, 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, disponível para download no site do projeto A.L.I.C.E. (2003). Trata-se de um movie clip que encapsula todas as funções necessárias para que qualquer aplicativo feito em Flash possa se comunicar com o ProgramD remotamente. Com a fonte deste movie clip, é possível modificar ou adicionar novas funcionalidades. O cliente AlicebotFlash é mais eficiente e rápido que o cliente HTML, visto que não é necessário recarregar a página para cada resposta do chatterbot. A comunicação entre a interface Flash e o Program D dá-se da seguinte maneira: O usuário digita a mensagem em um campo texto da interface Flash. Ao apertar “enter”, o texto é enviado para o Program D através do endereço http://localhost:2001/CHAT?flash=true. Existe um arquivo de configuração usado pelo Program D chamado chat.flash. O conteúdo deste arquivo determinará a maneira como o programa enviará as informações de volta para a interface Flash. As tags <bot_name>, <userinput>, <reply> e <response> serão preenchidas pelo Program D quando uma resposta for solicitada. Em seguida, o texto é enviado para o cliente Flash. Os textos que possuem o sinal “&” serão identificadas pelo Flash como variáveis que poderão ser mostradas para o usuário. O AlicebotFlash foi feito em Flash 5, e a interface cliente requer o plugin Flash Player 5 ou superior, sendo que o mesmo não funciona na versão standalone (arquivo Flash executável), somente em browsers. É interessante notar que o arquivo Flash (swf) deve ficar no mesmo servidor que o Program D, senão não funcionará. Esta é uma restrição de segurança do próprio Flash. Não é possível acessar arquivos ou dados de outro servidor. Não é necessário que os arquivos html e swf estejam no mesmo diretório 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 aplicação. Recomenda-se colocá-lo em um diretório chamado ProgramD dentro do diretório onde estão os arquivos da página web do chatterbot. Estes são os principais diretórios do Program D: • aiml : É onde os arquivos da base de conhecimento são guardados. Somente os arquivos com a extensão "aiml" serão considerados. Este é o diretório criado para este projeto, entretanto este diretório pode ser definido nas configurações do Program D; • logs : Contém os registros das conversas, dos erros e as mensagens geradas pelo servidor. Este diretório não existe até que o servidor seja rodado pela primeira vez; • targets: É o local onde ficam os dados gerados para a ferramenta Targeting; • templates: Contém os modelos para as interfaces em html e flash; • conf: Contém os arquivos de configuração do chatterbot; • database: Contém os scripts para a geração das tabelas usadas pelo ProgramD. Estas tabelas somente se for necessário gravar os logs em algum banco de dados; • resources: Contém as DTDs e StyleSheets usados nos arquivos de log XML. Estes são 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 não deve ser usado); server.properties: Este arquivo contém a configuração geral do servidor; version.txt: Arquivo que contém informações sobra a versão do servidor. É preciso que o JRE (Java Runtime Enviroment) esteja instalado na máquina. Para verificar isso, basta digitar o comando "java" no prompt de comando. Se o comando não for encontrado, é preciso instalar o JRE, ou então o servidor não funcionará. Após a instalação é necessário reiniciar o computador. Antes de rodar o servidor é necessário configurar o chatterbot. Os arquivos aiml devem estar separados em uma determinada pasta, que no caso deste trabalho chama-se "ProgramD\AIML". Dentro do diretório conf, existe o arquivo startup.xml onde é possível determinar diversas características do chatterbot, inclusive o caminho onde se encontram os arquivos aiml (relativos ao diretório onde o Program D se encontra) Com todas as configurações feitas, pode-se rodar o programa do servidor. No Linux/Unix, basta digitar "server.sh". Talvez seja necessário modificar os atributos para tornar este arquivo executável (via chmod). No Windows, deve-se executar o arquivo "run.bat". Para testar, basta digitar alguma frase no próprio console ou usar a interface web no endereço http://localhost:2001. É interessante notar que no Internet Explorer deve-se sempre incluir "http://" no endereço quando se especifica o número da porta. Para finalizar o servidor, basta digitar "/exit" no prompt de comando. Este comando não funciona via browser. 3.7 Evolução do Projeto Nos testes iniciais, a base de conhecimento possuía cerca de sete mil categorias sobre os mais diversos assuntos. Isto corresponde a aproximadamente um terço da quantidade esperada de categorias para o fim do projeto. Verificou-se que a maioria das perguntas não era identificada corretamente. Muitas vezes a categoria mais geral era acionada e o chatterbot respondia que não sabia a resposta. Algumas vezes o chatterbot possuía uma categoria que correspondia à entrada do usuário, mas a resposta não se adequava ao contexto da conversa. O programa muitas vezes se perde ou confunde as perguntas do usuário. 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 após um período em que o chatterbot aprendeu algumas categorias novas através da ferramenta de aprendizagem. 3.8 Testes e Validação A fim de validar o desempenho do programa “Luka Virtual” no mundo real, foi aplicado um questionário on-line. De acordo com as pessoas que utilizaram o programa. Algumas conclusões puderam ser tiradas. A seguir tem-se a descrição dos usuários, bem como as suas respostas. A primeira pergunta feita ao usuário foi quanto a sua categoria: aluno, professor ou outros (esta categoria refere-se a pessoas externas ao curso). A maioria dos usuários que testaram o sistema foram de fora do curso. Ao serem solicitados a darem uma nota para a conversa com o sistema, os usuários forneceram uma nota no intervalo de 0 a 10 e a nota média alcançada foi 5,68. Quanto a nota para interface, também em uma escala de 0 a 10, a nota média foi de 8,63. Quanto a pergunta relativa a presença do “Luka” no site, todos os usuários foram favoráveis (100% de aprovação). Dos 47 usuários, 13 fizeram perguntas sobre o curso de Ciência da Computação e o chatterbot infelizmente não conseguiu responder satisfatoriamente, o que faz com que a base de conhecimento seja reavaliada. As sugestões dadas pelos usuários, 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. Conclusões O trabalho realizado reuniu conhecimentos sobre inteligência 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 específica do trabalho é voltada para o marketing via web, apresentando uma nova ferramenta que capta a atenção dos usuários. Para a implementação do sistema, foi usada a linguagem de marcação AIML, que além de poderosa é fácil de ser usada. É importante ressaltar a dificuldade encontrada em se conseguir desenvolver uma base deconhecimentos padrão, pelo excesso de perguntas que foi preciso traduzir. Mesmo assim, tentar criar algo tão complexo como uma conversa entre seres humanos é uma tarefa difícil e que leva muito tempo. Ao analisar o esforço dedicado ao processo de tradução, percebeu-se que o desempenho do chatterbot poderia ser melhor se a base de conhecimentos específicos tivesse sido desenvolvida primeiro. O tempo e esforço necessários para traduzir a base do chatterbot Alice foram demasiados e o desenvolvimento das categorias sobre o Curso de Ciência da Computação foi prejudicado. Por estes motivos, a base de conhecimentos específicos ficou relativamente pequena, contendo basicamente informações sobre os professores e disciplinas. Outro ponto interessante do trabalho foi notar que, por sua própria natureza e funcionamento, o Program D não permite que o chatterbot seja pró-ativo, ou seja, que faça suas próprias perguntas. É possível, entretanto, que a maneira como as perguntas são respondidas provoquem mais questionamentos. As conversas onde o chatterbot simplesmente responde às perguntas tendem a se tornar curtas e pouco interessantes. A própria base de conhecimento herdada do chatterbot Alice pode ser considerada um pouco pró-ativa, pois suas respostas geralmente se tornam perguntas para os usuários. Como recomendações 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 não 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. Também seria interessante o desenvolvimento de um programa interpretador AIML próprio em alguma outra linguagem de programação. Referências Agentland (2003). Inteligent agents and bots. Disponível em <www.agentland.com>. Acesso em 4 de março de 2003. Alice. Alicebot Org (2003). Disponível em <www.alicebot.org>. Acesso em 7 de março de 2003. Flynn, Peter (2003). The XML FAQ. Disponível 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 março de 2003. Disponível em Pixelbot (2003). Pixelbot. Chatterbot acadêmico da Universidade Federal de Pernambuco. Disponível em <150.161.189.220/pixel>. Acesso em 7 de março de 2003. Pont, Marcos. (2003) Disponível em SimpleXMLParser. http://phpbrasil.com/scripts/script.php/id/822>. Acesso em 6 de novembro de 2003. ProgramD (2003). Getting Started With Program D. Disponível em: <www.alicebot.org/resources/programd/readme.html>. Acesso em 7 de março de 2003. SE7TEZOOM (2003). Se7e zoom. Disponível em <www.setezoom.com.br>. Acesso em 7 de março de 2003. Silva, Adriana Barbosa (2003). Um chatterbot em AIML plus que conversa sobre horóscopo. Disponível <www.cin.ufpe.br/~tg/2002-1/abs2.doc>. Acesso em 2 de março de 2003. Wallace, Richard (2003). Artificial Intelligence Markup Language (AIML) Version 1.0.1. Disponível em <www.alicebot.org/TR/2001/WD-aiml>. Acesso em 3 de março de 2003.
Documentos relacionados
ELEKTRA: Um Chatterbot para Uso em Ambiente Educacional
palavras. É programada para dar muitas informações a seu respeito e pode sugerir até que o usuário a veja cantar. Muitos outros chatterbots foram construídos usando o software do chatterbot ALICE. ...
Leia mais