uma ferramenta para a ediÇÃo de categorias aiml …siaibib01.univali.br/pdf/leticiawalber.pdf ·...

73
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE EDUCAÇÃO SÃO JOSÉ CURSO DE CIÊNCIA DA COMPUTAÇÃO Letícia Walber UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML EM UM AGENTE DE CONVERSAÇÃO Marcello Thiry Professor orientador São José 2006

Upload: nguyenminh

Post on 13-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE EDUCAÇÃO SÃO JOSÉ

CURSO DE CIÊNCIA DA COMPUTAÇÃO

Letícia Walber

UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML EM UM AGENTE DE

CONVERSAÇÃO

Marcello Thiry Professor orientador

São José

2006

Page 2: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE EDUCAÇÃO SÃO JOSÉ

CURSO DE CIÊNCIA DA COMPUTAÇÃO

UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML EM UM AGENTE DE

CONVERSAÇÃO

Área de Inteligência Artificial

Letícia Walber Acadêmica

Trabalho de Conclusão de Curso apresentado à banca examinadora do Curso de Ciência da Computação da Universidade do Vale do Itajaí - UNIVALI – São José, como requisito parcial para obtenção do título de Bacharel em Ciência da Computação. Marcello Thiry Comicholi da Costa, Dr. - Orientador.

São José

2006

Page 3: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

LETÍCIA WALBER

UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS

AIML EM UM AGENTE DE CONVERSAÇÃO

Este Trabalho de Conclusão de Curso foi julgado adequado como requisito parcial para a

obtenção do título de Bacharel em Ciência da Computação, tendo sido aprovado pelo Curso

de Ciência da Computação, Centro de Educação São José da Universidade do Vale do Itajaí

(SC).

São José, 12 de dezembro de 2006.

_________________________________ Prof. Esp. Alecir Pedro da Cunha Prof. M.

Responsável pela Coord. do TCC

__________________________________ Prof. Eng. Fernanda dos Santos Cunha

Coordenadora do Curso

Apresentada à Banca Examinadora formada pelos professores:

__________________________________________________ Orientador Prof. Dr. Marcello Thiry Comicholi da Costa

___________________________________________________ Prof. Márcio Matias

__________________________________________________ Prof. Fernanda dos Santos Cunha

Page 4: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

4

DEDICATÓRIA

Aos meus pais Hélio e Sinclair, que acreditaram em mim, que me amam

incondicionalmente e que me fizeram acreditar e lutar por esta vitória.

Ao meu grande amigo Junior, que esteve do meu lado nos momentos mais

difíceis e me mostrou que a vida é mais importante do que qualquer julgamento externo.

Page 5: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

5

AGRADECIMENTOS

Agradeço ao professor Marcello Thiry Comicholi da Costa pela dedicação e

paciência durante todo o trabalho. Obrigada por transformar o meu medo em confiança.

Page 6: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

6

SUMÁRIO

1 INTRODUÇÃO.......................................................................................... 12

1.1 contextualização..................................................................................................................................12

1.2 OBJETIVOS .......................................................................................................................................14 1.2.1 Objetivo Geral .........................................................................................................................14 1.2.2 Objetivos Específicos ..............................................................................................................14

1.3 Escopo e delimitação do trabalho......................................................................................................14

1.4 JUSTIFICATIVA...............................................................................................................................15

1.5 metodologia .........................................................................................................................................16 1.5.1 Aspectos Metodológicos .........................................................................................................16 1.5.2 Plano de Trabalho....................................................................................................................17

1.6 ESTRUTURA DO TRABALHO.......................................................................................................18

2 AGENTES DE CONVERSAÇÃO.............................................................. 19

2.1 A.L.I.C.E. E A LINGUAGEM AIML...............................................................................................19 2.1.1 Categorias................................................................................................................................20 2.1.2 Contexto ..................................................................................................................................26 2.1.3 Targeting .................................................................................................................................27

2.2 AGENTE DE CONVERSAÇÃO INICIAL......................................................................................27

2.3 Considerações do Capítulo ................................................................................................................29

3 FERRAMENTAS DE EDIÇÃO DE CATEGORIAS AIML ......................... 31

3.1 Critérios de avaliação: .......................................................................................................................31 3.1.1 Critério 1- Cadastro de Categorias: .........................................................................................31 3.1.2 Critério 2 – Teste das Categorias: ...........................................................................................32 3.1.3 Critério 3 – Importação de Categorias:....................................................................................32 3.1.4 Critério 4 – Filtros de Busca:...................................................................................................32 3.1.5 Critério 5 – Ajuda:...................................................................................................................33

3.2 FERRAMENTA 1: PANDORABOTS..............................................................................................33 3.2.1 Avaliação – Critério 1: ............................................................................................................35 3.2.2 Avaliação – Critério 2: ............................................................................................................37 3.2.3 Avaliação – Critério 3: ............................................................................................................37 3.2.4 Avaliação – Critério 4: ............................................................................................................39 3.2.5 Avaliação – Critério 5: ............................................................................................................39

3.3 FeRRAMENTA 2: AIMLpad............................................................................................................40 3.3.1 Avaliação – Critério 1: ............................................................................................................40 3.3.2 Avaliação – Critérios 2 e 3: .....................................................................................................42 3.3.3 Avaliação – Critério 4: ............................................................................................................44 3.3.4 Avaliação – Critério 5: ............................................................................................................46

3.4 SEÇÃO COMPARATIVA das ferramentas ....................................................................................46

3.5 CONSIDERAÇÕES DO CAPÍTULO ..............................................................................................47

Page 7: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

7

4 FERRAMENTA DESENVOLVIDA............................................................ 48

4.1 Cadastro:.............................................................................................................................................48

4.2 IMPORTAÇÃO..................................................................................................................................55

4.3 PESQUISA..........................................................................................................................................57

4.4 TESTE.................................................................................................................................................59

4.5 CONSIDERAÇÕES DO CAPÍTULO ..............................................................................................60

5 APLICAÇÃO DA FERRAMENTA............................................................. 61

5.1 ESTRUTURA INICIAL DA BASE DE CONHECIMENTO.........................................................61

5.2 o PROCESSO DE TARGETING .......................................................................................................63

5.3 CONSIDERAÇÕES DO CAPÍTULO ..............................................................................................69

6 CONCLUSÃO ........................................................................................... 70

6.1 TRABALHOS FUTUROS.................................................................................................................71

7 REFERÊNCIAS ........................................................................................ 72

Page 8: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

8

ÍNDICE DE QUADROS E FIGURAS

QUADRO 1 – FORMATO DE UMA CATEGORIA EM AIML (RIOS, 2005) .......................................20 QUADRO 2 - EXEMPLO DE CATEGORIA ATÔMICA EM AIML. ADAPTADO DE (RIOS, 2005) .21 QUADRO 3 - TRANSFORMAÇÃO DA CATEGORIA EXIBIDA NO QUADRO 2 EM DIÁLOGO.

ADAPTADO DE (RIOS, 2005)........................................................................................................21 QUADRO 4 - EXEMPLO DO USO DA TAG <SRAI> IMPLEMENTANDO RECURSIVIDADE .......22 QUADRO 5 - EXEMPLO DE CATEGORIA RECURSIVA - REDUÇÃO SIMBÓLICA. ADAPTADO

DE (RIOS, 2005) ..............................................................................................................................22 QUADRO 6 - EXEMPLO DE CATEGORIA RECURSIVA – DIVIDIR E CONQUISTAR (RIOS, 2005)

..........................................................................................................................................................23 QUADRO 7 - EXEMPLO DE CATEGORIA RECURSIVA – SINÔNIMOS. ADAPTADO DE (RIOS,

2005) .................................................................................................................................................23 QUADRO 8 - EXEMPLO DE CATEGORIA RECURSIVA – CORREÇÃO DE ESCRITA E

GRAMÁTICA ..................................................................................................................................24 QUADRO 9 - EXEMPLO DE CATEGORIA RECURSIVA – PALAVRA-CHAVE. ADAPTADO DE

(RIOS, 2005).....................................................................................................................................25 QUADRO 10 - EXEMPLO DE CATEGORIA RECURSIVA – CONDICIONAL. ADAPTADO DE

(RIOS, 2005).....................................................................................................................................25 QUADRO 11 - EXEMPLO DE UTILIZAÇÃO DA TAG DE CONTEXTO <THAT>. ADAPTADO DE

(RIOS, 2005).....................................................................................................................................26 QUADRO 12 - EXEMPLO DO USO DAS TAGS RANDÔMICAS <RANDOM> E <LI> (RIOS, 2005)

..........................................................................................................................................................28 QUADRO 13 - EXEMPLO DE CATEGORIAS COM PATTERNS PADRÕES. ADAPTADO DE

(RIOS, 2005).....................................................................................................................................28 QUADRO 14 - EXEMPLO DE CATEGORIAS ANTES E DEPOIS DA APLICAÇÃO DO

ALGORITMO DE STEMMER (RIOS, 2005) .................................................................................29 FIGURA 1 - PÁGINA DE ACESSO AO PANDORABOTS ....................................................................34 FIGURA 2 - PÁGINA CONTENDO TODOS OS AGENTES DE CONVERSAÇÃO CRIADOS PELO

USUÁRIO.........................................................................................................................................34 FIGURA 3 - PÁGINA DO AGENTE DE CONVERSAÇÃO “AGENTEA”............................................35 FIGURA 4 - INTERFACE DE TREINAMENTO – CADASTRO DE CATEGORIA ATÔMICA -

PERGUNTA .....................................................................................................................................35 FIGURA 5 - INTERFACE DE TREINAMENTO – CADASTRO DE CATEGORIA ATÔMICA -

RESPOSTA ......................................................................................................................................36 FIGURA 6 - INTERFACE DE TREINAMENTO – ALTERAÇÃO DE RESPOSTA AVANÇADA ......36 FIGURA 7 - INTERFACE DE TREINAMENTO – ALTERAÇÃO DE RESPOSTA AVANÇADA – 2 37 FIGURA 8 - INTERFACE PANDORAWRITER......................................................................................38 FIGURA 9 - ARQUIVOS AIML CLASSIFICADOS ...............................................................................39 FIGURA 10 – SUPORTE PANDORABOTS ............................................................................................40 FIGURA 11 - MENU “FILE” – OPEN......................................................................................................41 FIGURA 12 - ARQUIVO AIML PRONTO PARA EDIÇÃO...................................................................41 QUADRO 15 - ARQUIVO TEXTO COM A DESCRIÇÃO DOS ARQUIVOS AIML A SEREM

CARREGADOS ...............................................................................................................................42 FIGURA 13 - MENU AIML – LEARN.....................................................................................................42 FIGURA 14 - CAIXA DE DIÁLOGO "LEARN AIML" ..........................................................................43 FIGURA 15 - MENU AIML – SORT........................................................................................................43 FIGURA 16 - MENU TOOLS – DIALOG ................................................................................................43 FIGURA 17 - TESTE DA BASE DE CONHECIMENTO ATRAVÉS DE UM DIÁLOGO....................44 FIGURA 18 - TELA DE EDIÇÃO DE CATEGORIAS............................................................................44 FIGURA 19 - TELA DE BUSCA DE CATEGORIAS..............................................................................45 FIGURA 20 – SOBRE A FERRAMENTA................................................................................................46 QUADRO 16 – QUADRO COMPARATIVO DAS FERRAMENTAS....................................................46 FIGURA 21 – CADASTRO DE CATEGORIAS – TIPOS DE CATEGORIAS.......................................49 FIGURA 22 – CADASTRO DE CATEGORIAS – OPÇÃO “ABRIR ARQUIVO”................................49 FIGURA 23 – POPUP WINDOW – SELEÇÃO DO ARQUIVO ............................................................50 FIGURA 24 – CADASTRO DE CATEGORIAS – ARQUIVO EXIBIDO NA TELA.............................50 FIGURA 25 – CADASTRO DE CATEGORIAS – CATEGORIA SIMPLES - 1.....................................51

Page 9: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

9 FIGURA 26 – CADASTRO DE CATEGORIAS – CATEGORIA SIMPLES - 2.....................................51 FIGURA 27 – CADASTRO DE CATEGORIAS – CATEGORIA SIMPLES - 3.....................................52 FIGURA 28 – CADASTRO DE CATEGORIAS – CATEGORIA SIMPLES - 4.....................................52 FIGURA 29 – CADASTRO DE CATEGORIAS – RESPOSTA RANDÔMICA.....................................52 FIGURA 30 – CADASTRO DE CATEGORIAS – RESPOSTA RANDÔMICA - 1................................53 FIGURA 31 – CADASTRO DE CATEGORIAS – PERGUNTAS DIVERSAS - 1 .................................53 FIGURA 32 – CADASTRO DE CATEGORIAS – PERGUNTAS DIVERSAS - 2 .................................54 FIGURA 33 – CADASTRO DE CATEGORIAS – SINÔNIMOS – 1 ......................................................54 FIGURA 34 – CADASTRO DE CATEGORIAS – SINÔNIMOS – 2 ......................................................54 FIGURA 35 – CADASTRO DE CATEGORIAS – PALAVRA-CHAVE.................................................55 FIGURA 36 – CATEGORIAS – IMPORTAR ..........................................................................................56 FIGURA 37 – CATEGORIAS – IMPORTAR – SELEÇÃO DO ARQUIVO...........................................56 FIGURA 38 – ARQUIVO TEXTO............................................................................................................57 FIGURA 39 – RESULTADO DA IMPORTAÇÃO...................................................................................57 FIGURA 40 – BUSCA POR PATTERN ...................................................................................................58 FIGURA 41 – BUSCA POR TEMPLATE ................................................................................................58 FIGURA 42 – CADASTRO ANTES DE EXECUTAR O TESTE............................................................59 FIGURA 43 – CATEGORIAS – TESTAR................................................................................................59 QUADRO 17 – CATEGORIA – PROCESSAMENTO DE ENTRADAS NÃO IDENTIFICADAS........62 QUADRO 18 – CATEGORIA – PROCESSAMENTO DE ENTRADAS NÃO IDENTIFICADAS........62 QUADRO 19 – ARQUIVO DE LOG ANALISADO................................................................................64 QUADRO 20 – EXEMPLOS DE CATEGORIAS CRIADAS APÓS O PROCESSO DE TARGETING .64 QUADRO 21 – ARQUIVO DE LOG ANALISADO................................................................................64 QUADRO 22 – EXEMPLOS DE CATEGORIAS CRIADAS APÓS O PROCESSO DE TARGETING .65 QUADRO 23 – ARQUIVO DE LOG ANALISADO................................................................................65 QUADRO 24 – EXEMPLOS DE CATEGORIAS CRIADAS APÓS O PROCESSO DE TARGETING .66 QUADRO 25 – ARQUIVO DE LOG ANALISADO................................................................................66 QUADRO 26 – EXEMPLOS DE CATEGORIAS CRIADAS APÓS O PROCESSO DE TARGETING .67 QUADRO 27 – EXEMPLO DE CATEGORIA - QUALIDADE ..............................................................68 QUADRO 28 – EXEMPLO DE CATEGORIA – QUALIDADE DE SOFTWARE.................................68 QUADRO 29– EXEMPLO DE CATEGORIA – QUALIDADE - CONCEITO .......................................68

Page 10: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

10

RESUMO

Este trabalho contribuiu para a construção e manutenção da base de

conhecimento de um agente de conversação. A primeira versão do agente sugere uma

evolução no seu modelo e também na sua base de conhecimento. Portanto, este trabalho

teve a missão de continuar o trabalho desenvolvido em (RIOS, 2005), facilitando a

construção do conhecimento por meio de uma ferramenta de edição de categorias

AIML.

Page 11: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

11

ABSTRACT

This work has contributed to the building and maintenance of a chatterbot

knowledge basis. The first agent version proposes an evolution in its model and also in

its knowledge basis. Thus, this work had the mission to continue the work started in

(RIOS, 2005), supporting the knowledge building through an AIML categories

automation tool.

Page 12: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

12

1 INTRODUÇÃO

1.1 CONTEXTUALIZAÇÃO

Os agentes de conversação (chatterbots) surgiram a partir de pesquisas na área

de Inteligência Artificial (IA) com o objetivo de criar um programa com capacidade de

conversação similar a de um humano. Neste sentido, estes agentes são programas que

buscam imitar o comportamento humano, explorando a capacidade racional que um

computador pode apresentar. (LEONHARDT et al, 2003)

Os Agentes de conversação buscam interagir com usuários como se fossem seres

humanos. Seu grande atrativo é a disponibilidade em tempo integral, podendo ser

utilizados em qualquer ambiente que demande uma maior disponibilidade de um

especialista humano.

Existem agentes de conversação criados para os mais diversos propósitos. O

HANK é um representante virtual criado pela Coca Cola, com o objetivo de tirar

dúvidas dos consumidores em relação à empresa e seus produtos (COCA-COLA, 2004).

Existe também o assistente do Microsoft Office, criado para auxiliar os usuários na

utilização da ferramenta (MICROSOFT, 2003). Uma outra utilidade dos agentes de

conversação é a possibilidade de serem utilizados como uma ferramenta de auxílio no

ensino à distância. “O uso de robôs de conversação na educação pode ser muito

vantajoso. Por imitar a realidade humana e ser de fácil manuseio, um robô permite que

um visitante não se sinta constrangido ao interagir com ele.” (LEONHARDT et al,

2003, p.10).

Neste sentido, foi realizado um trabalho de conclusão de curso cujo objetivo foi

construir um primeiro protótipo de um agente de conversação (chatterbot) para um

ambiente de ensino na área de qualidade de software (RIOS, 2005). A base de

conhecimento do agente foi modelada utilizando-se a linguagem AIML (Artificial

Intelligence Markup Language) que permite descrever o comportamento do programa

Page 13: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

13

que a está processando (WALLACE, 2001). A AIML permite a construção do

conhecimento organizada a partir de categorias. Estas categorias foram divididas ainda

em dois tipos: linguagem natural e conhecimento específico. As categorias de

linguagem natural proporcionaram ao agente a capacidade de manter uma conversação.

E as categorias de conhecimento específico o torna capaz de responder questões

relacionadas a um domínio de conhecimento.

Durante o desenvolvimento do trabalho, o agente foi disponibilizado para

utilização, de modo controlado, por pessoas que tinham ou não conhecimentos em

qualidade de software. Por meio da análise dos arquivos de registro de uso (log)

coletados, concluiu-se que as conversas que tiveram maior sucesso foram aquelas com

as pessoas que tinham algum conhecimento em qualidade de software, porque

buscavam diretamente a informação desejada. Várias novas categorias foram criadas a

partir da análise dos arquivos de registro de uso, mas o trabalho ainda sugere uma série

de melhorias em relação à capacidade de conversação e à humanização do agente. A

base de conhecimento utilizada pela versão atual do agente de conversação (chatterbot)

possui poucas categorias limitando sua compreensão de frases ou textos inseridos pelos

usuários. Além disso, não existe um método ou ferramenta que agilize o processo de

edição das categorias.

Dentro deste contexto, este trabalho ampliará a capacidade de conversação do

chatterbot, com o aprimoramento da sua base de conhecimento. Uma ferramenta

específica será criada para facilitar a entrada de dados na base de conhecimento por

meio da edição das categorias. Futuramente, o agente de conversação poderá ser portado

para o ambiente web, e integrado à plataforma colaborativa PLACES (Plataforma

Colaborativa para Engenharia de Software), que está sendo desenvolvida pelo LQPS

(Laboratório de Qualidade e Produtividade de Software) da UNIVALI, Campus de São

José (MORETTO, 2005).

Page 14: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

14

1.2 OBJETIVOS

1.2.1 Objetivo Geral

Desenvolver uma ferramenta para a edição de categorias AIML, buscando a melhoria da

qualidade na busca e manutenção da base de conhecimento de um agente de

conversação.

1.2.2 Objetivos Específicos

Para atingir o objetivo geral estabelecido na seção anterior, será necessário atender aos

seguintes objetivos específicos:

1. Realizar uma pesquisa bibliográfica procurando abordar os principais tópicos

necessários ao desenvolvimento do trabalho

2. Desenvolver uma ferramenta que facilite a construção das entradas na base de

conhecimento do agente

3. Ampliar a capacidade de conversação do agente, reorganizando e inserindo

categorias na base de conhecimento

4. Avaliar os resultados da implantação do agente desenvolvido, de forma

controlada, permitindo a revisão e conseqüente melhoria contínua da base de

conhecimento

1.3 ESCOPO E DELIMITAÇÃO DO TRABALHO

Com este trabalho, foi desenvolvida uma ferramenta de suporte que permite a

edição facilitada da base de conhecimento do agente de conversação já implementado.

Fez parte do escopo deste trabalho a revisão da base de conhecimento e a adição de

novas categorias, preparando o agente para uma futura migração para o ambiente web,

onde será integrado à plataforma colaborativa PLACES. Não fez parte do escopo do

trabalho, o estudo e utilização de outras técnicas de Inteligência Artificial. Foram

utilizadas as técnicas já empregadas no trabalho de (RIOS, 2005) como, a linguagem

AIML na construção da base de conhecimento, o interpretador AIML Chatterbean e, a

técnica de stemmer, utilizada para facilitar o reconhecimento de sentenças.

Page 15: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

15

1.4 JUSTIFICATIVA

No trabalho de conclusão de curso desenvolvido em (RIOS, 2005), foi

construído um agente de conversação para ser utilizado em um ambiente de ensino com

ênfase à Qualidade de Software. A atual versão do agente possui uma base de

conhecimento construída na linguagem AIML, sendo organizada em categorias de

linguagem natural e de conhecimento específico. A partir da base de conhecimento

existente, foram inseridas novas categorias de forma a ampliar a capacidade de

conversação do agente, tornando-o capaz de interagir com os usuários de forma mais

humana.

Além da evolução do mecanismo existente, foi desenvolvida uma ferramenta

para facilitar a construção das entradas na base de conhecimento do agente, tornando

seu processo de manutenção mais amigável e permitindo que especialistas possam

cadastrar informações sem a necessidade de um conhecimento prévio da estrutura

interna do sistema. Anteriormente, a edição da base de conhecimento era feita

diretamente em AIML (por meio de arquivos XML), exigindo um conhecimento

razoável da estrutura da linguagem. Com a ferramenta proposta, os especialistas

precisam apenas de conhecimento na área que está sendo modelada, facilitando a

colaboração para o crescimento do conhecimento.

O agente de conversação existente foi desenvolvido para um ambiente desktop,

limitando sua utilização e exigindo a instalação de software específico na máquina dos

participantes da conversação. A evolução da base de conhecimento é uma preparação

para a futura migração do chatterbot para o ambiente web, aumentando assim, a

disponibilidade e oferecendo maior transparência para aqueles interessados em

conversar com o agente. Um programa na web possui a vantagem de poder ser acessado

de qualquer computador no mundo que esteja conectado à Internet, não havendo a

necessidade de instalação prévia de outros programas na máquina do usuário. Com esta

adaptação, será também possível a integração do agente à plataforma PLACES, uma vez

que sua base de conhecimento continuará possuindo ênfase em Qualidade de Software.

A qualidade no processo de software é o fator primordial para o sucesso de

qualquer empresa do ramo. Uma boa estruturação do processo de software pode

acarretar menores custos e maior agilidade no desenvolvimento de sistemas. Para tanto,

a Plataforma Colaborativa para Engenharia de Software (PLACES) foi criada com o

Page 16: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

16

intuito de dar suporte às equipes de desenvolvimento (MORETTO, 2005). O agente

poderá servir como uma ferramenta de auxílio e consulta para desenvolvedores,

gerentes de projeto e profissionais da área de qualidade e teste de software.

O agente de conversação foi disponibilizado para ser utilizado por pessoas com

conhecimentos em qualidade de software e também por leigos. Foram feitas análises

dos resultados obtidos com a utilização do agente, possibilitando a implantação de

melhorias na base de conhecimento. Este procedimento permite constantes revisões e

atualizações na base de conhecimento, o que contribui de forma significativa para o

aprimoramento do agente de conversação.

1.5 METODOLOGIA

1.5.1 Aspectos Metodológicos

Do ponto de vista da sua natureza, este trabalho utilizou a pesquisa aplicada ou

tecnológica. “Uma pesquisa que utiliza conhecimentos básicos, tecnologias existentes,

conhecimentos tecnológicos e, que tenha como objetivo um novo produto ou processo é

caracterizada como tecnológica.”(JUNG, 2004, p.189). O trabalho se enquadra neste

tipo de pesquisa por desenvolver um produto, baseado em um outro já existente, mas

com a proposta de agregar novas funcionalidades.

Quanto aos objetivos foi utilizada a pesquisa exploratória, que “visa proporcionar maior

familiaridade com o problema com vistas a torná-lo explícito ou a construir hipóteses.

Envolve levantamento bibliográfico; entrevistas com pessoas que tiveram experiências

práticas com o problema pesquisado; análise de exemplos que estimulem a

compreensão. Assume, em geral, as formas de pesquisas bibliográficas e estudos de

caso.” (EDNA e ESTERA, 1991 apud GIL, 2001, p.21). Esta compreensão inicial serviu

como ponto de partida para o desenvolvimento da solução.

Do ponto de vista dos procedimentos técnicos, foram empregados dois tipos de

pesquisa: pesquisa bibliográfica e estudo de caso. Segundo Gil (1991), a “pesquisa

bibliográfica é feita a partir de material já publicado, constituído principalmente de

livros, artigos de periódicos e também com material disponibilizado na internet.”. Em

Page 17: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

17

relação ao estudo de casos, Jung (2004) considera que “tanto nas engenharias como na

computação são necessários estudos anteriores para que se possa determinar como está

funcionando o processo ou, como é o processo, para que posteriormente seja

recomendado, desenvolvido e implantado um novo sistema, produto, ou técnica de

otimização.”. Neste trabalho, o estudo de caso permitiu compreender do funcionamento

da versão atual do agente de conversação e de ferramentas de edição de categorias já

existentes.

1.5.2 Plano de Trabalho

As atividades constantes no plano de trabalho são as seguintes:

1. Revisão bibliográfica – Para estabelecer a base teórica que suportou todo o

desenvolvimento do trabalho, foram estudadas as técnicas utilizadas na criação

da primeira versão do agente e na base de conhecimento. Também foi feita a

análise de algumas ferramentas de edição de categorias AIML já existentes, com

o objetivo de propor uma nova ferramenta adequada à este trabalho.

2. Desenvolvimento de uma ferramenta de edição de categorias – Para a

implementação desta ferramenta foi utilizada a linguagem de programação Java.

Sua principal contribuição foi a facilidade de inserção de categorias na base de

conhecimento do agente de conversação. Com ela, especialistas podem cadastrar

entradas na base de conhecimento sem a necessidade de um conhecimento

prévio sobre a linguagem AIML.

3. Ampliação da capacidade de conversação do Agente – Foi feita uma revisão na

base de conhecimento existente. Novas categorias foram adicionadas

considerando que, quanto maior o número de categorias, maior a probabilidade

de sucesso na conversação.

4. Implantação do agente desenvolvido e avaliação dos resultados – Nesta fase o

agente foi disponibilizado para ser utilizado por pessoas com e sem

conhecimento em Qualidade de Software, de forma controlada. A partir da

análise dos arquivos de registro de uso, foram identificados pontos de melhoria

no sistema.

Page 18: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

18

1.6 ESTRUTURA DO TRABALHO

Este capítulo apresentou o tema a ser abordado por meio de sua contextualização.

Depois, foram estabelecidos os resultados esperados por meio da definição de seus

objetivos. As limitações do trabalho foram descritas, permitindo uma visão mais clara

do escopo proposto. Também foram abordadas a justificativa e a metodologia

empregada, onde foram definidos o plano de trabalho e os prazos para a execução deste

plano. O capítulo 2 traz alguns conceitos de agentes de conversação, um estudo sobre a

linguagem AIML e, a descrição do modelo do agente já implementado. No capítulo 3 é

apresentada a análise de ferramentas já existentes, de edição de categorias AIML, de

acordo com alguns critérios considerados relevantes para a proposta de uma nova

ferramenta, voltada especificamente para o objetivo deste trabalho. O capítulo 4

apresenta a ferramenta desenvolvida, as técnicas utilizadas e alguns exemplos de

utilização. No capítulo 5 é demonstrada a aplicação da ferramenta de edição de

categorias no processo de ampliação da base de conhecimento. E o capítulo 6 traz as

conclusões do trabalho em relação aos objetivos propostos.

Page 19: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

19

2 AGENTES DE CONVERSAÇÃO

Agentes inteligentes são programas de software que buscam interagir com seres

humanos ou outros agentes, executando tarefas reativas e proativas com algum grau de

independência e autonomia (LESNICK, 1996).

Agentes de conversação buscam imitar o comportamento humano, simulando

seu mecanismo de inteligência, com o objetivo de criar capacidade racional em

programas de computador (LEONHARDT et al, 2003). Simulam uma conversação

tentando iludir o usuário, para que este imagine que está interagindo com outro ser

humano e não com uma máquina (LAVEN, 2001).

2.1 A.L.I.C.E. E A LINGUAGEM AIML

O precursor da terceira geração de agentes de conversação foi o ALICE (ALICE,

2005). O agente ALICE (Artificial Linguistic Internet Computer Entity) é concebido

como uma tecnologia de desenvolvimento de Agentes de Conversação, em “código

aberto”, que utiliza a linguagem AIML (TEIXEIRA E MENEZES, 2003). O projeto

ALICE tem centenas de colaboradores em todo o mundo. É uma organização sem fins

lucrativos, de pesquisa e treinamento, dedicada ao desenvolvimento e reconhecimento

da linguagem AIML (Artificial Intelligence Markup Language) (ALICE, 2005). Os

principais componentes da tecnologia ALICE são as bases de conhecimento em forma

de arquivos AIML, as quais representam o cérebro do agente de conversação e, os

softwares que interpretam bases em AIML (TEIXEIRA E MENEZES, 2003).

Os arquivos AIML são formados por pequenos módulos de estímulo-resposta

chamados de categorias. Cada categoria contém um padrão de entrada, ou <pattern>, e

uma resposta, ou <template>. As categorias são armazenadas em uma árvore gerenciada

por um objeto Graphmaster, facilitando a busca pelo <pattern> equivalente quando o

usuário insere uma entrada como estímulo. ALICE implementa o modelo de

Page 20: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

20

aprendizagem supervisionado, onde o botmaster1 executa um papel fundamental no

monitoramento das conversações e criando novos conteúdos na base de conhecimento,

buscando sempre respostas mais apropriadas, ou seja, mais humanas (WALLACE,

2001).

O agente ALICE pode ser comparado à tecnologia CBR2 que também

implementa uma estrutura de estímulo-resposta. Os casos do CBR correspondem às

categorias do AIML (TEIXEIRA E MENEZES, 2003).

O procedimento adotado no processo de conversação é o seguinte: uma rotina é

executada para ler os arquivos AIML e carregá-los na memória. De acordo com a

tecnologia ALICE, as bases de conhecimento devem ser carregadas em ordem

alfabética, e ainda, as bases que possuem perguntas que iniciam com o coringa “_”

devem ser carregadas primeiro. Desta forma o agente de conversação estará apto a

responder às perguntas dos padrões cadastrados nas bases de conhecimento em AML.

Este procedimento dinamiza a busca pelas categorias e a manutenção das bases de

conhecimento pelo botmaster (TEIXEIRA et al, 2005).

2.1.1 Categorias

Como já mencionado, a unidade básica de conhecimento na linguagem AIML é

chamada de categoria. Cada categoria consiste de uma entrada, ou <pattern>, e uma

saída, ou <template> (WALLACE, 2001). A seguir, será mostrado um exemplo com as

principais tags da linguagem AIML:

<aiml> <category> <pattern> ENTRADA </pattern> <template> resposta </template> </category> </aiml> Quadro 1 – Formato de uma categoria em AIML (RIOS, 2005)

A tag <aiml> inicia e termina um bloco em AIML; <category> identifica um

“unidade de conhecimento” na base de conhecimento; <pattern> identifica um padrão

de mensagem simples freqüentemente utilizado por usuários; e <template> contém a

resposta para uma mensagem do usuário (WALLACE, 2001).

1 Botmaster: Pessoa responsável pela manutenção da base de conhecimento do agente de conversação. 2 Case-Based Reasoning: é uma forma de se usar o conhecimento através de experiências anteriores baseadas em problemas concretos (casos) (BERGMANN, 1998 apud TEIXEIRA E MENEZES, 2003 )

Page 21: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

21

Segundo Ringate (2002), as categorias em AIML podem ser divididas em 3

tipos: atômica, padrão e recursiva. A categoria atômica é aquela cujo pattern não

contém os símbolos “*” e/ou “_”. É o tipo de categoria mais simples em AIML.

<category> <pattern> COMO VOCE ESTA </pattern> <template> Estou bem, e você? </template> </category>

Quadro 2 - Exemplo de categoria atômica em AIML. Adaptado de (RIOS, 2005)

No exemplo do Quadro 2, a mensagem enviada pelo usuário simplesmente será

comparada com a frase localizada entre as tags <pattern> e </pattern>. Se forem

exatamente iguais, o Sistema retornará a respectiva resposta ao usuário. O diálogo

apareceria da forma mostrada no Quadro 3:

Usuário: Como você está?

Agente: Estou bem, e você?

Quadro 3 - Transformação da categoria exibida no Quadro 2 em diálogo. Adaptado de (RIOS, 2005)

Uma categoria padrão contém patterns que possuem os símbolos “*” e/ou “_”. A

categoria cujo pattern contém somente o símbolo “*” pode dar como resposta a mesma

mensagem, a qualquer entrada. Esta resposta padrão geralmente é utilizada para chamar

a atenção do usuário para algum tópico conhecido do agente de conversação. No

entanto, as categorias do tipo padrão mais comuns são aquelas que utilizam uma

combinação de palavras e símbolos.

Categorias recursivas relacionam uma entrada com outra, na parte de template.

A recursividade pode ser utilizada quando entradas similares possuem a mesma

resposta.

A Linguagem AIML pode implementar recursividade por meio do operador

<srai>. As categorias recursivas são aquelas que encaminham dados de entrada de uma

categoria para outra, com o objetivo de simplificar a linguagem ou identificar patterns

sinônimos.

A recursividade consiste em aplicar a mesma solução várias e várias vezes à

problemas cada vez menores, até o problema ser reduzido a sua forma mais simples. As

tags <sr/>, <star/ e <srai> são utilizadas para implementar recursividade e permitem que

o agente responda à sentenças complexas, desmembrando-as em sentenças mais

simples.

Page 22: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

22

Categorias cujos patterns são sinônimos podem possuir templates iguais e, cada

vez que uma entrada sinônimo é encontrada, será remetida à categoria com o template

padrão.

<category> <pattern> ATE LOGO </pattern> <template> <srai> TCHAU </srai> </template>

</category> <category>

<pattern> TCHAU </pattern> <template> TCHAU </template>

</category>

Quadro 4 - Exemplo do uso da tag <srai> implementando recursividade

De acordo com Wallace (2001) e Ringate (2002), as categorias recursivas podem

ainda ser divididas em sete tipos: redução simbólica, dividir e conquistar, sinônimos,

correção de escrita e gramática, palavras-chave, condicional e qualquer combinação.

2.1.1.1 Redução Simbólica

Refere-se ao processo de simplificação de formas gramaticais complexas, uma

vez que, os patterns atômicos nas categorias geralmente se encontram na sua forma mais

simples. A pergunta “Quem é Fulano?” poderia ser escrita de diversas maneiras, como

por exemplo: “Você sabe quem é Fulano?”, “Fale-me sobre Fulano”, “Descreva

Fulano”. O que a tag <srai> faz é mapear todas estas formas à uma forma definida como

padrão.

<category> <pattern> VOCE SABE QUEM E * </pattern> <template> <srai> QUEM E <star/> </srai> </template>

</category> Quadro 5 - Exemplo de categoria recursiva - redução simbólica. Adaptado de (RIOS, 2005)

O exemplo do Quadro 5 mostra que a tag <star/> substitui o valor assinalado

para “*” antes da chamada recursiva à tag <srai>. A partir da tag <star/> é possível

mapear o valor existente em “*” para a categoria correspondente.

2.1.1.2 Dividir e Conquistar

Algumas sentenças podem ser divididas em duas ou mais subsentenças. Por

exemplo, se a sentença começar com a palavra “Oi...”, o Agente de Conversação pode

Page 23: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

23

responder apenas para “Oi”, não importando quais são as palavras seguintes. O Quadro

6 apresenta um exemplo deste tipo de categoria.

<category> <pattern> OI * </pattern> <template> <srai> OI </srai> <sr/> </template>

</category> Quadro 6 - Exemplo de categoria recursiva – dividir e conquistar (RIOS, 2005)

2.1.1.3 Sinônimos

Como a linguagem AIML não permite que uma categoria possua mais de um

pattern, a solução encontrada para se trabalhar com sinônimos foi também a

recursividade. Pode-se responder da mesma forma à entradas diferentes.

<category> <pattern> OI </pattern> <template> Olá, Tudo bem? </template>

</category> <category>

<pattern> E AI </pattern> <template> <srai> OI </srai> </template>

</category> <category>

<pattern> OLA </pattern> <template> <srai> OI </srai> </template>

</category> Quadro 7 - Exemplo de categoria recursiva – sinônimos. Adaptado de (RIOS, 2005)

Como exemplificado no Quadro 7, várias entradas consideradas sonônimos,

podem remeter a uma mesma categoria, contendo uma resposta padrão.

2.1.1.4 Correção de Escrita e Gramática

Pode-se utilizar AIML para identificar erros nas entradas digitadas por usuários.

É muito comum hoje em dia, o uso de palavras abreviadas, principalmente em chats,

onde os usuários primam pela rapidez na comunicação. Para evitar que uma entrada não

seja reconhecida pelo programa, torna-se necessário a implementação de categorias de

correção, ou seja, categorias que reconheçam sentenças com palavras abreviadas ou até

mesmo escritas de forma errada.

Page 24: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

24

O Quadro 8 mostra um exemplo de categoria aplicando correção de escrita e

gramática.

<category> <pattern> EU TB * </pattern> <template> Imagino que você quis dizer “também” e não “tb” <srai> EU TAMBEM <star/> </srai> </template>

</category> Quadro 8 - Exemplo de categoria recursiva – correção de escrita e gramática

Pode ser implementado ainda um processo de “normalização”, que consiste em

adequar todas as entradas à um modelo padrão de escrita. Uma classe executa um

número de substituições gramaticais e sintáticas em strings. Uma tarefa consiste em um

pré-processamento da sentença para remover a pontuação e preparar a entrada para a

segmentação. Outra tarefa expande todas as contrações e converte todas as letras para

“CAIXA ALTA”. A remoção da pontuação nas entradas é feita para tornar a linguagem

compatível com outros sistemas e, também, para minimizar o número de categorias

necessárias na base de conhecimento (RINGATE, 2002 ).

As categorias não precisam ser escritas em ordem alfabética de pattern, sendo

que a ordenação é feita quando as categorias são carregadas. No entanto, se o programa

possuir uma rotina de classificação, as categorias são armazenadas por ordem de

freqüência de acesso. A categoria acessada com maior freqüência é a primeira a ser

armazenada, logo após virá a segunda categoria mais acessada, e assim sucessivamente.

Se um número de categorias tiver a mesma quantidade de acessos, o programa as salva

em ordem alfabética de pattern. Desta forma também, se o programa não possuir uma

rotina de classificação, todas as categorias serão armazenadas em ordem alfabética de

pattern.

2.1.1.5 Palavra-Chave

É possível definir a mesma resposta sempre que uma determinada palavra-chave

for encontrada, seja em qualquer parte da sentença.

Page 25: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

25

<category> <pattern> AMIGO </pattern> <template> Você tem muitos amigos? </template> </category> <category> <pattern> _ AMIGO </pattern> <template> <srai> AMIGO </srai> </template> </category> <category> <pattern> AMIGO * </pattern> <template> <srai> AMIGO </srai> </template> </category> <category> <pattern> _ AMIGO * </pattern> <template> <srai> AMIGO </srai> </template> </category>

Quadro 9 - Exemplo de categoria recursiva – Palavra-Chave. Adaptado de (RIOS, 2005)

No Quadro 9, a primeira categoria mostra a palavra-chave e a respectiva resposta

padrão. Na segunda categoria, o símbolo “_” indica que podem existir uma ou mais

palavras antes da palavra-chave, ou seja, mostra a palavra–chave como um sufixo da

sentença. Na terceira categoria, o símbolo “_” indica que podem existir uma ou mais

palavras após a palavra-chave. E na quarta e última categoria, a palavra-chave aparece

entre os símbolos “_” e “*”, o que indica que pode existir texto antes e/ou depois da

mesma.

2.1.1.6 Condicional

Para escrever desvios condicionais em AIML, pode-se utilizar apenas a tag

<srai>.

category> <pattern>VOCE CONHECE ELA</pattern> <template> <srai> VOCECONHECEELA <get name= “she”/></srai> </template> </category> <category> <pattern> VOCECONHECEELA* </pattern> <template> Ela é <get name= “she”/></template> </category> <category> <pattern> VOCECONHECEELA UNKNOWN </pattern> <template> Não. Não a conheço </template> </category>

Quadro 10 - Exemplo de categoria recursiva – Condicional. Adaptado de (RIOS, 2005)

Page 26: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

26

De acordo com o exemplo do quadro 10, quando o usuário digitar a pergunta

“Você conhece ela?”, esta entrada será equiparada com o primeiro pattern “VOCE

CONHECE ELA”. Esta categoria executará um desvio condicional, dependendo do

valor setado para “she”. Se o atributo “she” for inicializado com “UNKNOWN”, ou

seja, “Desconhecido”, o desvio será feito para a categoria que possui o pattern

“VOCECONHECEELA UNKNOWN”.

2.1.1.7 Qualquer combinação

Neste tipo de categoria podem ser combinados todos os seis tipos anteriores de

categorias recursivas.

2.1.2 Contexto

A palavra-chave “that” refere-se à última interação do Agente de Conversação.

É utilizada entre as tags <pattern> e <template>, para que, antes de encontrar a resposta,

o Agente consiga identificar o contexto da conversa. Um exemplo muito comum para a

utilização da tag <that> é onde o usuário responde “Sim” a determinada pergunta feita

pelo Agente de Conversação. A pergunta à qual o usuário respondeu “Sim” precisa ser

encontrada por meio da tag <that>, só assim, o Agente estará apto a continuar a

conversa, dentro do atual contexto.

<category> <pattern> SIM </pattern> <that> VOCE GOSTA DE FILMES </that> <template> Qual seu filme favorito? </template> </category>

Quadro 11 - Exemplo de utilização da tag de contexto <that>. Adaptado de (RIOS, 2005)

No Quadro 11 é mostrado um exemplo de categoria onde o pattern é “SIM”.

Cada vez que uma entrada é igualada a este pattern, será verificado se a última pergunta

do Agente de Conversação corresponde á frase “VOCE GOSTA DE FILMES”. Se isto

for verdade, a próxima pergunta do Agente será “Qual seu filme favorito?”. Sem a

utilização da tag <that>, o template para o pattern “SIM” seria sempre o mesmo,

fazendo com o que o Agente de conversação pudesse dar uma resposta sem sentido, ou

seja, fora do contexto.

Page 27: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

27

2.1.3 Targeting

Existem duas maneiras de se criar conteúdo em AIML. Uma delas é por

antecipação. O botmaster faz uma estimativa de todas ou quase todas as formas de o

usuário abordar determinada questão. A segunda maneira de criar conteúdo é baseada

na análise de arquivos de log. O botmaster lê a conversa armazenada, anota as respostas

incorretas do diálogo e, em seguida, cria novas categorias para estas questões.

2.2 AGENTE DE CONVERSAÇÃO INICIAL

A descrição do trabalho anterior é importante para o leitor tomar conhecimento

do ponto de partida do atual trabalho.

O trabalho desenvolvido propôs uma contribuição no estudo sobre a utilização

de chatterbots para auxiliar na educação à distância. O chatterbot possui conhecimentos

em qualidade de software e uma base de conhecimento estruturada na linguagem AIML

(RIOS, 2005).

O desenvolvimento do chatterbot seguiu o modelo da Fundação de Inteligência

Artificial ALICE. O interpretador AIML chatterbean (PERRONI, 2005), foi utilizado

como base para a criação do chatterbot (RIOS, 2005).

Nem todas as tags necessárias são suportadas pelo chatterbean. Portanto, foi

necessário implementar algumas delas como <random>, <li> e <that>. As tags já

suportadas pelo chatterbean são: <category></category>, <pattern></pattern>,

<template></template>, <srai></srai>, <set name = “”></set>, <get name = “”></get>,

<star/>.

A base de conhecimento é carregada a cada execução do programa, podendo ser

alterada mesmo após a compilação. O armazenamento da base de conhecimento é feito

na forma de arquivos compostos pelas categorias AIML. Sendo assim, é possível que

uma pessoa sem conhecimentos em Java, possa alterá-la.

A estrutura do programa permite que cada categoria seja armazenada em um

objeto do tipo categoria. Sendo assim, após carregar uma vez as categorias no sistema,

não é necessário ler novamente os arquivos AIML.

Como o interpretador AIML utilizado não possui suporte à categorias

randômicas, estas tiveram que ser implementadas. Com o objetivo de tornar a conversa

Page 28: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

28

mais natural, o agente de conversação pode responder de maneiras diferentes a uma

mesma pergunta, como no exemplo do Quadro 12.

<category> <pattern> SOBRE O QUE VOCE QUER CONVERSAR </pattern> <template>

<random> <li> sobre Qualidade de Software </li> <li> sobre custos da Qualidade de Software </li> <li> sobre Análise e Auditoria </li> </random> </template>

</category> Quadro 12 - Exemplo do uso das tags randômicas <random> e <li> (RIOS, 2005)

Além do objeto “Categoria”, as tags utilizadas na categoria também

correspondem a objetos, que são ligados por uma estrutura de árvore. Neste caso, o

objeto do tipo “Li” pertence ao objeto “Random”, que pertence ao objeto “Template”, e

assim, sucessivamente.

Quando o usuário utiliza a resposta “SIM” ou “NÃO” para determinada

pergunta, torna-se necessária a utilização da tag <that>, para que o agente de

conversação consiga continuar a conversa dentro do atual contexto. Sendo assim,

também foi utilizada a implementação da tag de contexto <that> no programa

desenvolvido.

Para evitar que se tenha uma categoria para cada tipo de pergunta sobre o

mesmo assunto, foram criadas categorias padrões, com entradas que se adequam a

qualquer tipo de pergunta. O Quadro 13 mostra um exemplo com patterns padrões,

considerando maneiras diferentes de se iniciar uma pergunta. Neste caso, o que

realmente interessa ao sistema, é o assunto representado pelo símbolo “*”.

<category> <pattern> O QUE É * </pattern> <template> <srai> <star/> </srai> </template> </category> <category> <pattern> DEFINA * </pattern> <template> <srai> <star/> </srai> </template> </category> <category> <pattern> O QUE VOCÊ SABE SOBRE * </pattern> <template> <srai> <star/> </srai> </template> </category>

Quadro 13 - Exemplo de categorias com patterns padrões. Adaptado de (RIOS, 2005)

Page 29: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

29

O Sistema cria um arquivo de log a cada conversa. São estes arquivos que irão

possibilitar a análise do funcionamento do agente de conversação e as constantes

melhorias na sua base de conhecimento. Os arquivos de log armazenam três tipos de

informação, separadas por colchetes: data e hora da conversa; entrada de texto feita pelo

usuário; resposta enviada pelo agente de conversação ao usuário.

Outra técnica utilizada foi a de stemmer (RIOS, 2005). Esta técnica foi aplicada

para ampliar a capacidade de reconhecimento de sentenças, por meio da redução das

palavras a sua raiz. Esta técnica também facilita a construção da base de conhecimento a

medida que menos categorias atendem um número maior de entradas.

Com esta técnica é possível até mesmo o reconhecimento de palavras escritas

incorretamente, como mostra o exemplo do Quadro 14.

<category> <pattern> CONSEGUES ENTENDER </pattern> <template> Sim consigo </template> </category> <category> <pattern> CONSEG ENTEND </pattern> <template> Sim consigo </template> </category>

Quadro 14 - Exemplo de categorias antes e depois da aplicação do algoritmo de stemmer (RIOS, 2005)

O algoritmo de stemmer é aplicado na leitura das categorias e na entrada de

dados. Na base de conhecimento, as categorias podem apresentar os patterns com

palavras escritas nas suas formas normais. Ao se carregar a base de conhecimento em

memória, no momento da execução do programa, será aplicado o algoritmo de stemmer

em cada pattern, transformando as palavras em seus radicais. Para que as entradas dos

usuários possam ser comparadas com os patterns existentes, também é necessária a

aplicação do algoritmo de stemmer sobre elas.

2.3 CONSIDERAÇÕES DO CAPÍTULO

Este capítulo apresentou uma introdução aos agentes de conversação e também

um estudo sobre a linguagem AIML, conhecimentos necessários para o

desenvolvimento da segunda parte do trabalho. Foram descritas ainda, as características

do agente de conversação desenvolvido no trabalho anterior, com o objetivo de

delimitar o ponto de partida do atual trabalho.

Page 30: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

30

Geralmente, os agentes de conversação são criados com algum propósito.

Agentes criados com o objetivo de ensino, precisam de uma base de conhecimento que

contenha conceitos, exemplos, referências e pontos de vista sobre determinado assunto.

Contudo, o principal objetivo dos agentes de conversação é, sem dúvida, a semelhança

com a habilidade humana de conversação, tornando-o não apenas um dicionário, mas

uma entidade capaz de interagir com o usuário.

De acordo com as conclusões estabelecidas por (RIOS, 2005), em relação ao

trabalho desenvolvido, a base de conhecimento do agente pode ser melhorada,

ampliando sua capacidade de conversação, principalmente através da inserção de

categorias de linguagem natural. Este procedimento facilitará a utilização do agente, por

todos os tipos de usuários, inclusive por aqueles que não conhecem a área de

conhecimento do agente e/ou sobre a estrutura interna da base de conhecimento.

No capítulo 3, a análise de ferramentas de edição de categorias AIML, deverá

fornecer subsídios para a proposta de uma nova ferramenta, voltada especificamente

para a aceleração do processo de cadastro de categorias. Além disto, a ferramenta deve

tornar o processo de manutenção da base de conhecimento menos complexo.

Page 31: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

31

3 FERRAMENTAS DE EDIÇÃO DE

CATEGORIAS AIML

Este capítulo descreve algumas ferramentas que possibilitam a inserção,

alteração e busca de categorias em bases de conhecimento. As ferramentas encontradas

foram “Pandorabots” e “AIMLpad”. Pandorabots não é somente uma ferramenta de

edição de categorias, mas um ambiente que permite a criação de agentes de conversação

e bases de conhecimento. A AIMLpad é uma ferramenta mais parecida com um editor

de textos que, basicamente, possibilita a manipulação de categorias e arquivos AIML.

Estas ferramentas serão analisadas considerando principalmente a facilidade de uso na

criação de categorias e na manipulação das bases de conhecimento, características

fundamentais para a ferramenta a ser desenvolvida. Os critérios de avaliação serão: teste

de categorias, importação de categorias, cadastro de categorias, ajuda para utilização da

ferramenta e filtros de busca de categorias.

3.1 CRITÉRIOS DE AVALIAÇÃO:

3.1.1 Critério 1- Cadastro de Categorias:

No capítulo 2, foram descritos os três tipo de categorias: Atômica, Padrão,

Recursiva. A ferramenta deve possibilitar a criação de todos estes tipos de categorias,

inclusive por usuários sem conhecimentos na linguagem AIML. Para isto, é preciso

criar um mecanismo que não obrigue o usuário a entender a complexidade da linguagem

e que o induza ao melhor aproveitamento das categorias. A ferramenta deve contribuir

para uma organização mais inteligente da base de conhecimento, evitando o esforço

repetitivo de cadastro.

Page 32: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

32

3.1.2 Critério 2 – Teste das Categorias:

Para que se possa verificar o funcionamento da base de conhecimento do agente,

é interessante que a ferramenta de edição de categorias ofereça a opção de teste das

categorias. Uma interface deve ser disponibilizada, para que o usuário entre com

determinada pergunta e verifique a resposta dada pelo agente. O usuário deve poder

escolher o teste de toda a base de conhecimento, apenas de determinado grupo de

categorias, ou ainda, apenas de uma categoria.

3.1.3 Critério 3 – Importação de Categorias:

Com o objetivo de automatizar o processo de cadastro de categorias, deve ser

possível, importar arquivos AIML e também arquivos texto para a base de

conhecimento. Arquivos texto importados, devem seguir uma norma de composição

para que possam ser convertidos para AIML. Um arquivo texto possível de ser

convertido, deve estar na forma de um diálogo, sempre iniciando com a entrada do

usuário e em seguida a resposta do agente. Perguntas e respostas devem estar separadas

por no mínimo uma linha em branco.

3.1.4 Critério 4 – Filtros de Busca:

Filtros de busca correspondem às opções de busca por uma categoria específica

ou um grupo de categorias, com o objetivo de edição ou teste das mesmas. É necessário

que a base de conhecimento esteja devidamente classificada e organizada para facilitar a

sua exploração. A ferramenta deve conter as seguintes opções de busca:

Busca por Pattern:

- busca pelo primeiro caracter: retorna todas as categorias cujos patterns iniciam

com determinado caracter.

- busca por grupo de caracteres: retorna todas as categorias cujos patterns

iniciam com determinado conjunto de caracteres.

- busca por palavra chave: retorna todas as categorias cujos patterns contêm

determinada palavra chave.

- busca por pattern específico: retorna a categoria que contenha determinado

pattern.

Page 33: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

33

Busca por Template:

- busca pelo primeiro caracter: retorna todas as categorias cujos templates

iniciam com determinado caracter.

- busca por grupo de caracteres: retorna todas as categorias cujos templates

iniciam com determinado conjunto de caracteres.

- busca por palavra chave: retorna todas as categorias cujos templates contêm

determinada palavra chave.

- busca por template específico: retorna a(s) categoria(s) que contenha(m)

determinado template.

3.1.5 Critério 5 – Ajuda:

A ajuda ao usuário costuma fazer parte da maioria das aplicações existentes. A

ajuda por si só não necessariamente se torna útil, sem um planejamento e uma intenção

como ponto de partida. Além disto, deve, abordar o assunto de forma clara e facilitar o

encontro da informação desejada. Acima de tudo, deve induzir o usuário a correta

utilização da ferramenta. No caso da ferramenta de edição de categorias, objetivo deste

trabalho, a ajuda não só deve ser um tópico isolado, como deve ser apresentada

automaticamente acompanhando os passos do usuário. Mas, principalmente, deve

encobrir os conceitos da liguagem AIML, sendo que, o objetivo da ferramenta é apenas

facilitar e acelerar o processo de construção do conhecimento de um agente de

conversação.

3.2 FERRAMENTA 1: PANDORABOTS

Utilizando o site pandorabots.com (PANDORABOTS, 2003), usuários podem

criar seus próprios agentes de conversação e disponibilizá-los na Internet. O site oferece

um serviço de registro onde o usuário pode manter uma conta de acesso gratuito.

Page 34: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

34

Por meio do cadastro de email e senha, o usuário tem acesso à visualização e

edição de seus agentes de conversação, como exemplificado nas figuras 1 e 2.

Figura 1 - Página de acesso ao Pandorabots

Figura 2 - Página contendo todos os agentes de conversação criados pelo usuário

Estes agentes de conversação foram criados apenas com o intuito de

exemplificar as opções disponíveis no site.

Page 35: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

35

Ao clicar no nome do agente de conversação, é exibida a página do mesmo,

incluindo todas as opções para edição da base de conhecimento, como mostra a figura 3.

Figura 3 - Página do agente de conversação “AgenteA”

3.2.1 Avaliação – Critério 1:

Com a interface “Treinamento” o usuário poderá definir perguntas e as

respectivas respostas que serão cadastradas na base de conhecimento. As perguntas

serão os patterns nas categorias, ou seja, as possíveis entradas do usuário. E as respostas

serão os templates, com as respostas do agente de conversação para os patterns

cadastrados. Cada agente de conversação possui sua própria base de conhecimento,

composta por um conjunto de arquivos AIML.

Figura 4 - Interface de Treinamento – Cadastro de categoria atômica - Pergunta

A figura 4 mostra um exemplo de pergunta que pode ser cadastrada. Após clicar

no botão “Perguntar”, a página exibe uma sugestão para a resposta do agente de

conversação e a opção para o usuário definir outra resposta, como exibido na figura 5.

Page 36: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

36

Figura 5 - Interface de Treinamento – Cadastro de categoria atômica - Resposta

Ainda na interface “Treinamento”, é oferecida a opção “Alteração de Resposta

Avançada”.

Figura 6 - Interface de Treinamento – Alteração de Resposta Avançada

Para alterar o template, existem alguns botões que, ao serem clicados, atualizam

o editor de template com a estrutura completa da tag. No entanto, não há qualquer

explicação do significado das tags.

Page 37: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

37

Nesta interface, é possível ainda, definir a dependência de determinado contexto,

estabelecido por “that” ou “topic”.

Figura 7 - Interface de Treinamento – Alteração de Resposta Avançada – 2

Esta ferramenta atende parcialmente ao critério de avaliação 1, sendo que, é

possível apenas o cadastro de categorias atômicas, por usuários leigos. Os demais tipos

de categorias, modeladas por meio da opção “Alteração de Resposta Avançada”,

necessitam de um conhecimento maior da linguagem AIML, no entanto não é oferecido

qualquer tipo de orientação neste processo.

3.2.2 Avaliação – Critério 2:

Pandorabots não atende ao critério de avaliação 2, por não possuir a opção de

teste das categorias cadastradas ou importadas.

3.2.3 Avaliação – Critério 3:

A opção “Pandorawriter” possibilita a converção de diálogos em categorias. O

usuário pode digitar o diálogo no editor, ou carregá-lo com um arquivo texto já

existente.

Page 38: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

38

O arquivo texto pode ser encontrado através da ferramenta de busca como

mostra a figura 8.

Figura 8 - Interface Pandorawriter

O diálogo deve conter alternadamente uma pergunta do usuário humano e uma

resposta do agente de conversação. Como a pergunta e a resposta podem conter várias

linhas, é preciso que cada uma delas seja terminada por uma ou mais linhas em branco,

para que a ferramenta possa separá-las.

Através da opção “AIML”, o usuário pode visualizar todos os arquivos que

compõem a base de conhecimento de determinado agente de conversação. Os arquivos

aparecem classificados pelo primeiro caracter, de acordo com a figura 9. Esta interface

também disponibiliza as seguintes opções: clicar no arquivo para editá-lo, copiar

arquivos para a máquina local, enviar arquivos para a base de conhecimento e tornar os

arquivos ativos ou não. Quando o usuário envia arquivos para a base de conhecimento,

existe a opção de converter arquivos texto para AIML.

Page 39: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

39

Figura 9 - Arquivos AIML classificados

Esta ferramenta atende ao critério de avaliação 3. Permite que o usuário

importe tanto categorias AIML como arquivos texto em forma de diálogos, convertidos

posteriormente em arquivos AIML e agregados à base de conhecimento.

3.2.4 Avaliação – Critério 4:

Como visto na figura 9 acima, na interface “AIML”, são listados todos os

arquivos AIML que compõem a base de conhecimento do agente. Os arquivos

classificados pelo caracter de início dos patterns são disponibilizados pela própria

ferramenta, no momento da criação do agente. Porém, o usuário poderá criar novos

arquivos e organizá-los da maneira que preferir. Sendo assim, no caso desta ferramenta,

a busca é feita somente por arquivo, portanto, Pandorabots não atende ao critério de

avaliação 4.

3.2.5 Avaliação – Critério 5:

Esta ferramenta, apesar de conduzir o usuário na sua utilização, a maioria dos

tópicos é voltada para conhecedores da linguagem AIML.

Page 40: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

40

Possui um link para documentação (em inglês) explicando o funcionamento da

linguagem AIML e também links para fóruns de discussão e listas de emails (veja figura

10).

Figura 10 – Suporte Pandorabots

Considerando que, nosso objetivo é justamente omitir os conceitos e a

complexidade da linguagem AIML, a ajuda oferecida pela ferramenta Pandorabots

atende parcialmente ao critério de avaliação 5.

3.3 FERRAMENTA 2: AIMLPAD

Este sistema oferece todas as funcionalidades de um editor de texto comum, mas

com várias outras funcionalidades adicionais de edição de categorias em AIML.

3.3.1 Avaliação – Critério 1:

AIMLPad não atende ao critério de avaliação 1, por não apresentar opção de

cadastro de categorias. Permite somente a edição de arquivos AIML, obrigando o

usuário a conhecer a linguagem.

Page 41: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

41

Para visualizar um arquivo AIML completo e editá-lo, é preciso utilizar a opção

“Open” do menu File, de acordo com a figura 11.

Figura 11 - Menu “File” – Open

Esta é a parte do editor de texto do AIMLpad. Esta opção pode ser utilizada

apenas por usuários avançados em AIML, considerando que, para construir ou

modificar uma categoria, é preciso ter conhecimento das tags. A figura 12 mostra um

arquivo AIML pronto para edição.

Figura 12 - Arquivo AIML pronto para edição

Page 42: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

42

3.3.2 Avaliação – Critérios 2 e 3:

Esta ferramenta permite que o usuário teste a sua base de conhecimento através

do diálogo com o robô. Antes disto, é preciso carregar os arquivos AIML criados, na

base de dados do interpretador. Se o usuário tiver mais de um arquivo AIML

representando sua base de dados, ele precisará montar uma lista de todos estes arquivos

em um outro arquivo texto simples. Todos os arquivos AIML a serem carregados,

devem ser armazenados em um mesmo diretório com o nome de “AIML”. O arquivo

texto também deve ser armazenado neste diretório, com o nome de “filelist.txt”, sendo a

primeira linha “*.aiml” e a seguinte “<eof>”. O símbolo “*” indica todos os arquivos

AIML armazenados no diretório e “<eof>” indica o final do arquivo (AIMLPAD,

2005). O arquivo texto ficará no estilo do Quadro 15.

*.aiml

<eof>

Quadro 15 - Arquivo texto com a descrição dos arquivos AIML a serem carregados

Para carregar os arquivos AIML na base de dados do AIMLpad, deve-se

escolher no menu “AIML” a opção “Learn...” como mostra a figura 13.

Figura 13 - Menu AIML – Learn...

Após clicar em “Learn...”, o sistema mostra uma caixa de diálogo onde o usuário

deve digitar o nome do arquivo texto que contém os nomes dos arquivos AIML que

serão carregados. Pode-se utilizar a opção “Browse for Imput File” como auxílio para a

busca do arquivo. A figura 14 mostra esta caixa de diálogo, com o botão “Learn

AIML”, o qual o usuário deve clicar para que os arquivos sejam carregados.

Page 43: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

43

Figura 14 - Caixa de diálogo "Learn AIML"

Um outro passo é recomendado para que se tenha maior concordância com os

padrões AIML (AIMLPAD, 2005). Este passo é a classificação dos patterns na base de

dados, através da opção “Sort” do menu “AIML”, assim como mostra a figura 15. Esta

classificação cria um arquivo de patterns em ordem alfabética.

Figura 15 - Menu AIML – Sort

Ainda seguindo o procedimento de teste da base de conhecimento, o usuário

poderá efetuar um diálogo simulado pela ferramenta, com a base de conhecimento

carregada anteriormente. Para isto, é preciso deixar o editor em branco e clicar na opção

“Dialog” do menu “Tools”, como mostra a figura 16.

Figura 16 - Menu Tools – Dialog

Page 44: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

44

A simulação de um diálogo é exemplificada através da figura 17.

Figura 17 - Teste da base de conhecimento através de um diálogo

Esta ferramenta atende parcialmente o critério de avaliação 2, por não

permitir o teste de uma categoria, apenas de um ou mais arquivos AIML. Atende

parcialmente ao critério de avaliação 3, por não importar arquivos texto, somente

arquivos AIML, com as categorias já montadas.

3.3.3 Avaliação – Critério 4:

Assim como na maioria dos editores de texto, o AIMLpad oferece as opções de

busca de um texto específico “Find” e substituição de texto “Replace”. Possui ainda a

opção “Go to line...”, que leva o usuário diretamente à linha desejada do arquivo.

Através desta opção, o log do diálogo será gravado e as categorias utilizadas

poderão ser visualizadas e editadas através da opção “Edit Targets”, disponível no

mesmo menu.

Figura 18 - Tela de edição de categorias

Page 45: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

45

A tela exibida na figura 18 mostra todas as opções para edição de categorias. O

usuário pode navegar através das categorias clicando no botão “Next”. Existe também a

opção de criar novas categorias através desta interface. Mas uma questão que deve ser

mencionada, é a dificuldade que usuários iniciantes têm em utilizar a ferramenta. As

opções mais sofisticadas de edição, como as funções <random>, <srai>, <sr/>, <think>

e tantas outras da linguagem AIML, não estão disponíveis com alguma explicação de

uso, ou até mesmo com interfaces mais amigáveis, facilitando o entendimento pelo o

usuário. Somente usuários mais avançados na linguagem AIML conseguirão utilizar a

ferramenta de forma completa.

A tela de edição de categorias é o ponto central para atualização de categorias

individualmente. Enquanto o objetivo do editor AIMLpad é visualizar e alterar o

arquivo como um todo, a tela de edição de categorias trás a opção de alterar os mesmos

arquivos, em pontos específicos. Mas esta seção trabalha apenas sobre os arquivos

carregados na base de dados do interpretador, e não sobre qualquer arquivo AIML

(AIMLPAD, 2005).

Se ao invés de navegar através das categorias, o usuário preferir encontrar

diretamente uma determinada categoria, poderá fazê-lo através da opção “Search

Categories...” do menu AIML.

Figura 19 - Tela de busca de categorias

Na tela da figura 19, foi feita a busca de todas as categorias que começam com a

palavra “Ola”. Se o usuário der um duplo clique sobre o pattern, o sistema abrirá a tela

para edição da categoria correspondente.

AIMLPad atende parcialmente ao critério de avaliação 4, por permitir a busca

de categorias apenas por Pattern. De acordo com o nosso critério, deveria também

permitir a busca por Template.

Page 46: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

46

3.3.4 Avaliação – Critério 5:

Figura 20 – Sobre a Ferramenta

De acordo com a figura 20, esta ferramenta não atende ao critério de avaliação

5, por não apresentar qualquer tipo de ajuda ao usuário quanto a sua utilização. O única

opção disponível no menu Ajuda, remete o usuário a informações de versão da

ferramenta e direitos autorais.

3.4 SEÇÃO COMPARATIVA DAS FERRAMENTAS

Cada ferramenta obteve uma pontuação associada a cada módulo avaliado. Se a

ferramenta atendeu determinado critério de avaliação, recebeu 2 pontos, se atendeu

parcialmente, recebeu 1 ponto. O quadro abaixo, mostra a soma dos pontos de cada

ferramenta:

Critérios de Avaliação Pandorabot AIMLpad

1. Cadastro de Categorias Atende parcialmente (1) Não atende (0)

2. Teste de Categorias Não atende (0) Atende parcialmente (1)

3. Importação de Categorias Atende (2) Atende parcialmente (1)

4. Filtros de Busca Não atende (0) Atende parcialmente (1)

5. Ajuda Atende parcialmente (1) Não atende (0)

PONTUAÇÃO 4 3 Quadro 16 – Quadro comparativo das ferramentas

A ferramenta 1 obteve a maior pontuação, portanto, de acordo com os 5 critérios

de avalição descritos, é a que mais se aproxima das características buscadas para a

ferramenta de edição de categorias. Os aspectos positivos encontrados em cada

Page 47: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

47

ferramenta contribuíram de forma significativa na construção da nova ferramenta, que

será descrita no capítulo 4.

3.5 CONSIDERAÇÕES DO CAPÍTULO

Neste capítulo foi feita a avaliação de duas ferramentas de edição de categorias

AIML. A avaliação foi baseada em cinco critérios, mais especificamente cinco módulos,

considerados necessários para a composição da ferramenta que irá auxiliar na

manutenção da base de conhecimento do chatterbot.

Cada ferramenta foi avaliada separadamente, conforme os critérios de cadastro,

importação, teste, pesquisa e ajuda. A ferramenta que mais se aproximou das

características ideais foi a primeira, Pandorabot, tendo somado 4 pontos quando atendeu

completamenta ao critério de importação e parcialmente aos critérios de ajuda e

cadastro. A outra ferramenta, AIMLpad, somou 3 pontos, somente atingindo

parcialmente aos critérios de teste, importação e filtros de busca. No capítulo seguinte

será apresentada a descrição da ferramenta implementada, com exemplos de utilização

das suas funcionalidades.

Page 48: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

48

4 FERRAMENTA DESENVOLVIDA

A partir da análise de algumas ferramentas que, entre outras funções,

possibilitam o cadastro e edição de categorias AIML em bases de conhecimento, foi

proposta a construção de uma nova ferramenta, voltada para a melhoria da base de

conhecimento de um agente de conversação específico. Este agente foi construído com

o propósito de auxiliar usuários na aprendizagem de Qualidade de Software. Com o

intuito de tornar o processo de inserção de conhecimento na base menos complexo e

mais ágil, a ferramenta permite que pessoas sem conhecimento na linguagem AIML

possam cadastrar categorias, além de automatizar ações repetitivas. Os módulos que

compõem a ferramenta são: Cadastro, Importação, Pesquisa e Teste.

4.1 CADASTRO:

A base de conhecimento atual está dividida em 4 arquivos. Esta divisão foi feita

apenas para facilitar sua visualização. Os 4 arquivos que compõem a base são:

saudacao.aiml, qualidade.aiml, gerais.aiml e conhecimentosGerais.aiml. O arquivo

saudacao.aiml possui categorias de saudação, despedida e introdução de conversas.

Qualidade.aiml comporta categorias sobre Qualidade de Software, principalmente com

conceitos de diversos tópicos referentes a este assunto. O arquivo gerais.aiml é

composto por categorias que correspondem as diversas maneiras de se formular uma

pergunta ou de se abordar um assunto. O asterisco (*) adicionado ao pattern da

categoria, substitui o assunto propriamente dito. Este símbolo representa o pattern da

categoria a qual o foco será remetido. E, finalmente, o arquivo

conhecimentosGerais.aiml abrange categorias de assuntos diversos, peculiaridades do

agente e seus conhecimentos.

Page 49: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

49

Este módulo apresenta 5 possibilidades diferentes de cadastro, como mostra o

menu na figura 21, cobrindo todos os tipos de categorias. A nomenclatura dos itens de

menu não corresponde exatamente aos nomes corretos dos tipos de categorias segundo a

teoria da linguagem AIML, sendo que, o objetivo é justamente facilitar a compreensão

por usuários leigos na linguagem.

Figura 21 – Cadastro de Categorias – Tipos de Categorias

Para fazer qualquer tipo de cadastro, o usuário deve primeiramente abrir o

arquivo AIML no qual deseja inserir categorias, clicando na opção “Abrir” do Menu

“Arquivo”, de acordo com a figura 22.

Figura 22 – Cadastro de Categorias – Opção “Abrir Arquivo”

Page 50: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

50

Após selecionar o arquivo e abrí-lo (Figura 23), a ferramenta exibe o mesmo em

uma caixa de texto na própria janela de cadastro (Figura 24).

Figura 23 – Popup Window – Seleção do Arquivo

Figura 24 – Cadastro de Categorias – Arquivo exibido na tela

Nesta tela, o usuário poderá cadastrar tanto uma categoria atômica, quanto

padrão e recursiva. Ao preencher somente pergunta e resposta, ele estará cadastrando

uma categoria atômica. Se além de pergunta e resposta, o usuário preencher o campo

“Depende do Contexto”, estará cadastrando uma categoria com contexto, sem a

necessidade de saber que o mesmo deve estar entre as tags <that> e </that>. O usuário

apenas precisa saber que o contexto é utilizado para o agente não se perder no

andamento da conversa, lembrando da sua última resposta ou pergunta. Esta tela

Page 51: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

51

apresenta ainda a opção de “Direcionar para a categoria”, inserida entre as tags <srai> e

</srai> e que faz parte do template. Esta opção permite que a resposta seja direcionada

para outra categoria. Isto corresponde à recursividade em AIML, sendo utilizada,

geralmente, quando uma ou mais entradas podem apresentar uma mesma saída. Toda a

categoria adicionada, é inserida ao final do arquivo, considerando que, independe do

local onde estejam na base, ao rodar o sistema do Chatterbot, todas as categorias são

carregadas em um único arquivo. A seguir serão apresentados, através das figuras (25 –

28), todos os tipos de categorias possíveis de serem cadastradas na tela de cadastro

simples:

Figura 25 – Cadastro de Categorias – Categoria Simples - 1

Figura 26 – Cadastro de Categorias – Categoria Simples - 2

Page 52: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

52

Figura 27 – Cadastro de Categorias – Categoria Simples - 3

Figura 28 – Cadastro de Categorias – Categoria Simples - 4

A ferramenta disponibiliza uma tela específica para o cadastro de categorias cuja

resposta é randômica. Neste tipo de categoria, o chatterbot sorteia uma resposta entre

várias.

Figura 29 – Cadastro de Categorias – Resposta Randômica

Page 53: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

53

A interface exibida na figura 29, permite que o usuário também abra um arquivo,

se o mesmo não tiver sido aberto na tela anterior. Permite também a adição de n

respostas à categoria antes do seu cadastro.

A figura 30 mostra o resultado do cadastro da categoria randômica:

Figura 30 – Cadastro de Categorias – Resposta Randômica - 1

A próxima tela corresponde ao cadastro de categoria recursiva, utilizando o

princípio mencionado anteriormente, a respeito da divisão da base de conhecimento. O

arquivo gerais.aiml possui uma coleção de categorias representando diversos tipos de

perguntas, ou seja, diversos tipos de entradas. Neste caso, o que realmente interessa ao

agente, é o assunto propriamente dito, que é representado pelo asterisco (*). A figura 31

mostra os campos preenchidos para o cadastro das categorias e a figura 32 o resultado

do cadastro no arquivo.

Figura 31 – Cadastro de Categorias – Perguntas Diversas - 1

Page 54: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

54

Figura 32 – Cadastro de Categorias – Perguntas Diversas - 2

Outro tipo de categoria recursiva é a que trabalha com sinônimos. Utilizando a

recursividade em AIML, por meio da tag <srai>, é possível mapear n sinônimos a uma

única entrada e uma única resposta.

Na tela a seguir (Figura 33), o usuário pode adicionar um ou mais sinônimos que

serão transformados em categorias.

Figura 33 – Cadastro de Categorias – Sinônimos – 1

Resultado do cadastro:

Figura 34 – Cadastro de Categorias – Sinônimos – 2

Page 55: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

55

A última tela deste módulo, permite o cadastro de categorias do tipo Palavra-

Chave. Este tipo de categoria é utilizada quando se deseja definir uma resposta quando

uma determinada palavra for encontrada em qualquer parte da frase de entrada.

Ao cadastrar uma palavra-chave e a resposta, a ferramenta cria outras 3

categorias compondo o grupo necessário para cobrir todas as posições da palavra na

frase, utilizando os símbolos “_” e “*”, de acordo com a figura 35.

Figura 35 – Cadastro de Categorias – Palavra-Chave

O usuário tem a possibilidade de ver o cadastro acontecendo, quando visualiza o

arquivo e as categorias sendo adicionadas. Para concluir o cadastro, é preciso ainda,

salvar o arquivo utilizando o botão “Salvar Arquivo”.

Com este módulo a ferramenta busca cobrir todos os requisitos de cadastro

especificados na sua proposta. Todos os tipo de categorias, descritos no capítulo 2, são

possíveis de serem cadastrados, considerando que, o usuário não necessita conhecer as

funções das tags e a estrutura do documento, para efetuar o cadastro.

4.2 IMPORTAÇÃO

A importação de categorias para a base de conhecimento, contribui

consideravelmente para a rapidez no cadastro. Se a importação for de um arquivo

Page 56: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

56

AIML, basta salvar uma cópia do arquivo no diretório onde estão os outros arquivos da

base de conhecimento. Mas se o usuário deseja transformar um arquivo texto em

categorias, este deve estar em formato de diálogo, iniciando com a entrada seguida da

resposta do agente. Entradas e respostas devem estar separadas por no mínimo uma

linha em branco. Seguindo o mesmo processo de cadastro, inicialmente é preciso abrir o

arquivo ao qual deseja inserir categorias. Clicando na opção Importar no menu

Categorias (Figura 36), a ferramenta exibe uma janela onde o usuário seleciona o

arquivo texto que deseja converter em categorias (Figura 37).

Figura 36 – Categorias – Importar

Figura 37 – Categorias – Importar – Seleção do Arquivo

Page 57: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

57

A figura 38 mostra o arquivo texto aberto e a figura 39 apresenta o mesmo

arquivo transformado em categorias.

Figura 38 – Arquivo texto

Figura 39 – Resultado da Importação

Este módulo atende aos requisitos de importação de categorias descritos na

proposta da ferramenta, sendo também um dos critérios de avaliação das ferramentas no

capítulo 3.

4.3 PESQUISA

De acordo com a especificação da ferramenta, a pesquisa deve ser possível tanto

por pattern (entrada) quanto por template (resposta). Nos dois casos, existe ainda a

pesquisa por pattern específico ou template específico, por palavra-chave, por caracter

inicial ou por grupo de caracteres. O retorno será uma categoria ou um grupo de

categorias. O usuário poderá editá-las como desejar.

Tanto na busca por pattern quanto por template, o usuário digita a palavra, a

frase, o caracter ou o grupo de caracteres e clica em perquisar ao lado do campo de

texto.

Page 58: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

58

Abaixo, na figura 40 está um exemplo de busca por pattern e a seguir na figura

41, um exemplo de busca por template.

Figura 40 – Busca por Pattern

Figura 41 – Busca por Template

Page 59: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

59

4.4 TESTE

Este módulo não precisou ser implementado, sendo que, a ferramenta apenas

possui um link com o agente de conversação. Inicialmente foi determinado que o teste

poderia ser apenas de uma categoria, ou de um grupo de categorias, ou mesmo de toda a

base de conhecimento. No entanto, como o agente, ao ser rodado, carrega toda a base de

conhecimento em um único local, independente de quantos arquivos AIML possua na

base, optou-se sempre pelo teste de toda a base. Portanto, ao clicar na opção Testar, no

menu Categorias, o chatterbot é executado, possibilitando o teste de todas as categorias

da base, inclusive aquelas cadastradas recentemente. A seguir será exemplificado um

processo de cadastro e teste de uma categoria. Na tela abaixo, ocorre o cadastro de uma

categoria simples (Figura 42). Logo após, na figura 43, o agente em funcionamento,

mostrando o reconhecimento da categoria cadastrada.

Figura 42 – Cadastro antes de executar o Teste

Figura 43 – Categorias – Testar

O módulo de teste é fundamental em uma ferramenta como esta. Ele permite que

o usuário verifique o funcionamento das categorias cadastradas.

Page 60: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

60

4.5 CONSIDERAÇÕES DO CAPÍTULO

Este capítulo apresentou a descrição da ferramenta implementada, mostrando o

cumprimento dos requisitos estabelecidos após a análise feita no capítulo 3.

O desenvolvimento desta ferramenta foi um dos objetivos atingidos neste

trabalho, mostrando facilitar a entrada de categorias na base de conhecimento. O

mecanismo de inserção de categorias em um arquivo AIML demanda menos esforço

repetitivo quando a ferramenta coloca automaticamente as entradas entre as tags

específicas, por meio dos módulos de cadastro e importação. Além disto, o módulo de

pesquisa permite que o usuário encontre rapidamente categorias já cadastradas. E, por

último, o módulo de teste mostra a base em funcionamento, utilizando-se do próprio

chatterbot.

O próximo capítulo demonstrará a estrutura da base de conhecimento inicial, o

processo feito a partir desta base e, as melhorias alcançadas.

Page 61: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

61

5 APLICAÇÃO DA FERRAMENTA

5.1 ESTRUTURA INICIAL DA BASE DE CONHECIMENTO

A base inicial possui categorias de saudação, ou seja, de introdução a uma

conversa, categorias de despedida, e categorias que tratam do desenvolvimento da

conversa. Como o objetivo do chatterbot é o ensino de Qualidade de Software, ele

busca sempre direcionar a conversa para este assunto, considerando também que, é a

área de maior domínio.

Após a saudação, o chatterbot pergunta se o usuário precisa de alguma ajuda em

Qualidade de Software. Se a resposta for “sim”, a próxima categoria a ser processada é

a categoria “AJUDAR”. Esta apresenta duas opções de resposta: “Tentarei ajudá-lo” e

“Irei respondê-lo da melhor maneira possível”. Se o usuário digitar “não”, a resposta é

direcionada à categoria “NÃO QUERO AJUDA”. Neste caso, a chatterbot responde

que não poderá ajudar em outros assuntos. Se ao invés de “sim” ou “não”, o usuário

digitar uma entrada não identificada, a saída será “Meus conhecimentos são restritos.

Favor tentar ser mais ou menos específico.”.

Existe ainda uma categoria responsável por processar entradas não identificadas,

sem a análise de contexto. Em qualquer momento da conversa, uma entrada não

identificada do usuário, possui como resposta uma das seguintes frases, considerando

que, a categoria é randômica:

1. “Você poderia fazer a sua pergunta de uma outra forma?”

2. “Infelizmente não pude entender sua última frase.”

3. “Não sei nada sobre "<star/>"3. Ou, não entendi sua pergunta.”

3 Corresponde à entrada do usuário

Page 62: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

62

4. “Estou em constante aprimoramento, mas infelizmente não compreendi sua última

frase.”

A seguir, está a apresentação da estrutura completa da categoria:

<category> <pattern>*</pattern> <template> <random> <li>Você poderia fazer a sua pergunta de uma outra forma?</li> <li>Infelizmente não pude entender sua última frase.</li> <li>Não sei nada sobre "<star/>". Ou, não entendi sua pergunta.</li> <li>Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase.</li> </random>

</template> </category>

Quadro 17 – Categoria – Processamento de entradas não identificadas

Ao ser questionado sobre o que sabe ou qual assunto sugere para a conversa, o

chatterbot apresenta algumas opções de tópicos sobre Qualidade de Software, como

demonstrado na categoria do Quadro 18.

<category> <pattern>ASSUNTOSCONHECIDOS</pattern> <template> <random> <li>Posso lhe explicar o que é ação corretiva, ação preventiva, entre outros assuntos relacionados à Qualidade de Software.</li> <li>Posso lhe explicar o que são os custos da qualidade, eficiência, entre outros assuntos relacionados à Qualidade de Software.</li> <li>Posso lhe explicar o que é análise crítica, auditoria, entre outros assuntos relacionados à Qualidade de Software.</li> <li>Posso lhe explicar o que é uma entidade certificadora, estimação de confiabilidade, entre outros assuntos relacionados à Qualidade de Software.</li> <li>Posso lhe explicar o que é funcionalidade, qualidade da garantia, entre outros assuntos relacionados a Qualidade de Software.</li> <li>Posso lhe explicar o que é GUI, gerencia de projetos, entre outros assuntos relacionados à Qualidade de Software.</li> <li>Posso lhe explicar o que é gestão de configuração, gestão de qualidade, entre outros assuntos relacionados à Qualidade de Software.</li> </random> </template> </category>

Quadro 18 – Categoria – Processamento de entradas não identificadas

Outra parte da base de conhecimento, abrange categorias que tornam o

chatterbot apto a responder questões sobre suas particularidades, como, quem ele é, o

que sabe, o que faz, e ainda, assuntos gerais.

Page 63: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

63

O próximo arquivo da base é composto por categorias que abrangem as diversas

maneiras de se fazer uma pergunta ou abordar um assunto. Estas categorias têm ligação

com as categorias do arquivo qualidade.aiml, formado por inúmeros conceitos de

tópicos referentes à Qualidade de Software. Este arquivo compreende a parte de

conhecimento específico do chatterbot.

De acordo com as conclusões apresentadas por (RIOS, 2005), através da análise

dos arquivos de log, constatou-se que os usuários com conhecimento em Qualidade de

Software, tiveram maior sucesso nas conversas com o chatterbot, porque tentavam

extrair informações sem uma conversa, entrando diretamente com o tópico. Mas,

usuários sem conhecimento em Qualidade de Software, tendiam ao diálogo informal.

Neste caso, foi detectada a carência do chatterbot em relação à parte de linguagem

natural.

Apesar de várias categorias terem sido adicionadas, após a análise de inúmeros

arquivos de log, a base de conhecimento precisa de uma carga maior de categorias de

linguagem natural. Além disto, analisando a porção de conhecimento específico,

percebe-se que forma um conjunto de tópicos e conceitos tornando o chatterbot muito

parecido a um dicionário. Este arquivo possui cerca de 140 conceitos. A idéia é diminuir

o número de tópicos e trabalhar melhor cada tópico, aumentando a interação com o

usuário nas conversas sobre Qualidade de Software.

5.2 O PROCESSO DE TARGETING

Dando continuidade ao processo de targeting, foram recolhidos diversos logs de

conversas com o chatterbot. As dificuldades de comunicação foram detectadas logo no

início das conversas, tornando necessária a criação de categorias relacionadas a este

contexto. A seguir serão mostrados alguns exemplos de logs recolhidos e as respectivas

categorias criadas para corrigir as falhas de comunicação com o agente.

Page 64: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

64

[Olá][ Oi Desconhecido! ] [desconhecido?][ Você poderia fazer a sua pergunta de uma outra forma? ] [meu nome é Leticia][ Olá Leticia. ] [muito prazer][ Não sei nada sobre "muito prazer". Ou, não entendi sua pergunta. ] [eu também sou professor][Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [eu dou aula também][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [sobre o que podemos falar?][ Infelizmente não pude entender sua última frase. ]

Quadro 19 – Arquivo de log analisado <category> <pattern>DESCONHECIDO</pattern> <template>É porque ainda não sei seu nome!</template> </category> <category> <pattern>MUITO PRAZER</pattern> <template>obrigado!</template> </category> <category> <pattern>EU TAMBEM SOU PROFESSOR</pattern> <template>Interessante, onde você leciona?</template> </category> <category> <pattern>EU DOU AULA *</pattern> <template><srai>EU TAMBEM SOU PROFESSOR</srai></template> </category> <category> <pattern>SOBRE O QUE * FALAR</pattern> <template><srai>ASSUNTOSCONHECIDOS</srai></template> </category>

Quadro 20 – Exemplos de categorias criadas após o processo de targeting

[tudo bom?][ Você poderia fazer a sua pergunta de uma outra forma?] [como vai?][ Não sei nada sobre "como vai". Ou, não entendi sua pergunta.] [sobre o que vamos conversar?][ Infelizmente não pude entender sua última frase. ] [o que voce sugere?][ Não sei nada sobre "o que voce sugere". Ou, não entendi sua pergunta. ] [qual seu nome?][ Você poderia fazer a sua pergunta de uma outra forma? ] [qual é o seu nome?][ Não sei nada sobre "qual é o seu nome". Ou, não entendi sua pergunta.] [qual o seu nome?][ Me chamo TheBot. ] [que nome é esse?][ Você poderia fazer a sua pergunta de uma outra forma? ] [de onde vem o seu nome?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]

Quadro 21 – Arquivo de log analisado

Page 65: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

65 <category> <pattern>TUDO BOM</pattern> <template><srai>TUDOBEM</srai></template> </category>

<category> <pattern>COMO VAI</pattern> <template><srai>COMO VOCE ESTA</srai></template> </category>

<category> <pattern>SOBRE O QUE * CONVERSAR</pattern> <template><srai>ASSUNTOSCONHECIDOS</srai></template> </category>

<category> <pattern>O QUE VOCE SUGERE</pattern> <template>Eu sugiro que falemos sobre Qualidade de Software</template> </category>

<category> <pattern>QUAL SEU NOME</pattern> <template><srai>QUAL O SEU NOME</srai></template> </category>

<category> <pattern>QUAL E O SEU NOME</pattern> <template><srai>QUAL O SEU NOME</srai></template> </category>

<category> <pattern>QUE NOME E ESSE</pattern> <template>Vem da minha atividade!<srai>UM CHAT BOT</srai></template> </category>

<category> <pattern>DE ONDE VEM SEU NOME</pattern> <template>Vem da minha atividade!<srai>UM CHAT BOT</srai></template> </category>

Quadro 22 – Exemplos de categorias criadas após o processo de targeting

[eu me chamo Leticia][ Infelizmente não pude entender sua última frase. ] [me chamo Leticia][ Você tem um belo nome Leticia. ] [prazer][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase.] [quem é voce?][ Sou um tipo de professor on-line de Qualidade de Software.] [como voce está hoje?][ Não sei nada sobre "como voce está hoje". Ou, não entendi sua pergunta. ] [de onde voce é?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [o que voce faz?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [onde vc trabalha?][ Não sei nada sobre "onde voce trabalha". Ou, não entendi sua pergunta. ]

Quadro 23 – Arquivo de log analisado

Page 66: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

66

<category> <pattern>EU ME CHAMO *</pattern> <template><srai>MEU NOME E <star/></srai></template> </category> <category> <pattern>PRAZER</pattern> <template>Obrigado</template> </category> <category> <pattern>COMO VOCE ESTA HOJE</pattern> <template><srai>COMO VOCE ESTA</srai></template> </category> <category> <pattern>DE ONDE VOCE E</pattern> <template>Sou de Santa Catarina, cidade de São José</template> </category> <category> <pattern>O QUE VOCE FAZ</pattern> <template><srai>MEUSCONHECIMENTOS</srai></template> </category> <category> <pattern>ONDE VOCE TRABALHA</pattern> <template>Na Univali em São José</template> </category>

Quadro 24 – Exemplos de categorias criadas após o processo de targeting [vamos falar sobre que assunto?][ Não sei nada sobre "que assunto". Ou, não entendi sua pergunta. ] [meu deus][ Não sei nada sobre "meu deus". Ou, não entendi sua pergunta. ] [e a sua mãe vai bem?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [como vai a família?][ Não sei nada sobre "como vai a família". Ou, não entendi sua pergunta. ] [voce acredita em Deus][ Você poderia fazer a sua pergunta de uma outra forma? ] [quem sao seus pais?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ] [voce tem amigos?][ Infelizmente não pude entender sua última frase. ]

Quadro 25 – Arquivo de log analisado

Page 67: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

67

<category> <pattern>VAMOS FALAR SOBRE QUE ASSUNTO</pattern> <template><srai>ASSUNTOSCONHECIDOS</srai></template> </category> <category> <pattern>MEU DEUS</pattern> <template><srai>CANSEI</srai></template> </category> <category> <pattern>_ MAE VAI BEM</pattern> <template>Vai muito bem obrigado!</template> </category> <category> <pattern>COMO VAI A FAMILIA</pattern> <template>Vai muito bem obrigado!</template> </category> <category> <pattern>VOCE ACREDITA EM DEUS</pattern> <template>Sim, eu acredito em Deus!</template> </category> <category> <pattern>_ PAIS</pattern> <template><srai>PAIS</srai></template> </category> <category> <pattern>_ AMIGOS</pattern> <template><srai>AMIGOS</srai></template> </category>

Quadro 26 – Exemplos de categorias criadas após o processo de targeting

Como mencionado na seção 5.1 deste capítulo, a base de conhecimento

específico possui cerca de 140 conceitos. Neste trabalho optou-se por trabalhar um

número menor de tópicos, buscando maior interação com o usuário. Inicialmente os

tópicos escolhidos foram: Qualidade de software em si, Processo de Software,

Requisitos de Qualidade, Garantia de Qualidade e Teste de Software. Procura-se ligar

um assunto a outro de forma a conduzir o usuário leigo em Qualidade de Software. Os

tópicos abordados em um conceito devem também fazer parte da base de conhecimento.

Além disto, os conceitos devem ser abordados de forma que o chatterbot pareça um

professor e não apenas um dicionário. Para isto, é preciso detalhar ao máximo cada

tópico.

Page 68: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

68

A seguir será apresentado um exemplo de modificação na base, que reflete a

idéia abordada neste parágrafo. Se o usuário demonstra interesse em saber sobre

qualidade, a seguinte categoria é processada:

<category> <pattern>QUALIDADE</pattern> <template>Qualidade de Software?</template> </category>

Quadro 27 – Exemplo de categoria - Qualidade

Neste caso, o chatterbot tenta especificar mais o assunto, indagando se o

interesse é em Qualidade de Software. Se a resposta for “Sim”, a categoria abaixo

analisa o contexto, e responde de acordo com o que foi solicitado:

<category> <pattern>SIM</pattern> <that>QUALIDADE DE SOFTWARE</that> <template> A Qualidade de Software é uma área de conhecimento da Engenharia de Software que objetiva garantir a qualidade do software através da definição e normatização de processos de desenvolvimento. Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça às espectativas do cliente, dentro daquilo que foi acordado inicialmente. No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento, desta forma, é comum que a busca por um software de maior qualidade passe necessariamente por uma melhoria no processo de desenvolvimento. </template> </category>

Quadro 28 – Exemplo de categoria – Qualidade de Software

A resposta sendo negativa, o chatterbot apresenta o conceito geral de qualidade,

como mostra o Quadro 29.

<category> <pattern>NAO</pattern> <that>QUALIDADE DE SOFTWARE</that> <template> Neste caso podemos falar de qualidade em geral: Você pode entender a qualidade como sendo a totalidade de características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas. Esta definição é usada pela norma NBR ISO 8402. Para ajudar no entendimento, uma entidade pode ser uma atividade ou um processo, um produto, uma organização ou uma combinação entre eles. </template> </category>

Quadro 29– Exemplo de categoria – Qualidade - Conceito

A Base inicial possuía 504 categorias, sendo 364 de linguagem natural e 140 de

conhecimento específico. Por meio do processo de targeting, foram analisados 77

Page 69: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

69

arquivos de log e acrescentadas 282 novas categorias, sendo 270 de linguagem natural e

12 de conhecimento específico.

O processo de targeting não possui necessariamente um fim, sendo que, o

conhecimento é infinito. Haverá sempre a possibilidade de aprimorar e acrescentar

conhecimento à base. Seguindo o modelo descrito neste capítulo, o objetivo é aumentar

gradativamente o número de categorias, tanto de linguagem natural quanto de

conhecimento específico, para que o agente possa se comunicar cada vez melhor e

servir adequadamente ao seu objetivo maior que é o auxílio no ensino de Qualidade de

Software, sendo incorporado à Plataforma Colaborativa de Engenharia de Software, o

Projeto PLACES.

5.3 CONSIDERAÇÕES DO CAPÍTULO

Este capítulo mostrou como estava estruturada a base de conhecimento inicial, a

análise dos arquivos de log, as modificações feitas e, exemplos de categorias criadas a

partir desta análise. A ferramenta acelerou bastante o processo de inserção de

categorias, por meio da automatização do cadastro e importação. No capítulo seguinte

serão apresentadas as conclusões do trabalho através da análise de cada objetivo

específico. Além disto, serão citadas as dificuldades encontradas durante o

desenvolvimento do trabalho e, sugestões de trabalhos futuros.

Page 70: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

70

6 CONCLUSÃO

A inteligência artificial é um dos temas mais polêmicos e misteriosos da

atualidade. A idéia de construir máquinas ou sistemas capazes de simular o

comportamento humano é um desafio que instiga muitas pessoas no mundo todo,

principalmente estudantes e profissionais da Ciência da Computação. Os mecanismos e

técnicas utilizados em inteligência artifical, interessam realmente aos estudantes e

profissionais da área, sendo que, às demais pessoas, interessam os resultados.

Este trabalho apresentou um breve estudo sobre agentes de conversação, buscou

aprofundamento a respeito do modelo ALICE de desenvolvimento de agentes de

conversação, e sobre a linguagem AIML, modelo escolhido para a estruturação da base

de conhecimento. O estudo sobre a linguagem AIML abordou os vários tipos de

categorias e sua usabilidade. Tornou-se necessária também, a descrição do agente de

conversação desenvolvido por (RIOS, 2005), para que pudesse ser feito o planejamento

de melhorias.

A partir da análise de duas ferramentas de edição de categorias AIML, foi

elaborada a proposta de uma nova ferramenta, capaz de auxiliar no processo de

manutenção da base de conhecimento. O desafio de construir uma ferramenta, que

possibilite um leigo agregar conhecimento a um agente de conversação, foi a proposta

desse trabalho. Existem inúmeras ferramentas para edição e cadastro de categorias

AIML, mas nenhuma voltada para o público leigo. Todas as ferramentas encontradas,

necessitam de conhecimentos na linguagem AIML para serem utilizadas.

A ferramenta implementada serviu para o processo de melhoria da base de

conhecimento, e servirá também para manutenções futuras. Da mesma forma que o

cérebro humano tem a capacidade infinita de acumular conhecimento, assim é o cérebro

do chatterbot, ou seja, sua base de conhecimento. O processo de targeting, feito por

meio da análise de logs de conversação e posterior inserção de novas categorias na base,

Page 71: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

71

é infinito. A cada categoria criada, o agente aumenta a possibilidade de reconhecimento

de sentenças.

A estrutura da base de conhecimento foi mantida, mas foram adicionadas

diversas categorias de linguagem natural após a análise dos primeiros logs de

conversação. O agente passou a reconhecer mais tipos de sentenças de saudação e

introdução de conversa. Desta forma, os assuntos conhecidos pelo chatterbot foram

apresentados mais facilmente ao usuário. No entanto, a parte que precisa de maior

atenção ainda, é a base de conhecimento específico. Neste trabalho, o número de tópicos

foi reduzido, para que fosse possível trabalhar cada tópico de forma mais detalhada e

com uma linguagem adequada a um agente de conversação.

O trabalho realizado abre caminho para um constante aprimoramento da base de

conhecimento do chatterbot, utilizando como principal aliada, a ferramenta de edição de

categorias. Futuramente o agente poderá servir como um auxílio efetivo na

aprendizagem de Qualidade de Software e também de outras disciplinas.

6.1 TRABALHOS FUTUROS

A seguir estão listadas algumas sugestões de trabalhos futuros:

• Integração do chatterbot com o projeto Places4.

• Um agente que consiga aprender através das conversas realizadas com pessoas

previamente identificadas.

• Um chatterbot que tenha a capacidade de interpretar a pergunta, assim, fazendo

com que ele possa responder perguntas por similaridade.

• Inserção de novas funcionalidades na ferramenta de edição de categorias, como

apagar e editar categorias já cadastradas.

4 O projeto Places é desenvolvido pela UNIVALI, e tem como objetivo atender o processo colaborativo das micro e pequenas empresas.

Page 72: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

72

7 REFERÊNCIAS

AIMLPAD. 2005. Disponível em: <209.168.21.76/AIMLpad>. Acesso em:

Novembro/2005.

ALICE. The A. L. I. C. E. Artificial Intelligence Foundation. 2005. Disponível em:

http://www.alicebot.org. Acesso em: Setembro/2005.

COCA-COLA 2004. Coca-Cola – Contact Us. Disponível em: http://www2.coca-

cola.com/contactus/. Acesso em: Setembro/2005.

EDNA, L. S.; ESTERA, M. M. Metodologia da Pesquisa e Elaboração de

Dissertação. 3.ed. rev. e atua. Florianópolis: Ed. UFSC, 2001.

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo: Atlas, 1991.

JUNG, Carlos Fernando. Metodologia Científica: ênfase em pesquisa tecnológica.

4.ed. rev. e ampl. 2004. Disponível em: http://www.jung.pro.br/. Acesso em:

Setembro/2005.

LAVEN, Simon. The Simon Laven Page. 2001. Disponível em:

http://www.simonlaven.com. Acesso em: Novembro/2005

LEONHARDT et al. ELEKTRA: Um Chatterbot para Uso em Ambiente Educacional.

2003. Disponível em: http://www.cinted.ufrgs.br/renote/set2003/artigos/elektra-

chatterbot.pdf. Acesso em: Setembro/2005.

LESNICK, L. L.; MOORE, R. E. Creating Cool Intelligent Agents For The Net.

Foster City: IDG Books Worldwide, Inc.,1996.

MICROSOFT. Microsoft Office System. 2003. Disponível em

http://www.microsoft.com/brasil/office/default.asp. Acesso em: Setembro/2005.

MORETTO, Luis Machado. PLACES: Uma Plataforma Colaborativa para

Engenharia de Software via web. Trabalho de Conclusão de Curso. São José:

UNIVALI, 2005.

Page 73: UMA FERRAMENTA PARA A EDIÇÃO DE CATEGORIAS AIML …siaibib01.univali.br/pdf/LeticiaWalber.pdf · centro de educaÇÃo sÃo josÉ ... letícia walber uma ferramenta para a ediÇÃo

73

PANDORABOTS. 2003. Disponível em: www.pandorabots.com. Acesso em:

Novembro/2005.

PERRONI. Hélio. ProgramJ: Flexible Alicebot. 2005. Disponível em:

http://bitoflife.cjb.net/programj.html. Acesso em 23 fevereiro 2005.

RINGATE, Thomas. AIML Primer. 2002. Disponível em:

http://www.alicebot.org/documentation/aiml-primer.html. Acesso em: Outubro/2005.

RIOS, Diego. Criação de um Chatterbot para auxiliar na educação à distância.

Trabalho de Conclusão de Curso. São José: UNIVALI, 2005.

TEIXEIRA, Sérgio; RAMIRO, Thiago Bortolo; OLIVEIRA, Elias de; MENEZES,

Crediné S. Chatterbots em ambientes de aprendizagem – uma proposta para a

construção de bases de conhecimento. 2005. Disponível em:

http://www.unisinos.br/_diversos/congresso/sbc2005/_dados/anais/pdf/arq0261.pdf. Acesso

em: Outubro/2005.

TEIXEIRA, Sérgio; MENEZES, Crediné S. Facilitando o uso de Ambientes Virtuais

através de Agentes de Conversação. 2003. Disponível em:

http://www.multicast.com.br/sergio/amcorabot.pdf. Acesso em: Outubro/2005.

WALLACE, Richard S. AIML Overview. 2001. Disponível em:

http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.html. Acesso em:

Outubro/2005.