• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
73
0
0

Texto

(1)

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

(2)

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

(3)

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

(4)

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.

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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.

(11)

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.

(12)

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

(13)

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).

(14)

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.

(15)

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

(16)

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

(17)

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.

(18)

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.

(19)

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

(20)

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

(21)

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.

(22)

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

(23)

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.

(24)

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.

(25)

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>

(26)

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.

(27)

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

(28)

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>

(29)

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.

(30)

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.

(31)

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.

(32)

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.

(33)

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.

(34)

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.

(35)

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.

(36)

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.

(37)

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.

(38)

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.

(39)

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.

(40)

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.

(41)

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.

(42)

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.

(43)

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.

(44)

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.

(45)

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.

(46)

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

(47)

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.

(48)

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.

(49)

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.

(50)

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

Referências

Documentos relacionados

Apesar da longa distância dos grandes centros urbanos do país, Bonito destaca- se, regionalmente, como uma área promissora dentro do Estado de Mato Grosso do Sul. Bonito,

Also due to the political relevance of the problem of repressing misguided employment relationships, during the centre-left Prodi Government (2006-2008) and the

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

[r]