RODRIGO DE SOUSA LOPES GUSTAVO CELSO TRIDA LUCAS BAUR SANTANA
UAMBot UMA PROPOSTA PARA CHATTERBOT ESPECIALISTA
So Paulo 2009 GUSTAVO DE SOUZA OLIVEIRA RODRIGO DE SOUSA LOPES GUSTAVO CELSO TRIDA LUCAS BAUR SANTANA
UAMBot UMA PROPOSTA PARA CHATTERBOT ESPECIALISTA
Trabalho de Concluso de Curso apresentado como exigncia parcial para a obteno de ttulo de Graduao do Curso de Sistemas de Informao na Universidade Anhembi Morumbi.
Orientador: Emerson dos Santos Paduan
So Paulo 2009 GUSTAVO DE SOUZA OLIVEIRA RODRIGO DE SOUSA LOPES GUSTAVO CELSO TRIDA LUCAS BAUR SANTANA
UAMBot UMA PROPOSTA PARA CHATTERBOT ESPECIALISTA Trabalho de Concluso de Curso apresentado como exigncia parcial para a obteno de ttulo de Graduao do Curso de Sistemas de Informao na Universidade Anhembi Morumbi.
Aprovado em: 27 de Novembro de 2009
____________________________________________ Prof. merson dos Santos Paduan Universidade Anhembi Morumbi
___________________________________________ Prof. Carlos Carneiro Universidade Anhembi Morumbi
_____________________________________________ Prof. Silvio Rocha Silva Universidade Anhembi Morumbi AGRADECIMENTOS
Agradecemos primeiramente a Deus que nos deu a fora e a vida necessria para a concluso deste trabalho e conseqentemente deste curso. s nossas famlias, namoradas e noivas que souberam compreender todo o tempo que dispensamos nestes estudos. Aos nossos professores, principalmente nosso professor orientador Emerson dos Santos Paduan, por compartilharem conosco seus conhecimentos e gastarem seu tempo com esta arte que o ensino. E por ltimo Universidade Anhembi Morumbi por nos proporcionar condies de concluirmos este curso com o ttulo de bacharis.
"Eu sou mais rpido que voc. Sou mais forte que voc. E com certeza, vou durar muito mais que voc. Voc pode pensar que eu sou o futuro, mas est errado. Voc o futuro. Se eu pudesse desejar alguma coisa, desejaria ser humano. Para saber o que significa ter sentimentos. Ter esperanas. Ter angstias. Dvidas. Amar. Eu posso alcanar a imortalidade: basta no me desgastar. Voc tambm pode alcanar a imortalidade: BASTA FAZER APENAS UMA COISA NOTVEL." (WALKER, 2006) RESUMO
Este trabalho apresenta a construo de um chatterbot especialista baseado em banco de dados relacional capaz de aprender com agentes humanos. Traz o estudo de alguns dos chatterbots mais utilizados atualmente. O trabalho analisa conceitos de Inteligncia Artificial utilizados na construo de chatterbots, principalmente o UAMBot, mostrando como essas tcnicas so empregadas no desenvolvimento proposto. A proposta do trabalho utilizar este chatterbot no website da Universidade Anhembi Morumbi, na sesso de atendimento ao aluno, onde o software dever substituir, em mdio prazo, agentes humanos na realizao do atendimento. Espera-se com esta proposta reduzir custos e proporcionar maior disponibilidade no servio de atendimento aos alunos.
This paper presents the construction of a specialist chatterbot based on relational data base in which is able to learn with human agents. It brings resource about some of the mostly used chatterbots currently. The paper analyzes Artificial Intelligence concepts used to build chatterbots, manly the UAMBot, showing how these techniques are used in the development propose. The propose of this paper is to use this chatterbot in the University Anhembi Morumbis website, in the students area, where the software should replace in the middle term, human agents in activities related to assisting students. Expected with this propose to reduce costs and to offer high availability in the service of assisting students.
Figura 1 Exemplo de conversa com Ed .................................................................................... 22 Figura 2 Arquitetura da tecnologia ALICE .............................................................................. 27 Figura 3 Usurio e possveis interaes com o sistema ........................................................... 31 Figura 4 Atendente e possveis interaes com o sistema ........................................................ 32 Figura 5 Botmaster e possveis interaes com o sistema ...................................................... 32 Figura 6 Fluxograma principal ................................................................................................. 34 Figura 7 Fluxograma de busca de resposta ............................................................................... 34 Figura 8 Fluxograma de busca de resposta alternativa ............................................................. 35 Figura 9 Fluxo de trabalho do atendente .................................................................................. 36 Figura 10 Fluxo de trabalho do botmaster ............................................................................. 37 Figura 11 Entidades da base de conhecimento ......................................................................... 38 Figura 12 Entidades da evoluo da base de conhecimento ..................................................... 39
LISTA DE SIGLAS
AIML Artificial Intelligence Markup Language ALICE Artificial Linguistic Internet Computer Entitty BOTMASTER Rob Mestre CONPET Programa nacional da racionalizao do uso dos derivados do petrleo e do gs natural IA Inteligncia Artificial JSP Java Server Pages MVC Model View Control SE Sistemas Especialistas UAMBOT Universidade Anhembi Morumbi bot UML Unified Modeling Language WEB World Wide Web XML eXtensible Markup Language
SUMRIO
1 INTRODUO .......................................................................................................... 12 1.1 OBJETIVOS ................................................................................................................. 12 1.2 JUSTIFICATIVA ......................................................................................................... 13 1.3 ABRANGNCIA ......................................................................................................... 13 1.4 ESTRUTURA DO TRABALHO ................................................................................. 14 2 INTELIGNCIA ARTIFICIAL ............................................................................... 15 2.1 SISTEMAS ESPECIALISTAS .................................................................................... 15 2.2 TESTE DE TURING .................................................................................................... 17 2.3 MINERAO DE TEXTO ......................................................................................... 18 2.3.1 Stopwords ................................................................................................................. 18 2.3.2 Forma Cannica ..................................................................................................... 19 2.3.3 Indexao ................................................................................................................. 19 3 CHATTERBOTS ......................................................................................................... 20 3.1 TIPOS DE CHATTERBOTS ......................................................................................... 20 3.2 ELIZA ........................................................................................................................... 21 3.3 CYBELLE .................................................................................................................... 21 3.4 EDBOT ......................................................................................................................... 22 4 ALICE ......................................................................................................................... 24 4.1 FUNCIONAMENTO ................................................................................................... 24 4.2 CONHECIMENTO ...................................................................................................... 25 4.3 PONTOS FORTES E PONTOS FRACOS .................................................................. 26 4.4 ARQUITETURA .......................................................................................................... 26 4.5 AIML ............................................................................................................................ 27 5 UAMBOT .................................................................................................................... 29 5.1 REQUISITOS DO PROTTIPO ................................................................................. 29 5.2 ESPECIFICAO DO PROTTIPO ......................................................................... 31 5.3 BASE DE CONHECIMENTO ..................................................................................... 37 5.4 IMPLEMENTAO.................................................................................................... 41 6 CONCLUSO ............................................................................................................. 47 REFERNCIAS BIBLIOGRFICAS ..................................................................... 48 APNDICE A - PESQUISA DE SATISFAO ..................................................... 52 APNDICE B - CDIGO DO PROTTIPO .......................................................... 53 ANEXO A - PROTOCOLOS / REQUERIMENTOS / SOLICITAES ............ 83 ANEXO B - LISTA DE STOP WORDS .................................................................. 97
12 1 INTRODUO
A Inteligncia Artificial (I.A.) sempre despertou curiosidade nas mentes mais brilhantes que queriam entender como a capacidade humana, segundo alguns, criada por Deus, inalcanvel aos computadores. Mesmo depois de o homem ser vencido pela mquina em atividades como o Xadrez ou a resoluo de problemas matemticos complexos, quase unnime o sentimento de que eles, os computadores, esto infinitamente longe de alcanar a criatividade, perspiccia e a inteligncia emocional dos humanos. (LEVINE, 1988). No entanto, o estudo da Inteligncia Artificial nos ltimos anos tem se mostrado cada vez mais comum, j que tarefas simples e repetitivas para seres humanos tornam-se no to simples quando executadas por agentes dotados de Inteligncia Artificial. O trabalho de construo desses agentes alvo de pesquisas e objetivo de sujeitos que pretendem facilitar a vida humana em processos automatizados. (AUTORES, 2009) Uma das reas onde a I.A. tem parte importante no sucesso da operao a de chatterbots: agentes robs inteligentes capazes de sanar dvidas, manter um padro de conversao com pessoas, suprindo necessidades de respostas de um ser humano normal. Este trabalho efetuar anlises sobre as principais tcnicas utilizadas na construo desse tipo de aplicao, demonstrando a importncia da utilizao de cada uma delas. Analisar alguns dos principais chatterbots demonstrando o funcionamento de cada um. Diante da complexa, porm instigante rea, o trabalho ir propor o desenvolvimento de um chatterbot especialista, que ter conhecimento sobre um nico tema, mas que saber responder questes completas, anteriormente elaboradas por humanos, sabendo entender as necessidades do usurio e visando sempre a satisfao do mesmo com o servio prestado.
1.1 OBJETIVOS
O objetivo geral deste trabalho propor o desenvolvimento de um chatterbot especialista para uso na Universidade Anhembi Morumbi. O trabalho demonstrar os passos para o desenvolvimento utilizando uma base em banco de dados relacional. O funcionamento do sistema usar conceitos de Inteligncia Artificial que sero abordados em captulos posteriores. O sistema proposto realizar o atendimento online aos alunos no site da instituio, substituindo o atendimento realizado via chat por atendentes humanos pelo atendimento automatizado do sistema.
13 O trabalho ser um guia para o desenvolvimento dessa aplicao, demonstrando as tcnicas utilizadas.
1.2 JUSTIFICATIVA
O crescimento de atendimentos online aumentou a insatisfao de usurios dessas ferramentas com as opes existentes devido ao despreparo dos atendentes, falta de informao e treinamentos, agilidade, disponibilidade. Os problemas dos usurios algumas vezes no so resolvidos. O trabalho descreve uma opo importante na melhoria da qualidade, automatizao e reduo de custos para esse tipo de caso. Uma pesquisa informal realizada entre alguns alunos da Universidade Anhembi Morumbi, que se encontra anexa ao trabalho como apndice A, aponta que mais de setenta por cento dos alunos no est plenamente satisfeita com o atendimento prestado pela universidade. O fato de um rob ter um conceito de padronizao dificilmente alcanado por seres humanos, torna essa soluo algo promissor para o compromisso das empresas com a satisfao plena do cliente em um atendimento. Pode ser destacado tambm o fato de que boa parte da imagem que as empresas mantm frente aos usurios vem de quando estes tm problemas. Um cliente acaba por formar para si a imagem de uma empresa quando atendido por ela na tentativa de resoluo de algum problema. (AUTORES, 2009) Portanto, prezando pela qualidade no atendimento das empresas o trabalho prope uma forma de atendimento mais sofisticada. Portanto, prezando pela qualidade no atendimento das empresas o trabalho prope uma forma de atendimento mais sofisticada.
1.3 ABRANGNCIA
O trabalho tem como rea de estudo os conceitos de I.A. necessrios para o desenvolvimento do sistema, estudos de outros chatterbots, demonstrando vantagens e
14 desvantagens de cada um e uma breve comparao entre estes e o chatterbot proposto, o UAMBot. O trabalho se limita a demonstrar testes realizados a ttulo de prova de conceito onde no sero preocupaes, a interface e a usabilidade. O trabalho se compromete a testar as tcnicas de inteligncia artificial propostas, demonstrando a importncia das mesmas para o alcance do objetivo do trabalho.
1.4 ESTRUTURA DO TRABALHO
No captulo 2 so abordados os conceitos de I.A. utilizados na proposta para o desenvolvimento do UAMBot e do mdulo de aprendizagem que ser testado no trabalho. No captulo 3 so abordados o conceito de chatterbot e os principais chatterbots da atualidade, efetuando uma comparao entre os mesmos e o UAMBot, demonstrando seus pontos fortes e fracos. No captulo 4 ser apresentado de forma mais detalhada o mais popular chatterbot utilizado na atualidade, o ALICE. Este que foi um dos primeiros chatterbots a ser desenvolvido e que at hoje mantm caractersticas muito frente de outros chatterbots do mercado. No captulo 5 ser abordada a proposta do trabalho: o UAMBot, um rob para utilizao no atendimento via chat a usurios do site da Universidade Anhembi Morumbi. Sero apresentadas as tcnicas de desenvolvimento demonstrando sua ligao com os conceitos de I.A. apresentados. Ser demonstrada a arquitetura de funcionamento do sistema e testes de algoritmos criados, principalmente o de aprendizagem. Sero apresentados trechos do cdigo desenvolvido no prottipo e explicaes quanto ao seu funcionamento.
15 2 INTELIGNCIA ARTIFICIAL
Inteligncia artificial (I.A.) a maneira de fazer um computador pensar inteligentemente (LEVINE, 1988). Para ser considerado um ser inteligente, o ser deve raciocinar, ou seja, determinar aes em cima de razes, ter percepo a casos diferentes, se adaptar de forma fsica e social, sentir e aprender. (STERNBERG, 1992) Baseando-se nesse princpio, o objetivo simular essas capacidades de forma artificial. Sendo assim, um indivduo considerado inteligente como o homem, ao desenvolver algo que chegue perto dos seus prprios fundamentos, cria artificialmente sua imagem lgica.
2.1 SISTEMAS ESPECIALISTAS
Sistema Especialista (SE) uma aplicao da I.A. So denominados assim porque possuem o conhecimento de um especialista na rea de aplicao dentro de um programa. (STERNBERG, 1992) Os engenheiros ou analistas de conhecimento seriam, ento, os analistas de sistemas em Inteligncia Artificial, que juntamente com o tcnico designado pela empresa usuria, criariam o Sistema Especialista. (RICH, 1988) Toda rea profissional requer um especialista. o caso da indstria, educao, medicina, comrcio e da tecnologia. Sua utilizao se sobressai especialmente em sistemas de apoio deciso. Os Sistemas Especialistas so baseados em regras, possuem conhecimento intensivo do domnio da aplicao, foram construdos por especialistas humanos e podem empregar aprendizado automtico ou at mesmo criar raciocnio. Os Sistemas Especialistas tem dificuldade em lidar com conhecimento de senso comum, orientados reutilizao do conhecimento. (FVERO, 2009) Quando desenvolvido um processo de raciocnio de um sistema especialista, o sistema verifica qual a importncia dos fatos que encontra, comparando-os com as informaes j contidas no seu conhecimento sobre essas hipteses. O processo formula novas hipteses e verifica novos fatos que influenciam o processo de raciocnio. Este raciocnio sempre baseado em seu conhecimento prvio acumulado. Um especialista, com esse processo de raciocnio, pode no chegar a uma deciso se os fatos de que dispe para aplicar o seu conhecimento prvio no forem suficientes. possvel que, por este motivo, ele
16 possa chegar a uma concluso errada, porm, este erro justificado em funo dos fatos encontrados e do conhecimento acumulado. Os sistemas especialistas, para serem eficazes, precisam ter uma base de conhecimento e um processo de raciocnio consistente. Os principais passos para a criao de uma base de conhecimento so: identificao e a conceituao. (CANUTO, 2008) A identificao consiste em levantar pontos que sero relativamente importantes para consolidao da base de conhecimento. A conceituao trabalha diretamente com o conhecimento do especialista. Esta etapa possui um alto nvel de dificuldade pelo fato de que o conhecimento especializado rico e complexo. Isso se deve ao fato de que o especialista domina os processos de sua rea de atuao e muitas vezes se torna critico no detalhamento de seu conhecimento. Em um projeto de sistemas especialistas, onde so envolvidos mais de um especialista detalhando os processos, poder ser comum o aparecimento de problemas na elaborao da base de conhecimento j que opinies sero divididas podendo acarretar concluses no definitivas. A engenharia do conhecimento estuda como construir uma base de conhecimento. Essa engenharia fundamenta a aquisio de conhecimento em trs etapas: Nvel de conhecimento, Nvel lgico e Nvel de mquina. Nvel de conhecimento: a aquisio de conhecimento em estado puro, linguagem natural, exemplo: txi automtico: A ponte Princesa Isabel Liga a Rua da Imperatriz Rua Nova. Nvel lgico: Define-se na formalizao, conhecimento codificado em sentenas, linguagem formal, exemplo: sentena lgica, liga Ponte - PI, RI, RN. Nvel de mquina: A implementao a estrutura de dados representando as sentenas do nvel lgico, exemplo: listas, tabelas, objetos entre outros. (CANUTO, 2008) O processo de aquisio de conhecimento outra fase importante na formao de uma base de conhecimento consistente. Este conhecimento pode ser adquirido de muitas maneiras como, livros, pesquisas e entrevistas com especialistas. Alguns dos principais objetivos de se utilizar sistemas especialistas so: ter velocidade na determinao dos problemas, fundamentar decises em uma base de conhecimento, ter segurana, ter um decrscimo na dependncia de pessoal especfico, integrar esse tipo de sistema com outras ferramentas e evitar interpretao humana de regras operacionais. (FVERO, 2009).
17 Alguns dos problemas enfrentados pelos Sistemas Especialistas so: a fragilidade, a falta de metaconhecimento e a validao. (DEPARTAMENTO DE INFORMTICA DA UNIVERSIDADE ESTADUAL DE MARING, 2004). Os sistemas se tornam frgeis por somente terem acesso a conhecimentos especficos do seu domnio, portanto, no possuem conhecimentos mais genricos quando alguma outra necessidade surge. Quando o sistema no possui conhecimentos sofisticados sobre sua operao, ele no consegue desenvolver raciocnios lgicos sobre seu prprio escopo. A validao de um sistema especialista esbarra na dificuldade de medio de seu desempenho, pois no se sabe quantificar o uso de conhecimento. (FVERO, 2009). Algumas aplicaes dos sistemas especialistas so: Diagnstico, suporte on-line, controle de processos, controle de vo, identificao de padres difusos, medicina digital e aconselhamento jurdico. Algumas das propriedades dos sistemas especialistas so: Autonomia, habilidade social, reatividade, iniciativa, continuidade temporal e orientao a objetivos.
2.2 TESTE DE TURING
A inteligncia a habilidade de obter um desempenho de nvel humano em todas as tarefas cognitivas de forma a enganar um interrogador humano. (TURING, 1950). J em 1936, o matemtico Alan Turing se questionava sobre os conceitos de inteligncia e sobre a possibilidade de algum dia as mquinas poderem chegar a um nvel de inteligncia parecida com a dos humanos, j que as caractersticas de inteligncia so atribudas somente a seres humanos. Assim, levantou diversos questionamentos, preocupaes, e chegou a uma proposta para testar a veracidade de uma mquina quanto a sua inteligncia artificial em 1950, denominada Teste de Turing. O teste consistia em colocar um humano atravs de um dispositivo de entrada e outro de sada, em locais onde no tivessem um contato direto e observar se o ser humano ao interagir com o outro lado, no conseguiria distinguir se estava interagindo com a mquina ou com outro ser humano, caso isso acontecesse, a mquina passaria no teste de Turing. O computador seria interrogado por um humano atravs de algum tipo de rede, que na poca, Turing sugeriu o teletipo.
18 O teste requer a capacidade de processamento de linguagem natural, representao do conhecimento, raciocnio automatizado e aprendizado de mquina. As idias de Turing so pontos determinantes at hoje na evoluo da tecnologia da I.A., tanto em solues reais como na fico cientifica. Atravs desses fundamentos, vrios especialistas tm suas crenas, alguns duvidam dos algoritmos de I.A., j que acreditam que todo algoritmo tem uma limitao, esses so denominados cientistas da inteligncia artificial fraca. Outros, o grupo da inteligncia artificial forte, acredita que no h um limite para esse assunto e que logo haver fico transformada em realidade.(LEVINE, 1988).
2.3 MINERAO DE TEXTO
A minerao de textos ou minerao de dados do texto o processo de extrao de informao de documentos. (ARANHA, 2006). Com a minerao de textos possvel fazer uma anlise geral do texto de entrada e considerar, atravs das tcnicas aplicadas, somente o que importante para a gerao do resultado esperado. O pr-processamento da minerao composto de fases como leitura, extrao e limpeza de termos, contagem dos termos e clculo de freqncia.
2.3.1 Stopwords
Stopwords so termos freqentes em um texto e que no carregam nenhuma informao de maior relevncia. As stopwords so compostas por palavras das seguintes classes gramaticais: artigos, preposies, conjunes, pronomes e advrbios. (DIAS, 2004). A remoo de stopwords tem como objetivo excluir termos que no so importantes ao documento, ou seja, mesmo sem esses termos possvel entender uma frase ou expresso. Esta operao tambm pode ser considerada como uma tcnica de reduo do nmero de palavras a serem analisadas e tambm o nmero de palavras a serem armazenadas em uma base de dados. (DIAS, 2004). Para remover as stopwords necessrio criar uma lista, denominada stoplist, que conter todas as palavras consideradas irrelevantes. Este processo necessrio para retirar do texto palavras que no tem nenhuma importncia, diminuindo assim o tamanho das estruturas de indexao e facilitando a minerao. (BARION, 2008). Como exemplos de stopwords podem ser citados: e, , de, que, o, os, mas e ou.
19 2.3.2 Forma Cannica
A forma Cannica a diversidade de representao de uma pergunta, frase ou sentena. Entradas de perguntas distintas devem ser relacionadas a uma mesma representao de significado. (DELUCCA, 2002). Exemplo: A Anhembi Morumbi oferece o curso de Sistemas de Informao? O curso de Sistemas de Informao oferecido pela Anhembi Morumbi? A importncia em aplicar um processo de stem para formas Cannicas descobrir o assunto que a frase esta tratando e apresentar a resposta que faz mais sentido independente de como foi questionado, evitando conflitos de linguagem natural e interpretao. (DELUCCA, 2002) Uma forma de analisar esse tipo de situao determinar palavras chaves, assim possvel, atravs destas palavras, chegar ao assunto em questo, apresentando uma resposta coerente ao questionamento.
2.3.3 Indexao
Como o volume de informao cresceu rapidamente em poucos anos, foi necessrio construir estruturas de dados especializadas para facilitar o acesso informao armazenada. Uma estrutura de dados, bastante antiga e usada, uma coleo de palavras ou termos selecionados associado a ponteiros que se relacionam com a informao, ou documentos, chamado ndice. (COLLISON, 1972). Indexao refere-se ao acumulo de informaes dentro de um registro para construir um ndice de forma ordenada e que possa ser utilizado posteriormente para facilitar uma busca. (COLLISON, 1972). A indexao pode ser usada de muitas formas. Para utilizar essa tcnica necessrio entender o seu conceito. A ordenao feita seguindo um padro formado pelos processos de selecionar, ler, identificar e extrair o que valido, inserindo na base de dados para organizao de um ndice para futuras utilizaes. Com essa tcnica pode-se marcar sinnimos e guardar erros de digitao, assim, quando forem inseridos na entrada, tero tratamentos especficos, economizando tempo e processamento.
20 3 CHATTERBOTS
O termo chatterbot surgiu da juno 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 pessoas. (TEIXEIRA, 2007). Chatterbot um software de computador que faz a simulao de uma conversa entre seres humanos. Tem como principal objetivo manter um dilogo em conversa natural de forma que as pessoas que esto interagindo com o rob, tenham a impresso de estar conversando com outra pessoa humana. Aps os questionamentos realizados por humanos, o programa busca respostas plausveis em uma base de conhecimento para respond-lo.
3.1 TIPOS DE CHATTERBOTS
Existem diversos tipos de chatterbots que so usados para fins especficos. Os Academic Bots so relacionados a assuntos acadmicos, como sites de professores ou laboratrios de pesquisa. Os Design Bots, usados em planejamento, possuem ferramentas e habilidades para a produo de outros bots e agentes inteligentes. Os Commerce Bots desempenham atividades de comrcio na Internet. Os Fun Bots permitem aos usurios diverso atravs de jogos, ambientes virtuais, previses e personagens de realidade virtual. Os Government Bots buscam informaes em sites governamentais. Os Knowledge Bots congregam agentes inteligentes, de informao, de laboratrio, cibernticos, de web, e muitas ferramentas inteligentes de busca. Os News Bots criam jornais personalizados e clips de artigos de jornais de todo o mundo. Os Search Bots realizam buscas na Internet. Os Shopping Bots fazem compras e comparaes de preos para internautas. Os Stock Bots monitoram o mercado de aes e enviam mensagens sobre os ltimos preos e tendncias. Os Update Bots informam sobre novidades e materiais atualizados na internet. Avisam ao usurio quando um site especificado foi atualizado ou modificado.
21 3.2 ELIZA
O ELIZA foi o primeiro chatterbot da web. Foi criado em 1966 pelo alemo Joseph Weizenbaum no Instituto de Tecnologia de Massachusetts. (WEIZENBAUM, 1966). Era um chatterbot simples, possua apenas 204 linhas de cdigo fonte, trabalhava com uma base de conhecimento pequena e no tinha uma linguagem e modelos apropriados. O propsito de sua criao era manter um dilogo entre um paciente e um psiclogo. Ao receber uma pergunta sobre um assunto desconhecido, apresentava uma resposta em forma de pergunta. Isto fazia com que a pessoa fornecesse mais detalhes sobre o assunto discutido, e assim, o programa poderia responder de forma inteligente e causar algum tipo de surpresa para as pessoas que estavam conversando, fazendo com que o usurio pensasse que estava sendo entendido. Abaixo, um exemplo de conversa entre um usurio e o ELIZA:
ELIZA: So, how are you doing today? (Ento, como voc se sente hoje?) Usurio: I am tired. (Eu estou cansado) ELIZA: Did you come to me because you are tired? (Voc veio me ver porque est cansado?) Usurio: Yes, I feel alone. (Sim, me sinto s.) ELIZA: Do you often feel alone? (Voc se sente s constantemente?) (ELIZA, 2009)
3.3 CYBELLE
O CYBELLE foi o primeiro chatterbot com base de conhecimento em portugus. Foi criado em 2000 pela empresa francesa Agentland. (PRIMO, 2002). Apresentando uma imagem virtual, CYBELLE construda para ser uma espcie de referncia no mundo dos agentes. Alm de conversar com ela, possvel visualizar ao mesmo tempo, informaes sobre agentes virtuais. CYBELLE tambm est integrada a um portal sobre agentes. A navegao no portal pode ser direcionada durante a prpria conversa com o
22 rob por ela mesma ou pelo usurio. Assim, se a entrada for: O que exatamente voc ?, ela, alm de fornecer a resposta, ainda disponibiliza uma pgina com informaes sobre sua personalidade. Se a entrada uma pergunta sobre ALICE, por exemplo, CYBELLE mostra informaes a respeito e ainda solicita a opinio do usurio sobre o chatterbot. O CYBELLE no oferece aprendizagem, o que pode ser considerado como uma limitao do sistema, pois, muitos usurios j questionaram seus criadores acerca dessa limitao. Ela possui uma base de conhecimento pr-programada e, diante de alguns questionamentos, pode se mostrar repetitiva e imprecisa em suas afirmaes. (PRIMO, 2002). Atualmente, o CYBELLE encontra-se fora do ar.
3.4 EDBOT
O Ed um rob criado para a Petrobras, pela empresa Insite Solues para Internet. resultado de mais de 10 anos de pesquisa e est no ar desde o dia 20 de outubro de 2004. (INSITE, 2009). A figura 1 mostra um exemplo de conversa com o Ed:
Figura 1: Exemplo de conversa com Ed. Fonte: (INSITE, 2009)
Este bot capaz de conversar com um usurio como se fosse um atendente real e falar sobre assuntos ligados ao uso racional de energia, derivados de petrleo, meio ambiente, gs natural, dicas de economia, qualidade do ar, biocombustveis, programas educacionais e fontes alternativas de energia.
23 Atravs do endereo http://www.conpet.gov.br/ed/ possvel conhecer e conversar com o Rob. O CONPET o programa nacional da racionalizao do uso dos derivados do petrleo e do gs natural e fornece o contedo que forma a base de conhecimento do Rob. (INSITE, 2009)
24 4 ALICE
O ALICE (Artificial Linguistic Internet Computer Entity) um chatterbot criado na Lehight University por Richard S. Wallace. O desenvolvimento teve incio em 1995 e foi reescrito em JAVA em 1998. (WALLACE, 2009). O ALICE utiliza linguagem natural e inteligncia artificial e baseado em um experimento especificado por Alan M. Turing, em 1950.
4.1 FUNCIONAMENTO
O ALICE usa um padro XML chamado AIML (Artificial Intelligence Markup Language) para a especificao das regras de heurstica. Foi criado para processar linguagem natural, ou seja, um programa que envolve robs em uma conversa com os humanos. O ALICE implementa o modelo de aprendizagem supervisionado, no qual o papel do botmaster fundamental. O botmaster o agente que monitora os dilogos, identifica as melhorias necessrias e cria novos contedos na forma de arquivos AIML, de tal forma que, as prximas respostas sejam mais apropriadas. (WALLACE, 2002). No existe nenhuma tecnologia sofisticada na concepo do ALICE. Ele no utiliza nenhuma tecnologia do tipo redes neurais, representao do conhecimento, busca em profundidade, algoritmos genticos ou anlise gramatical. (TEIXEIRA, 2005). ALICE o primeiro programa de personalidade, ganhou o prmio Loebner como O computador mais humano no Teste de Turing nos concursos de 2000 e 2001. (WALLACE, 2003). O ALICE considerado o chatterbot mais utilizado e mais popular da atualidade e tem a maior base de conhecimento do mundo. O ALICE uma extenso do ELIZA, mas, o ALICE mais popular por possuir cerca de 40.000 categorias de conhecimento enquanto o ELIZA s possui 200. O ALICE possui sua fonte aberta, ou seja, permite aos usurios incrementarem o programa. (TEIXEIRA, 2005). A maioria dos chatterbots foi criada utilizando o software do ALICE e utilizam a base de conhecimento implementada em AIML, fazendo apenas a traduo, a adio e a alterao de categorias.
25 4.2 CONHECIMENTO
Graphmaster o nome dado ao conjunto de todos os ns que compem o conhecimento do ALICE. Na verdade o Graphmaster uma rvore que representa todo o conhecimento de um chatterbot baseado na tecnologia ALICE. Cada n da rvore armazena uma nica palavra ou os coringas. Coringas so caracteres especiais que substituem partes da frase como o _ para incio de frase e o * para meio e fim de frase. Cada folha armazena a resposta ou os dados existentes entre as tags. O nmero de folhas da rvore equivale ao total de unidades de conhecimentos do ALICE. (TEIXEIRA, 2005). Todo n da rvore que contm o coringa _, ter maior prioridade em uma busca nos ns de um mesmo nvel, em seguida a prioridade ser das palavras e finalmente a menor prioridade ser do coringa *. Todas as unidades de conhecimento que comeam com o coringa devem ser carregadas antes das perguntas que iniciam com palavras, e por ltimo, devem ser carregadas as perguntas que iniciam com o coringa. A busca de uma pergunta no Graphmaster feita palavra por palavra e no pergunta por pergunta, cada palavra armazenada em um n da rvore. Para localizar uma pergunta que inicie com a palavra X, o sistema seguir etapas conforme apresentado abaixo: (TEIXEIRA, 2005). Caso o n contenha o coringa, ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada, o sistema passa para a prxima etapa. Caso o n contenha a palavra X, ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada, o sistema passa para a prxima etapa. Caso o n contenha o coringa *, ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada o sistema retorna ao n pai deste e substitui o valor do n pela palavra X. Se o n raiz contm o coringa * e logo em seguida h uma folha, ento o algoritmo garante que uma resposta ser fornecida. Para localizar uma pergunta que inicie com a palavra X, o sistema seguir outras etapas conforme apresentado abaixo:
26 Caso o n contenha o coringa _,ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada, o sistema passa para a prxima etapa. Caso o n contenha a palavra X, ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada, o sistema passa para a prxima etapa. Caso o n contenha o coringa *, ser feita a busca nos ns filhos deste, procurando palavras subseqentes palavra X. Caso nenhuma palavra seja localizada, o sistema retorna ao n pai deste e substitui o valor do n pela palavra X. Se o n raiz contm o coringa * e logo em seguida temos uma folha, ento, o algoritmo garante que uma resposta ser fornecida. (TEIXEIRA, 2005).
4.3 PONTOS FORTES E PONTOS FRACOS
O ALICE tem como pontos fortes sua grande base de conhecimento e sua grande percepo de inteligncia que muito parecida com a percepo humana. Outro ponto forte a utilizao da linguagem AIML, que permite uma popularizao de idias e flexibilidade de uso para leigos. O ALICE tem como ponto fraco a forma de aprendizado, onde ainda no possvel uma atualizao da base de dados em tempo real. Outro ponto fraco a forma de traduo que, devido s diferenas entre o ingls e o portugus, algumas categorias foram retiradas da base de conhecimento devido falta de traduo. Isso ocorre porque algumas expresses s existem em ingls, e no em portugus, alm de existirem palavras em ingls que no possuem sinnimos em portugus. (NETO, 2004).
4.4 ARQUITETURA
ALICE uma tecnologia de desenvolvimento que se baseia na interpretao de bases de conhecimento escritas na linguagem Artificial Intelligence Markup Language (AIML). (WALLACE, 2005). Experincias com a ALICE indicam que aproximadamente 2.000 palavras atendem 95% das opes escolhidas pelas pessoas como a primeira palavra no incio de uma frase, a partir da segunda, as opes diminuem bastante. (TEIXEIRA, 2005).
27 Com aproximadamente 41.000 unidades de conhecimento possvel estabelecer um bom dilogo. (TEIXEIRA, 2005). A figura 2 apresenta uma viso geral do funcionamento do ALICE. A primeira etapa representa o encaminhamento da pergunta. Em seguida, o sistema realiza uma srie de passos at que a pergunta fique pronta para a busca na base de conhecimento. Na segunda etapa, ser feita a busca da pergunta na base de conhecimento contidas no arquivo AIML. Aps a localizao o sistema apresenta a resposta cadastrada.
Figura 2: Arquitetura da tecnologia ALICE. Fonte: (TEIXEIRA, 2005).
4.5 AIML
AIML (Artificial Intelligence Markup Language) uma linguagem desenvolvida para criar dilogos em uma linguagem natural por meio de softwares, simulando assim, inteligncia humana. (WALLACE, 2009) A linguagem AIML foi criada por Richard Wallace em uma comunidade de software livre entre os anos de 1995 e 2000. Atravs desta linguagem, foi criado o Alicebot. Alguns dos objetivos so: a linguagem deve ser de fcil aprendizagem e deve ser compatvel com XML. (WALLACE, 2009) A linguagem AIML baseada em tags padres e outras tags que podem ser customizveis. (WALLACE, 2009) Exemplos das principais tags: <aiml>: a marca que comea e termina um documento AIML.
28 <category>: a etiqueta que marca uma unidade de conhecimento. <pattern>: usada para conter um padro simples, que corresponde ao que um usurio pode dizer ou digitar. <template>: contm a resposta a uma entrada do usurio. (WALLACE, 2009).
29 5 UAMBOT
Este captulo detalha as etapas do desenvolvimento de um prottipo. So ilustrados os principais requisitos, a especificao, a implementao, mencionando tcnicas e ferramentas utilizadas, bem como a operacionalidade do prottipo.
5.1 REQUISITOS PRINCIPAIS DO PROTTIPO
Primeiramente sero apresentados os requisitos no funcionais. Alguns sero atendidos pelo prottipo e outros apenas pelo UAMBot. Como requisitos no funcionais podem ser apresentados: a) NF01: A interface com o usurio de vital importncia para o sucesso desse sistema. Esse sistema no ser usado diariamente, portanto o tempo gasto pelo usurio para aprender a utilizar o software ser mnimo. A interface ser amigvel, sendo bem receptiva a usurios iniciantes e no cansativa para usurios experientes. Esse requisito de prioridade essencial. b) NF02: O desempenho do sistema uma preocupao Apesar de no ser um requisito essencial apresenta grande parte de responsabilidade no grau de satisfao do usurio. Quanto mais rpido ele for atendido, mais satisfeito ficar. Esse requisito de prioridade importante. c) NF03: O sistema ser compatvel com os mais usados navegadores de internet. importante que o usurio no tenha problemas no acesso ao sistema usando qualquer navegador de internet. Portanto o sistema dever ser implementado respeitando os padres internacionais de programao WEB. Este requisito de prioridade importante. d) NF04: O tempo de resposta do sistema no dever ultrapassar trinta segundos. Este requisito de prioridade importante. e) NF05: A base de dados deve ser protegida para acesso de apenas usurios autorizados. Este requisito de prioridade essencial. f) NF06: O software deve utilizar-se da sesso de autenticao do usurio no site da universidade. Deve estar em um local protegido por senha para que o acesso seja realizado apenas por alunos. Este requisito de prioridade essencial.
30 Sero apresentados os principais requisitos funcionais do software:
a) RF01: O software deve sempre responder ao usurio, mesmo quando no tiver resposta em sua base de conhecimento. Este requisito de prioridade essencial. b) RF02: O software deve armazenar as perguntas que no tenham resposta para que sejam respondidas posteriormente. Este requisito de prioridade importante. c) RF03: O software deve desprezar na anlise da frase as palavras contidas na lista de stop words. Este requisito de prioridade essencial. d) RF04: O software deve adicionar base de conhecimento as perguntas que no tinham respostas e foram respondidas por atendentes. Este requisito de prioridade importante. e) RF05: O software deve sempre questionar o usurio quanto a sua satisfao aps receber uma resposta. Este requisito de prioridade importante. f) RF06: O software deve sempre dar a oportunidade ao usurio de fazer uma nova pergunta caso queira. Este requisito de prioridade essencial. g) RF07: O software deve enviar perguntas e receber respostas de atendentes humanos para que possa responder aos usurios, no caso de perguntas que no tenham respostas na base de conhecimento. Este requisito de prioridade essencial. h) RF08: O software deve apresentar as respostas dos atendentes ao botmaster para que possam ser validadas para compor a base de conhecimento. Este requisito de prioridade essencial. i) RF09: O software deve indexar as perguntas por palavras chaves para que caso sejam formuladas distintamente por alunos possam ser respondidas normalmente. Este requisito de prioridade essencial. j) RF10: O software deve enviar respostas alternativas aos usurios caso no estejam satisfeitos com a primeira resposta enviada. Este requisito de prioridade essencial. (AUTORES, 2009)
31 5.2 ESPECIFICAO DO PROTTIPO
Esta especificao foi desenvolvida utilizando a notao UML e a ferramenta utilizada foi a Microsoft Visio. O sistema ter trs atores. O usurio, que o aluno da Universidade Anhembi Morumbi, o atendente, que ser acionado quando o UAMBot no tiver a resposta para alguma pergunta e por ltimo, o botmaster, que ser o administrador da base de conhecimento do bot. Sero apresentados os diagramas de casos de uso em suas formas resumidas para melhor visualizao. A figura 3 um diagrama que apresenta o usurio e suas possveis interaes com o sistema.
Figura 3: Usurio e possveis interaes com o sistema. Fonte: (AUTORES, 2009).
O usurio poder interagir com o sistema realizando perguntas. Ao receber uma resposta, o usurio ser questionado sobre sua satisfao quando resposta apresentada. Essas respostas sero importantes para a melhoria da qualidade da base de conhecimento do sistema atravs das anlises do botmaster. A figura 4 um diagrama que apresenta o atendente e suas possveis interaes com o sistema.
32
Figura 4: Atendente e possveis interaes com o sistema. Fonte: (AUTORES, 2009)
O atendente a pessoa que auxilia o bot. Sempre que o sistema no encontrar resposta para alguma pergunta feita pelo usurio, guardar essa pergunta em uma tabela de perguntas pendentes. O atendente responder as perguntas armazenadas nessa tabela. A figura 5 um diagrama que apresenta o botmaster e suas possveis interaes com o sistema.
Figura 5: Botmaster e possveis interaes com o sistema. Fonte: (AUTORES, 2009).
O botmaster realizar a validao de todas as perguntas dos usurios respondidas por atendentes. O botmaster o ator que manter a qualidade da base de conhecimento do chatterbot analisando e validando todas as respostas que iro compor a base. Dessa forma, a
33 base de conhecimento do bot sempre ser melhorada. A figura 6 mostra o fluxograma principal de funcionamento do UAMBot. O usurio iniciar o atendimento e receber uma frase de incio que o induza a ser objetivo em sua pergunta. Por exemplo: Bom dia, em que posso ajudar?. O usurio realizar sua pergunta e receber uma resposta do chatterbot. Assim que o usurio realizar sua pergunta, o chatterbot buscar a resposta, como ser detalhado no fluxograma de busca de resposta, e devolver a resposta encontrada. Depois de devolver a resposta o chatterbot questionar o usurio sobre sua satisfao acerca da resposta apresentada. Caso a resposta seja positiva, o chatterbot questionar o usurio novamente, sobre sua possvel necessidade de realizar outra pergunta. Caso a resposta seja negativa o atendimento estar encerrado. Caso o usurio desejar fazer outra pergunta o processo se reiniciar. Caso o usurio no esteja satisfeito com a resposta, o sistema realizar o fluxo de trabalho detalhado no fluxograma de busca de resposta alternativa. A figura 7 apresenta o fluxograma de busca de resposta detalhado. Assim que o sistema receber uma pergunta, far a anlise inicial. Essa anlise consiste em submeter a frase recebida a um filtro determinado pela lista de stopwords. A lista de stopwords proposta para esse prottipo encontra-se anexa ao trabalho como Anexo 2. Depois de extradas da frase as stopwords, restam apenas palavras consideradas palavras-chave. As palavras-chave sero a chave de busca para a resposta na base de conhecimento. A busca ser realizada desrespeitando a ordem em que as palavras-chaves aparecem. Dessa forma, perguntas com formulao distinta, sero reconhecidas da mesma forma. O chatterbot poder encontrar em sua base de conhecimento uma ou mais respostas para a pergunta realizada. Na base de conhecimento as perguntas devero ser armazenadas com um campo na tabela reservado para o nmero de utilizaes positivas. Esse campo ser um campo numrico que ser incrementado sempre que o chatterbot utilizar essa resposta e ela for satisfatria ao usurio. Ou seja, sempre que depois de uma resposta dada, o usurio confirmar que est satisfeito, essa resposta recebe um incremento no campo de utilizaes positivas. O chatterbot retornar a resposta que tiver maior nmero de utilizaes positivas. O chatterbot poder no encontrar uma resposta, nesse caso enviar a pergunta para a tabela de perguntas pendentes respondendo ao usurio, no caso de o atendimento estar sendo feito em horrio comercial, a seguinte frase: Um momento, estou buscando com os atendentes a resposta para a sua pergunta..
34
Figura 6: Fluxograma principal. Fonte: (AUTORES, 2009).
Figura 7: Fluxograma de busca de resposta. Fonte: (AUTORES, 2009).
35 Depois de enviada uma pergunta para a tabela de perguntas pendentes, o sistema esperar trinta segundos e buscar novamente a resposta para a pergunta. Caso encontre, retornar a resposta ao usurio. A pergunta e a resposta sero analisadas pelo botmaster posteriormente. O sistema poder no encontrar a resposta para uma pergunta pendente logo na primeira busca. Portanto realizar outras trs buscas da mesma forma, respeitando um intervalo de trinta segundos. Sendo que, sempre que o sistema realizar nova busca, dar outra reposta ao usurio que est esperando como: Mais um momento por favor. Depois de encontrada uma resposta guardar a pergunta e a resposta para que o botmaster possa analisar posteriormente e enviar a reposta ao usurio. Caso o sistema no encontre a resposta para a pergunta mesmo depois de quatro tentativas, responder ao usurio que entre em contato posteriormente. O sistema poder estar realizando um atendimento em horrio no comercial. Nesse caso, caso no encontre uma resposta na base de conhecimento, retornar uma resposta padro: No achei a resposta para essa pergunta e no momento no h ningum aqui que possa ajudar. Peo que entre em contato em horrio comercial. Deseja fazer outra pergunta?. A figura 8 apresenta o fluxograma de busca de resposta alternativa detalhado.
Figura 8: Fluxograma de busca de resposta alternativa. Fonte: (AUTORES, 2009).
36 O usurio poder receber uma resposta e no ficar satisfeito. Nesse caso o chatterbot buscar uma resposta alternativa para o usurio. O chatterbot, nesse momento, retornar a segunda resposta mais utilizada positivamente. E assim proceder at que se esgotem as respostas. Quando isso acontecer, o chatterbot enviar a pergunta para a tabela de perguntas pendentes. Depois de enviada a pergunta para a tabela de perguntas pendentes, o sistema esperar trinta segundos e buscar novamente a resposta para a pergunta. Caso encontre, retornar a reposta ao usurio. A pergunta e a resposta sero analisadas posteriormente pelo botmaster. O sistema poder no encontrar a resposta para uma pergunta pendente logo na primeira busca. Portanto realizar outras trs buscas da mesma forma, respeitando um intervalo de trinta segundos. Sendo que, sempre que o sistema realizar nova busca, dar outra reposta ao usurio que est esperando como: Mais um momento por favor. Caso o sistema no encontre a resposta para a pergunta mesmo depois de quatro tentativas, responder ao usurio que entre em contato posteriormente como No achei a resposta para essa pergunta e os atendentes esto ocupados. Peo que entre em contato mais tarde. Deseja fazer outra pergunta?. O sistema poder estar realizando um atendimento em horrio no comercial. Nesse caso, caso no encontre uma resposta na base de conhecimento, retornar uma resposta padro: No achei a resposta para essa pergunta e no momento no h ningum aqui que possa ajudar. Peo que entre em contato em horrio comercial. Deseja fazer outra pergunta?. A figura 9 apresenta o fluxo de trabalho do atendente.
Figura 9: Fluxo de trabalho do atendente. Fonte: (AUTORES, 2009).
O atendente, ao se logar no sistema, buscar uma pergunta para ser respondida. O sistema retornar para o atendente a pergunta mais antiga ainda pendente. O atendente ler a pergunta e caso no seja necessrio consultar o histrico responder a pergunta.
37 Se o atendente necessitar, poder consultar o histrico da conversa entre o usurio e o chatterbot. Depois responder a pergunta. Ao terminar de responder uma pergunta o atendente buscar a prxima pergunta pendente para que possa proceder da mesma forma. A figura 10 apresenta o fluxograma do fluxo de trabalho do botmaster.
Figura 10: Fluxo de trabalho do botmaster. Fonte: (AUTORES, 2009)
O botmaster, ao se logar no sistema, buscar por uma prxima pergunta respondida por atendente. O sistema retornar a pergunta mais antiga respondida por um atendente e ainda no validada. O botmaster ler a pergunta e a resposta e validar a pergunta para que entre na base de conhecimento do chatterbot. Esse processo visa dar maior confiabilidade base de conhecimento do chatterbot. Caso seja necessrio, o botmaster poder consultar o histrico de conversa entre o chatterbot e o usurio. Depois de ler o histrico poder validar a pergunta para que integre a base de conhecimento. Depois de validada uma pergunta pelo botmaster, o sistema integrar os dados base de conhecimento e eliminar os dados da tabela de perguntas pendentes. Caso a pergunta seja invalidada pelo botmaster, o sistema eliminar a pergunta e a resposta da tabela de perguntas pendentes e no incluir os dados na base e conhecimento.
5.3 BASE DE CONHECIMENTO
A base de conhecimento do chatterbot dever ser implementada no mesmo banco de dados utilizado pelo site da Anhembi Morumbi. O banco de dados dever ser um banco de dados robusto, com bom controle de acesso concorrente e boa velocidade de resposta. Indica- se o banco ORACLE, o SQL Server ou o Postgree para essa aplicao.
38 No entanto, para a implementao do prottipo, optou-se pelo uso do MYSQL, por ser um banco de dados leve e funcional, bem manejvel e de fcil utilizao. O MYSQL suporta bem os testes do prottipo, com uma base de conhecimento limitada e poucos acessos concorrentes. O chatterbot ter uma base de conhecimento inicial. Para o prottipo a base inicial ser bem reduzida, apenas para testes. Mas, para a proposta do UAMBot, a base de conhecimento inicial ser mais robusta. Ela poder ser retirada da sesso de perguntas mais freqentes do web site da universidade. As informaes propostas para a base de conhecimento inicial encontram-se anexas ao trabalho como Anexo A - Protocolos/Requerimentos/Solicitaes. A notao ub_ foi escolhida para nomear as tabelas do banco de dados do chatterbot. Uma aluso ao u de UAM e ao b de bot. A figura 8 ilustra o diagrama de classes da base de conhecimento A figura 11 apresenta as entidades que faro parte de toda a lgica de busca de respostas.
Figura 11: Entidades da base de conhecimento. Fonte: (AUTORES, 2009)
Para a tabela de perguntas existem os campos ID_PERGUNTA e PERGUNTA. O campo ID_PERGUNTA ser um campo numrico, de quatro posies, que ser a chave da tabela de perguntas. Sempre que uma pergunta for inserida, ter como chave o primeiro nmero aps o maior nmero encontrado na tabela no campo ID_PERGUNTA. O campo PERGUNTA o campo do tipo texto, de duzentas posies, que guardar as palavras chaves correspondentes a uma pergunta. Para a tabela de respostas, existem os campos ID_PERGUNTA, ID_RESPOSTA, RESPOSTA e UTILIZACAO_POSITIVA.
39 O campo ID_PERGUNTA servir para a ligao da tabela de respostas com a tabela de perguntas. Esse campo ser uma chave estrangeira para o campo de mesmo nome na tabela de perguntas. O campo ID_RESPOSTA, assim como o campo ID_PERGUNTA, ser um campo numrico, de quatro posies, que servir como chave da tabela de respostas. Essas tabelas permitem que uma pergunta tenha mais de uma resposta. O campo RESPOSTA um campo texto de quatrocentas posies, que guardar a resposta. Por fim, o campo UTILIZAO_POSITIVA um campo numrico, de seis posies, que conter um nmero que identifique quantas vezes a resposta foi usada com sucesso. Ou seja, sempre que uma pergunta for aprovada pelo usurio, no questionamento realizado pelo chatterbot logo aps responder ao usurio, o campo UTILIZACAO_POSITIVA ser incrementado. A figura 12 mostra o diagrama que apresenta outra parte da implementao do chatterbot. A parte da implementao que envolve os atores atendente e botmaster.
Figura 12: Entidades da evoluo da base de conhecimento. Fonte: (AUTORES, 2009)
A tabela UB_PERGUNTA_PENDENTE a tabela que armazenar todas as perguntas sem resposta na base de conhecimento. Nessa tabela temos os campos ID_PERGUNTA_PEN DENTE, PERGUNTA_INTEIRA, RESPOSTA, DATA_ATUAL, HORA_ATUAL, HISTOR ICO, DATA_ATENDIMENTO, HORA_ATENDIMENTO e ID_ATENDENTE.
40 O campo ID_PERGUNTA_PENDENTE um campo numrico, de quatro posies, que armazenar a chave da tabela. Cada nova pergunta pendente includa ganhar como chave o nmero aps o maior nmero encontrado na tabela no campo ID_PERGUNTA_PENDENTE. O campo PERGUNTA_INTEIRA um campo texto, de quatrocentas posies, que guardar a pergunta feita pelo aluno. A pergunta ser armazenada inteira nesse campo, sem tratamento algum. O tratamento com o processo de reconhecimento de stopwords ser realizado aps o processo de resposta do atendente e de validao do botmaster. O motivo que, para serem bem entendidas pelo atendente e pelo botmaster, as perguntas sero armazenadas como foram feitas. O campo RESPOSTA um campo texto de quatrocentas posies que armazenar a resposta dada pelo atendente. Caso o atendente ainda no tenha respondido a pergunta, esse campo estar vazio. O campo DATA_ATUAL ser um campo do tipo data que armazenar a data atual no momento da incluso da pergunta na tabela. Esse campo necessrio j que a resposta s perguntas ser feita na ordem em que elas foram feitas. O campo HORA_ATUAL ser um campo do tipo texto de oito posies que armazenar a hora exata em que a pergunta foi includa na tabela. Esse campo, assim como o campo DATA_ATUAL necessrio devido necessidade de classificao das perguntas pelo momento em que foram feitas, para que a reposta e a validao ocorram em um prazo aceitvel ao usurio. O campo HISTORICO ser um campo texto de duas mil posies. Armazenar todo o histrico de conversa do usurio com o chatterbot at o momento em que uma pergunta foi feita e no tem resposta. Esse campo importante para que atendente e botmaster possam entender o contexto da pergunta antes de respectivamente responder as perguntas ou validar as respostas. O campo DATA_ATENDIMENTO ser um campo do tipo data que armazenar a data em que a resposta foi dada pelo atendente. O campo HORA_ATENDIMENTO ser um campo texto de oito posies que armazenar a hora exata em que a pergunta foi respondida por um atendente. Esse campo, juntamente com o campo DATA_ATENDIMENTO sero importantes para futuros controles quanto ao tempo de atendimento aos usurios.
41 O campo ID_ATENDENTE ser o campo que armazenar uma informao que identifique o atendente. importante saber qual atendente realizou o atendimento de qual pergunta. Poder ser o nmero de matrcula ou alguma outra informao que identifique o atendente. Depender da modelagem de banco de dados do web site da Anhembi Morumbi.
5.4 IMPLEMENTAO
A implementao das interfaces do chatterbot se dar em JSP. A implementao da lgica do chatterbot se dar em JAVA utilizando conceitos de MVC (Model View Control) STRUTS. Ser utilizado o conceito de multithread para que uma grande quantidade de alunos possa ser atendida simultaneamente. A escolha da linguagem JSP fundamentada em suas vantagens quando a outras linguagens para o mesmo fim. O primeiro ponto que a parte dinmica do JSP, ou seja, a programao da lgica do software realizada em JAVA. Por esse motivo, o JSP torna-se to poderoso quanto o JAVA. Outro ponto que o JSP tem uma separao natural entre a camada de apresentao e a camada de aplicao que ainda ser reforada pelo conceito de MVC utilizado no desenvolvimento do chatterbot. A seguir, a lgica de implementao do fluxograma principal. Depois de recebida uma pergunta, o primeiro passo ser converter a pergunta para palavras maisculas. O segundo passo ser analisar a pergunta e extrair as palavras chaves. Foi escolhida para a proposta uma lgica com base em stopwords. A frase ser analisada e cada palavra que compor a lista de stopwords ser excluda. Essas palavras no tm importncia para a determinao do sentido da pergunta. A frase ser divida em cada espao, sendo que cada palavra ficar em uma posio de um vetor. Feito isso, cada palavra ser consultada individualmente na lista de stopwords. Caso esteja na lista ser excluda. As palavras restantes sero consideradas palavras chaves. Segue trecho de cdigo em Java do prottipo exemplificando:
Podem ser vistos alguns pontos de tratamento para pontuao da frase. J com as palavras chaves, o sistema buscar no banco de dados alguma pergunta que tenha essas palavras chaves em sua composio. O sistema buscar na tabela UB_PERGUNTA quais registros tem no campo PERGUNTA as palavras chaves da frase
42 formulada pelo usurio. Exemplo: Uma pergunta como Como fao para fazer um pagamento atrasado?, as palavras chaves comparadas sero COMO FAO FAZER PAGAMENTO ATRASADO. O sistema buscar na tabela, perguntas que foram indexadas anteriormente com essas palavras. A ordem em que as palavras chaves aparecem no ser respeitada, j que uma pergunta pode ser feita de formas cannicas. O trecho de cdigo seguinte ilustra o ponto que o prottipo busca as palavras chaves retirando as stopwords e busca no base de conhecimento a resposta:
for (int i = 0; i < palavraChaveString.length; i++) {
if (stopWordsDao.test(palavraChaveString[i].toUpperCase()) == true) {
Com o retorno do banco de dados, o sistema usar o identificador da pergunta, o campo ID_PERGUNTA, para buscar na tabela UB_RESPOSTA as respostas correspondentes a essa pergunta. Com o retorno, essas respostas devero ser ordenadas pelo contedo do campo UTILIZACAO_POSITIVA que marcar quantas vezes a resposta foi utilizada e aceita pelo usurio. Depois de ordenadas, as respostas devero ser retornadas em ordem decrescente. O prximo trecho de cdigo do prottipo ilustra esse ponto:
pergunta = (Pergunta) respostas.get(0);
Quando a resposta for entregue ao aluno, e ele responder que est satisfeito com a resposta o sistema atualizar o campo UTILIZACAO_POSITIVA no banco de dados, incrementando o campo. O trecho de cdigo a seguir ilustra esse ponto:
historico = historico + "\nUAMBot: " + "Voc est satisfeito com essa resposta?";
43 Ser apresentada a lgica para a alimentao da base de conhecimento. Quando o aluno no est satisfeito com uma resposta, o chatterbot retornar respostas alternativas, que estaro armazenadas no vetor de retorno da busca no banco de dados. O vetor importante para que haja um controle das respostas j dadas e para que possa atualizar a base de conhecimento incrementando o campo UTILIZACAO_POSITIVA. Caso as respostas se esgotem, e o usurio no esteja satisfeito, ou at mesmo se logo na primeira busca no seja encontrada nenhuma resposta, a seguinte lgica ser implementada: O chatterbot enviar a pergunta para a tabela de perguntas pendentes. O sistema alimentar a tabela UB_PERGUNTA_PENDENTE com os campos ID_PERGUNTA_PENDENTE, PERGUNTA_INTEIRA, DATA_ATUAL, HORA_ATUAL e HISTORICO. Para o campo ID_PERGUNTA_PENDENTE o sistema realizar uma busca na tabela pelo maior nmero que esteja nesse campo. O ID_PERGUNTA_PENDENTE da pergunta em questo ser esse nmero acrescido de um. O campo PERGUNTA_INTEIRA receber o valor da varivel de tela que guarda a pergunta feita pelo usurio. Nesse momento, a pergunta no ser tratada para que possa ser apresentada ao atendente conforme foi feita. O campo DATA_ATUAL receber a data atual no momento que esse procedimento est sendo feito. O campo HORA_ATUAL receber a hora atual em que esse procedimento est sendo feito. O campo HISTORICO receber a varivel de tela que guarda o histrico da conversa entre o chatterbot e o aluno. Os outros campos da tabela devero ser preenchidos com espao, j que esses campos sero preenchidos na hora do atendimento. Quando o atendente se loga no sistema, solicita por meio de um clique em um boto, que apenas se tornar ativo quando existirem perguntas pendentes, uma nova pergunta para responder. Quando o atendente clica no boto, o sistema buscar na tabela UB_PERGUNTA_PENDENTE a pergunta que esteja com o campo RESPOSTA igual a espao e que tenha a menor data e hora dentre as outras. Essa pergunta ser carregada na tela do atendente para ser lida e respondida. Caso o atendente necessite, poder clicar no boto ver histrico que carregar o contedo do campo HISTORICO na tela para que o atendente possa entender o contexto da pergunta. O histrico carregado apenas se o atendente precisar, isso ocorrer para que a tela de trabalho do atendente seja simples. O atendente responder a pergunta e clicar no boto que envia a resposta ao banco de dados. A tabela UB_PERGUNTA_PENDENTE ser carregada com os campos faltantes RESPOSTA, DATA_ATENDIMENTO, HORA_ATENDIMENTO e ID_ATENDENTE. No campo resposta ser carregado o contedo do campo de tela do atendente reservado resposta. No campo DATA_ATENDIMENTO ser carregada a data atual em que aconteceu o
44 atendimento. No campo HORA_ATUAL ser carregada a hora exata do momento do atendimento feito pelo atendente. No campo ID_ATENDENTE ser carregada uma informao do atendente que o identifique como nico, que estar na varivel de sesso do login do atendente. O chatterbot ter guardado o identificador da pergunta pendente inserida e far uma busca por esse campo de trinta em trinta segundos por quatro vezes verificando se o campo resposta est preenchido. Quando encontrar retornar ao aluno o contedo do campo RESPOSTA que estar preenchido com a resposta dada pelo atendente. Depois de retornar ao aluno, o chatterbot o questionar se est satisfeito com a resposta. Caso o aluno esteja satisfeito o sistema perguntar se ele deseja fazer outra pergunta. Caso ele no esteja satisfeito, o chatterbot pedir que o aluno repita a pergunta e enviar novamente para a tabela de perguntas pendentes. Quando o botmaster se loga no sistema, solicita por meio de um clique em um boto, que apenas se tornar ativo quando existirem perguntas respondidas por atendentes, uma prxima pergunta para validar. Quando o botmaster clica no boto, o sistema buscar na tabela UB_PERGUNTA_PENDENTE a pergunta que no esteja com o campo RESPOSTA igual a espao e que tenha a menor data e hora dentre as outras. Essa pergunta ser carregada na tela do botmaster para ser lida e validada. Caso o botmaster necessite poder clicar no boto ver histrico que carregar o contedo do campo HISTORICO na tela para que o botmaster possa entender o contexto da pergunta. O histrico carregado apenas se o botmaster precisar, isso ocorrer para que a tela de trabalho do botmaster seja simples. O botmaster ento validar ou invalidar uma pergunta. A resposta ser carregada na tela do botmaster em um campo que permita alterao. O botmaster poder alterar o que pense ser necessrio e validar a resposta. Caso isso seja feito, o sistema tratar a pergunta do usurio para que possa integrar a base de conhecimento. Converter a pergunta para palavras maisculas e depois analisar a pergunta e extrair as palavras chaves. A frase ser analisada e cada palavra que compor a lista de stopwords ser excluda. A frase formada com as palavras que restarem, as palavras chaves ou ndices, ser o contedo do campo PERGUNTA da tabela UB_PERGUNTA. O sistema alimentar as tabelas UB_PERGUNTA e UB_RESPOSTA. Na tabela UB_PERGUNTA, primeiramente o sistema buscar se j existe uma indexao igual a que vai ser gerada. Se no houver, o sistema buscar o maior contedo no campo ID_PERGUNTA. Esse nmero acrescido de um ser o ID_PERGUNTA inserido nesse processo. O campo PERGUNTA ser o resultado da varivel do tratamento anterior.
45 Na tabela UB_RESPOSTA o sistema carregar o campo ID_PERGUNTA com o mesmo contedo inserido no campo ID_PERGUNTA da tabela UB_PERGUNTA. O campo ID_RESPOSTA ser carregado com o valor 1 j que a primeira resposta para esse identificador de pergunta. O campo RESPOSTA ser carregado com o contedo da varivel de tela do botmaster reservada para a resposta, que poder ter sido alterada por ele. O campo UTILIZACAO_POSITIVA ser alimentado com o valor 1. Caso o sistema encontre na tabela UB_PERGUNTA outra pergunta com a mesma indexao buscar o ID_PERGUNTA dessa pergunta e atualizar apenas a tabela UB_REPOSTA. O contedo do campo ID_REPOSTA ser o mesmo do campo ID_RESPOSTA da tabela UB_PERGUNTA encontrado. Buscar o maior nmero no campo ID_REPOSTA para esse ID_PERGUNTA, acrescer um e utilizar no campo ID_RESPOSTA em questo. O campo RESPOSTA ser carregado com o contedo da varivel de tela do botmaster reservada para a resposta, que poder ter sido alterada por ele. O campo UTILIZACAO_POSITIVA ser alimentado com o valor 1. Exemplo de conversa com o prottipo do UAMBot numa situao onde a base de conhecimento contm a resposta.
UAMBot: Bom dia, em que posso ajudar? Usurio: Bom dia, como fao para retirar a carteirinha da universidade? UAMBot: Os alunos calouros (ingressantes no semestre vigente) no precisam solicitar a carteirinha da Universidade. Elas so entregues todo incio de semestre pelo Banco Real. O local, data e horrio de entrega so fixados pelo banco e divulgados em cartazes espalhados pelos campi. UAMBot: Voc est satisfeito com essa resposta? Usurio: Sim, obrigado. UAMBot: A Anhembi Morumbi agradece seu contato.
Exemplo de conversa com o prottipo do UAMBot numa situao onde a base de conhecimento no contm a resposta mas tem atendentes online.
UAMBot: Bom dia, em que posso ajudar? Usurio: Bom dia, como fao para retirar a carteirinha da universidade? UAMBot: Um momento, estou buscando com os atendentes a resposta para a sua pergunta.
46 UAMBot: Mais um momento por favor. UAMBot: Os alunos calouros (ingressantes no semestre vigente) no precisam solicitar a carteirinha da Universidade. Elas so entregues todo incio de semestre pelo Banco Real. O local, data e horrio de entrega so fixados pelo banco e divulgados em cartazes espalhados pelos campi. UAMBot: Voc est satisfeito com essa resposta? Usurio: Sim, obrigado. UAMBot: A Anhembi Morumbi agradece seu contato.
Exemplo de conversa com o prottipo do UAMBot numa situao onde a base de conhecimento no contm a resposta e no h atendentes online.
UAMBot: Bom dia, em que posso ajudar? Usurio: Bom dia, como fao para retirar a carteirinha da universidade? UAMBot: No achei a resposta para essa pergunta e no momento no h ningum aqui que possa te ajudar. Peo que entre em contato em horrio comercial. Deseja fazer outra pergunta? Usurio: No, obrigado. UAMBot: A Anhembi Morumbi agradece seu contato. O cdigo desenvolvido para testes no prottipo em java, tanto para as partes lgicas quanto para as interfaces e partes de acesso a banco de dados esto anexas a esse trabalho como Apndice B.
47 6 CONCLUSO
Espera-se que este trabalho tenha demonstrado os meios existentes para a implementao de um chatterbot especialista para a Universidade Anhembi Morumbi. A partir de um levantamento das dvidas mais freqentes dos alunos que acessam o site da Universidade Anhembi Morumbi, uma base de conhecimento inicial foi criada. O usurio sabe que est dialogando com um rob, mas devido ao conhecimento da base e aos algoritmos de minerao de texto usados, a qualidade no padro de conversao elevada, inibindo qualquer desconforto por parte do aluno de estar conversando com um rob. Dentre as dificuldades encontradas, uma delas a forma como o rob pensa e coleta informaes. Outra dificuldade encontrada a utilizao de uma linguagem natural na gramtica nativa. A maioria das bases de dados existentes trabalha com o idioma ingls. Espera-se que o UAMBot obtenha sucesso na rea de aplicao que o site da Universidade Anhembi Morumbi e em outras reas de aplicao principalmente na rea comercial. Espera-se tambm que o chatterbot seja estudado e melhorado para atender as necessidades dos usurios mais exigentes. Como proposta para trabalhos futuros essa monografia prope a criao de um chatterbot especialista para atendimento a pessoas que queriam estudar na universidade. Um chatterbot que tenha como base de conhecimento os procedimentos para entrar na universidade, os cursos oferecidos, a grade curricular de cada curso e informaes gerais acerca da universidade. Outra proposta para trabalho futuro de criar bases de conhecimento para o UAMBot em outros idiomas, j que a universidade uma universidade internacional e recebe todos os anos muitos alunos de outros pases. Isso ser importante para que os alunos sejam atendidos em suas lnguas nativas. Uma base de conhecimento em ingls e outra base de conhecimento em espanhol seriam suficientes.
48 REFERNCIAS BIBLIOGRAFICAS
ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Minerao de Textos. RESI- Revista Elernica de Sistemas de Informao, N2, 2006. Disponvel em: <http://revistas.facecla.com.br/index.php/reinfo/article/viewFile/171/66>. Acesso em: 01 Out. 2009.
CHAVES, Marcirio Silveira. Um Estudo e Apreciao sobre Algoritmos de Stemming para a Lngua Portuguesa. Porto Alegre RS. Agosto 2003. Disponvel em: < http://xldb.di.fc.ul.pt/~mchaves/public/stemming.pdf>. Acesso em: 01 Out. 2009
COLLISON, Robert Lewis. ndices e indexao: guia para indexao de livros e colees de livros. So Paulo: Polgono, 1972. 225p.
BARRETO, J.M. Inteligncia Artificial No limiar do Sculo XXI Abordagem Hbrida Simblica, Conexionista e Evolucionria. 3. ed. Florianpolis: Editora rrr, 2001.
CANUTO, Anne Magly de Paula. Sistemas baseados em conhecimento e Sistemas especialistas, Universidade Federal do Rio Grande do Norte, Natal, 2008. Disponvel em: <www.dimap.ufrn.br/~anne/Aula%20SE.ppt>. Acesso em: 7 de Out. 2009
_______, __________. 2. Sistemas baseados em conhecimento e Sistemas especialistas, Universidade Federal do Rio Grande do Norte, Natal, 2008. Disponvel em: <www.dimap.ufrn.br/~anne/Aula%20SE.ppt>. Acesso em: 7 de Out. 2009.
DEPARTAMENTO DE INFORMTICA DA UNIVERSIDADE ESTADUAL DE MARING. Sistemas Especialistas. 2004. Disponvel em: <http://www.din.uem.br/ia/especialistas/basese.html>.Acessado em 01 Novembro 2009.
DE LUCCA, J. L.; NUNES, M.G.V. Lematizao versus Stemming. Srie de Relatrios Tcnicos do NILC ICM-USP, 2002. 16 p.
ELIZA. Disponvel em: <http://www-ai.ijs.si/eliza-cgi-bin/eliza_script>. Acesso em: 22 de Mar. 2009.
49 FAVERO, Alexandre Jos. Tutorial sobre sistemas especialistas, Universidade Estadual de Maring, Maring PR, Brasil. Disponvel em: <http://www.din.uem.br/ia/especialistas/introdu.html> . Acesso em: 7 de Out. 2009.
_______, __________. 2. Tutorial sobre sistemas especialistas, Universidade Estadual de Maring, Maring PR, Brasil. Disponvel em: <http://www.din.uem.br/ia/especialistas/basese.html>. Acesso em: 7 de Out. 2009.
_______, __________. 3. Sistemas Especialistas. Universidade Estadual de Maring, 2009. Disponvel em: <http://www.din.uem.br/ia/especialistas/>. Acesso em 22 mar. 2008.
FEIGENBAUM, Edward A; Barr, Avron. The Handbook of Intelligence - Vol I: 1981
GALVO, A.; NEVES, A.; BARROS, F. Persona-AIML: Uma Arquitetura para Desenvolver Chatterbots com Personalidade. XXIII Congresso da Sociedade Brasileira de Computao CSBC 2003, Campinas, SP, 2003.
INSITE. Disponvel em: <http://www.insite.com.br/>. Acesso: em: 7 de Out. 2009.
_______. 2. Disponvel em: <http://www.inbot.com.br/novo/cases.php>. Acesso: em 7 de Out. 2009.
JENNINGS N. R; WOOLDRIDGE, M. Applications of Intelligent Agents, Queen Mary & Westfield College University of London. - 1996
LACHI, R. L. Chapa: Um Agente de Interface para Ferramentas de Bate-papo em Ambientes de Ensino a Distncia na Web. Campinas, SP, 2003.
LAUREANO, E. A. G. C. ConsultBot - Um Chatterbot Consultor para Ambientes Virtuais de Estudo na Internet. Recife, PE, 1999.
LEVINE, R. I.; DRANG, D. E.; EDELSON, B. Inteligncia Artificial e Sistemas Especialistas. So Paulo: Mcgraw-hill, 1988. LOEBNER, Hugh. Reflections on the Loebner Competition. DARTMOUTH 2000.
50 NEVES, A. M. M. iAIML: Um Mecanismo para o Tratamento de Inteno em Chatterbots. 2005. Tese (Doutorado) - Centro de Informtica, Universidade Federal de Pernambuco, 2005. Disponvel em: <http://www.sbc.org.br/bibliotecadigital/download.php?paper=355>. Acesso em: 29 maio 2009.
RICH, Elaine. Inteligncia Artificial. Editora McGRAW HILL, 1988.
STERNBERG, Robert. As capacidades Intelectuais Humanas: Uma abordagem de Processamento da Informao. Porto Alegre: Artes Mdicas, 1992.
TEIXEIRA, S.; MENEZES, C. S. CHATTERBOT: uma ferramenta para motivar estudantes de cursos a distncia. Revista Aprender Virtual, Marlia, SP, 2003. Disponvel em: <http://www.multicast.com.br/sergio/amcorabot-revista-aprender.pdf>. Acesso em: 29 maio 2009.
_______, __________. 2. Facilitando o uso de Ambientes Virtuais atravs de Agentes de Conversao. XIV Simpsio Brasileiro de Informtica na Educao - SBIE - 2003, Rio de Janeiro, RJ, Brasil, 2003. Disponvel em: <http://www.nce.ufrj.br/sbie2003/publicacoes/paper48.pdf>. Acesso em: 29 maio 2009.
TEIXEIRA, S.; RAMIRO, T. B.; OLIVEIRA, E.; MENEZES, C. S. Chatterbots em ambientes de aprendizagem uma proposta para a construo de bases de conhecimento. XXV Congresso da Sociedade Brasileira de Computao CSBC 2005, So Leopoldo, RS, Brasil, 2005. Disponvel em: <http://www.multicast.com.br/sergio/tuxbot-artigo- sbc2005.pdf>. Acesso em: 29 maio 2009.
TEIXEIRA, Srgio. Chatterbots Uma Proposta Para A Construo de Bases de Conhecimento, Vitria, 2005.
51 WALLACE, R S. ALICE Silver Edition. Disponvel em: <http://www.alicebot.org>. Acesso em: 29 maio 2009.
_______, __________. 2. Dont read me - A.L.I.C.E. and AIML documentation. Disponvel em: <http://www.alicebot.org/articles/wallace/dont.html>. Acesso em: 29 maio 2009.
_______, __________. 3. The Elements of AIML Style. Disponvel em: <http://www.alicebot.org>. Acesso em: 29 maio 2009.
_______, __________. 4. Be your own botmaster . Disponvel em: <http://www.alicebot.org>. Acesso em: 29 maio 2009.
_______, __________. 5. AIML Overview. 2009. Disponvel em: <http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.html>. Acesso em 01 Out. de 2009.
_______, __________. 6. The Anatomy of A.L.I.C.E. Publicado em: 24 Outubro 2002. Disponvel em: <http://www.alicebot.org/anatomy.html>. Acesso em 20 Out. 2009.
WEIZENBAUM, J. Eliza. A Computer Program For the Study of Natural Language Communication Between Man and Machine. Communications of the ACM Volume 9, Number 1, 1966.
52 APNDICE A - PESQUISA DE SATISFAO
Pesquisa realizada com vinte alunos do curso de sistemas de informao com nfase em banco de dados no perodo de primeiro de dezembro de dois mil e nove a sete de dezembro de dois mil e nove. Os alunos foram questionados quanto a sua satisfao em relao ao atendimento prestado pela universidade como: plenamente satisfeitos, parcialmente satisfeitos ou nada satisfeitos.
Cdigo desenvolvido para testes do prottipo da proposta. Ser apresentado por arquivos, primeiramente os arquivos de interface e posteriormente os arquivos java.
pergunta.setResposta("No achei a resposta para essa pergunta e no momento no h ningum aqui que possa te ajudar. Peo que entre em contato em horrio comercial. Deseja fazer outra pergunta?");
historico = historico + "\nUAMBot: " + "A Anhembi Morumbi agradece seu contato."; session.removeAttribute("questionamento");
session.setAttribute("historico", historico);
}
} } return mapping.findForward("resposta");
} }
Dao.Dao.java
/* * Dao.java * * Created on 15 de Abril de 2008, 21:37 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */
62
package Dao;
import java.util.ArrayList;
/** * * @author aluno506-02 */ public interface Dao {
public boolean create(Object o);
public boolean delete(Object o);
public boolean update(Object o);
public ArrayList read(String perguntaFeita[]);
}
Dao.DataSource.java
/* * DataSource.java * * Created on 15 de Abril de 2008, 21:39 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */
package Dao;
63 import java.sql.*;
/** * * @author aluno506-02 */ public class DataSource {
private Connection conn = null;
private Driver driver = null;
private String url = "";
private String username = "";
private String password = "";
public DataSource() {
try {
this.driver = new com.mysql.jdbc.Driver();
} catch (SQLException ex) {
ex.printStackTrace();
}
this.url = "jdbc:mysql://localhost:3306/UAMBOT";
this.username = "root";
64 this.password = "";
}
public void connect() {
try {
DriverManager.registerDriver( this.driver );
} catch( Exception e ) {
System.out.println("Falha ao carregar o driver!!!");
/** * * @author Rodrigo */ public class PerguntaDao implements Dao {
private Connection conn; private static final String SQL_READ = "SELECT * FROM ub_pergunta WHERE pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? and pergunta like ? order by utilizacao desc";
public PerguntaDao() { DataSource ds; ds = new DataSource(); ds.connect(); this.conn = ds.getConnection(); }
public boolean create(Object o) { throw new UnsupportedOperationException("Not supported yet.");
67 }
public boolean delete(Object o) { throw new UnsupportedOperationException("Not supported yet."); }
public boolean update(Object o) { throw new UnsupportedOperationException("Not supported yet."); }
/** * @return the id_pergunta_pendente */ public int getId_pergunta_pendente() { return id_pergunta_pendente; }
/** * @param id_pergunta_pendente the id_pergunta_pendente to set */ public void setId_pergunta_pendente(int id_pergunta_pendente) { this.id_pergunta_pendente = id_pergunta_pendente; }
/** * @return the pergunta_inteira */ public String getPergunta_inteira() { return pergunta_inteira; }
/** * @param pergunta_inteira the pergunta_inteira to set */ public void setPergunta_inteira(String pergunta_inteira) { this.pergunta_inteira = pergunta_inteira; }
/** * @return the resposta
80 */ public String getResposta() { return resposta; }
/** * @param resposta the resposta to set */ public void setResposta(String resposta) { this.resposta = resposta; }
/** * @return the data_atual */ public String getData_atual() { return data_atual; }
/** * @param data_atual the data_atual to set */ public void setData_atual(String data_atual) { this.data_atual = data_atual; }
/** * @return the hora_atual */ public String getHora_atual() { return hora_atual; }
/**
81 * @param hora_atual the hora_atual to set */ public void setHora_atual(String hora_atual) { this.hora_atual = hora_atual; }
/** * @return the historico */ public String getHistorico() { return historico; }
/** * @param historico the historico to set */ public void setHistorico(String historico) { this.historico = historico; }
/** * @return the data_atendimento */ public String getData_atendimento() { return data_atendimento; }
/** * @param data_atendimento the data_atendimento to set */ public void setData_atendimento(String data_atendimento) { this.data_atendimento = data_atendimento; }
82 /** * @return the hora_atendimento */ public String getHora_atendimento() { return hora_atendimento; }
/** * @param hora_atendimento the hora_atendimento to set */ public void setHora_atendimento(String hora_atendimento) { this.hora_atendimento = hora_atendimento; }
/** * @return the id_atendente */ public String getId_atendente() { return id_atendente; }
/** * @param id_atendente the id_atendente to set */ public void setId_atendente(String id_atendente) { this.id_atendente = id_atendente; } }
83 ANEXO A - PROTOCOLOS / REQUERIMENTOS / SOLICITAES
Como e onde fazer solicitaes Universidade? Solicitaes referentes vida acadmica, em alguns casos, devem ser feitas presencialmente na Central de Atendimento ao Aluno; em outros, possvel utilizar a Central de Servios On- Line na pgina de Servios para Alunos, no portal. O aluno dever preencher o requerimento, pagar a taxa (quando houver) e retornar dentro do prazo estipulado.
QUAIS OS PRAZOS DE EXPEDIO DOS DOCUMENTOS?
Cada requerimento tem seu prazo para expedio. Veja tabela. DOCUMENTOS PRAZO DE EXPEDIO Atestado de Matrcula 3 dias teis Atestados com Especificao 5 dias teis Histrico Escolar 15 dias teis Certificado de Concluso do Curso 15 dias teis Programas por Perodo Letivo 15 dias teis Diploma 6 meses Pontuao do Vestibular 1 dia til Critrio de Avaliao 1 dia til
Como fico sabendo se meu requerimento ficou pronto? No portal da Universidade na internet, voc deve acessar a pgina de Servios para Alunos e em seguida o link Andamento de Requerimentos. A Universidade no entra em contato com o aluno para avisar que a solicitao est pronta.
SENHA WEB
Como fao para obter senha da web? A sua senha e login esto impressos na via de matrcula (rodap esquerdo da folha), que entregue no ato de sua matrcula. E quem perdeu a via de matrcula ou esqueceu a senha, como deve proceder? Esses alunos devem acessar o portal da Universidade na Internet, pgina de Servios para Alunos, link Senha de acesso Unidade Web. O aluno deve digitar seu nmero de matrcula e
84 sua senha ser enviada automaticamente para o e-mail que est cadastrado em seus dados pessoais. Caso no saiba seu nmero de matrcula, comparea a uma das Centrais de Atendimento ao Aluno.
ATUALIZAO CADASTRAL
Como fao para informar sobre mudanas nos dados de meu cadastro? Sempre que houver mudana em seus dados pessoais, voc deve preencher a solicitao de alterao na Unidade Web. Acesse o portal da Universidade e, na pgina de Servios para Alunos, clique em Alterao Cadastral.
CRITRIO DE APROVAO
Quais so os critrios de aprovao para os alunos? Para obter aprovao, o aluno precisa obter mdia igual ou superior a seis (6,0) e ter 75% de freqncia no semestre.
Qual a quantidade mxima de faltas que eu posso ter em um semestre? Depende da carga horria da disciplina. Veja tabela abaixo:
Informaes sobre Carga Horria das Disciplinas de Graduao
Carga Horria da Disciplina (h/a) Quantidade de Horas Semanais (h) Mximo de Faltas no Semestre 17 1 5 34 2 10 40 2 10 51 3 13 68 4 18 80 4 20
85 85 5 22 102 6 26 136 8 34 204 12 51
NOTAS E FALTAS
Como consulto minhas notas e faltas? Para verificar notas e faltas, basta acessar o portal e, na pgina de Servios para Alunos, clicar em Notas, Faltas e Revises usando sua senha pessoal. Caso no concorde com as informaes lanadas, voc pode solicitar um requerimento de reviso de notas ou de faltas pelo prprio site.
RENOVAO DE MATRCULA
Como eu fao para efetuar a minha renovao de matrcula? necessrio estar sem pendncias financeiras e nem de documentos. Voc deve efetuar o pagamento do boleto de janeiro ou de julho at o prazo estipulado, para que sua renovao de matrcula seja automtica. No final de cada semestre, a Universidade envia cartas aos alunos com esses procedimentos.
E se eu estiver em dbito, o que fao? Se estiver em dbito com a Instituio, seja de documentos ou pagamentos, voc deve regularizar a sua situao at a data da renovao de matrculas, apresentando o documento faltante ou o boleto de janeiro ou de julho devidamente pago na data estipulada. E se eu no renovar a matrcula, o que acontece? A no renovao da matrcula nas datas estipuladas implica em abandono de curso e desvinculao do aluno da Universidade.
DEPENDNCIA / ADAPTAO
O que Dependncia?
86 Dependncia a disciplina cursada pelo aluno que no atingiu mdia igual ou superior a seis (6,0) e/ou freqncia mnima de 75% para aprovao. O que Adaptao? Adaptao a disciplina que o aluno necessita cursar para se adaptar ao currculo, seja por transferncia interna, externa, reingresso ou reabertura de matrcula.
Como fao para cumprir minha Dependncia/Adaptao? Para cumprir a Dependncia/Adaptao, voc deve efetuar matrcula pelo site na referida disciplina. Estando sujeito ao regime de Dependncia/Adaptao, o aluno pagar, alm da mensalidade, uma taxa suplementar por disciplina (de acordo com a carga horria), salvo se esta estiver inclusa nas lacunas de disciplinas dispensadas. A Dependncia/Adaptao ser cursada no horrio oferecido pela Universidade.
Quais so os tipos de Dependncia/Adaptao que posso fazer? Normal: cursada em horrios estabelecidos pelos cursos; Especial: cursada em horrio alternativo, com nmero mnimo de quinze alunos. Se no atingir tal nmero, o grupo formado dever pagar o valor correspondente a quinze alunos; Intensiva: cursada em janeiro ou julho, formada de acordo com a manifestao de interesse dos alunos (nmero mnimo de quinze alunos); Assistida: disciplina que j no faz mais parte da grade curricular ou no oferecida em horrios regulares de qualquer outro curso. orientada por um professor com provas e trabalhos; Orientada: cursada ON-LINE.
Qual o valor pago pela DP? Isso varia de acordo com a carga horria da disciplina. Verifique no Edital de Taxas e Emolumentos o valor da carga horria da disciplina.
Como feito o pagamento da DP? Os boletos sero enviados para a residncia do aluno. O valor cobrado ser dividido em cinco parcelas com vencimento no dia 20 de cada ms. Caso no receba o boleto at trs dias antes do vencimento, retire-o presencialmente em uma das Centrais de Atendimento ou no Setor de Negociao.
87 CANCELAMENTO E TRANCAMENTO DE MATRCULA
O que trancamento de matrcula? O trancamento da matrcula corresponde suspenso total das atividades acadmicas por um determinado prazo. Neste intervalo de tempo, o aluno mantm vnculo com a Universidade e pode requerer seu retorno aos estudos sem prestar novo processo seletivo. Esse retorno condicionado oferta de turmas e existncia de vagas no respectivo curso / campus / horrio pretendidos, mantendo assim seu vnculo com a Universidade. Aps expirao do prazo de trancamento, o aluno dever prestar novo Processo Seletivo, adequando-se assim nova grade curricular.
O que cancelamento de matrcula? O cancelamento de matrcula corresponde formalizao do desligamento do aluno com a Universidade, estando assim sem nenhum vnculo com a mesma. Caso o aluno decida voltar a estudar na Universidade, dever prestar novo Processo Seletivo.
Por quanto tempo a matrcula pode ficar trancada? O perodo mximo de trancamento de matrcula de 2 (dois) anos (4 semestres) para os cursos de graduao e de 1 (um) ano (2 semestres) para os cursos de curta durao. Como devo proceder para pedir o trancamento/cancelamento da matrcula? O pedido deve ser requerido presencialmente em uma das Centrais de Atendimento ao Aluno, antes do trmino do semestre (em perodo estipulado pelo Calendrio Acadmico).
REABERTURA DE MATRCULA
Como devo solicitar minha reabertura de matrcula? Se voc estiver regularmente com a matrcula trancada, deve solicitar a reabertura pelo portal da Universidade, na pgina de Servios para Aluno, no link Anlise Curricular Reabertura de Matrcula/Retornar ao curso semestral.
Quando posso pedir reabertura de matrcula? Ver calendrio acadmico no portal da Universidade.
88 TRANSFERNCIAS DE TURNO E CAMPUS
Quero mudar de campus/ou de turno, como fao? Solicite a transferncia pelo site da Universidade, link Servios para Alunos Central de Atendimento On-Line Transferncia de turno/campus. O deferimento do pedido est condicionado oferta de vagas, devendo assim o aluno permanecer em sua turma atual at a transferncia.
DE CURSOS / HABILITAO / FORMAO ESPECFICA
Quero me transferir de Curso/habilitao ou formao especfica. O que fao? Solicite a transferncia pelo site da Universidade, link Servios para Alunos Anlise Curricular - Transferir de Curso/Habilitao/Formao Especfica. Vale lembrar que existe um prazo especfico para tal solicitao (ver calendrio acadmico).
DA ANHEMBI MORUMBI PARA OUTRA INSTITUIO
Quem pode pedir transferncia da Anhembi Morumbi? Todo aluno que estiver regularmente matriculado na Universidade no perodo em que solicitar transferncia. considerado vinculado o aluno devidamente matriculado no semestre vigente ou com matrcula trancada.
Quando posso pedir minha transferncia? A Universidade aceita pedidos de transferncia em qualquer poca do ano.
Como devo proceder para pedir transferncia da Anhembi Morumbi? Solicite a transferncia em formulrio prprio, presencialmente, na Central de Atendimento ao Aluno, anexando o atestado de vaga da outra instituio. Para essa solicitao, voc dever pagar uma taxa (ver edital de taxas e emolumentos).
DE OUTRA INSTITUIO PARA A ANHEMBI MORUMBI
Como solicito minha transferncia?
89 Voc faz a solicitao pelo site da Universidade link Servios para Alunos Anlise Curricular Transferir para a Anhembi Morumbi - e depois comparece a uma das Centrais de Atendimento para a entrega dos documentos.
Quando posso pedir transferncia para a Anhembi Morumbi? Verifique o perodo de transferncia no calendrio acadmico.
Que documentos so necessrios para a transferncia? O candidato deve apresentar o Contedo Programtico das disciplinas cursadas e o Histrico Escolar. Os documentos devem ser originais ou cpias autenticadas.
Quanto tempo devo esperar a confirmao da minha transferncia? Todo o processo realizado via web. Os documentos entregues sero submetidos anlise da coordenao do curso. A anlise enviada via e-mail ao aluno. Estando de acordo, ele dar incio ao processo de transferncia. A Universidade Anhembi Morumbi emitir um atestado de vaga para a instituio de origem do candidato. Posteriormente, o candidato dever solicitar formalmente em sua universidade de origem a transferncia para a Anhembi Morumbi. Quando a escola de origem enviar a documentao de transferncia do candidato, este ser comunicado pela nossa secretaria e dever imediatamente fazer sua matrcula.
DISPENSA DISCPLINA
Em que caso eu posso pedir dispensa de disciplina? Voc pode pedir dispensa da disciplina quando tiver em mos uma anlise curricular feita pelo coordenador, com a indicao desta dispensa; ou quando j cursou a disciplina na prpria Anhembi Morumbi ou em outra instituio e quer pedir a dispensa de uma disciplina que est para ser cursada. Nestes casos, voc deve fazer a solicitao por meio do site da Universidade.
Quando posso pedir dispensa de disciplina? Ver calendrio acadmico.
No caso de disciplinas cursadas em outras escolas, como devo proceder?
90 Voc deve solicitar a dispensa da disciplina pelo site e entregar imediatamente, em uma das Centrais de Atendimento ao Aluno, o Histrico Escolar e Contedo Programtico da outra universidade (originais ou cpias autenticadas). No caso de disciplinas cursadas na Anhembi Morumbi: Requerimento indicando a disciplina, o ano e a srie em que foi cumprida.
COMPENSAO DE FALTAS
Em que caso minhas faltas podem ser compensadas? Quando o afastamento da instituio ocorrer por motivo de licena mdica e o aluno estiver enquadrado nos casos permitidos pela Lei 1.044/69: doenas infecto-contagiosas, gravidez (licena gestante) e acidentes com traumatismos, quando o afastamento for superior a 5 dias.
O que devo fazer para pedir compensao de faltas? Voc deve apresentar, no prazo mximo de 10 dias aps constatao do afastamento, o Laudo Mdico, com especificao da doena ou CID (Cdigo Internacional da Doena) e do perodo do afastamento (mnimo de 5 dias e mximo de 3 meses). A Central de Atendimento ao Professor se encarregar de providenciar os temas dos exerccios domiciliares e de avisar o aluno quando os mesmos estiverem disponveis.
Em que caso minhas faltas podem ser abonadas? Somente em dois casos: Prestao de Servio Militar - o oficial ou aspirante a oficial da reserva convocado para o servio ativo; e participao em congressos cientficos e competies desportivas ou artsticas, de mbito nacional ou internacional, com autorizao expressa do Ministrio da Educao.
O que eu devo fazer para pedir abono de faltas? Voc deve apresentar, no prazo mximo de 5 dias aps a constatao do afastamento, documento que comprove o motivo no setor do Protocolo.
Quando as faltas sero retiradas? As faltas sero retiradas no final do bimestre.
91 ANLISES CURRICULARES
Quem deve pedir Anlise Curricular? Quem se desligou da Anhembi Morumbi e quer saber como est sua situao atual; Quem deseja pedir dispensa disciplina; Quem tem dvidas quanto s disciplinas pendentes; Quem deseja parar o curricular e cursar somente dps ou vice-versa; Quem trancou a matrcula e deseja voltar a estudar (solicitar reabertura).
Como solicito uma Anlise Curricular? Pelo site da Universidade Link Servios para Aluno Anlise Curricular.
REVISO DE NOTAS E FALTAS
Quando eu posso requerer reviso? Voc pode requerer reviso sempre que discordar das notas/faltas lanadas no sistema, ou ainda, quando a nota estiver ausente.
Como eu fao essa solicitao? As notas e faltas sero revistas mediante solicitao via Web, em prazo estipulado pelo Calendrio Acadmico, de acordo com anotaes das faltas no dirio de classe.
Em quanto tempo tenho a resposta do requerimento? Em 20 dias teis, caso no coincida com perodo de frias ou recesso dos professores.
PROVAS DE SEGUNDA CHAMADA
O que a prova de segunda chamada? uma prova que repe a avaliao da N2 que no foi realizada.
Posso realizar duas provas de segunda chamada da mesma disciplina? No. permitida apenas a realizao de uma prova de segunda chamada, de uma determinada disciplina, em um mesmo semestre.
92 O que devo fazer para requerer prova de segunda chamada? Na semana estipulada pelo calendrio acadmico, comparea sala de aula no mesmo dia e horrio da disciplina que ir fazer a prova. Assine a lista de presena e realize a prova com o professor. Estas provas so pagas (ver edital de taxas e emolumentos) e os boletos sero enviados para a sua residncia. Caso isso no ocorra, solicite segunda via do boleto nas Centrais de Atendimento ao Aluno.
COLAO DE GRAU
O que colao de grau? o ltimo ato acadmico do aluno. oficial e obrigatria, sendo realizada em sesso solene e pblica para os cursos de graduao, em dia e horrio previamente fixados pela Universidade.
O que eu preciso fazer para participar da colao? Voc precisa ter concludo o curso de graduao, sem nenhuma pendncia acadmica, como: disciplinas, Trabalho de Concluso de Curso ou estgio.
E se eu tiver alguma dependncia, estgio ou disciplina por concluir? Aps a concluso das pendncias, voc deve requerer a colao de grau especial pelo site da Universidade Servios para Alunos - Central de Atendimento On-Line. Aguarde a resposta da Secretaria de Registros Acadmicos, que entrar em contato para passar informaes a respeito da data, hora e local da colao especial ou sobre suas pendncias.
Os cursos seqenciais possuem colao de grau? No. O que existe somente uma cerimnia formal como marco da concluso do curso.
BOLSAS DE ESTUDO
Como fao para conseguir uma bolsa de estudo? Voc obtm toda e qualquer informao sobre bolsas de estudos no Setor de Bolsas (R. Libero Badar, 487 Campus Vale do Anhangaba) ou pelo portal da Universidade - link Servios para Aluno Central de Atendimento on-line Bolsas de Estudos.
93 BOLETOS DAS MENSALIDADES
Quando o vencimento do boleto da mensalidade? O boleto da mensalidade vence no 15 dia til de cada ms.
Posso alterar a data de vencimento dos boletos? No. A Universidade no altera a data de vencimento.
Eu recebo o boleto em casa? Sim. Os boletos so enviados para o endereo que est cadastrado no sistema. Caso voc no o receba em at 3 dias antes do vencimento, retire a segunda via do boleto no site da Universidade link Servios para Alunos Central de Atendimento On-Line Boletos, ou presencialmente em uma das Centrais de Atendimento.
E os boletos vencidos, como fao para retirar? Nos casos de boletos vencidos, retire presencialmente em umas das Centrais de Atendimento, no Setor de Negociao (Campus Vale do Anhangaba), ou ainda solicitar pelo Contact Center (0800 015 9020). Existe a possibilidade de alterao da data de vencimento para que o aluno consiga retirar a segunda via pelo site, mas mensalidade sero acrescidos multa e juros.
CARTEIRINHAS DA UNIVERSIDADE
Como obtenho minha carteirinha da Universidade? Os alunos calouros (ingressantes no semestre vigente) no precisam solicitar a carteirinha da Universidade. Elas so entregues todo incio de semestre pelo Banco Real. O local, data e horrio de entrega so fixados pelo banco e divulgados em cartazes espalhados pelos campi.
Sou aluno veterano e ainda no tenho minha carteirinha, o que devo fazer? Voc deve comparecer a uma das Centrais de Atendimento ao Aluno para solicitar a carteirinha. Ser verificado, junto empresa que as emite, se realmente nunca foi impresso carteirinha com aquele RA de solicitao. Caso nunca tenha sido impresso, ser emitida uma via. Se j houver registro de impresso, a solicitao ser indeferida e o aluno dever solicitar segunda via efetuando o pagamento da taxa.
94 Como solicito a segunda via da carteirinha da Universidade? Voc deve comparecer a uma das Centrais de Atendimento ao Aluno e solicitar a segunda via da carteirinha, efetuando o pagamento da taxa (ver edital de taxas e emolumentos). A nova carteirinha demora cerca de 40 dias para ficar pronta. A segunda via da carteirinha dever ser solicitada pelo site da Universidade Link Servios para Alunos Central de Atendimento On-line, com pagamento de taxa.
INTEGRALIZAO DOS CURSOS
Existe um limite de tempo para terminar o curso? Todo curso tem um perodo mnimo e mximo (estipulado no currculo) para que o aluno possa conclu-lo. O no cumprimento desse prazo acarreta na integralizao do curso, e o aluno obrigado a prestar novamente o Processo Seletivo para dar continuidade ao mesmo. Veja tabela: Cursos Prazo Mnimo(Anos) Prazo Mximo(Anos) Administrao 04 07 Arquitetura e Urbanismo 05 09 Cincia Da Computao 04(Bacharelado) 05(Licenciatura) 07 (Bacharelado) 07 (Licenciatura) Cincias Econmicas 05 09 Comunicao Social 04 07 Dana e Movimento 03 03 e meio (a partir de 2001) 05 Design Digital/Embalagens 04 07 Design De Moda 04 07 Direito 05 09 Enfermagem 04 06 Engenharia Civil 06(at 1996) 05(a partir de 1997) 09 (at 1996) 09 (a partir de 1997) Engenharia De Produo 05 09
95 Engenharia De Agrimensura e Geomtica 05 09 Engenharia De Telecomunicaes 05 09 Farmcia 04 07 Fisioterapia 04 07 Hotelaria 04 07 Lazer, Recreao E Eventos 04 07 Letras 03 e meio (a partir de 2001) Bacharelado e Licenciatura 07(at 1996) 07(Bacharelado e Licenciatura, a partir de 1997) Marketing 04 07 Matemtica 03 e meio (a partir de 2001)Bacharelado e Licenciatura 07 (at 1996) 07 (Bacharelado e Licenciatura, a partir de 1997) Medicina Veterinria 05 09 Naturologia 04 07 Negcios Da Moda 04 07 Nutrio 04 06 Pedagogia 04(at 1996) 03(a partir de 1997) 0 (at 1996 e Licenciatura Em T.E.) 07 (a partir de 1997) Qumica 03 e meio (a partir de 2000) Bacharelado e Licenciatura 07 (at 1996) 07 (Bacharelado e Licenciatura, a partir de 1997) Quiropraxia 04 e meio 07
96 Secretariado Executivo Bilnge 03 05 Superior de Aviao Civil 03 05 Teatro 03 e meio (a partir de 2001) 05 Turismo 04 07 Cursos Seqenciais 02 03
97 ANEXO B - LISTA DE STOP WORDS
a
agora ainda alm alguns ano anos antes ao aos apenas aps aqui rea as s assim at bem bom cada caso cerca com como da dar das de depois desde do dos durante e
ela ele eles em enquanto ento entre era essa esse esta est este eu fato faz fazer fez ficou foi foram grande h isso j mas me mesma mesmo muito na nada nas nem neste no nos ns num numa o onde os ou para pela pelo pelos por pouco que so se seja sem semana ser seu seus s sobre sua suas tambm to tem ter teve tinha um uma vai vo vem vez vezes