uma proposta para a construção de bases de

Transcrição

uma proposta para a construção de bases de
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
DEPARTAMENTO DE INFORMÁTICA
MESTRADO EM INFORMÁTICA
SÉRGIO TEIXEIRA
CHATTERBOTS – UMA PROPOSTA PARA A CONSTRUÇÃO
DE BASES DE CONHECIMENTO
VITÓRIA
2005
SÉRGIO TEIXEIRA
CHATTERBOTS – UMA PROPOSTA PARA A CONSTRUÇÃO
DE BASES DE CONHECIMENTO
Dissertação apresentada ao Programa de
Pós-Graduação em Informática do
Centro Tecnológico da Universidade
Federal do Espírito Santo, como
requisito parcial para obtenção do Grau
de Mestre em Informática.
Orientador: Prof. Dr. Crediné Silva de
Menezes
VITÓRIA
2005
Dados Internacionais de Catalogação-na-publicação (CIP)
(Biblioteca Central da Universidade Federal do Espírito Santo, ES, Brasil)
T266c
Teixeira, Sérgio, 1971Chatterbots : uma proposta para a construção de bases de
conhecimento / Sérgio Teixeira. – 2005.
100 f. : il.
Orientador: Crediné Silva de Menezes.
Dissertação (mestrado) – Universidade Federal do Espírito Santo,
Centro Tecnológico.
1. Inteligência artificial - Processamento de dados. 2. Processamento
da linguagem natural (Computação). 3. Lingüística - Processamento de
dados. I. Menezes, Crediné Silva de. II. Universidade Federal do Espírito
Santo. Centro Tecnológico. III. Título.
CDU: 004
SÉRGIO TEIXEIRA
CHATTERBOTS – UMA PROPOSTA PARA A CONSTRUÇÃO
DE BASES DE CONHECIMENTO
COMISSÃO EXAMINADORA
______________________________________
Prof. Crediné Silva de Menezes, D. Sc.
Orientador
_________________________________________
Prof. Elias de Oliveira, PhD.
UFES
_________________________________________
Fernando José Martinelli, D. Sc.
Companhia Siderúrgica de Tubarão - CST
Vitória, 7 de Julho de 2005.
Dedico este trabalho à minha esposa,
Giane,
que me apoiou durante toda a jornada de trabalho.
Aos meus pais,
Geraldo e Alveni,
que sempre se dedicaram ao meu sucesso.
Ao professor
Crediné,
pelo apoio e dedicação durante todo o trabalho.
Ao professor
Geraldo Magela,
que apoiou e viabilizou a conclusão desse trabalho.
AGRADECIMENTOS
Ao professor Crediné que acreditou e investiu no meu potencial. Sem esse apoio nada seria
possível.
Aos meus irmãos Saulo e Sarah que sempre torcem por mim.
Aos professores Dedê, Elias e Orivaldo pelo apoio e contribuições ao trabalho.
A todos os alunos que sempre tiveram boa vontade de ajudar nos momentos de maior
dificuldade.
“A persistência é o caminho do êxito.”
(Chaplin)
RESUMO
Este trabalho apresenta uma proposta de construção de bases de conhecimento de um
chatterbot utilizando a tecnologia ALICE. A criação das bases de conhecimento é feita
através da identificação de padrões de conversação baseados na Lingüística de Corpus. Os
padrões são categorizados através do modelo vetorial ou do método Latent Semantic Indexing
e manipulados por especialistas. Como estudo de caso é proposto o Tuxbot, chatterbot que
responde perguntas sobre dúvidas de usuários do Linux.
Palavras-chave: Chatterbot, Lingüística de corpus e Latent Semantic Indexing.
ABSTRACT
This work presents a proposal for building chatterbots knowledge base using the ALICE
technology. This knowledge base is created based upon the dialog patterns existent on a
Linguistics Corpus. The patterns are classified by the vectorial model or Latent Semantic
Indexing method and rearranged by a specialist when necessary. As a case of study it is
proposed the use of the Tuxbot, a simple chatterbot that provides the user of Linux with
answers related to their doubts.
Keywords: Chatterbot, Corpus Linguistic and Latent Semantic Indexing.
LISTA DE FIGURAS
Figura 1. Unidade de conhecimento escrita na linguagem AIML............................................23
Figura 2. Visão de ¼ do Graphmaster do conhecimento da ALICE. .....................................25
Figura 3. Arquitetura de um Chatterbot baseado na tecnologia ALICE..................................26
Figura 4. Matriz de termos versus documentos........................................................................33
Figura 5. Cálculo da similaridade através do co-seno de Θ. ....................................................33
Figura 6. Decomposição da matriz termos versus documentos em três matrizes utilizando o
método SVD. ............................................................................................................................35
r r
r
Figura 7. Redução das matrizes K S e D t pelo fator k. .......................................................36
r
r r
r
Figura 8. Composição da matriz M r através das matrizes K S e D t reduzidas....................36
Figura 9. Visão geral das técnicas de agrupamento de documentos. .......................................38
Figura 10. Visão geral das etapas do processo de agrupamento de documentos. ....................40
Figura 11. Visão geral da proposta de construção das bases de conhecimento. ......................46
Figura 12. Visão geral da etapa 01 – recuperação de dados.....................................................46
Figura 13. Visão geral da etapa 02 – Conversão de arquivos html em textos..........................47
Figura 14. Visão geral da etapa 03 – Extração de padrões.......................................................48
Figura 15. Visão geral da etapa 04 – Redução dos corpora.....................................................49
Figura 16. Visão geral da etapa 05 – Transformação dos corpora em pequenos arquivos......49
Figura 17. Visão geral da etapa 06 – Indexação dos corpora. .................................................50
Figura 18. Visão geral da etapa 07 – Geração da matriz de similaridades...............................51
Figura 19. Visão geral da etapa 08 – Categorização da matriz de similaridades. ....................51
Figura 20. Visão geral da etapa 9 – Geração dos padrões categorizados.................................52
Figura 21. Visão geral da etapa 10 – Manipulação dos padrões ..............................................53
Figura 22. Visão geral da etapa 11 – Busca respostas..............................................................53
Figura 23. Visão geral da etapa 12 – Identificação e ajustes das perguntas e respostas ..........54
Figura 24. Visão geral da etapa 13 – Geração das bases de conhecimento em AIML. ...........55
Figura 25. Programa que converte arquivos html em textos. ...................................................57
Figura 26. Abstração do programa gera-corpora.c e gera-resposta.c. ....................................59
Figura 27. Abstração do programa gera-corpora.c e gera-resposta.c. ....................................60
Figura 28. Apresentação do programa reduz-corpora.c ...........................................................62
Figura 29. Apresentação do programa reduz-corpora.c...........................................................63
Figura 30. Apresentação do programa separa-linhas.sh...........................................................64
Figura 31. Abstração do programa gera-termo-doc.c ..............................................................66
Figura 32. Abstração do programa gera-termo-doc.c ..............................................................67
Figura 33. Apresentação do programa separa-linhas.sh ..........................................................69
Figura 34. Apresentação do programa gera-aiml.sh ................................................................71
Figura 35. Apresentação do programa ordena-aiml.sh ............................................................72
Figura 36. Arquitetura do Tuxbot.............................................................................................75
Figura 37. Interface de conversação do Tuxbot. ......................................................................75
Figura 38. Amostra de arquivos da base de conhecimento do Tuxbot.....................................76
Figura 39. Amostra do arquivo “0-sinonimos-uma-palavra.aiml” ..........................................77
Figura 40. Amostra do arquivo “1-sinonimos-duas-palavras”. ...............................................78
Figura 41. Amostra do arquivos “a-srai.aiml”. .......................................................................79
Figura 42. Amostra do arquivo “a-ultimo.aiml”......................................................................80
Figura 43. Amostra do arquivo “z.aiml”..................................................................................81
Figura 44. Interface de avaliação do Tuxbot. ...........................................................................82
Figura 45. Padrões de perguntas extraídos do sistema rau-tu. .................................................84
Figura 46. Padrões de perguntas similares. ..............................................................................86
Figura 47. Padrões categorizados com o modelo vetorial ou método LSI...............................87
Figura 48. Padrões de perguntas manipuladas pelos especialistas...........................................88
Figura 49. Perguntas e respostas manipuladas pelos especialistas...........................................89
Figura 50. Unidades de conhecimento na linguagem AIML criadas no arquivo perguntasrespostas.aiml...........................................................................................................................90
Figura 51. Unidades de conhecimento na linguagem AIML criadas no arquivo under.aiml. .91
SUMÁRIO
1 - INTRODUÇÃO ..................................................................................................................13
1.1 MOTIVAÇÃO................................................................................................................15
1.2 OBJETIVOS...................................................................................................................16
1.3 METODOLOGIA...........................................................................................................17
1.4 ORGANIZAÇÃO DO TRABALHO .............................................................................20
CHATTERBOT - O QUE É E COMO SE FAZ? ......................................................................21
2.1 TECNOLOGIA ALICE..................................................................................................22
2.2 COMO FUNCIONA O GRAPHMASTER ....................................................................24
2.3 ARQUITETURA DE UM CHATTERBOT BASEADO NA TECNOLOGIA ALICE.26
2.4 TRABALHOS CORRELATOS .....................................................................................28
FUNDAMENTOS DE RECUPERAÇÃO DE INFORMAÇÃO .............................................31
3.1 MODELOS CLÁSSICOS DE RECUPERAÇÃO DE INFORMAÇÃO........................32
3.2 MODELO VETORIAL ..................................................................................................32
3.3 MÉTODO DO LSI .........................................................................................................34
3.4 AGRUPAMENTO E CATEGORIZAÇÃO DE DOCUMENTOS ................................37
METODOLOGIA DE CONSTRUÇÃO DAS BASES DE CONHECIMENTO.....................42
4.1 LINGÜÍSTICA DE CORPUS ........................................................................................43
4.2 PADRÕES DE LINGUAGEM ......................................................................................44
4.3 VISÃO GERAL DA METODOLOGIA DE CONSTRUÇÃO DAS BASES DE
CONHECIMENTO ..............................................................................................................45
4.4 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS......................................46
4.5 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS ..........................47
4.6 ETAPA 03 – EXTRAÇÃO DE PADRÕES ...................................................................47
4.7 ETAPA 04 – REDUÇÃO DOS CORPORA...................................................................48
4.8 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS ARQUIVOS 49
4.9 ETAPA 06 – INDEXAÇÃO DOS CORPORA ..............................................................50
4.10 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES................................50
4.11 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES.................51
4.12 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS ..............................51
4.13 ETAPA 10 - MANIPULAÇÃO DOS PADRÕES PELOS ESPECIALISTAS ...........52
4.14 ETAPA 11 - BUSCA RESPOSTAS ............................................................................53
4.15 ETAPA 12 - IDENTIFICAÇÃO E AJUSTES DAS PERGUNTAS E RESPOSTAS .54
4.16 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML..............54
4.17 CONSIDERAÇÕES .....................................................................................................55
SUPORTE COMPUTACIONAL PARA A METODOLOGIA PROPOSTA .........................56
5.1 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS......................................56
5.2 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS ..........................56
5.3 ETAPA 03 – EXTRAÇÃO DE PADRÕES E ETAPA 11 – BUSCA RESPOSTAS ....57
5.4 ETAPA 04 – REDUÇÃO DOS CORPORA ..................................................................61
5.5 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS ARQUIVOS 63
5.6 ETAPA 06 – INDEXAÇÃO DOS CORPORA ..............................................................65
5.7 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES..................................67
5.8 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES...................68
5.9 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS ................................68
5.10 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML..............70
5.11 CONSIDERAÇÕES .....................................................................................................73
TUXBOT – UM ESTUDO DE CASO NA APLICAÇÃO DA METODOLOGIA PROPOSTA
..................................................................................................................................................74
6.1 O TUXBOT ....................................................................................................................74
6.2 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS......................................82
6.3 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS ..........................83
6.4 ETAPA 03 – EXTRAÇÃO DE PADRÕES ...................................................................83
6.5 ETAPA 04 – REDUÇÃO DOS CORPORA...................................................................84
6.6 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS ARQUIVOS 84
6.7 ETAPA 06 – INDEXAÇÃO DOS CORPORA ..............................................................85
6.8 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES..................................85
6.9 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES...................85
6.10 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS ..............................87
6.11 ETAPA 10 - MANIPULAÇÃO DOS PADRÕES PELOS ESPECIALISTAS ...........87
6.12 ETAPA 11 - BUSCA RESPOSTAS ............................................................................88
6.13 ETAPA 12 - IDENTIFICAÇÃO E AJUSTES DAS PERGUNTAS E RESPOSTAS .88
6.14 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML..............89
6.15 CONSIDERAÇÕES .....................................................................................................91
CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS....................................................92
REFERÊNCIAS BIBLIOGRÁFICAS .....................................................................................95
13
1 - INTRODUÇÃO
Ao longo da história da humanidade, o acesso à informação tem exercido um papel
fundamental nos processos de construção do conhecimento individual e coletivo. A jornada
foi longa, desde a origem da linguagem falada até o surgimento da imprensa, passando pelo
surgimento da escrita e as várias formas de registro. Há que se destacar a revolução cultural
originada pelo surgimento da imprensa, a partir da qual se democratizou o acesso da
informação em larga escala. O advento da internet, segundo Levy, promete provocar uma
outra revolução, em escala superior à provocada pela imprensa. Agora o cidadão pode usar
para as suas aprendizagens, informações que se renovam a cada segundo, providas por fontes
dispersas em vários continentes. Por outro lado, sendo o volume muito grande, corremos o
risco de sermos sufocados por tanta informação, sem descobrir onde obter os documentos que
nos interessam. Nos ambientes virtuais, esse risco é maior e pode provocar uma debandada
dos estudantes e um descrédito na tecnologia. Portanto, é fundamental que o freqüentador dos
ambientes virtuais, principalmente o novato, disponha de facilidades de interação que facilite
a sua integração (LEVY, 2004).
O surgimento da World Wide Web (Web), no início dos anos 90, ocasionou mudanças
de larga envergadura no direcionamento das pesquisas sobre Recuperação de Informação
(RI). A Web se tornou um gigantesco repositório do conhecimento humano, que está
possibilitando o compartilhamento de conhecimento em uma escala jamais observada
anteriormente.
Um dos grandes obstáculos na busca de informações na Web é a falta de um modelo
de dados bem definido e estruturado. Devido ao grande volume de informações textuais não
estruturadas na Internet, os sistemas de busca de informação existentes, não conseguem
atender plenamente às necessidades de quem precisa localizar informação útil com precisão.
Dentre as pesquisas que buscam alternativas para minimizar o problema de localização
de informação útil na Internet merecem destaque as pesquisas relacionadas com a
modelagem, classificação e categorização de documentos, interface de usuário, filtragem,
linguagens específicas, recuperação de textos, sistemas de bibliotecas, recuperação de dados
multimídia e bibliotecas digitais (BAEZA-YATES, 1999).
Além dessas alternativas existem outras funcionalidades que buscam minimizar o
problema de localização de informação que atenda às necessidades específicas dos usuários.
Dentre essas alternativas, merece destaque o frequently ask questions (FAQ). O objetivo
14
desse serviço é oferecer uma determinada quantidade de perguntas e respostas para esclarecer
dúvidas sobre um determinado assunto. No entanto, o FAQ só funciona bem quando a dúvida
do usuário é básica e se refere a um domínio do conhecimento pequeno, pois é difícil para o
mantenedor do serviço prever todas as possíveis variações de perguntas que o usuário pode
fazer. Entretanto, na maioria dos casos o volume de informação é muito grande, tornando essa
alternativa ineficiente. Além disso, o FAQ é estático, restrito e requer a leitura de todas as
perguntas e respostas até encontrar a resposta que interessa. Além disso, nem sempre existe a
resposta que interessa.
Dentre as alternativas de apoio a localização de informação útil existente, associada à
facilidade de integração, os Chatterbots merecem destaque. Esses sistemas são capazes de
auxiliar na busca de informação em sites diversos e em ambientes de aprendizagem, usando
uma forma de conversação que vem se mostrando bastante adequada. O uso de Chatterbots
está sendo experimentado como solução alternativa aos FAQ. Por exemplo, a ferramenta de
autoria AutoChatter propõe a construção do conhecimento de chatterbots através da inclusão
de perguntas e respostas com o objetivo de auxiliar o processo de aprendizagem de conteúdos
específicos (CASTANHO, 2002).
As facilidades proporcionadas pelo crescimento da Internet aliadas aos avanços das
tecnologias educacionais com custos mais acessíveis estimularam um elevado aumento no
interesse pela busca por informação e conhecimento através da realização de cursos a
distância. Devido a isso, essa modalidade de ensino está vivenciando um período de grande
evidência por parte dos governos, instituições de ensino e empresas.
Os ambientes de aprendizagem também enfrentam o problema do excesso de
informação sobre o uso dos sistemas e principalmente sobre os conteúdos dos cursos a
distância. Essa nova modalidade de ensino está ocasionando uma mudança no comportamento
dos alunos e professores. Essa mudança de paradigma requerer soluções que ajudem a
minimizar os impactos do excesso de informação, pois nesses ambientes o aluno deve ser o
protagonista no processo de construção do conhecimento (PALLOFF, 2002).
15
1.1 MOTIVAÇÃO
De acordo com uma pesquisa realizada pela University of California Berkeley - School
of Information Management and Systems, em 2003, foi constatado um aumento estimado de
30% ao ano no fluxo de novas informações em meios eletrônicos, tais como, telefone, rádio,
televisão e a Internet. Esse estudo analisou o armazenamento e o fluxo de novas informações
geradas em 2002 e comparou os resultados com uma pesquisa similar realizada em 2000 com
dados do ano de 1999. Além disso, em janeiro de 2003, foi constatado através do site
SearchEngineWatch.com, que foram feitas 319 milhões de buscas por dia nas principais
ferramentas de buscas. (BERKELEY, 2005).
Esse crescimento em larga escala é maior do que os dados apresentados, pois estudos
realizados por Bergman afirmam que a Internet é 500 vezes maior do que o segmento coberto
pelos mecanismos de busca. Isso ocorre devido à existência de muitas informações
disponíveis em banco de dados que não são acessíveis pelos mecanismos de busca
(BERGMAN, 2005) (ALENCAR, 2001).
Devido ao grande crescimento da Internet está ocorrendo um aumento nas pesquisas
que buscam o desenvolvimento de soluções alternativas aos mecanismos de busca. O objetivo
dos pesquisadores é propor alternativas para minimizar o esforço cognitivo na busca e
recuperação de informação útil na Internet. Atualmente o usuário das ferramentas de busca
tem muito trabalho para localizar a informação desejada, pois o excesso de informação é
grande.
O excesso de informação também está presente nos ambientes de aprendizagem. Os
aprendizes precisam estudar um grande volume de informação. Por mais que um ambiente
virtual seja amigável e eficiente, ele não substitui a interação presencial, que ainda é a forma
mais natural para o ser humano. A ausência das interações síncronas, presenciais ou não, é um
fator de desestímulo dos alunos de cursos virtuais. Essas interações são fundamentais para
auxiliar o processo de construção do conhecimento, pois o volume de informação a ser
estudado é grande. O grande desafio para os pesquisadores da área é o desenvolvimento de
soluções que possam ajudar na administração do grande volume de informação. Apesar da
existência de estratégias e ferramentas com o objetivo de minimizar as dificuldades, ainda
existem muitas barreiras geradas pela falta de habilidade dos alunos na utilização das
tecnologias disponibilizadas nos ambientes virtuais de aprendizagem (SALLORENZO, 2003).
16
Além do excesso de informação e dificuldade no uso das tecnologias, existe o
problema da falta de disciplina no cumprimento do cronograma de estudo proposto nesses
cursos. A maioria dos alunos desenvolve suas atividades próximas ao término previsto no
cronograma desses cursos. Nesse período ocorre uma sobrecarga de trabalho para os
professores, sendo que, muitas das dúvidas são simples, objetivas e, na maioria das vezes, já
foram respondidas em algum fórum, sessão de chat ou e-mail para algum aluno.
Os chatterbots podem ajudar a esclarecer dúvidas de aprendizes sobre assuntos
específicos com um esforço cognitivo bem menor do que outros métodos tradicionais, tais
como, ferramentas de busca e FAQs. Além disso, eles podem ajudar na redução da carga de
trabalho de professores de cursos a distância, pois boa parte das suas atividades está
relacionada ao esclarecimento de dúvidas de aprendizes, que geralmente são repetitivas e
podem ser facilmente cadastradas na base de conhecimento do chatterbot.
1.2 OBJETIVOS
O objetivo geral deste trabalho é contribuir para a melhoria do processo de construção
dos sistemas chatterbot. O foco principal é o tempo de desenvolvimento e a qualidade das
respostas que esses sistemas podem proporcionar aos seus interlocutores.
De uma forma mais especifica, o trabalho busca contribuir com o processo de
construção das bases de conhecimento destes sistemas. Neste sentido, é apresentada uma
metodologia para a construção dessas bases e o desenvolvimento de ferramentas
computacionais para apoiar a metodologia. A metodologia apresentada propõe uma
alternativa para tratar o processo de construção de bases de conhecimento sobre um
determinado domínio do conhecimento à luz dos fundamentos da lingüística de corpus.
Foram desenvolvidas ferramentas computacionais a partir de métodos e algoritmos
consagrados na literatura para a implementação da metodologia proposta. Foi utilizado o
modelo vetorial e o método do Latent Semantic Indexing (LSI) para categorizar os padrões de
conversação do chatterbot.
Foi desenvolvido um Chatterbot intitulado Tuxbot para validar a metodologia e o
suporte computacional proposto. O Tuxbot tem o objetivo de esclarecer dúvidas de aprendizes
do Sistema Operacional Linux.
17
1.3 METODOLOGIA
A estratégia adotada está apoiada na modelagem do conhecimento através da
recuperação de padrões1 de conversação baseada na lingüística de corpus23, na categorização
desses padrões com a utilização do modelo vetorial4 ou do método Latent Semantic Indexing5
(LSI) e na conversão supervisionada desses padrões em conhecimento de um Chatterbot.
A utilização do modelo vetorial ou do método do LSI no processo de categorização se
justifica devido à especificidade de determinados domínios do conhecimento. Dependendo
dos dados recuperados para a transformação em bases de conhecimento, o modelo vetorial
será o mais indicado. Por exemplo, não se justifica a utilização do método do LSI para
categorizar padrões provenientes de textos pequenos sem a presença de dados latentes. Além
disso, o custo computacional do método LSI é bem maior. Durante a construção das bases de
conhecimento do Tuxbot foram utilizados ambos os métodos com o objetivo de comparar os
resultados. Foi constatado que ambos os métodos apresentaram os mesmos resultados para o
domínio do conhecimento selecionado. Entretanto, em outros domínios do conhecimento
pode ser necessário utilizar o método do LSI. Por exemplo, a categorização de textos com a
presença de dados latentes.
Após a definição da utilização de Chattebot foram selecionados e discutidos diversos
artigos científicos sobre Chatterbots, e principalmente na utilização em ambientes de
aprendizagem. Em seguida, foram pesquisados e testados diversos chatterbots disponíveis na
Internet. Foi constatado que a tecnologia ALICE é uma boa alternativa para a pesquisa
científica e implementação de chatterbots por se tratar de um software livre de fácil
utilização, tecnologia flexível desenvolvida exclusivamente para a criação de Chatterbots e
1
Padrão: conjunto de palavras ou dados lingüísticos que poderão auxiliar na identificação de formas de
elaboração de perguntas ou respostas.
2
Lingüística de corpus: Área que estuda a coleta e exploração de conjuntos de dados lingüísticos textuais
coletados criteriosamente.
3
Corpus: conjunto de textos autênticos, em linguagem natural, escritos por falantes nativos, com o propósito
específico de pesquisa lingüística. Os textos devem ser selecionados de forma aleatória, obedecendo a um
conjunto de regras pré-estabelecidas.
4
Modelo de recuperação de informação no qual documentos e consultas são representados por vetores no
espaço euclidiano de t-dimensões (BAEZA-YATES, 1999).
5
Baseado no modelo vetorial, esse método faz o mapeamento dos vetores de documentos e consultas em um
espaço vetorial reduzido associado aos conceitos. Esse modelo tende a realçar as relações semânticas ocultas
entre termos e documentos. (DEERWESTER, 1990).
18
também devido à existência de diversos trabalhos científicos publicados com a utilização da
tecnologia ALICE.
Durante o desenvolvimento do trabalho e com a utilização de diversos chatterbots
disponíveis na Internet foi constatado que os chatterbots pesquisados não tratam o problema
de bases de conhecimento sobre um determinado domínio do conhecimento. Dessa forma,
eles não são capazes de atender às expectativas dos usuários que buscam respostas de dúvidas
sobre um determinado domínio do conhecimento. Por isso, foi definido que o foco do trabalho
seria a pesquisa de alternativas para a construção de bases de conhecimento, mais
especificamente, bases de conhecimento na linguagem AIML; desta forma, seria possível
utilizar a tecnologia ALICE para implementar o chatterbot.
Na utilização do chatterbot ALICE com o objetivo de experimentação, foi criado
manualmente uma base de conhecimento sobre o AmCorA6. Na conversação com o
chatterbot ALICE sobre dúvidas de utilização do ambiente AmCorA, foi constatado que as
pessoas elaboram as mesmas perguntas de formas diferentes, e o que uma pessoa acha que é
importante ou pensa que o outro vai perguntar, normalmente não se concretiza. O grande
desafio dos pesquisadores de Chatterbot é identificar a forma como as pessoas elaboram
perguntas sobre um determinado domínio do conhecimento.
A partir da definição mais detalhada do problema e após a revisão bibliográfica em
diversos artigos sobre padrões de conversação, foi constatado que a lingüística de corpus
poderia auxiliar na coleta e exploração de dados lingüísticos com o propósito de identificação
de formas de conversação.
Como não é possível prever o que as pessoas irão perguntar sobre um determinado
domínio do conhecimento, verificou-se que existem muitas bases de dados com perguntas e
respostas sobre diversos domínios do conhecimento na Internet. Através dos resultados
obtidos com a implementação do Tuxbot foi constatado que é possível criar bases de
conhecimento de chatterbots a partir da recuperação de informações que contenham
conversação sobre um determinado domínio do conhecimento, à luz dos fundamentos da
lingüística de corpus.
O próximo passo foi a definição das etapas que iriam compor o processo de criação
das bases de conhecimento na linguagem AIML. De acordo com o desenvolvimento do
trabalho e conforme a identificação dos problemas, as etapas foram aos poucos sendo
6
Ambiente Cooperativo de Aprendizagem disponível em http://www.gaia.ufes.br/amcora/.
19
definidas. Finalmente foi possível definir claramente o número de etapas e o que cada uma
deveria executar.
O momento estratégico na definição da proposta de construção das bases de
conhecimento foi a constatação da necessidade de se utilizar o modelo vetorial ou o método
do LSI para a categorização dos padrões de perguntas extraídos das bases de dados. Essa
etapa eliminou a necessidade da categorização manual, o que poderia inviabilizar a proposta
apresentada.
Ao longo do desenvolvimento desse trabalho foram publicados dois artigos. O
primeiro, foi publicado nos anais do XIV Simpósio Brasileiro de Informática na Educação –
SBIE - 2003, realizado no Rio de Janeiro, RJ, Brasil. O segundo, foi publicado nos anais do
XXV Congresso da Sociedade Brasileira de Computação – CSBC – 2005, realizado em São
Leopoldo, RS, Brasil. Além disso, foi publicado um artigo na revista Aprender Virtual, em 1
de Novembro de 2003 (TEIXEIRA, 2003) (TEIXEIRA, 2003b) (TEIXEIRA, 2005).
20
1.4 ORGANIZAÇÃO DO TRABALHO
Esse trabalho está organizado da seguinte forma:
Chatterbot - O que é e como se faz? – apresenta os conceitos de Chatterbot, o
funcionamento do Graphmaster (conjunto de todos os nós que compõem o conhecimento do
ALICE), o que é e como funciona a tecnologia ALICE, a arquitetura de um Chatterbot
baseado na Tecnologia ALICE, e trabalhos correlatos.
Fundamentos de Recuperação de Informação – apresenta os fundamentos da área de
recuperação de informação, os modelos clássicos de recuperação de informação, o modelo
vetorial e o método LSI.
Metodologia de construção das bases de conhecimento – apresenta os fundamentos da
lingüística de corpus que nortearam esse trabalho e a metodologia da proposta de construção
das bases de conhecimento através de 13 etapas.
Suporte computacional para a metodologia proposta – apresenta os programas
desenvolvidos para atender às necessidades computacionais da metodologia proposta.
Tuxbot – um estudo de caso na aplicação da metodologia proposta - apresenta a
aplicação da metodologia proposta e dos recursos computacionais para a construção de bases
de conhecimento de um Chatterbot denominado Tuxbot. Além disso, são apresentados os
resultados dos experimentos realizados nas 13 etapas.
Considerações finais e trabalhos futuros – apresenta as considerações finais sobre o
trabalho e propõe trabalhos que poderão dar continuidade à proposta apresentada.
Finalmente, Referências Bibliográficas – apresenta as referências bibliográficas.
21
CHATTERBOT - O QUE É E COMO SE FAZ?
Chatterbot7 é um programa de computador que tenta simular um ser humano na
conversação com as pessoas. O objetivo é responder as perguntas de tal forma que as pessoas
tenham a impressão de estar conversando com outra pessoa e não com um programa de
computador. Após o envio de perguntas em linguagem natural o programa consulta uma base
de conhecimento e em seguida fornece uma resposta que tenta imitar o comportamento
humano.
Uma proposta de se estabelecer diálogo com computadores tem origem na década de
50 quando o famoso matemático britânico Alan Turing levantou a questão: “As máquinas
podem pensar?” Com a publicação do artigo “Computing Machinery and Intelligence”
(TURING, 1950), Turing propôs um jogo chamado “Jogo da Imitação”. O objetivo era
confundir um interrogador que tenta descobrir se está conversando com um homem ou uma
mulher. O interrogador elabora perguntas para X (supostamente um homem) e Y
(supostamente uma mulher). Através das respostas fornecidas pelo computador o interrogador
tentará identificar se X é homem ou mulher. O dilema central do questionamento de Turing
está na pergunta: “Se um computador pode pensar, como demonstrar?”.
Em 1966 o professor Joseph Weizenbaum do Instituto de Tecnologia de
Massachusetts desenvolveu um programa chamado ELIZA (WEIZENBAUM, 1966). Este foi
o primeiro chatterbot a ser desenvolvido e hoje é considerado a “mãe” de todos chatterbots.
O objetivo do programa é responder as perguntas elaboradas por um ser humano em
linguagem natural dando a impressão de que o bate-papo está ocorrendo entre duas pessoas, e
não entre uma pessoa e um computador. ELIZA simula as respostas de um psicólogo
rogeriano8. Os fundamentos básicos do ELIZA são:
• Identificar palavras-chave;
• Encontrar um contexto mínimo;
• Fazer transformações no texto, se necessário;
• Gerar respostas na ausência de palavras chave;
• Concluir o bate-papo através de “Scripts”.
7
O termo Chatterbot surgiu da junção das palavras Chatter (a pessoa que conversa) e da palavra bot (abreviatura
de robot), ou seja, um Robô (em forma de software) que conversa com as pessoas.
8
A psicologia rogeriana utiliza uma abordagem centrada na pessoa. Ela parte do pressuposto de que as respostas
para as perguntas do paciente estão nele mesmo.
22
Ao elaborar uma pergunta sobre um assunto desconhecido para ELIZA, recebemos
uma resposta em forma de pergunta. Isto faz com que a pessoa forneça mais detalhes sobre o
assunto, para que o programa possa responder de forma “Inteligente” e causar algum tipo de
surpresa para as pessoas que estão conversando. Portanto, o objetivo do ELIZA é obter
informação do usuário através do envio de novas perguntas. Essa característica simula um
diálogo e faz o usuário pensar que o ELIZA está entendendo as perguntas.
O ELIZA faz parte da primeira geração de Chatterbots. Nessa época, usavam-se bases
de conhecimento pequenas e não havia ainda linguagens e modelos apropriados. Na segunda
geração os Chatterbots começaram a utilizar novas técnicas de Inteligência Artificial, tais
como redes neurais. O destaque nesta época foi o JULIA. Além de possuir uma base de
conhecimento sobre um determinado assunto, JULIA possui a capacidade de aprender durante
o diálogo, gerando uma sensação de “inteligência” (SILVA, 2002).
A terceira geração teve seu início marcado pelos Chatterbots que utilizam tecnologia
desenvolvida com o propósito específico de conversação baseada em Extensible Markup
Language (XML). O precursor desta geração é o Artificial Linguistic Internet Computer
Entity (ALICE) (WALLACE, 2003).
2.1 TECNOLOGIA ALICE
ALICE é uma tecnologia de desenvolvimento de Chatterbots em “código aberto” nos
termos do General Public License (GPL) que utiliza a linguagem Artificial Intelligence
Markup Language (AIML). A tecnologia ALICE se resume basicamente em três produtos:
• Especificações técnicas da linguagem AIML;
• Softwares que interpretam bases em AIML, serviços clientes via web e outras
mídias;
• Bases de conhecimento em forma de arquivos AIML, as quais representam o
conhecimento do ALICE.
ALICE implementa o modelo de aprendizagem supervisionado, no qual o papel do
botmaster9 é fundamental. O botmaster analisa os logs dos diálogos, identifica as melhorias
necessárias e cria novos conteúdos ou “conhecimentos” na forma de arquivos AIML, de tal
forma que, as próximas respostas sejam mais apropriadas.
9
Pessoa que administra a base de conhecimento do chatterbot
23
Não existe nenhuma tecnologia sofisticada na concepção da ALICE. Não é utilizada
nenhuma tecnologia do tipo: redes neurais, representação do conhecimento, busca em
profundidade, algoritmos genéticos ou análise gramatical. ALICE é similar à tecnologia CaseBased Reasoning (CBR10) que também implementa uma estrutura de estímulo-resposta, os
casos do CBR correspondem às categorias do AIML.
AIML é uma linguagem de marcação compatível com XML, concebida para
armazenar o conhecimento dos chatterbots baseados na tecnologia ALICE. As tags da
linguagem AIML consistem em unidades de conhecimento, que representam uma pergunta
elaborada pelo usuário e sua respectiva resposta. A figura 1 apresenta um exemplo de unidade
de conhecimento11.
<category>
<pattern>O que e o Magic Filter?</pattern>
<template>
Magic filter é um filtro de impressão inteligente. Ele é acionado pelo spool de
impressão (mais especificamente o arquivo /etc/printcap) e permite identificar e imprimir
arquivos de diversos tipos diretamente através do comando lpr arquivo. Esse programa é
altamente recomendado para quem deseja automatizar os trabalhos de impressão e spool. A
maioria dos programas para ambiente gráfico x11, incluindo o netscape, word perfect, gimp e
star office trabalham nativamente com o magic filter.
</template>
</category>
Figura 1. Unidade de conhecimento escrita na linguagem AIML.
As principais tags da linguagem AIML são:
• <aiml>: Identifica o início e fim de um documento AIML;
• <category>: Identifica uma “unidade de conhecimento” no arquivo AIML;
• <pattern>: Identifica o padrão digitado pelo usuário. Através desse padrão é que o
sistema busca a resposta;
• <template>: Contém a resposta para o padrão contido na respectiva tag <pattern>;
10
É uma forma de se usar o conhecimento através de experiências anteriores baseadas em problemas concretos
“casos”.
11
Cada unidade de conhecimento corresponde a uma pergunta e sua respectiva resposta.
24
• <srai>: tag recursiva que permite a substituição de várias entradas em uma única
saída;
• <star>: substitui o valor capturado na entrada que é representado pelo coringa “*” e
“_”;
• <that>: é utilizada dentro do category, representa o que foi dito recentemente.
Quando o diálogo é “quebrado” em várias sentenças esta tag é utilizada para referenciar o que
já foi dito;
• <topic>: é utilizado fora do <category>, faz um agrupamento de <categories>
relacionados com o mesmo tópico ou assunto.
As bases em AIML guardam os <patterns> em uma estrutura de árvore gerenciada por
um objeto chamado Graphmaster. Graphmaster fica residente em memória possibilitando
uma rápida e eficiente busca de <patterns> (WALLACE, 2003c).
2.2 COMO FUNCIONA O GRAPHMASTER
Graphmaster é o nome dado ao conjunto de todos os nós que compõem o
conhecimento do ALICE. Na verdade o Graphmaster é uma árvore n-ária12 que representa
todo o conhecimento de um Chatterbot baseado na tecnologia ALICE. Cada nó da árvore
armazena uma única palavra ou os coringas “_” ou “*” e cada folha armazena a resposta ou os
dados existentes entre as tags <template>. O número de folhas da árvore equivale ao total de
unidades de conhecimentos do ALICE.
Todo nó que contém o coringa “_” terá maior prioridade em uma busca nos nós de um
mesmo nível, em seguida a prioridade será das palavras e finalmente a menor prioridade será
do coringa “*”. As unidades de conhecimento não precisam ficar em ordem alfabética,
entretanto, todas as unidades de conhecimento, nas quais a pergunta, ou os dados entre as tags
<pattern>, que começam 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 não pergunta
por pergunta, cada palavra é armazenada em um nó da árvore. A busca das perguntas no
Graphmaster utiliza uma versão mais restrita do algoritmo busca primeiro em profundidade.
12
Estrutura de dados em forma de árvore invertida, na qual cada nó tem, no máximo, N filhos.
25
Para localizar uma pergunta que inicie com a palavra “X”, o sistema seguirá três
etapas conforme é apresentado abaixo:
1 – Caso o nó contenha o coringa “_”: será feita a busca nos nós filhos deste a procura
das palavras subseqüentes a palavra “X”. Caso nenhuma palavra seja localizada o sistema
passa para a próxima etapa.
2 – Caso o nó contenha a palavra “X”: será feita a busca nos nós filhos deste a procura
das palavras subseqüentes a palavra “X”. Caso nenhuma palavra seja localizada o sistema
passa para a próxima etapa.
3 – Caso o nó contenha o coringa “*”: será feita a busca nos nós filhos deste a procura
das palavras subseqüentes a 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 contém o coringa “*” e logo em seguida temos uma folha, então, o
algoritmo garante que uma resposta será fornecida.
A figura 2 apresenta uma visão de ¼ do Graphmaster que representa o conhecimento
da ALICE. Os círculos de cor amarela representam os nós terminais (nós que contêm as
últimas palavras dos padrões) e os de cor magenta representam os nós que contêm as
respostas (o conteúdo entre as tags template).
Figura 2. Visão de ¼ do Graphmaster do conhecimento da ALICE.
26
2.3 ARQUITETURA DE UM CHATTERBOT BASEADO NA TECNOLOGIA
ALICE
A figura 3 apresenta uma visão geral do funcionamento do ALICE. A primeira etapa
representa o encaminhamento da pergunta. Em seguida, o sistema realiza uma série de passos
até que a pergunta fique pronta para a busca na base de conhecimento. Na segunda etapa, será
feita a busca da pergunta nas bases de conhecimento contidas nos arquivos AIML. Após a
localização o sistema apresenta a resposta catalogada.
Figura 3. Arquitetura de um Chatterbot baseado na tecnologia ALICE.
Para que o Chatterbot seja capaz de responder as perguntas dos padrões cadastrados
nas bases de conhecimento em AIML, é preciso executar uma rotina que lê os arquivos AIML
e, em seguida, carrega-os na memória, de acordo com a ordem em que eles são lidos.
Conforme a recomendação descrita na documentação da ALICE, as bases de conhecimento
devem ser carregadas em ordem alfabética, sendo que, as bases de conhecimento que
possuem perguntas que iniciam com o coringa “_”, serão carregadas primeiro. Esse
procedimento é importante para evitar problemas na busca de respostas e para auxiliar o
botmaster na manutenção das bases de conhecimento.
O funcionamento do mecanismo de inferência se dá através dos seguintes passos:
1º. PASSO: Simplificação e normalização
Após o encaminhamento da pergunta o sistema fará um tratamento no texto digitado
para que a sentença fale a “mesma língua” da base de conhecimento. Através da identificação
de palavras-chaves o texto será convertido para o formato mais apropriado para a busca na
base de conhecimento. Por exemplo, quando o aluno digitar “Foca Gnu/Linux” o sistema
transformará essas palavras em “Guia Foca”, ou quando for digitada a palavra “usar”,
27
“utilizar” ou “uso” o sistema converterá para “como funciona” e caso seja digitado “o
comando” o sistema converterá para “comando”. Exemplo de simplificação e normalização
de uma pergunta feita ao chatterbot:
Aluno: Favor informar como utilizo o comando find?
A pergunta será substituída por: Favor informar como como funciona comando find.
2º. PASSO: Padronização
É necessário padronizar a forma como a sentença será encaminhada ao passo seguinte.
Serão identificadas as palavras-chaves que devem ser encaminhadas. O que não interessa será
desprezado. O asterisco representa uma ou mais palavras.
Toda pergunta do tipo: “* como funciona *
x” (leia-se: uma ou mais palavras
seguidas da expressão “como funciona”, seguida de uma ou mais palavras e encerrada por
uma constante X) será transformada em: “como funciona x”
Utilizando o exemplo do passo um, o sistema irá padronizar a sentença: “Favor
informar como como funciona comando find” em “como funciona find”
3º. PASSO: Busca na base de conhecimento
Com a pergunta devidamente padronizada, o sistema fará a busca na base de
conhecimento. Caso seja localizada, o chatterbot fornecerá a resposta.
Experiências com a ALICE indicam que aproximadamente 2.000 palavras atendem
95% das opções escolhidas pelas pessoas como a primeira palavra no início de uma frase, a
partir da segunda as opções diminuem bastante. Com aproximadamente 41.000 unidades de
conhecimento é possível estabelecer um bom diálogo.
Apesar do grande avanço que ocorreu no processamento da linguagem natural (PLN),
ainda existem muitas dificuldades que precisam ser vencidas para que a comunicação entre o
homem e o computador possa ser efetiva. Dentre os maiores obstáculos estão as ambigüidades
léxicas, semânticas e principalmente do contexto (OLIVEIRA, 1997). A Tecnologia ALICE
traz avanços significativos, entretanto, ela não é suficiente para atender às demandas, pois
depende muito da intervenção de especialistas para a criação das bases de conhecimento.
28
2.4 TRABALHOS CORRELATOS
O aumento do interesse pelos Chatterbots incentivou a criação de torneios para avaliar
o nível dos sistemas. Em 1990 o Professor Hugn Loebner com o aval do Centro de Estudos do
Comportamento de Cambridge projetou uma competição denominada “Loebner Prize”, com o
objetivo de se tornar a primeira implementação formal do teste de Turing. Foi estabelecido
um prêmio de US$ 100.000 e uma medalha de ouro para o primeiro programa que conseguir
responder perguntas da mesma forma que um ser humano faria. Todo ano é oferecida uma
medalha de bronze ao programa que melhor se aproxima das respostas humanas, até a
presente data nenhum chatterbot conseguiu ganhar o prêmio (LOEBNER, 2003).
Dentre muitos chatterbots existentes, alguns se destacaram nesses torneios. Por
exemplo, o Chatterbot Ella utiliza uma mistura de algoritmos e técnicas. São feitas escolhas
de funções, conteúdos e prioridades dependendo da cada pergunta (ELLA, 2003). O Albertone utiliza o método de força bruta baseado em conversas anteriores. Através da verificação
da freqüência das palavras, o programa reduz as sentenças para buscar as respostas. São
fornecidas respostas genéricas através da observação do comportamento das perguntas. O
Chatterbot estipula uma determinada importância para cada palavra-chave identificada e em
seguida utiliza um algoritmo de busca para as três palavras-chaves mais importantes. O
resultado da busca é bom, entretanto, não funciona sempre (ALBERT-ONE, 2003).
O Tinymud utiliza uma tecnologia de camadas baseada em prioridades, cada camada
equivale a um mini-perito em um determinado assunto. O programa faz a seleção dentre
várias respostas possíveis de acordo com alguns critérios (MAULDIN, 1994), tais como:
• Identificação de palavras chaves;
• Uso de rede de ativação com respostas orientadas a tópicos, com análise de peso de
cada nó;
• Respostas sobre a personalidade do Chatterbot ou perguntas de senso comum. Essas
respostas foram coletadas do log de interação do Chatterbot. Exemplo: “Onde você mora?”,
“Quanto é 2 vezes 23?” e “Qual a cor do seu cabelo?”;
• Pedidos de desculpas sobre algo que o Chatterbot não sabe ou respostas estratégicas
para situações de falta de conhecimento sobre um determinado assunto.
Com o uso da linguagem AIML e AIML Plus (NEVES, 2005), o Chatterbot Pixel
mantém conversas genéricas com as pessoas com o objetivo de entretenimento. Na mesma
29
linha de trabalho, Silva desenvolveu novas tags de marcação em AIML Plus com o objetivo
de gerar uma interface mais amigável de acesso a Internet, através do uso de linguagem
natural, e para diminuir a complexidade da busca dos usuários. Este recurso vai permitir que o
Chatterbot possa atualizar automaticamente suas respostas (SILVA, 2002). Com o objetivo de
oferecer novas possibilidades para a linguagem AIML, a arquitetura Persona-AIML propõe
uma extensão do AIML original, através da inclusão de traços, atitudes, humor, emoções e
estados físicos na base de conhecimento do chatterbot com o objetivo de incluir
personalidade ao chatterbot (GALVÃO, 2003).
Alguns chatterbots com o propósito de apoio ao processo de aprendizagem merecem
destaque, por exemplo, o projeto Virtusbot utiliza um chatterbot como ferramenta pedagógica
para auxiliar a interação entre os usuários de comunidades virtuais de aprendizagem
(VIRTUS, 2003). Na mesma linha de trabalho o ConsultBot auxilia no aprendizado de tópicos
estudados por alunos de comunidades virtuais de aprendizagem (LAUREANO, 1999). A
ferramenta de autoria AutoChatter propõe a construção do conhecimento de chatterbots
através da inclusão de perguntas e respostas com o objetivo de auxiliar o processo de
aprendizagem de conteúdos específicos (CASTANHO, 2002). O BonoBOT é utilizado no
Semeai, ambiente de aprendizagem baseado em agentes inteligentes, para apoiar o processo
de aprendizagem (SGANDERLA, 2003) , e por último, o Chapa, chatterbot que identifica e
armazena as contribuições mais interessantes de alunos nas sessões de bate-papo do ambiente
de Educação à Distância TelEduc, com o objetivo de auxiliar o professor no acompanhamento
do processo de aprendizagem dos alunos. As mensagens interessantes são selecionadas com
base em um dicionário de dados específicos, criado para cada usuário, por meio das técnicas
de aprendizagem inerentes ao conceito de agentes de interface (LACHI, 2003).
O tratamento de intenção em Chatterbots proposto por Neves tem o objetivo de
melhorar o desempenho de chatterbots em diálogos livres com os interlocutores (NEVES,
2005). O processo de Interpretação de mensagens ocorre em três níveis. O primeiro se refere
ao tratamento sintático, que consiste essencialmente de relações estruturais da mensagem. O
segundo se refere ao tratamento semântico, que consiste nas relações entre as mensagens e os
objetos. Por fim, o terceiro se refere ao tratamento pragmático, que consiste nas relações entre
as mensagens e os sujeitos. O trabalho foi baseado na teoria da análise da conversação (TAC)
(MARCUSCHI, 1986). Essa teoria propõe o tratamento do contexto global de um diálogo
para evitar problemas de mudanças de turnos (abertura, desenvolvimento e fechamento) sem
observar a estrutura global do diálogo.
30
Dentre os diversos Chatterbots pesquisados, com exceção da ferramenta AutoChatter,
que tem o objetivo de auxiliar a aprendizagem através da construção do conhecimento do
chatterbot pelos alunos e o do chatterbot denominado Chapa, que tem o objetivo de auxiliar o
acompanhamento do desempenho do aluno, foi possível constatar que, independente da
tecnologia utilizada, a deficiência dos chatterbots está na modelagem da base de
conhecimento. Técnicas sofisticadas não são garantia de um bom bate-papo. Toda vez que
surgirem perguntas especificas sobre um determinado domínio do conhecimento, o
Chatterbot vai falhar ou fugir do assunto.
Através da interação com chatterbots disponíveis na Internet e da troca de
informações com pesquisadores da área, tem-se observado que, quando um chatterbot não é
capaz de responder a maioria das perguntas elaboradas, os usuários se sentem desmotivados e
desistem da interação. Um chatterbot desenvolvido com o objetivo de auxiliar o processo de
recuperação de informação na Internet ou em ambientes de aprendizagem precisa atender um
nível mínimo das expectativas para não causar o desinteresse na utilização desse recurso.
31
FUNDAMENTOS DE RECUPERAÇÃO DE INFORMAÇÃO
Há aproximadamente 4000 anos o homem já organizava e armazenava informações
para uso futuro. Com a evolução das técnicas de registro do conhecimento, surgiu a escrita,
que possibilitou a ampliação das formas de registro e recuperação de informação. Com o
surgimento da imprensa e crescimento pela busca de informação, gerada pela revolução
industrial, ocorreu uma grande expansão e evolução nas formas de registro do conhecimento.
Em seguida, a palavra “Informação” ficou popularmente conhecida (BAEZA-YATES, 1999)
(FERNEDA, 2003).
Na década de 60 surgiu o conceito de Ciência da Informação como o resultado das
conferências do Georgia Institute of technology. Ciência da Informação foi definida como a
ciência que investiga as propriedades e o comportamento da informação, as formas que regem
o fluxo da informação e os meios de processamento da informação para uma acessibilidade e
usabilidade ótimas.
Com a evolução e o crescimento do volume de informações armazenadas, os objetos
rudimentares que as armazenavam foram aos poucos substituídos por estruturas de dados
capazes de armazenar e recuperar informação rapidamente. Uma dessas estruturas populares
criadas com o objetivo de recuperar informação com rapidez através de determinadas palavras
e conceitos foi o índice. O índice é um elemento importante que está presente nas pesquisas
atuais da área de recuperação de informação.
O surgimento dos computadores digitais contribuiu expressivamente no processo
evolutivo da Ciência da Informação. Os primeiros resultados no tratamento computacional da
informação foram a indexação automática e a elaboração automática de resumos. Nessa
mesma época surgiu o termo “Information Retrieval” ou Recuperação de informação (RI) que
definiu a recuperação de informação como a área que trata dos aspectos intelectuais da
descrição da informação e sua especificação para a busca, e também de qualquer sistema,
técnicas ou máquinas que são empregadas para realizar esta operação. A recuperação de
informação automática através de algum método computacional pode ser considerada como
uma evolução tecnológica da Ciência da informação através dos recursos da Ciência da
Computação.
Nos últimos 20 anos a área de RI cresceu além dos objetivos básicos de indexação de
textos e busca de documentos em uma coleção. Atualmente as pesquisas em RI incluem
32
modelagem, classificação e categorização de documentos, interface de usuário, visualização
de dados, filtragem, linguagens e etc.
O surgimento da World Wide Web (Web), no início dos anos 90, ocasionou mudanças
de larga envergadura no direcionamento das pesquisas nessa área. A Web se tornou um
gigantesco repositório de conhecimento humano, que está possibilitando o compartilhamento
de conhecimento em uma escala jamais observada anteriormente. Esse avanço também
ocasionou o surgimento de novos problemas. Achar informação útil na Web se tornou uma
tarefa difícil. O maior obstáculo na busca de informações na Web é a falta de um modelo de
dados bem definido e estruturado. Essas dificuldades renovaram os interesses dos
pesquisadores da área.
Atualmente as pesquisas na área de RI envolvem a integração de várias áreas
relacionadas. As pesquisas englobam recuperação de textos, sistemas de bibliotecas,
recuperação de dados multimídia e bibliotecas digitais.
3.1 MODELOS CLÁSSICOS DE RECUPERAÇÃO DE INFORMAÇÃO
Os modelos clássicos de recuperação de informação são: O modelo booleano, o
vetorial e o probabilístico. No modelo booleano, documentos e consultas são representados
por um conjunto de termos de indexação para indexar e recuperar documentos. Esses termos,
também conhecidos como keywords13 podem estar presentes ou ausentes em um determinado
documento. No modelo vetorial, documentos e consultas são representados por vetores no
espaço euclidiano de t-dimensões. No modelo probabilístico, documentos e consultas são
representados pelas teorias da probabilidade. Com o passar dos anos surgiram outros modelos
baseados nos modelos clássicos.
As pesquisas baseadas no modelo vetorial se destacam devido à simplicidade,
velocidade e facilidade de computação do fator de similaridade entre termos e documentos.
3.2 MODELO VETORIAL
No modelo vetorial, os documentos e consultas são representados por vetores no
espaço euclidiano. Cada elemento do vetor de termos é considerado uma coordenada
dimensional, na qual “t” é o número de termos e “W” é o peso que representa a posição do
termo em cada dimensão do espaço euclidiano.
33
r
Esses vetores serão representados por uma matriz M = ( M tN ), a matriz de termos e
documentos, sendo que as linhas representam os termos e as colunas representam os
documentos ou arquivos. Cada elemento M tN da matriz representa o peso de um termo em um
r
determinado documento. A figura 4 apresenta a matriz M .
 M 11
M
 21
 ...

 M t1
M 12
M 22
...
M t2
... M 1N 
... M 2 N 
... ... 

... M tN 
Figura 4. Matriz de termos versus documentos.
O peso do termo é o elemento que qualifica a relação entre o termo e o documento,
além de especificar o tamanho e a direção do vetor que representa o documento.
O vetor de um documento d j é representado por d j = ( W1. j , W2. j , ..., Wt . j ), onde
Wi. j >= 0 é peso do termo i no documento j e t corresponde ao total de termos de indexação. O
vetor de consultas q é representado por q = ( W1.q , W2.q , ..., Wt .q ) , sendo que Wi.q representa
o peso de um termo i para a consulta q .
Dado um documento d j e uma consulta q podemos representá-los em um plano de tdimensões, onde cada dimensão representa um termo. O objetivo é avaliar o grau de
similaridade entre os documentos d j e uma consulta q . Essa correlação entre os vetores d j e
q é dada pelo co-seno do ângulo entre os dois vetores, conforme é apresentado na figura 5.
sim(d j .q ) =
d •q
dj xq
=
∑
∑
t
i =1
t
i =1
wi , j x wi . q
wi2. j x
∑
t
j =1
wi2.q
Figura 5. Cálculo da similaridade através do co-seno de Θ.
13
São termos ou palavras-chaves que se repetem em um texto.
34
Apesar de o modelo vetorial ser mais utilizado, o custo computacional pode ficar
muito alto dependendo do número de termos e documentos a serem processados pela matriz
de termos versus documentos. Além disso, muitos documentos irrelevantes podem fazer parte
da matriz de termos versus documentos e consultas que contenham termos sinônimos das
keywords previamente indexadas podem não recuperar documentos relevantes.
Dentre as situações que podem ocasionar os problemas acima, merecem destaque as
limitações ocasionadas por problemas de: polissemia14, sinonímia15, frases16, contexto local17
e contexto global18 (RILOFF, 1994).
Com o objetivo de minimizar os problemas gerados por falsos resultados de
comparações léxicas, o método LSI tende a realçar as relações entre os documentos através da
identificação de estruturas semânticas ocultas nas relações entre termos e documentos.
(DEERWESTER, 1990).
3.3 MÉTODO DO LSI
A proposta do LSI é o mapeamento dos vetores de documentos e consultas em um
espaço vetorial reduzido associado aos conceitos.
Sendo t o número de termos em uma coleção de documentos e N o número total de
r
documentos, será definido como M = ( M tN ) a matriz de termos e documentos, sendo que, as
linhas representam os termos e as colunas representam os documentos. Cada elemento M tN da
matriz representa o peso de um termo em um determinado documento.
r
O LSI propõe a decomposição da matriz M em três matrizes através do método
Singular Value Decomposition19 (SVD), de tal forma que o produto dessas matrizes seja igual
r
r
r r r
a matriz M , conforme a fórmula: M = K S D t . A figura 6 demonstra o processo.
14
Fato lingüístico que ocorre quando uma palavra possui muitos significados.
15
Fato lingüístico que se caracteriza pela existência de palavras sinônimas. Ocorre quando existem várias formas
de se referenciar algo.
16
Palavras que são bons indexadores apenas em frases específicas.
17
Algumas palavras e frases que são bons indexadores apenas em locais específicos.
18
Alguns documentos não contêm nenhuma palavra ou frase que são bons indexadores, a relevância do
documento depende de uma sentença, parágrafo ou todo o texto.
19
Singular Value Decomposition está relacionado a técnicas matemáticas e estatísticas que incluem
decomposição de auto-vetores e análises espectral e de fatores.
35
 M 11
M
 21
 ...

 M t1
M 12
M 22
...
M t2
... M 1N 
... M 2 N 
... ... 

... M tN 
Decomposição
SVD
 K11
K
 21
 ...

 K t1
K12 ... K1r 
K 22 ... K 2 r 
x
... ... ... 

K t 2 ... K tr 
 S11
0

 ...

 0
0
S 22
...
0
0   D11
... 0   D21
x 
... ...   ...
 
... S rr   Dr1
...
D12
D22
...
Dr 2
... D1N 
... D2 N 
... ... 

... DrN 
Figura 6. Decomposição da matriz termos versus documentos em três matrizes utilizando o
método SVD.
r
K é a matriz dos auto-vetores obtida da correlação termos versus termos dada pela
r
r
r
multiplicação da matriz M vezes a sua transposta M t . D t é matriz dos auto-vetores obtida
da transposta da matriz de documentos versus documentos dada pela multiplicação da matriz
r
r
r
M t vezes M . S é matriz diagonal com r linhas e r colunas, sendo r = min(t,N) da matriz
r
r
M . Os elementos da diagonal principal da matriz S são números positivos dispostos em
ordem decrescente da esquerda para a direita.
Um passo importante no LSI é a definição do valor k de redução do espaço vetorial,
sendo k < t. O valor de k define o número de linhas e colunas que serão consideradas
r
relevantes para os cálculos. Na matriz K serão desprezadas as (t – k) últimas colunas. Na
r
r
matriz S serão desprezadas as (t – k) últimas linhas e colunas. Na matriz D t serão
desprezadas as (t – k) últimas colunas.
O valor de k deve ser grande o suficiente para incluir os dados de interesse e pequeno
o bastante para filtrar os detalhes não representativos. O valor de k é empírico, entretanto, é
possível ajustar o valor de k de acordo com resultados obtidos nos experimentos. A figura 7
apresenta o processo de redução.
36
 K11
K
 21
 ...

 K t1
K12
K 22
...
Kt2
... K1r   S11

... K 2 r   0
,
... ...   ...
 
... K tr   0
0   D11
... 0   D21
, 
... ...   ...
 
... S rr   Dr1
0
...
S 22
...
0
D12
D22
...
Dr 2
... D1N 
... D2 N 
... ... 

... DrN 
Redução pelo
fator k
 K11
K
 21
 ...

 K t1
K12
K 22
...
Kt2
... K1k   S11

... K 2 k   0
,
... ...   ...
 
... K tk   0
0   D11
... 0   D21
, 
... ...   ...
 
... S kk   Dk1
0
...
S 22
...
0
r
r
D12
D22
...
Dk 2
... D1N 
... D2 N 
... ... 

... DkN 
r
Figura 7. Redução das matrizes K , S e D t pelo fator k.
Após o processo de redução das matrizes, conforme demonstrado na figura 4, o
próximo passo consiste em multiplicar as matrizes reduzidas. O produto dessa multiplicação
r
resultará na matriz M r que consiste em uma matriz de t linhas e N colunas que se aproxima
r
r
da matriz original M . A matriz M r tende a realçar os valores semânticos ocultos na matriz
r
r
M . A multiplicação, ou seja, a composição da matriz M r é mostrada na figura 8.
 K11
K
 21
 ...

 K t1
K12
K 22
...
Kt2
... K1k   S11

... K 2 k   0
x
... ...   ...
 
... K tk   0
0
S 22
...
0
0   D11
... 0   D21
x 
... ...   ...
 
... S kk   Dk1
...
D12
D22
...
Dk 2
... D1N 
... D2 N 
... ... 

... DkN 
Composição
da matriz
r
Mr
 Mr11
 Mr
 21
 ...

 Mrt1
Mr12
Mr22
...
Mrt 2
r
... Mr1N 
... Mr2 N 
...
... 

... MrtN 
r
r
r
Figura 8. Composição da matriz M r através das matrizes K , S e D t reduzidas.
37
r
Através da matriz M r é possível obter o grau de similaridade entre documentos com o
r
realce das estruturas semânticas ocultas presentes na matriz M , ao aplicar a equação
r
apresentada na figura 11 para cada par de colunas (documentos) da matriz M r .
Devido ao grande volume de informações textuais não estruturadas na Internet, estão
surgindo muitas pesquisas com o objetivo de propor alternativas para facilitar a recuperação
de informações que satisfaçam as necessidades das pessoas. Dentre as pesquisas nessa área,
merecem destaque aquelas relacionadas a descoberta, filtragem, manipulação e classificação
de informação em documentos textos (WIVES, 1999).
3.4 AGRUPAMENTO E CATEGORIZAÇÃO DE DOCUMENTOS
Agrupar objetos é uma tarefa realizada desde o início da existência das bibliotecas.
Antes da criação dos primeiros computadores as pessoas já realizavam o agrupamento manual
de objetos com o objetivo de facilitar a localização de informação.
A classificação ou categorização de documentos engloba duas etapas. A primeira diz
respeito ao processo de agrupamento. Esse processo consiste na identificação das
características comuns e não comuns entre documentos. Os documentos com características
comuns serão agrupados em uma mesma classe e os que não possuem essas características
deverão permanecer em classes diferentes. A segunda diz respeito ao processo de
identificação da classe que um documento deve pertencer.
Dentre os tipos de agrupamento, merecem destaque os que tratam do agrupamento de
informações textuais (documentos) não estruturadas. O agrupamento de documentos possui
basicamente dois tipos. O primeiro, tem o objetivo de agrupar termos (palavras) para formar
grupos que definam um mesmo assunto. Esses grupos irão compor um dicionário de palavras,
também conhecido por thesaurus. O segundo busca organizar um conjunto desorganizado de
documentos em grupos contendo os documentos similares.
O objetivo do agrupamento de informações textuais é separar uma série de
documentos dispostos de forma desorganizada em um conjunto de grupos que contenham
documentos de assuntos similares. Esse objetivo está baseado no princípio da Hipótese de
Agrupamento (Cluster Hypothesis), levantado por Rijsbergen. Este princípio diz que objetos
semelhantes e relevantes a um mesmo assunto tendem a permanecer em um mesmo grupo
(cluster), pois possuem atributos em comum. A figura 9 apresenta uma visão geral do
38
processo de agrupamento de documentos contendo informações textuais (RIJSBERGEN,
1979).
Figura 9. Visão geral das técnicas de agrupamento de documentos.
Quanto à forma um agrupamento pode ser feito por partição ou por hierarquia. Na
primeira, os objetos são distribuídos em classes distintas, não havendo relação direta entre as
classes. Essa forma é conhecida como partição total (flat partition), os documentos são
separados exaustivamente e colocados em grupos totalmente diferentes. Na segunda, também
conhecida como partição hierárquica (hierarchic partition), o processo de identificação de
grupos é realimentado recursivamente, utilizando tanto objetos quanto grupos já identificados
previamente como entrada para o processamento. Essa partição gera uma hierarquia de grupos
de objetos em forma de árvore invertida.
Devido ao crescimento da internet observa-se o crescimento das pesquisas envolvendo
o agrupamento de documentos com informações textuais não estruturadas. Dentre essas
pesquisas, merecem destaque as que utilizam a forma de partição total através das técnicas
pertencentes à classe graphic-theoretic. Essas técnicas possuem três etapas: identificação e
seleção de características, cálculo de similaridade e identificação de aglomerados (Clusters).
A etapa de identificação e seleção de características faz a identificação das
características dos documentos, ou seja, é feita a identificação de palavras nos documentos
para identificar as que possuem maior grau de discriminação (que caracterizam melhor o
39
documento). O resultado dessa etapa é a geração de uma lista de palavras (características)
relevantes que identificam cada documento.
A etapa de cálculo de similaridades identifica os graus de similaridades entre os
documentos, utilizando a lista das características identificadas na etapa anterior. O resultado
dessa etapa gera uma matriz que contém os valores de similaridade entre os objetos. A
similaridade entre os documentos é proporcional ao número de características entre eles.
A etapa de agrupamento de identificação de aglomerados identifica a correlação entre
os elementos da matriz, de acordo com as restrições impostas pelo algoritmo em uso. O
resultado dessa etapa gera os grupos e seus respectivos documentos.
A figura 10 apresenta uma visão geral das três etapas do processo de agrupamento de
documentos.
40
Figura 10. Visão geral das etapas do processo de agrupamento de documentos.
41
Dentre os algoritmos pertencentes à classe graphic-theoretic, podemos citar os
seguintes algoritmos: Cliques, Stars, Connected Components, Strings e (KOWALSKI, 1997).
O algoritmo Cliques exige que todos os objetos do cluster sejam similares entre si,
respeitando um limite mínimo de similaridade entre os objetos. Esse algoritmo apresenta uma
alta coesão entre os objetos.
O algoritmo Stars faz a seleção de um elemento e identifica todos os elementos
similares a ele, de acordo com um fator mínimo de similaridade. Através de um item central é
feita a conexão de todos os outros componentes do grupo, de forma similar a figura de uma
estrela.
O algoritmo Connected Components, também conhecido como single link, trabalha de
forma similar ao Cliques; entretanto, os objetos similares de um cluster não precisam
necessariamente ser similares com todos os outros objetos do mesmo cluster.
O algoritmo Strings constrói uma cadeia de objetos similares, essa cadeia é semelhante
a uma cadeia de caracteres (string). Cada objeto “A” se conecta a um objeto B que se conecta
a um objeto C, e assim sucessivamente até que não existam mais conexões. O método
consiste em criar uma classe com o primeiro objeto, localizar o próximo objeto similar e
adicioná-lo na mesma classe. Em seguida é feita a seleção de um novo objeto (último a entrar
no cluster) com o objetivo de localizar o objeto mais similar a ele. Esse processo será repetido
até que não existam mais objetos similares.
Dentre os algoritmos de agrupamento pesquisados, foi constatado que o Cliques
atende as necessidades do problema de classificação de padrões de conversação, pois ele
exige que todos os documentos (arquivos) de uma mesma categoria possuam o mesmo limite
mínimo de similaridade. Esse requisito é necessário para o problema de classificação dos
padrões de conversação. Esse algoritmo será utilizado na etapa 8 da proposta de construção
das bases de conhecimento. Essa etapa será apresentada no próximo capítulo.
42
METODOLOGIA DE CONSTRUÇÃO DAS BASES DE
CONHECIMENTO
O processo de construção de chatterbots envolve duas tarefas. A primeira está
relacionada ao desenvolvimento de mecanismos de processamento de linguagem natural. A
segunda está ligada a criação de bases de conhecimento. A tecnologia ALICE engloba as duas
tarefas através da integração dos dados (unidades de conhecimento na linguagem AIML) com
funções de controle do processamento.
O grande desafio dos pesquisadores de chatterbots é identificar a forma como as
pessoas elaboram perguntas sobre dúvidas de um determinado domínio do conhecimento.
Algumas técnicas baseadas na psicologia Rogeriana conseguem estabelecer um diálogo,
entretanto, elas não são capazes de responder perguntas específicas que podem ser elaboradas
de diversas formas (WEIZENBAUM, 1966).
A criação de unidades de conhecimento que permitam a realização de diálogos é uma
tarefa manual, realizada por botmasters através da utilização dos recursos da linguagem
AIML e com o aproveitamento dos logs das interações realizadas com o chatterbot. Com o
passar do tempo e com o aumento no volume de interações é possível criar roteiros de
diálogos e respostas para perguntas diversas que normalmente são feitas pelas pessoas que
conversam com os chatterbots. Um bom exemplo é o Chatterbot ALICE (WALLACE, 2005).
Dentre os pontos importantes no processo de construção de bases de conhecimento de
um chatterbot baseado na tecnologia ALICE merecem destaque: O tratamento de intenção, a
criação de unidades de conhecimento que permitam a realização de diálogos, principalmente
em situações nas quais o chatterbot não está habilitado para responder e a criação de unidades
de conhecimento que contenham perguntas e respostas sobre um determinado domínio do
conhecimento.
O tratamento de intenção utiliza informações de intencionalidade com o objetivo de
corrigir uma série de problemas que ocorrem com freqüência em diálogos realizados pelos
chatterbots existentes. Um exemplo disso ocorre quando o sistema não leva em conta a
estrutura global de uma conversação (abertura, desenvolvimento e fechamento). Por exemplo,
quando ocorre uma saudação na finalização de um diálogo (NEVES, 2005).
A criação de unidades de conhecimento com perguntas e respostas sobre um
determinado domínio do conhecimento é um ponto muito importante, pois fará com que o
chatterbot seja capaz de esclarecer dúvidas de usuários nos mais diversos domínios do
43
conhecimento. Além disso, um dos principais problemas encontrados na maioria dos
Chatterbots é a falta de uma base de conhecimento consistente que permita ao Chatterbot
responder perguntas específicas sobre um determinado domínio do conhecimento. O foco
desse trabalho é propor uma alternativa para tratar esse ponto do processo de construção de
bases de conhecimento à luz dos fundamentos da lingüística de corpus.
4.1 LINGÜÍSTICA DE CORPUS
A lingüística de corpus ocupa-se da coleta e da exploração de corpora20, ou conjunto
de dados lingüísticos textuais coletados criteriosamente, com o propósito de servirem para a
pesquisa de uma língua ou variedade lingüística.
Desde o início do século XX se estuda a estrutura de uma língua baseada na
metodologia de corpus (MCENERY, 2003). Com o passar dos anos, os cientistas foram
percebendo a importância desta área que hoje conta com muitos colaboradores. A evolução da
informática trouxe contribuições importantes para a Lingüística de Corpus. Atualmente a
maioria dos trabalhos utiliza softwares para criar e analisar um corpus (BERALDI, 2001).
A Linguistíca de Corpus dedica-se à exploração da linguagem por meio de evidências
empíricas, extraídas por computador. Um marco nesta área de pesquisa foi o lançamento, em
1964, do corpus brown, primeiro corpus lingüístico criado através da utilização de cartões
perfurados (SARDINHA, 2004).
Para ser considerado um corpus computadorizado um texto deve conter os seguintes
pré-requisitos:
1. Ser composto por textos autênticos, em linguagem natural, escritos por falantes
nativos, com o propósito específico de pesquisa lingüística.
2. Os textos devem ser escolhidos criteriosamente, obedecendo a um conjunto de
regras pré-estabelecidas por seus criadores. A escolha dos textos deve englobar o maior
número possível de textos selecionados de forma aleatória, a fim de não contaminar a coleta
com dados indesejáveis.
3. Ser representativo, o corpus deve ser o maior possível e de preferência, deve ser
oriundo das mais diversas fontes.
20
Plural de corpus em latim
44
Através da análise de um corpus é possível identificar, e freqüentemente são
identificados fatos a respeito de uma língua que nunca se pensou em procurar. Por exemplo, é
possível identificar inovações lexicais em determinada língua.
A maior concentração das pesquisas em lingüística de corpus está no paradigma
informal baseado em concordâncias, tendo a descrição da linguagem com a principal área de
pesquisa.
4.2 PADRÕES DE LINGUAGEM
Muitos pesquisadores buscam a identificação de padrões lexicais de uma linguagem.
Diversos trabalhos já foram realizados nesta linha de pesquisa.
Um padrão é definido como um conjunto de palavras que ocorrem em uma
determinada freqüência, tendo em comum uma palavra específica e um significado associado.
A identificação de padrões busca a resposta para os seguintes questionamentos:
• Quais os padrões lexicais dos quais a palavra faz parte?
• A palavra se associa regularmente com outros sentidos específicos?
• Em quais estruturas ela aparece?
• Há uma correlação entre o uso/sentido da palavra e as estruturas das quais ela
participa?
• A palavra está associada à uma certa posição na organização textual?
O fenômeno da colocação é o mais tradicionalmente enfocado no estudo de corpus. De
acordo com Firth (FIRTH, 1957), uma palavra deve ser julgada por sua companhia. Existem
três definições principais, segundo Partington (PARTINGTON, 1998):
1.
Textual: É a ocorrência de duas ou mais palavras distantes um pequeno espaço de
texto uma das outras;
2.
Psicológica: Consiste nas associações que uma palavra faz por conta dos sentidos
das outras palavras que tendem a ocorrer no seu ambiente.
3.
Estatística: A relação que um item lexical tem com itens que aparecem com
probabilidade significativa no seu contexto.
45
4.3 VISÃO GERAL DA METODOLOGIA DE CONSTRUÇÃO DAS BASES
DE CONHECIMENTO
A figura 11 apresenta uma visão geral da proposta de construção das bases de
conhecimento de chatterbot na linguagem AIML. A etapa 1 representa a recuperação dos
dados que darão origem aos corpora. A etapa 2 é responsável pela conversão dos arquivos
recuperados em arquivos textos. A etapa 3 demonstra a recuperação dos padrões de acordo
com um lista de padrões definida pelo especialista à luz dos princípios da lingüística de
corpus. A etapa 4 faz a redução dos padrões recuperados. Os padrões repetidos ou que não
interessam aos corpora serão eliminados. A etapa 5 faz a transformação dos padrões em
pequenos arquivos textos, nos quais cada um terá um padrão. A etapa 6 lê os arquivos textos e
gera uma matriz de termos versus documentos, na qual as linhas representam os termos e as
colunas os documentos. Cada item da matriz representa a freqüência do termo no respectivo
documento. A etapa 7 é responsável pelo processamento da matriz de termos versus
documentos através de modelos para a recuperação de informação para a geração de uma
matriz de similaridade entre os documentos. A etapa 8 faz a leitura da matriz de similaridades
e gera um arquivo com as informações das categorias de acordo com um percentual mínimo
de similaridade escolhido. A etapa 9 faz a leitura das informações sobre as categorias e gera
um arquivo com os padrões categorizados. A etapa 10 representa a tarefa de manipulação dos
padrões categorizados pelos especialistas. Padrões similares ou que não interessam serão
eliminados. A etapa 11 faz a leitura dos padrões manipulados pelos especialistas e executa a
busca das respectivas respostas nas bases de dados. A etapa 12 representa a identificação e
ajustes das respostas dos padrões pelos especialistas e a geração de um arquivo com as
perguntas e suas respectivas respostas. A etapa 13 faz a leitura do arquivo com as perguntas e
respostas e gera as bases de conhecimento na linguagem AIML.
46
Figura 11. Visão geral da proposta de construção das bases de conhecimento.
4.4 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS
Essa etapa é responsável pela obtenção das bases de dados que irão compor os
corpora. Quanto maior o número de arquivos sobre o domínio do conhecimento, maiores
serão as possibilidades de construção dos corpora. Antes do início da recuperação dos dados,
os especialistas no domínio do conhecimento deverão fazer uma seleção dos dados mais
apropriados para compor um determinado domínio do conhecimento. Dentre as diversas
fontes de dados é sugerida a recuperação de artigos, apostilas, páginas web (principalmente
páginas de FAQs), chats e fóruns.
A figura 12 apresenta uma visão geral da etapa 01, que consiste na seleção e obtenção
dos dados que darão origem aos corpora. Caso os dados estejam disponíveis na Internet é
recomendada a utilização de programas off-line browser para a obtenção dos dados.
Figura 12. Visão geral da etapa 01 – recuperação de dados.
47
4.5 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS
Todo arquivo recuperado deve ser transformado em arquivo texto, pois o problema em
questão prevê o tratamento de dados textuais não estruturados. Esse tipo de dado é
característico da Internet, a qual será a principal fonte de dados para a construção dos
corpora. Essa etapa utiliza como exemplo a conversão de arquivos html em arquivos textos
por se tratar da situação mais comum na utilização da metodologia proposta, entretanto,
qualquer fonte de dados poderá ser utilizada desde que exista a possibilidade de conversão
para o formato de arquivo texto puro. Toda a metodologia proposta está baseada no
tratamento de arquivos textos.
A figura 13 apresenta uma visão geral da etapa 02, que consiste na conversão de
arquivos html em texto para a geração da base de dados de arquivos de textos.
Figura 13. Visão geral da etapa 02 – Conversão de arquivos html em textos.
4.6 ETAPA 03 – EXTRAÇÃO DE PADRÕES
A modelagem dos padrões de conversação é uma etapa importante no processo de
construção do conhecimento do chatterbot. Esses padrões vão permitir que o chatterbot
responda perguntas bem específicas sobre um determinado domínio do conhecimento. Isso
ocorre graças ao grande número de sites que discutem dúvidas sobre diversos assuntos na
Internet. Por exemplo, se o aprendiz fizer uma pergunta bem específica do tipo: “Como faço
para mudar a porta de comunicação do modem?”, o chatterbot será capaz de responder, pois
em algum chat, fórum, FAQ ou site na Internet, essa pergunta já foi feita.
Para que as bases de conhecimento do chatterbot sejam capazes de responder
perguntas específicas é necessário obter muitas bases de dados, contendo padrões de
conversação extraídos de textos autênticos em linguagem natural e escritos por falantes
nativos da língua portuguesa.
48
Através da observação de amostras dos corpora e resultados de experimentos
apresentados por Sardinha e após uma análise dos corpora extraídos do http://www.rautu.unicamp.br (rau-tu21), foi possível concluir que um conjunto de 17 palavras é suficiente
para identificar um padrão de conversação.
A figura 14 apresenta uma visão geral da etapa 03, que consiste na extração de
padrões contidos na base de dados e arquivos textos através de uma lista de padrões definida
pelos especialistas no domínio do conhecimento para gerar os corpora de padrões.
Figura 14. Visão geral da etapa 03 – Extração de padrões.
4.7 ETAPA 04 – REDUÇÃO DOS CORPORA
Devido as características específicas das bases de dados, principalmente nos corpora
extraídos de chats e fóruns, haverá a ocorrência de padrões repetidos e outros que não
interessam aos objetivos do trabalho. Por exemplo, em fóruns é comum a ocorrência de várias
respostas para uma mesma pergunta e muitos programas costumam repetir a pergunta no
momento em que um participante encaminha a resposta. Por isso, essa etapa prevê a exclusão
de padrões repetidos ou padrões específicos que se repetem muito e que não interessam aos
corpora.
A figura 15 apresenta uma visão geral da etapa 04, que consiste na redução de padrões
repetidos ou dos padrões específicos determinados pelos especialistas após uma análise nos
corpora de padrões.
21
Sistema coorporativo de perguntas e respostas.
49
Figura 15. Visão geral da etapa 04 – Redução dos corpora.
4.8 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS
ARQUIVOS
Após a conclusão da preparação dos corpora é preciso realizar mais uma etapa antes
do início das etapas de processamento dos corpora. O processamento dos corpora prevê o
tratamento de arquivos textos, pois nas etapas seguintes está previsto a categorização dos
padrões. Por isso, é preciso transformar cada padrão em um arquivo texto para permitir a
indexação dos corpora.
A figura 16 apresenta uma visão geral da etapa 05, que consiste na criação de
pequenos arquivos textos, sendo que, cada um deles conterá um padrão dos corpora de
padrões.
Figura 16. Visão geral da etapa 05 – Transformação dos corpora em pequenos arquivos.
50
4.9 ETAPA 06 – INDEXAÇÃO DOS CORPORA
Após o processo de redução dos corpora ainda existirão muitas similaridades entre os
padrões. Isso ocorre devido às características de discussão, presentes em documentos
extraídos de chats e fóruns. Para evitar o tratamento de dados repetidos e facilitar a etapa da
análise dos corpora pelos especialistas é proposta a categorização dos padrões repetidos ou
similares, pois esse processo permitirá a identificação dos padrões que não interessam.
Mesmo em arquivos pequenos, a categorização manual é um trabalho cansativo que
está sujeito a muitos erros e, no caso do problema proposto, o trabalho seria muito grande.
Seriam necessários vários meses de trabalho para categorizar manualmente os padrões de
conversação. Para evitar a categorização manual, é proposta a categorização automática,
através de técnicas de classificação automática de documentos baseadas no modelo vetorial
ou no método LSI.
Antes de iniciar o processo de categorização dos padrões de conversão é necessário
indexar os corpora. A indexação consiste na contagem das ocorrências das palavras nos seus
respectivos arquivos. No problema específico da indexação de arquivos contendo padrões de
r
conversação, cada linha dos corpora será equivalente a um arquivo ou coluna na matriz M .
Além disso, nenhuma palavra será ignorada no processo de indexação, pois para o problema
em questão, isso iria prejudicar o processo de categorização.
A figura 17 apresenta uma visão geral da etapa 06, que consiste na indexação dos
r
corpora e geração da matriz M de termos versus documentos.
Figura 17. Visão geral da etapa 06 – Indexação dos corpora.
4.10 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES.
Essa etapa é responsável pelo processamento da matriz de termos versus documentos
com o objetivo de gerar uma matriz de similaridade contendo o fator de similaridade entre os
51
documentos. O fator de similaridade é representado pelo co-seno do ângulo entre os vetores
d j no espaço euclidiano de t-dimenções, os quais representam os documentos e seus
respectivos termos. Cada dimensão do vetor é representada por um termo com sua respectiva
freqüência no documento (padrão).
A geração da matriz de similaridade pode ser feita através do modelo vetorial ou do
método do LSI. A figura 18 apresenta uma visão geral da etapa 07, que consiste na geração da
matriz de similaridades através do modelo vetorial ou do método LSI. A matriz de
similaridades representa a relação de similaridades entre os documentos (padrões).
Figura 18. Visão geral da etapa 07 – Geração da matriz de similaridades.
4.11 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES
Essa etapa fará a categorização dos padrões dos corpora através do algoritmo do
Cliques conforme descrito na seção 3.4 (WIVES, 1999). Após a definição do percentual
mínimo de similaridade entre os documentos na matriz de similaridades, o algoritmo gerará
um arquivo com as informações sobre os padrões similares que deverão ser categorizados. A
figura 19 apresenta uma visão geral da etapa 08, que consiste na geração dos dados sobre as
categorias de acordo com o percentual mínimo de similaridade escolhido pelos especialistas.
Figura 19. Visão geral da etapa 08 – Categorização da matriz de similaridades.
4.12 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS
Após a conclusão do processo de categorização será feita a geração do arquivo
contendo os padrões categorizados. Essa etapa fará a leitura do arquivo com as informações
sobre os padrões similares que deverão ser categorizados e concomitantemente será feita a
52
leitura dos arquivos com os padrões. Ao término do processamento será gerado um arquivo
contendo todos os padrões categorizados de acordo com as informações dos dados sobre as
categorias. Esse arquivo facilitará o processo de manipulação nos arquivos que será feito nas
próximas etapas. A figura 20 apresenta uma visão geral da etapa 09, que consiste na geração
dos padrões categorizados.
Figura 20. Visão geral da etapa 9 – Geração dos padrões categorizados
4.13
ETAPA
10
-
MANIPULAÇÃO
DOS
PADRÕES
PELOS
ESPECIALISTAS
Os especialistas no domínio do conhecimento farão uma análise nos padrões
categorizados com o objetivo de gerar uma lista com os padrões que realmente irão interessar
para a construção das bases de conhecimento do chatterbot. Os padrões similares ou palavras
que não interessam serão eliminados. Nessa etapa os especialistas não podem alterar as
características básicas dos padrões. Só poderá ser feita a substituição de palavras pelo coringa
“*”, caso contrário, a etapa de busca das respostas não conseguirá localizar os arquivos com
as respectivas respostas para os padrões modificados. A figura 21 apresenta uma visão geral
da etapa 10, que consiste na manipulação dos padrões pelos especialistas.
53
Figura 21. Visão geral da etapa 10 – Manipulação dos padrões
4.14 ETAPA 11 - BUSCA RESPOSTAS
Essa etapa prevê a busca dos nomes dos arquivos que poderão conter as respostas a
partir dos padrões manipulados. O objetivo dessa etapa é evitar que os especialistas tenham
que procurar manualmente os arquivos que possam conter as respostas. Essa etapa fará a
leitura de cada linha (padrão) do arquivo dos padrões manipulados pelos especialistas e em
seguida fará busca na base de dados texto para localizar os arquivos que contenham o padrão.
Ao final dessa etapa será gerado um arquivo texto para cada padrão, sendo que, cada arquivo
gerado conterá o nome dos arquivos que o padrão foi localizado. A figura 22 apresenta uma
visão geral da etapa 11, que consiste na identificação do nome dos arquivos que poderão
conter as respostas dos padrões.
Figura 22. Visão geral da etapa 11 – Busca respostas
54
4.15 ETAPA 12 - IDENTIFICAÇÃO E AJUSTES DAS PERGUNTAS E
RESPOSTAS
A partir dos arquivos contendo o nome dos arquivos que poderão conter as respostas
para os respectivos padrões, os especialistas farão os devidos ajustes nas respostas. Ao final
dessa etapa será gerado um arquivo contendo as perguntas e suas respectivas respostas. A
figura 23 apresenta uma visão geral da etapa 12, que consiste na geração do arquivo de
perguntas e respostas de acordo com a determinação dos especialistas.
Figura 23. Visão geral da etapa 12 – Identificação e ajustes das perguntas e respostas
4.16 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML
Essa etapa consiste na leitura do arquivo de perguntas e respostas e na geração das
bases de conhecimento em AIML. Cada pergunta será colocada entre as tags <pattern> e sua
respectiva resposta será colocada entre as tags <template>. A figura 24 apresenta uma visão
geral da etapa 13, que consiste na geração das bases de conhecimento em AIML a partir do
arquivo com as perguntas e respostas que foi manipulado pelos especialistas no domínio do
conhecimento na etapa anterior.
55
Figura 24. Visão geral da etapa 13 – Geração das bases de conhecimento em AIML.
4.17 CONSIDERAÇÕES
A metodologia proposta tem o objetivo de integrar diversas etapas de preparação,
processamento e manipulação de padrões pelos especialistas no domínio do conhecimento
com o objetivo de gerar bases de conhecimento em AIML a partir de dados caóticos,
principalmente os que são oriundos da internet. A metodologia busca minimizar a intervenção
dos especialistas.
56
SUPORTE COMPUTACIONAL PARA A METODOLOGIA PROPOSTA
Para viabilizar a implantação da metodologia proposta foram desenvolvidos alguns
programas e Scripts para atender a demanda computacional da proposta apresentada. Os
métodos e algoritmos utilizados são clássicos da área de recuperação de informação e já são
utilizados com freqüência em outras pesquisas que buscam solucionar problemas similares.
5.1 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS
Através de programas denominados off-line browsers disponíveis na Internet é
possível recuperar todos os arquivos disponíveis em um determinado site. Caso seja utilizado
algum arquivo com formato diferente de html para compor a base de dados de arquivos texto,
existem outras formas de conversão que permitem converter outros tipos de arquivos para o
formato texto ou html. Por exemplo, existem programas disponíveis na Internet para converter
arquivos PDF em html (SUPERDOWNLOAD, 2005).
5.2 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS
Para converter arquivos html em textos foi desenvolvido um programa na linguagem
shell script do Linux. O programa faz a varredura de todos os arquivos contidos em uma
árvore de diretórios contendo os arquivos html que foram recuperados na etapa anterior e
converte todos para o formato texto. Esse script utiliza o programa lynx (browser em modo
texto), disponível nas mais diversas distribuições do Linux.
A figura 25 apresenta o programa converte-html-txt.sh desenvolvido para atender a
necessidade computacional da etapa 2.
57
Figura 25. Programa que converte arquivos html em textos.
5.3 ETAPA 03 – EXTRAÇÃO DE PADRÕES E ETAPA 11 – BUSCA
RESPOSTAS
Para extrair os padrões de conversação de um determinado domínio do conhecimento,
foi desenvolvido um programa na linguagem C ANSI que lê uma lista de padrões definida
pelos especialistas à luz dos princípios da lingüística de corpus. Em seguida, é feita a leitura
de toda a base de dados de arquivos textos, caractere a caractere, considerando apenas as
58
letras do alfabeto (todos os caracteres especiais serão ignorados, exceto o sinal de
interrogação e os caracteres acentuados serão convertidos para a letra correspondente sem o
acento) em busca de padrões equivalentes. Ao final do processamento o sistema gera os
corpora de padrões extraídos da base de dados. Os corpora consistem em arquivos textos, nos
quais, cada um deles, contém os padrões equivalentes aos presentes na lista de padrões
definida pelos especialistas.
Para atender a necessidade computacional da etapa 11 foram feitas adaptações no
programa desenvolvido para o problema da etapa 3. A diferença é que na etapa 11 o programa
gerará o nome dos arquivos em que o padrão foi localizado e não o padrão propriamente dito,
conforme é feito na etapa 3. Os padrões a serem processados serão oriundos da lista de
padrões manipulados pelos especialistas. Ao final do processamento será gerado um arquivo
texto para cada padrão da lista, no qual o conteúdo terá o nome dos arquivos textos onde o
padrão foi localizado.
As figuras 26 e 27 apresentam uma abstração do programa que faz a extração de
padrões e a busca dos arquivos que podem conter as respostas dos padrões de acordo com
padrões de busca definidos pelos especialistas. Esse programa foi desenvolvido para atender a
necessidade computacional da etapa 3 e 11.
59
Figura 26. Abstração do programa gera-corpora.c e gera-resposta.c.
60
Figura 27. Abstração do programa gera-corpora.c e gera-resposta.c.
61
5.4 ETAPA 04 – REDUÇÃO DOS CORPORA
Para atender a necessidade computacional da etapa 4, a qual prevê a redução dos
corpora gerados na etapa 3, foi desenvolvido um programa na linguagem C ANSI que lê os
corpora de padrões e faz a exclusão dos padrões repetidos ou dos padrões específicos
definidos pelos especialistas de acordo com a especificidade dos corpora gerados. O
programa faz a leitura de um arquivo texto contendo padrões (cada linha corresponde a um
padrão) e gera um novo arquivo texto sem as linhas repetidas e sem os padrões específicos
(que não interessam aos corpora). As figuras 28 e 29 apresentam o programa que foi
desenvolvido para atender a demanda computacional da etapa 4.
62
Figura 28. Apresentação do programa reduz-corpora.c
63
Figura 29. Apresentação do programa reduz-corpora.c
5.5 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS ARQUIVOS
Para atender a demanda computacional da etapa 5 foi desenvolvido um programa na
linguagem shell script do Linux. O programa faz a leitura de um arquivo texto contendo os
padrões reduzidos gerados na etapa 4 e gera um arquivo texto para cada linha (padrão) do
arquivo de padrões. A figura 30 apresenta o programa serapa-linhas.sh.
64
Figura 30. Apresentação do programa separa-linhas.sh
65
5.6 ETAPA 06 – INDEXAÇÃO DOS CORPORA
Para atender a demanda computacional da etapa 6 foi desenvolvido um programa na
r
linguagem C ANSI para indexar os corpora e gerar uma matriz M , sendo que, as linhas
representarão os termos ou palavras e as colunas o padrão (documento). Cada elemento da
matriz representa a freqüência de um determinado termo no respectivo arquivo. O programa
faz uma varredura na base de dados de arquivos textos (cada arquivo texto contém um
padrão) com o objetivo de identificar a freqüência das palavras nos arquivos. Toda palavra
presente no arquivo de palavras ignoradas (stopwords) não serão contabilizadas pelo
programa. As figuras 31 e 32 apresentam uma abstração do programa de indexação que gera a
matriz de termos versus documentos.
66
Figura 31. Abstração do programa gera-termo-doc.c
67
Figura 32. Abstração do programa gera-termo-doc.c
5.7 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES.
Para atender a demanda computacional da etapa 7 foram utilizados dois programas
desenvolvidos na linguagem C++. Esses programas implementam o algoritmo do modelo
vetorial e do método do LSI. Cada programa fará a leitura da matriz de termos versus
documentos e gerará uma matriz de similaridades entre os documentos (padrões) (TEIXEIRA,
2005).
68
5.8 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES
Com o objetivo de processar a matriz de termos versus documentos gerada na etapa 7,
foi utilizado um programa na linguagem C++ que implementa o algoritmo do Cliques.
Através da definição de um percentual mínimo de similaridade entre os documentos
(padrões), o programa processa a matriz de similaridades entre os documentos e gera um
arquivo com as informações sobre os padrões similares e suas respectivas categorias
(TEIXEIRA, 2005).
5.9 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS
Para atender a demanda computacional da etapa 9 foi desenvolvido um programa na
linguagem shell script do linux que lê o arquivo texto com as informações sobre as categorias
que deverão ser geradas e em seguida, gera um arquivo texto contendo os padrões
categorizados. Esse processamento facilita o trabalho de manipulação dos padrões pelos
especialistas. A figura 33 apresenta o programa junta-linhas.sh desenvolvido para atender a
demanda computacional da etapa 9.
69
Figura 33. Apresentação do programa separa-linhas.sh
70
5.10 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML
A partir do arquivo texto contendo as perguntas e suas respectivas respostas que foram
manipuladas pelos especialistas foi desenvolvido um programa na linguagem shell script do
Linux que lê o arquivo texto contendo as pergunta e respostas e gera um arquivo no formato
AIML, sendo que, as perguntas ficarão entre as tags <pattern> e as respostas ficarão entre as
tags <template>. A figura 34 apresenta o programa gera-aiml.sh que foi desenvolvido para
atender a demanda computacional da etapa 13.
Após a conclusão da implementação do protótipo foi constatada a necessidade de
ordenar o conteúdo dos arquivos AIML, pois dependendo da ordem de carregamento dos
padrões podem ocorrer erros nas respostas, sendo que o chatterbot teria condições de
responder caso os padrões fossem carregados em ordem alfabética. Para atender essa
demanda computacional foi desenvolvido um programa na linguagem shell script para
ordenar as unidades de conhecimento nos arquivos AIML. A ordenação é feita nas perguntas
(conteúdo das tags <pattern>. A figura 35 apresenta o programa ordena-aiml que foi
desenvolvido para solucionar o problema de ordenação dos arquivos AIML.
71
Figura 34. Apresentação do programa gera-aiml.sh
72
Figura 35. Apresentação do programa ordena-aiml.sh
73
5.11 CONSIDERAÇÕES
As etapas de suporte computacional propostas foram elaboradas com o objetivo de
viabilizar a implementação da metodologia apresentada. Com exceção dos programas que
implementam o algoritmo do modelo vetorial e principalmente o do método do LSI, pois
demanda mais memória e processamento devido às suas características, os demais programas
foram concebidos para utilizar o mínimo de recursos computacionais necessários para
solucionar o problema. Isso se faz necessário, pois dependendo do volume de dados a ser
tratado todo processo ficará lento.
74
TUXBOT – UM ESTUDO DE CASO NA APLICAÇÃO DA
METODOLOGIA PROPOSTA
Para validar a proposta apresentada neste trabalho, foi desenvolvido o Tuxbot - um
chatterbot para responder perguntas sobre o sistema operacional Linux. A seção seguinte
apresenta as características e o funcionamento do sistema. Nas seções subseqüentes será
apresentado o processo de construção das bases de conhecimento do Tuxbot, segundo a
metodologia proposta no capítulo 4. Na seção 6.15 serão apresentadas as considerações desse
capítulo.
6.1 O TUXBOT
Tuxbot é um Chatterbot baseado na tecnologia ALICE. Foi utilizada a versão em
Hypertext Preprocessor (PHP) com banco de dados Mysql intitulada “ProgramE”. O objetivo
do Tuxbot é responder perguntas sobre dúvidas de aprendizes do sistema operacional Linux.
A figura 36 apresenta uma visão geral do funcionamento do Tuxbot. A primeira etapa
representa o encaminhamento da pergunta. Em seguida, o sistema realiza uma série de passos
até que a pergunta fique pronta para a busca na base de conhecimento. Na segunda etapa, será
feita a busca da pergunta nas bases de conhecimento contidas nos arquivos AIML. Essa busca
é feita de acordo com a ordem em que as unidades de conhecimento foram carregadas no
graphmaster. Por isso, todas as unidades de conhecimento serão carregadas em ordem
alfabética. O item 2.1 representa a busca por padrões ou palavras correlatas (sinônimas) e em
seguida, a busca por padrões que iniciam com o coringa “_”, pois todo padrão a ser procurado
“casa” com os padrões que iniciam com o coringa “_” que representa qualquer palavra. O
item 2.2 representa a busca aos demais padrões que iniciam com a letra “A” até a “Z”
respectivamente. O item 2.3 representa a busca aos padrões que iniciam com o coringa “*”
que representa qualquer palavra. O coringa “*” sempre é verificado por último. Essas
unidades de conhecimento capacitam o Tuxbot a não deixar o usuário sem resposta, mesmo
quando ele desconhece o assunto e também para permitir que o Tuxbot possa informar que ele
desconhece um determinado assunto e para que ele possa orientar sobre como proceder nesses
casos. Na última etapa, após a localização da pergunta o sistema apresenta a resposta
catalogada conforme o que foi localizado na busca dos itens 2.1, 2.2 e 2.3.
75
Figura 36. Arquitetura do Tuxbot.
A figura 37 apresenta a interface de diálogo com o Tuxbot. O acesso ao Tuxbot pode
ser feito através do endereço: http://www.ensino.org.br/tuxbot/.
Figura 37. Interface de conversação do Tuxbot.
Para que o Chatterbot seja capaz de responder as perguntas dos padrões cadastrados
nas bases de conhecimento em AIML, é preciso executar uma rotina que lê os arquivos AIML
e, em seguida, carrega-os na memória, de acordo com a ordem em que eles são lidos.
Conforme a recomendação descrita na documentação da ALICE, as bases de conhecimento
devem ser carregadas em ordem alfabética, sendo que, as bases de conhecimento que
possuem perguntas que iniciam com o coringa “_”, serão carregadas primeiro. Esse
76
procedimento é importante para evitar problemas na busca de respostas e para auxiliar o
botmaster na manutenção das bases de conhecimento.
Além das etapas propostas foram feitas diversas intervenções nas bases de
conhecimento com o objetivo de aumentar a capacidade e evitar problemas na busca das
respostas do Tuxbot. A utilização do script de ordenação foi fundamental para evitar
problemas na busca de respostas, pois além de facilitar a manutenção das bases de
conhecimento é uma sugestão da tecnologia ALICE. A recomendação principal é que as
unidades de conhecimento que iniciam com o coringa “_” devem ser carregadas antes das
outras unidades de conhecimento. Para isso, essas unidades de conhecimento foram movidas
para os arquivos “0-sinonimos-uma-palavra.aiml”, “1-sinonimos-duas-palavras” e “9unders-diversos.aiml”, os quais serão carregados nessa ordem devido aos nomes dos mesmos.
Além disso, foi feita a divisão das unidades de conhecimento em 34 arquivos AIML, de tal
forma que o carregamento dos arquivos seja feito por ordem alfabética. Para isso os arquivos
foram renomeados e as unidades de conhecimento que iniciam com uma determinada letra do
alfabeto foram movidas para o respectivo arquivo. A figura 38 apresenta uma amostra de 11
arquivos dispostos na ordem em que serão carregados no momento do procedimento de carga
das bases de conhecimento para o Graphmaster.
Figura 38. Amostra de arquivos da base de conhecimento do Tuxbot.
77
A figura 39 apresenta uma amostra do arquivo “0-sinonimos-uma-palavra.aiml” ,
criado com o objetivo de habilitar o reconhecimento de palavras correlatas (sinônimas).
Figura 39. Amostra do arquivo “0-sinonimos-uma-palavra.aiml”
78
A figura 40 apresenta uma amostra do arquivo “1-sinonimos-duas-palavras” , criado
com o objetivo de habilitar o reconhecimento de padrões de duas palavras correlatas
(sinônimas).
Figura 40. Amostra do arquivo “1-sinonimos-duas-palavras”.
Para ampliar a capacidade do Tuxbot foi feita a criação de três unidades de
conhecimento para cada pergunta. Esse procedimento é feito para identificar a ocorrência de
um padrão no início, no meio e no fim de um padrão maior que contenham o padrão
catalogado. Dessa forma o chatterbot será capaz de reconhecer qualquer tipo de combinação
de pergunta, desde que contenha o padrão catalogado. Por isso, foram criados dois arquivos
para guardar as unidades de conhecimento de uma mesma letra. O objetivo é carregar
primeiro as unidades de conhecimento de palavras correlatas antes das demais. Por exemplo,
as figuras 41 e 42 apresentam uma amostra dos arquivos “a-srai.aiml” e “a-ultimo.aiml”
respectivamente.
79
Figura 41. Amostra do arquivos “a-srai.aiml”.
80
Figura 42. Amostra do arquivo “a-ultimo.aiml”.
Para que o usuário não fique sem resposta foram criadas unidades de conhecimento
que permitem ao Tuxbot responder mesmo quando ele não sabe a resposta. Em casos
específicos previamente cadastrados ele fornece a informação que desconhece um
determinado assunto e orienta o usuário sobre como preceder nesses casos. A figura 43
apresenta uma amostra do arquivo “z.aiml”, último arquivo AIML a ser carregado no sistema.
81
Figura 43. Amostra do arquivo “z.aiml”.
Toda vez que o Tuxbot não encontrar nenhuma pergunta para um determinado padrão
digitado pelo usuário o sistema fará a escolha randômica de uma das respostas cadastradas
entre as tags <template> da última unidade de conhecimento da figura 43.
A manutenção das unidades de conhecimento de um chatterbot deve ser constante,
pois através da interação é possível atualizar as unidades de conhecimento de acordo com as
respostas que o chatterbot não foi capaz de responder. O log das interações do Tuxbot com os
usuários é monitorado com o objetivo incrementar e ajustar novas unidades de conhecimento.
Além disso, foi disponibilizado um formulário de avaliação do desempenho do Tuxbot para
que os botmasters possam melhorar ainda mais o conhecimento do Tuxbot. A figura 44
apresenta a interface de avaliação do desempenho do Tuxbot.
82
Figura 44. Interface de avaliação do Tuxbot.
Através da criação das bases de conhecimento do Tuxbot será possível testar a
proposta apresentada. As etapas a seguir relatam os resultados da implementação da proposta
a partir de dados extraídos do rau-tu. Todos os testes foram executados em um computador
com processador Intel Pentium IV 3.0GHZ e 1GB de memória RAM.
6.2 ETAPA 01 - DOWNLOAD - RECUPERAÇÃO DE DADOS
As facilidades de publicação na Internet estão proporcionando um grande crescimento
no número de sites. Estudantes e pesquisadores de todas as áreas já podem contar com um
grande número de sites sobre as mais diversas áreas do conhecimento. Dentre os sites de
informação na Internet, merece destaque o guia Foca GNU/Linux.
83
O Foca GNU/Linux é um guia que traz desde explicações básicas sobre computadores
até informações sobre administração de segurança do sistema GNU/Linux (FOCALINUX,
2005). O guia Foca é considerado uma das mais completas fontes de informação sobre o
sistema Linux e uma boa fonte de referência para quem deseja fazer a certificação Linux
Professional Institute22 (LPI), entretanto, a busca de informação não é tão simples, pois exige
que o usuário possua algum conhecimento prévio de informática e do sistema Linux, além do
grande esforço cognitivo para localizar a informação desejada (LPI, 2005), (NUKEBRASIL,
2005), (SUPERDOWNLOAD, 2005b).
Com o objetivo de facilitar a busca de informações contidas no site focalinux,
principalmente nas situações em que o visitante tem uma dúvida específica e não deseja ou
não tem tempo de ficar pesquisando no site até achar a solução para o seu problema, de
ampliar as possibilidades de respostas através do acréscimo de unidades de conhecimento
extraídas do site http://www.rau-tu.unicamp.br (rau-tu), é proposto o desenvolvimento do
Tuxbot.
A escolha do rau-tu foi devido ao grande volume de perguntas e respostas sobre o
Linux e devido às características de conversação presentes no site. O download do site foi
feito através do software livre Httrack23. O site completo totalizou 2.35GB de arquivos html,
dentre os quais, foram selecionados 533MB sobre o sistema operacional Linux para serem
utilizados como base de dados de conhecimento do Tuxbot.
6.3 ETAPA 02 – CONVERSÃO DE ARQUIVOS HTML EM TEXTOS
Através do script que utiliza o comando lynx, os 533MB de páginas html foram
convertidas em 69,3 MB de arquivos textos em único diretório. Foram gerados 21.846
arquivos textos sobre o linux.
6.4 ETAPA 03 – EXTRAÇÃO DE PADRÕES
Após uma análise dos dados selecionados e após diversos testes de busca de padrões,
foi escolhido a busca do sinal de interrogação. A justificativa é que as perguntas elaboradas
22
Serve à comunidade Linux e aos usuários, fabricantes e desenvolvedores de software Open Source, no intuito
de aumentar e apoiar o uso profissional deste software em todo o mundo.
23
Off-line browser disponível em http://www.httrack.com. Funciona no Windows e no Linux.
84
pelos usuários do sistema rau-tu terminam com um sinal de interrogação. Essa característica
facilitou o processo de busca das perguntas, caso contrário, os especialistas teriam que definir
os padrões de busca. Por exemplo, os padrões: qual, quanto, porque, por que, onde, como e
quando poderiam ser utilizados ao invés do sinal de interrogação. Após a execução do
programa de extração de padrões foi gerado um arquivo texto de 13,5 MB contendo 70.228
padrões de perguntas. A figura 45 apresenta uma amostra dos padrões extraídos da base de
dados de arquivos textos.
Figura 45. Padrões de perguntas extraídos do sistema rau-tu.
6.5 ETAPA 04 – REDUÇÃO DOS CORPORA
Após a execução do programa de redução dos padrões foi gerado um arquivo de
3,08MB com 15.962 padrões. Além dos padrões duplicados foi eliminada toda a ocorrência
do padrão "voce considerou esta informacao util ?", pois essa pergunta aparece com
freqüência e não interessa aos corpora.
6.6 ETAPA 05 – TRANSFORMAÇÃO DOS CORPORA EM PEQUENOS
ARQUIVOS
O script de redução dos corpora em arquivos pequenos consiste na leitura das linhas
(cada linha representa uma pergunta) do arquivo de padrões reduzido e a geração de um
85
arquivo texto para cada linha lida. Essa etapa é necessária, pois a etapa de indexação faz o
processamento de arquivos textos.
6.7 ETAPA 06 – INDEXAÇÃO DOS CORPORA
Como o objetivo do Tuxbot é demonstrar que a proposta de construção das bases de
conhecimento é viável, foram selecionados 1.000 dos 15.962 padrões para implementar as
etapas de processamento dos corpora e em seguida gerar as bases de conhecimento na
linguagem AIML.
A indexação dos 1.000 padrões selecionados gerou uma matriz com 2.321 termos e
1.000 documentos. O programa que gera a matriz de termos versus documentos processou
1.000 arquivos em 20 segundos.
6.8 ETAPA 07 – GERAÇÃO DA MATRIZ DE SIMILARIDADES
A partir da matriz de termos versus documentos gerada na etapa anterior, foi gerado
uma matriz de similaridades com 1.000 linhas e 1.000 colunas, pois essa matriz relaciona a
similaridade entre os documentos.
Foram utilizados o modelo vetorial e o método do LSI para gerar a matriz de
similaridades, sendo que, no caso do método LSI, o processamento da etapa sete e oito foi
feito simultaneamente.
O programa que gera a matriz de similaridades através do modelo vetorial processou a
matriz de termos versus documentos em 2 minutos e 35 segundos. O arquivo de similaridades
atingiu 8.6MB.
6.9 ETAPA 08 – CATEGORIZAÇÃO DA MATRIZ DE SIMILARIDADES
Para categorizar a matriz de similaridades é necessário informar o percentual da matriz
r
M a ser utilizado, caso seja utilizado o modelo vetorial, e o percentual de similaridade a ser
adotado no momento da categorização.
Através de testes com vários percentuais de
similaridades, verificou-se que um percentual de 75% de similaridade apresentou os
resultados mais apropriados para os objetivos dessa etapa. A justificativa desse valor é devido
à especificidade do problema de classificação de padrões de conversação. Devido ao fato de
r
cada padrão ter apenas 17 palavras, um descarte maior de dados da matriz M pode interferir
nos resultados. Os padrões apresentados na figura 46 demonstram essa situação. Apesar da
86
similaridade entre as perguntas, existe uma diferença de quatro palavras entre eles. Isso
representa uma diferença de aproximadamente 25% do tamanho do padrão.
de cores iconeavaliacaomediagif de wine iconeavaliacaoruimgif de download winex de
posso rodar gems win no linux ?
e hora assunto aprovacao wine iconeavaliacaoruimgif de download winex de posso rodar
gems win no linux ?
Figura 46. Padrões de perguntas similares.
Caso o grau de similaridade utilizado fosse maior, o programa não seria capaz de
agrupar os padrões acima na mesma categoria, pois apesar da diferença ser pequena, ela é
expressiva em um padrão com apenas 17 palavras.
O programa que utiliza o modelo vetorial processou a matriz de similaridades entre os
documentos em 36 segundos. O arquivo com as informações sobre as categorias atingiu
42KB. Ao todo, o modelo vetorial processou a matriz de termos versus documentos e a matriz
de similaridades em 3 minutos e 11 segundos.
No método do LSI é necessário definir o valor de redução das matrizes decompostas
pelo método SDV. Após a utilização de vários percentuais de redução das matrizes, foi
constatado que a redução de 20% apresentou os resultados mais adequados a especificidade
do problema. Um percentual maior de redução poderia causar distorção nos resultados, pois
um padrão com 17 palavras é um texto muito pequeno. Além disso, não existem informações
latentes que justifiquem um percentual maior de redução.
r
Através do método SVD é feita a decomposição da matriz M e em seguida é aplicado
um fator de redução. Através da observação dos resultados gerados com diversas
combinações, foi possível constatar que o valor mais indicado é 80% de utilização dos dados
r
da matriz M e 75% de similaridade entre os padrões de conversação.
O programa que utiliza o método do LSI processou a matriz de termos versus
documentos e a matriz similaridades entre os documentos em 18 minutos e 42 segundos.
Apesar das vantagens de se utilizar o método LSI, foi constatado através de testes com
os dados obtidos do site do rau-tu que a categorização dos padrões com o modelo vetorial
apresentou os mesmos resultados da categorização através do método LSI. Este fato se
justifica, pois não existem dados ocultos em um padrão de 17 palavras que justifiquem a
necessidade de utilização do método LSI, cujo custo computacional é bem maior que o
modelo vetorial.
87
6.10 ETAPA 09 – GERAÇÃO DOS PADRÕES CATEGORIZADOS
Após geração do arquivo com as informações sobre as categorias foi executado o
script que lê as informações sobre quais padrões deverão compor uma determinada categoria
e gera um arquivo com os padrões categorizados. A figura 47 apresenta uma amostra dos
padrões categorizados como o modelo vetorial ou método LSI.
Figura 47. Padrões categorizados com o modelo vetorial ou método LSI.
Ao término do algoritmo foram geradas 646 categorias. Após a análise dos padrões
categorizados foi possível constatar que o modelo vetorial ou o método do LSI foram capazes
de categorizar 100% dos padrões que deveriam ser categorizados na análise de um
especialista no assunto.
6.11
ETAPA
10
-
MANIPULAÇÃO
DOS
PADRÕES
PELOS
ESPECIALISTAS
Após a categorização os especialistas no assunto farão uma varredura completa em
todas as categorias geradas pelo modelo vetorial ou método LSI, com o objetivo de extrair
88
apenas o que interessa para a criação das bases de conhecimento. Será utilizado apenas um
padrão, dentre os padrões similares na sintaxe e semântica de uma determinada categoria. Ao
final do processo será gerado um arquivo contendo os padrões que serão utilizados para a
busca das respostas. A figura 48 apresenta uma amostra do arquivo com os padrões que foram
manipulados pelos especialistas.
como instalar speedy
como rodar o linux sem a necessidade de swap
us robotics trava ambiente grafico
como eu crio um cdrom de boot
como eu crio um disquete de boot
kernel panic de porque modulo
instalar scanner genius colorpageep de linux e windows em hd sata
como configurar o editor vi
Figura 48. Padrões de perguntas manipuladas pelos especialistas.
6.12 ETAPA 11 - BUSCA RESPOSTAS
De posse do arquivo com os 646 padrões devidamente manipulados pelos
especialistas, será feita a busca na base de dados de arquivos textos com o objetivo de
localizar os arquivos que poderão conter as respostas para os padrões de perguntas. Para cada
padrão de pergunta (linha do arquivo de padrões) foi gerado um arquivo, contendo o nome
dos arquivos que poderão conter as respostas.
6.13 ETAPA 12 - IDENTIFICAÇÃO E AJUSTES DAS PERGUNTAS E
RESPOSTAS
Nessa etapa os especialistas deverão analisar o arquivo com os padrões de perguntas e
buscar na base de dados de arquivos textos as respostas de acordo com o nome dos
respectivos arquivos gerados na etapa 11. No final dessa etapa será gerado um arquivo com as
perguntas e respostas localizadas na base de dados texto. A figura 49 apresenta uma amostra
do arquivo com as perguntas e respostas manipuladas pelos especialistas. As unidades de
conhecimento estão separadas por uma linha em branco.
89
como criar um disquete de boot ?
Monte o drive de CD com o comando:
mount /dev/cdrom /mnt/cdrom
Acesse o diretorio /images dentro do /mnt/cdrom com o comando:
dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k
driver * HP Deskjet 680C ?
O driver pode ser obtido no site http://www.hpgs.cjb.net/
Figura 49. Perguntas e respostas manipuladas pelos especialistas.
6.14 ETAPA 13 - GERAÇÃO DAS BASES DE CONHECIMENTO EM AIML
Para cada unidade de conhecimento presente no arquivo de perguntas e respostas
manipuladas pelos especialistas, foram geradas quatro unidades de conhecimento na
linguagem AIML pelo script de geração das bases de conhecimento. Duas unidades de
conhecimento foram criadas no arquivo “perguntas-respostas.aiml”. A primeira unidade de
conhecimento representa a pergunta e sua respectiva resposta. A segunda representa a mesma
pergunta seguida de um coringa. O objetivo é fazer com que o chatterbot consiga responder
perguntas derivadas da principal com mais palavras a direita da pergunta. Por exemplo, para a
pergunta: “como criar um disquete de boot”, essa unidade de conhecimento adicional com o
coringa, permitirá que o chatterbot responda perguntas do tipo: “como criar um disquete de
boot no sistema operacional Linux”, na verdade, essa pergunta será substituída pela primeira.
A figura 50 apresenta uma amostra das unidades de conhecimento em AIML criadas no
arquivo perguntas-respostas.aiml.
90
<category><pattern>como criar um disquete de boot</pattern>
<template>
Monte o drive de CD com o comando:
mount /dev/cdrom /mnt/cdrom
Acesse o diretorio /images dentro do /mnt/cdrom com o comando:
dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k
</template></category>
<category><pattern>como criar um disquete de boot _</pattern>
<template><srai>como criar um disquete de boot </srai></template></category>
<category><pattern>driver * HP Deskjet 680C </pattern>
<template>
O driver pode ser obtido no site http://www.hpgs.cjb.net/
</template></category>
<category><pattern>driver * HP Deskjet 680C _</pattern>
<template><srai>driver * HP Deskjet 680C </srai></template></category>
Figura 50. Unidades de conhecimento na linguagem AIML criadas no arquivo perguntasrespostas.aiml.
Concomitantemente será criado o arquivo under.aiml com o objetivo de atender outras
situações em o padrão de pergunta tiver palavras adicionais à esquerda, ou à esquerda e à
direita simultaneamente. A figura 51 apresenta uma amostra das unidades de conhecimento
criadas no arquivo under.aiml.
91
<category><pattern>_ como criar um disquete de boot</pattern>
<template><srai>como criar um disquete de boot</srai></template></category>
<category><pattern>_ como criar um disquete de boot *</pattern>
<template><srai>como criar um disquete de boot</srai></template></category>
<category><pattern>_ driver * HP Deskjet 680C</pattern>
<template><srai>driver * HP Deskjet 680C</srai></template></category>
<category><pattern>_ driver * HP Deskjet 680C *</pattern>
<template><srai>driver * HP Deskjet 680C</srai></template></category>
Figura 51. Unidades de conhecimento na linguagem AIML criadas no arquivo under.aiml.
6.15 CONSIDERAÇÕES
Durante o processo de construção das bases de conhecimento foram feitas diversas
atividades manuais (etapas de intervenção dos especialistas) e atividades automáticas (etapas
do suporte computacional) e após a análise dos logs das interações do Tuxbot, ficou
constatado que a metodologia proposta e o suporte computacional utilizado são viáveis e
minimizam as intervenções dos especialistas no processo de construção das bases de
conhecimento. Esse processo é fundamental para o desenvolvimento de chatterbots com o
objetivo de esclarecer dúvidas sobre um determinado domínio do conhecimento.
92
CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS
Com o crescimento constante da Internet a tendência natural é aumentar ainda mais o
volume de informação textual não estruturada e consequentemente haverá um aumento no
volume de informação retornada após a busca de informação através de consultas que
utilizam as ferramentas de busca disponíveis. O aumento no volume de informação faz com
que as pessoas tenham cada vez mais trabalho para localizar informação útil na Internet.
As pesquisas que buscam o desenvolvimento de soluções com o objetivo de minimizar
o problema do excesso de informação devem aumentar, pois além do excesso de informação
disponível em sites na Internet, também está ocorrendo um aumento no volume de informação
nos ambientes de aprendizagem.
O uso de FAQs é uma alternativa para minimizar o problema da busca por informação
em sites ou em ambientes de aprendizagem, entretanto, o trabalho de criação e manutenção
desse serviço é alto, pois requer um especialista para elaborar e manter o FAQ. Além disso, o
FAQ só funciona bem quando a dúvida do usuário é básica e se refere a um domínio do
conhecimento pequeno, pois é difícil para o mantenedor do serviço prever todas as possíveis
variações de perguntas que o usuário pode fazer, entretanto, na maioria dos casos o volume de
informação é muito grande, tornando essa alternativa ineficiente. Além disso, o FAQ é
estático, restrito e requer a leitura de todas as perguntas e respostas até encontrar a resposta
que interessa, sendo que, nem sempre existe a resposta que interessa.
Dentre as soluções que buscam minimizar o problema de excesso de informação em
sites na Internet e em ambientes virtuais de aprendizagem merecem destaque os Chatterbots.
O Chatterbot pode esclarecer dúvidas de forma direta, objetiva, simplificada e com um
esforço cognitivo bem menor do que outros métodos tradicionais, tais como, ferramentas de
busca e FAQs. Além disso, eles também poderão auxiliar professores de cursos a distância na
redução da carga de trabalho com atividades mecânicas e aumentar o tempo em atividades
para a melhoria do processo de aprendizagem.
Dentre as soluções disponíveis para o uso ou desenvolvimento de chatterbots. A
tecnologia ALICE é uma solução interessante e flexível que merece destaque. Dentre as
tarefas do processo de construção de chatterbots a tecnologia ALICE se destaca, pois engloba
ambas. A primeira está relacionada ao desenvolvimento de mecanismos de processamento de
linguagem natural. A segunda está ligada a criação de bases de conhecimento.
93
Dentre os pontos importantes no processo de construção de bases de conhecimento de
um chatterbot baseado na tecnologia ALICE merecem destaque: o tratamento de intenção, a
criação de unidades de conhecimento que permitam a realização de diálogos, principalmente
em situações nas quais o chatterbot não está habilitado para responder e a criação de unidades
de conhecimento que contenham perguntas e respostas sobre um determinado domínio do
conhecimento.
A metodologia de construção das bases de conhecimento proposta se propõe a tratar o
problema da criação de unidades de conhecimento que contenham perguntas e respostas sobre
um determinado domínio do conhecimento. Esse ponto foi escolhido, pois após a pesquisa em
chatterbots disponíveis na Internet e com o intercâmbio de informações com pesquisadores da
área, tem-se observado que, quando um chatterbot não é capaz de responder a maioria das
perguntas elaboradas, os usuários se sentem desmotivados e desistem da interação. Um
chatterbot desenvolvido com o objetivo de auxiliar o processo de recuperação de informação
na Internet ou em ambientes de aprendizagem precisa atender um nível mínimo das
expectativas, para não causar o desinteresse na utilização desse recurso.
Através dos experimentos realizados com o Tuxbot foi constatado que a proposta de
construção das bases de conhecimento apresentada é viável e requer uma interferência
pequena dos especialistas no processo de construção das bases de conhecimento em AIML.
Os resultados obtidos nas conversas com o Tuxbot demonstram que é possível criar
uma base de conhecimento que possa atender às expectativas dos aprendizes.
Uma proposta de continuidade ao projeto do Tuxbot seria a implementação de
modificações no chatterbot para que os especialistas pudessem se cadastrar no sistema e
receber notificações a cada vez que o Tuxbot não conseguir responder uma pergunta. Cada
especialista teria um nível de permissão. Alguns seriam colaboradores. Esses não poderiam
publicar o conhecimento. E outros especialistas teriam que analisar a contribuição, fazer os
ajustes necessários, e, em seguida, publicar o conhecimento. O objetivo é criar uma
comunidade de botmasters especialistas em Linux para manter e adicionar conhecimento ao
Tuxbot. Além disso, os especialistas iriam procurar sites e fóruns de discussão sobre o linux
para aplicar a metodologia proposta e aumentar ainda mais o conhecimento do Tuxbot.
Uma outra proposta seria a criação de um ambiente para a construção de bases de
conhecimento. A proposta seria a criação de um ambiente integrado para reunir todas as
funcionalidades das etapas de construção das bases de conhecimento e incluir ontologias para
auxiliar na criação de novos conhecimentos. Devido a necessidade de conhecimento de várias
94
áreas, tais como, Computação, Lingüística de corpus, Pedagogia e Psicologia é recomendado
a criação de projetos integrados com outros programas de mestrado e doutorado para
melhorar a eficácia dos projetos.
Uma outra proposta de continuidade ao trabalho apresentado seria a criação de um
ambiente para a construção de bases de conhecimento. Esse ambiente poderia integrar todas
as funcionalidades das etapas de construção das bases de conhecimento e incluir:
•
O uso de ontologias para auxiliar no processo de construção de bases de
conhecimento;
•
O tratamento de sinônimos com alteração dinâmica nos arquivos AIML e a
detecção da palavra base dentre os sinônimos que serão utilizados;
•
A etiquetagem (Tratamento morfossintático, baseado na explicitação da classe
gramatical de cada palavra) para ampliar o tratamento de sinônimos;
•
O tratamento de Intenção proposto por Neves (NEVES, 2005);
•
O tratamento da consciência do diálogo (recuperação de conversas anteriores)
•
A criação automática de novos padrões de perguntas através de algoritmo
genético.
Para uma melhor eficácia do projeto é recomendada a participação e cooperação de
pesquisadores de diversos programas de pós-graduação nas áreas de: ciência da informação,
lingüística de corpus, semiótica, psicologia cognitiva, pedagogia e ciência da computação.
95
REFERÊNCIAS BIBLIOGRÁFICAS
ALENCAR, M. S. M. Mecanismos de busca na Web: uma análise da metodologia de
estudos comparados. 2001. Dissertação (Mestrado em Ciência da Informação) -
UFRJ/ECO-MCT/IBICT, Rio de Janeiro. Orientador: Maria de Nazaré Freitas Pereira.
ANGELI, A. D.; Johnson, G. I.; Coventry, L. The unfriendly user: exploring social
reactions to chatterbots. International Conference on Affective Human Factors
Design, 2001. Disponível em: <http://citeseer.nj.nec.com/557029.html> Acesso em:
02.mar. 2003.
ARAÚJO, A. M. T.; Menezes, C. S. e Cury, D. Um Ambiente Integrado para Apoiar a
Avaliação da Aprendizagem Baseado em Mapas Conceituais. Simpósio Brasileiro
de Informática na Educação(SBIE), São Leopoldo, RS, Brasil, 2002. Disponível em:
<http://inf.unisinos.br/%7Esbie2002/index.htm> Acesso em: 18 Jun. 2003.
BAEZA-YATES, R.; Ribeiro-neto, B. Modern Information Retrieval. Addison Wesley,
1999.
BERALDI, M. A. S. M. Uso de corpus computadorizado na identificação de inovações
lexicais na língua portuguesa. São Paulo, SP, Brasil, 2001. Disponível em: <
http://lael.pucsp.br/lael/teses/> Acesso em: 04 Jun. 2003.
BERKELEY, University of California. How Much Information 2003? Disponível em:
http://www.sims.berkeley.edu/research/projects/how-much-info-2003/ Acesso em: 22
jun. 2005.
BERGMAN, M. K. The deep Web: surfacing hidden value. Journal of the Electronic
Publishing. v.7, n.1, Aug. 2001. Disponível em: <http://www.press.umich.edu/jep/0701/bergman.html>. Acesso em: 22 jun. 2005.
BICKMORE, T. W. Social Intelligence in Conversational Computer Agents., Gesture &
Narrative Language Group, MIT Media Laboratory, Dezembro de 1999. Disponível
em: <http://web.media.mit.edu/~bickmore/ProSem/final.pdf> Acesso em: 15 Jan. 2003.
CASTANHO, C. L. O.; Wazlawick, R. S. Avaliação do Uso de Chatterbots no Ensino
Através de uma Ferramenta de Autoria. XIII Simpósio Brasileiro de Informática na
Educação - SBIE - 2002, São Leopoldo, RS, Brasil, p.10-19, 12 de Novembro de 2002.
96
CHATTERBOX,
Chatterbox
Challenge.
Disponível
em:
<
http://www.chatterboxchallenge.com> Acesso em: 02.Mar. 2003.
CORMEN, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C. Algoritmos: teoria e prática. Rio
de Janeiro: Campus, 2002.
DEERWESTER, S; Dumais, S. T.; Furnas, G. W.; Landauer, T. K.; Harshman, R. Indexing
by Latent Semantic Analysis. Journal of the American Society of Information Science
41(6): 391{407), 1990. disponível em: http://citeseer.nj.nec.com/deerwester90indexing.
ESTADÃO, O Estado de São Paulo, Ministério de Educação e Cultura aposta na
educação superior a distância, São Paulo, SP Brasil, 04/05/2003.
FERNEDA, E. Recuperação de informação: Análise sobre a contribuição da Ciência da
Computação para a Ciência da Informação. São Paulo: USP, 2003. Tese de
doutorado.
FIUZA, P. J.; Martins, A. Conceitos, características e importância da motivação no
acompanhamento ao aluno distante. In: Anais do Congreso de Educación a Distancia
MERCOSUR/SUL, Antofagasta, Chile, 6 de agosto de 2002.
FOCALINUX, Disponível em: http://focalinux.cipsga.org.br/index.html Acesso em: 06.mar.
2005.
FONER, L. N. What’s an agent, anyway? A sociological case study. Disponível em:
<http://foner.www.media.mit.edu/people/foner/Julia/Julia.html> Acesso em: 20.Mar.
2003.
GALVÃO, A.; Neves, A.; Barros, F. Persona-AIML: Uma Arquitetura para Desenvolver
Chatterbots com Personalidade. XXIII Congresso da Sociedade Brasileira de
Computação – CSBC – 2003, Campinas, SP, Brasil, p. 435-444, 2003. Disponível em:
<http://www.javasoft.com.br/academic/sbc2003/arq0226.pdf>
KAPLAN, S., Desenvolver Comunidades, uma estratégia para o Aprendizado
Colaborativo. Ano 2, No. 18, Setembro de 2002, São Caetano do Sul: E-learning Brasil
News, 2002. <http://www.elearningbrasil.com.br/news/news18/artigo_1.asp> Acesso
em: 29 out. 2002.
KOWALSKI, G. Information retrieval systems: theory and implementation. Boston:
Kluwer Academic Publishers, 282p, 1997.
97
LACHI, R. L. Chapa: Um Agente de Interface para Ferramentas de Bate-papo em
Ambientes de Ensino a Distância na Web. Campinas, SP, Brasil, 2003. Disponível
em: <http://teleduc.nied.unicamp.br/teleduc/publicacoes/rlachi_disser.pdf> Acesso em:
18 mai. 2005.
LAUREANO, E. A. G. C. ConsultBot - Um Chatterbot Consultor para Ambientes
Virtuais de Estudo na Internet. Recife, PE, Brasil, Agosto de 1999. Disponível em:
<http://www.cin.ufpe.br/~fab/publications/consultbot.doc> Acesso em: 14 Jun. 2003.
LEE, S. e CHO, S. an intelligent agent with structured pattern matching for a virtual
representative. IAT2001, Junho de 2001.
LÉVY, P. As tecnologias da Inteligência- O futuro do pensamento na era da
informática.13. ed. São Paulo: Editora 34, 2004.
LOEBNER,
H.
G.
Hugh
Gene
Loebner
Home
Page.
Disponível
em:
<http://www.loebner.net> Acesso em: 04.Mar. 2003.
LPI, Linux Professional Institute. Disponível em: http://www.lpi.org/pt_br/home.html
Acesso em: 20.mar. 2005.
MARCUSCHI, L.A. Análise da Conversação. São Paulo, SP: Editora Ática, 1986.
MAULDIN, M. L. Chatterbots, tinymuds and the Turing test: entering the Loebner
Prize
Competition.
AAAI-94
Janeiro
de
1994:
Disponível
em:
<http://www.lazytoad.com/lti/pub/aaai94.html> Acesso em: 20.Mar. 2003.
MCENERY,
T.
e
Wilson,
A.
Corpus
Linguistics.
Disponível
em:
http://www.ling.lancs.ac.uk/monkey/ihe/linguistics/contents.htm Acesso em: 10 Jun.
2003.
NEVES, A. M. M. iAIML: Um Mecanismo para o Tratamento de Intenção em
Chatterbots. 2005. 121 f. Tese (Doutorado) - Centro de Informática, Universidade
Federal de Pernambuco, 2005.
NUKEBRASIL,
Comunidade
PHP-Nuke
Brasil.
Disponível
em:
http://www.nukebrasil.org/article36.html ou http://www.nukebrasil.org/article379.html
Acesso em: 20.mar. 2005.
98
OLIVEIRA, O. N. ; Nunes, M. G. V. ; Oliveira, M. C. F. Por que ainda não conseguimos
conversar com o computador?. Jornal Primeira Página, pp.16, 22 de Junho de 1997.
Disponível
em:
<http://www.nilc.icmc.usp.br/nilc/publications.htm>
Acesso
em:
18.Mar. 2003.
PALLOFF, R. M.; Pratt, K. Construindo comunidades de aprendizagem no ciberespaço.
Porto Alegre, RS, Brasil: Artmed, 2002.
PIAGET, J.; BETH, W.E.; MAYS, W. Epistemologia genética e pesquisa psicológica. Rio
de Janeiro: Freitas Bastos, 1974.
RIJSBERGEN, C. V. Information retrieval. 2.ed. London: Butterworths, 1979.
SALLORENZO, L. H. Motivação em cursos virtuais. [[email protected]]. Mensagem recebida
por <[email protected]> em 13 de mar. 2003.
SARDINHA, T. S. Lingüística de Corpus. Barueri, SP: Manole, 2004.
SAYGIN, A. P. e Ciceklib, I. Pragmatics in human-computer conversations. Journal of
Pragmatics
34
(2002)
227-258.
Disponível
em:
<http://www.cs.bilkent.edu.tr/~ilyas/pubs.html> Acesso em: 29 Abr. 2003.
SCHILDT, H. C completo e total. 3 ed. São Paulo: Makron Books, 1996.
SGANDERLA, R. B.; Ferrari, D. N.; Geyer, C. F. R. BonoBOT: Um chatterbot para
Interação com usuários em um Sistema Tutor Inteligente. XIV Simpósio Brasileiro
de Informática na Educação - SBIE - 2003, Rio de Janeiro, RJ, Brasil, p. 463-472, 12 de
Novembro de 2003.
SILVA, A. B.; Um Chatterbot em AIML Plus que conversa sobre horóscopo. Recife, PE,
Brasil, 30 Setembro de 2002.
SUPERDOWNLOAD,
Disponível
em:
<http://superdownloads.ubbi.com.br/download/i20033.html> Acesso em: 26.jun. 2005.
SUPERDOWNLOAD,
Disponível
em:
http://superdownloads.ubbi.com.br/linux/top/pagina1.html Acesso em: 20.mar. 2005b.
TEIXEIRA, S.; Menezes, C. S. CHATTERBOT: uma ferramenta para motivar
estudantes de cursos a distância. Revista Aprender Virtual, Marília, SP, Brasil, p. 42-
99
45, disponível em <http://www.aprendervirtual.com/ver_noticia.php?codigo=102>, 1 de
Novembro de 2003.
TEIXEIRA, S.; Menezes, C. S. Facilitando o uso de Ambientes Virtuais através de
Agentes de Conversação. XIV Simpósio Brasileiro de Informática na Educação - SBIE
-
2003,
Rio
de
Janeiro,
RJ,
Brasil,
p.
483-492,
disponível
em:
<http://www.multicast.com.br/sergio/artigos.htm > 12 de Novembro de 2003b.
TEIXEIRA, S.; Ramiro, T. B.; Oliveira, E.; Menezes, C. S. Chatterbots em ambientes de
aprendizagem – uma proposta para a construção de bases de conhecimento. XXV
Congresso da Sociedade Brasileira de Computação – CSBC – 2005, São Leopoldo, RS,
Brasil, disponível em: <http://www.multicast.com.br/sergio/artigos.htm>, 2005.
TURING, A. M. Computing Machinery and Intelligence. on Oxford University Press on
behalf of MIND (the Journal of the Mind Association), vol. LIX, no. 236, pp. 433-60,
1950. Disponível em: <http://www.abelard.org/turpap/turpap.htm > Acesso em: 28 fev.
2003.
VASCONCELLOS, C.S. Construção do conhecimento em sala de aula. 11. ed.; São Paulo:
Libertad, 2000.
VIRTUS,
Virtusclass
-
Ambientes
Virtuais
de
Estudo.
Disponível
em:
<http://www.virtus.ufpe.br/> Acesso em: 14 jun. 2003.
WALLACE, R. S. ALICE Silver Edition. Disponível em: http://www.alicebot.org Acesso
em: 20 mar. 2003.
WALLACE, R. S. Don’t read me - A.L.I.C.E. and AIML documentation. Disponível em:
<http://www.alicebot.org/articles/wallace/dont.html> Acesso em: 20 mar. 2003b.
WALLACE, R. S. The Elements of AIML Style. Disponível em: <http://www.alicebot.org>
Acesso em: 4 mai. 2003c.
WALLACE, R. S. Be your own botmaster. Disponível em: <http://www.alicebot.org>
Acesso em: 27 jul. 2003d.
WALLACE,
R.
S.
ALICE
Silver
Edition.
Disponível
em:
<http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1> Acesso em: 19
mai. 2005.
100
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
(January
1966):
36-45.
Disponível
em:
http://i5.nyu.edu/~mm64/x52.9265/january1966.html Acesso em: 24.fev. 2003.
WEIZENBAUM, J. Computer power and human reason. New York, USA: Freeman, 1976.
WIVES, L. K.; Oliveira, J. P. M. Um estudo sobre Agrupamento de Documentos Textuais
em Processamento de Informações não Estruturadas Usando Técnicas de
"Clustering". Dissertação de Mestrado. Porto Alegre. PPGC/UFRGS, Abr. 1999.
ZIVIANI, N. Projeto de algoritmos: com implementações em pascal e C. 2 ed. São Paulo:
Thomson, 2004.

Documentos relacionados

ELEKTRA: Um Chatterbot para Uso em Ambiente Educacional

ELEKTRA: Um Chatterbot para Uso em Ambiente Educacional que estivessem se preparando para o vestibular, sendo colocada à disposição dos internautas em meados de 2002. Em julho de 2003 estendeu-se sua utilização para os alunos do Curso de Especialização ...

Leia mais