sábado, 17 de setembro de 2011

LINGUAGEM AIML APLICADA COM MECANISMO PARA TRATAMENTO DE INTENÇÕES EM CONVERSAÇÃO (poster apresentado no Salão de Ensino 2011)

Linguagem AIML

AIML (Artificial Intelligence Markup Language) é uma linguagem de marcação, baseada em XML (eXtensable Markup Language) e utilizada na base de conhecimento de robôs de conversação, e é baseado na técnica de casamento de padrões. O projeto ALICEBOT (WALLACE, 2001) é baseado nesta técnica.

A linguagem AIML descreve uma classe de objetos, conhecidos como objetos AIML, que são interpretados por um programa de computador que descreve o comportamento do robô de conversação.

Para o funcionamento do chatterbot é necessário um interpretador da linguagem AIML, esse interpretador, disponível em diversas linguagens reconhece as principais tags de AIML na versão 1.0.1, dentre as quais: topic, category, pattern, template, random, condition, srai entre outras.

Estrutura Padrão de uma Categoria AIML

Figura 1: Estrutura Padrão de uma Categoria AIML

A figura 1 mostra um exemplo de arquivo AIML contendo uma categoria que mostra um padrão de entrada digitado pelo usuário, pattern, e três possíveis saídas do robô de conversação, template, sendo que apenas uma das saídas é mostrada aleatoriamente com uso da tag random.

Fazer uso de curingas e variáveis, em AIML, pode melhorar as capacidades de entendimento do robô de conversação, tornando-o mais flexível quanto as possibilidades de escrita dos usuários e armazenamento de valores para simular a memória do chatterbot.

Uso de curingas e variáveis

Figura 2: Uso de Curingas e Variáveis

Mesmo com os recursos de variáveis, condições, recursividade, somente a linguagem AIML não é suficiente para tornar uma conversação flexível e coerente, podendo haver desvios na conversação, repetição de padrões de saída e trocas inesperadas de tópicos de conversação.

Para tratar esses problemas, é possível utilizar recursos de AIML em conjunto com a Teoria da Análise da Conversação (MARCUSCHI, 1991). Esse tratamento, proposto por NEVES (2005), consiste em fazer um controle da conversação com base no andamento global da conversa e variáveis de controle como sessão da conversação, intenção do robô e do usuário, impedindo que hajam trocas inesperadas de tópicos e repetições excessivas.

Teoria da Análise da Conversação

Conforme Dittmann apud Marcuschi (1991), uma conversação é uma interação verbal entre um ou mais interlocutores, havendo aceitação ao tema e o mínimo de conhecimento entre as partes.

Em uma conversação se toma como unidade o turno, sendo que em algum momento uma das partes envolvidas possui o turno de fala, então há uma troca de turno para o outro envolvido na conversação, isso simplificando ao máximo, sem levar em conta as interrupções e conversas simultâneas, pode-se dizer que a conversa é uma troca de turnos de um falante para o outro. Em um robô de conversação, chatterbot, pode-se afirmar que a troca de turnos é precisa, baseada em uma regra do tipo “fala um por vez”.

No que tange à organização local da conversação, Schegloff apud Marcuschi (1991, p.35) introduziu o termo “pares adjacentes”, referindo-se a sequências de turnos de uma conversação, quando há por exemplo: pergunta-resposta, ordem-execução, convite-aceitação/recusa.

Marcuschi (1991) destacou recursos para a organização global da conversação, apresentando que uma conversação pode possuir três seções distintas, uma de abertura, onde os envolvidos se apresentam, uma de desenvolvimento, onde o tema é apresentado e debatido e uma terceira de fechamento, onde ocorre a despedida dos envolvidos e término da conversa.

iAIML: AIML com Intenção

O modelo proposto por NEVES(2005), para o tratamento de intenções em conversação com a linguagem AIML, utiliza a linguagem sem a necessidade de instalação de programas ou recursos adicionais. O autor utiliza apenas os comandos padrões da linguagem AIML na versão 1.0.1, tags para condicionais, recursividade e variáveis, que vão guardar informações sobre as intenções da conversação e sessão da conversação.

NEVES (2005) utiliza três variáveis para o tratamento de intenção:

  • session: a variável session tem a função de guardar o andamento global da conversação, no caso ela que vai fazer o controle se a conversa está nas sessões de abertura, desenvolvimento ou fechamento.
  • user_intention: com essa variável é feito um controle de repetições baseado na intenção do usuário.
  • bot_intention: a variável bot_intention serve para tratar sentenças desconhecidas com base na última intenção do robô de conversação. Sendo assim, é possível utilizá-la também quando o chatterbot faz alguma pergunta e uma resposta é esperada.

Cada categoria (padrão com entrada de dados e saídas possíveis) de AIML deverá conter as variáveis de controle de sessão, e intenção, bem como as devidas verificações, sobre o posicionamento global e local da conversação.

figura3

Figura 3: Exemplo de categoria com a intenção de Saudar

Fonte: (NEVES, 2005)

Na figura 3 há um teste para cada sessão de conversação e um teste para a intenção do usuário, que servirá para tratar a repetição da intenção de saudar. Primeiramente ele testa a sessão de abertura, e ajusta as variáveis user_intention e bot_intention. Caso a sessão seja de desenvolvimento ou fechamento, o chatterbot questiona ao usuário sobre a saudação repetida, uma vez que eles já estavam interagindo.

A condição sobre a variável user_intention verificará se o usuário está repetindo a saudação.

NEVES (2005) efetuou um experimento, onde 87 pessoas utilizaram um chatterbot baseado em AIML e outro baseado em iAIML (com tratamento de intenções). Após, elas responderam um questionário contendo três questões de múltipla escolha, avaliando a qualidade geral do diálogo, andamento da conversa e coerência das réplicas utilizadas pelos chatterbots.

Tabela 1: Resultados obtidos na comparação de chatterbots

 

AIML Padrão

iAIML

  Média Desvio Média Desvio
Qualidade Geral do Diálogo 1,55 0,10 1,77 0,05
Andamento da Conversa 1,93 0,05 2,12 0,08
Coerência das réplicas 1,82 0,18 2,42 0,30
Adaptado de NEVES, 2005.
 

Com a proposta de NEVES, para o tratamento de intenções, se resolve um problema relativo a coerência das conversas entre usuário e robô de conversação, também o problema do tratamento de sequências desconhecidas e controle de repetições.

Pode-se usar, ainda, nos padrões de saída, várias formas de uma mesma sentença, e colocá-las para serem recuperadas de forma aleatória. Assim uma questão feita duas vezes pode ter duas ou mais formas de respostas diferentes.

 

Referências

KRAUS, H., FERNANDES, A. Desenvolvimento de um Chatterbot para Área Imobiliária Integrando Raciocínio Baseado em Casos. 2007. Disponível em: [http://revistaseletronicas.pucrs.br/fo/ojs/index.php/hifen/article/view/3857/2928]. Acesso em: 09/06/2010.

LEONHARDT, M. D., CASTRO, D. D., DUTRA, R. L. S., TAROUCO, L. M. R. ELEKTRA: Um Chatterbot para Uso em Ambiente Educacional. Artigo Publicado na Revista Renote. V.1 n.º 2, Setembro de 2003. Disponível em: [http://seer.ufrgs.br/renote/article/view/14336]

LEONHARDT, M. D., Doroty: Um Chatterbot para Treinamento de Profissionais Atuantes no Gerenciamento de Redes de Computadores. Dissertação apresentada como requisito parcial para obtenção do grau de Mestre em Ciências da Computação. Maio de 2005.

MARCUSCHI, Luiz Antônio. Análise da Conversação. 1991. Editora Ática. 2ª Edição.

NETO, A. et al. Chatterbot em AIML para o Curso de Ciência da Computação. Artigo Publicado nos Anais do I Workcomp-Sul. Maio/2004. Florianópolis - SC Disponível em: [http://inf.unisul.br/~ines/workcomp/cd/pdfs/2312.pdf] Acesso em: 04/05/2010.

NEVES, A. M. M., BARROS, F. A. iAIML: Um Mecanismo para Tratamento de Intenção em Chatterbots. Artigo publicado nos anais do V ENIA (Encontro Nacional de Inteligência Artificial) – Sociedade Brasileira de Computação (SBC). Julho/2005 Disponível em [http://www.unisinos.br/congresso/sbc2005/]

WALLACE, R. ALICEBOT. 2003. Disponível em: [http://alicebot.blogspot.com/] Acesso em 16/06/2010.

WALLACE, R. Artificial Intelligence Markup Language (AIML) Version 1.0.1. 2001. Disponível em: [http://www.alicebot.org/TR/2001/WD-aiml/] Acesso em: 16/06/2010.

WALLACE, R. A.L.I.C.E. Artificial Intelligence Foundation, Inc. 2009. Chapter 13 The Anatomy of A.L.I.C.E. Disponível em: [http://www.alicebot.org/anatomy.html] Acesso em 16/06/2010.

Nenhum comentário:

Postar um comentário