• Nenhum resultado encontrado

Um Agente Conversacional Emocional

N/A
N/A
Protected

Academic year: 2021

Share "Um Agente Conversacional Emocional"

Copied!
8
0
0

Texto

(1)

Um Agente Conversacional Emocional

Márcia Cristina Moraes1, Rodrigo Souza Wilkens1

1

Faculdade de Informática – Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) Caixa Postal 90619-900 – Porto Alegre – RS – Brasil

mmoraes@inf.pucrs.br, rswilkens@gmail.com

Abstract. This papers intends to present the impact of emotions during

conversation, considering the Big-Five Personality Model. It is presented an agent that implements emotions related to dialogues. The agent is represented through an animated face.

Resumo. Neste trabalho mostramos o impacto da conversação sobre as

emoções, respeitando o modelo de personalidade Big-Five. Mostramos a implementação de um agente que expresse estas emoções através da interface permitindo também verificar os valores das emoções.

1. Introdução

Atualmente vários processos realizados diariamente por seres humanos são automatizados em algum tipo de sistema computacional. A fim de superar o desconforto que algumas pessoas têm em utilizar estes tipos de sistemas, agentes conversacionais, ou chatterbots, têm sido utilizados em diferentes aplicações. Pretendendo com isto proporcionar uma interação mais semelhante a uma interação humano-humano.

Considerando a habilidade de um agente em proporcionar uma interação semelhante a um ser humano, é necessário que o agente possua o que Bates [Bates 1992] chama de “ilusão de vida”. Para tanto, os agentes devem parecer inteligentes, incorporando emoções e personalidade que engajem o usuário em uma interação mais atrativa, motivada e útil.

Neste sentido este artigo tem como objetivo mostrar a construção de um agente conversacional emocional. As principais características deste agente são: avaliação do diálogo sobre as emoções, representação do modelo de personalidade Big-Five e impacto dos valores emocionais sobre a interface. Outra característica importante é o retorno do valor da emoção para seu valor inicial após algum tempo.

Este trabalho está dividido em quatro seções. A segunda seção aborda os aspectos que o agente apresentado possui, quanto a conversação e quanto as emoções. A terceira seção mostra a implementação do agente, focando a implementação do aspecto emocional, e a quarta seção discute as conclusões e trabalhos futuros.

1.1. Agentes Conversacionais

Agentes são entidades resolvedoras de problemas com limites e interfaces bem definidas. Eles agem em um ambiente particular, recebem as entradas relacionadas aos estados do seu ambiente através de sensores e agem no seu ambiente através de atuadores. Eles são projetados para solucionar problemas específicos, para isto possuem seus próprios objetivos, são autônomos e possuem comportamento flexível, sendo assim, eles precisam ser reativos (capazes de responder de maneira rápida as mudanças que ocorrem no seu ambiente) e pró-ativos (capazes de adotar novos objetivos) quando necessário [Wooldridge e Jennings 1995] e [Jennings 1999].

(2)

Agentes conversacionais ou chatterbots são agentes que podem ser analisados segundo uma série de características [Franklin e Graesser 1996], como mostradas na

tabela 1.

Tabela 1. Características dos Chatterbots

Atributo Significado Capacidade de

aprender

Pode aprender sobre o domínio e sobre o diálogo com o usuário, este tipo de chatterbot tem maior probabilidade de manter diálogo por mais tempo com o usuário.

Memória Capacidade de lembrar de diálogos passados e sentenças mencionadas previamente dentro de um mesmo diálogo.

Domínio Possíveis temas para o diálogo.

Robustez Capacidade de responder a sentenças não reconhecidas. Auto-conhecimento Capacidade de falar de si mesmo.

Laven [Laven 2006] apresenta uma classificação para chatterbots que considera os recursos utilizados. Nesta classificação os chatterbots podem ser encontrados nas seguintes categorias: clássicos, complexos, amigáveis e ensináveis. Os clássicos são os primeiros chatterbots criados, com o objetivo de estudar a complexidade da comunicação em linguagem natural entre homens e máquinas, como exemplo temos Eliza [Weizenbaum 1966]. Os complexos foram criados a partir de linguagens de programação mais sofisticadas, seu funcionamento é baseado em padrões de mapeamento de perguntas mais comuns de usuários nas respostas adequadas, como exemplo temos Alice [Wallace 2000]. Os amigáveis são capazes de reproduzir o comportamento de uma pessoa, como exemplo há Julia [Mauldin 1994]. Os ensináveis são os que possuem capacidade de aprendizagem, como exemplo há Megahall [Hutchens 1998].

1.2. Emoções e Personalidade em Agentes

O uso de emoções e personalidade em agentes traz um ganho significativo, pois contribui para a ilusão de vida do agente. A simples presença de características humanas faz com que as pessoas apliquem regras sociais aos computadores. Em alguns casos os usuários ficam emocionalmente engajados tentando entender, controlar e prever o funcionamento do agente [Erickson 1997].

Segundo o dicionário [Ferreira 1999] emoção é o ato de mover (moralmente), uma perturbação ou variação do espírito advinda de situações e que se manifesta como alegria, tristeza e outras. Também podendo ser um abalo moral, comoção, ou ainda, uma reação intensa e breve do organismo a um lance inesperado, a qual se acompanha de um estado afetivo de conotação penosa ou agradável. Sendo também um estado de ânimo despertado por sentimento estético, religioso e outros.

Apesar das divergências entre as teorias de personalidade, existem alguns aspectos com os quais os estudiosos concordam, tais como: as diferenças individuais são relativamente estáveis; a personalidade pressupõe uma adaptação do indivíduo ao mundo; boa parte da personalidade é genérica; a personalidade inclui dimensões comportamentais e traços [Allen 2000]. Em [John e Srivastava 1999], é mostrado o

(3)

modelo Big-Five, que possui fatores básicos que unificaram todas as teorias estudadas nos últimos 50 anos, dividindo em cinco grandes traços de personalidade, sendo estes: estabilidade emocional, introversão, fechado a novidades, antipatia, conscienciosidade.

1.3 AIML e Chatterbean

Certamente a linguagem natural é a forma de comunicação mais utilizada para interação com o usuário em agentes conversacionais, pois esta além permitir maior liberdade ao usuário propicia características como credibilidade. Das formas existentes destaca-se AIML, por ser uma linguagem portável, de alto nível e independente de linguagem de programação [Wallace, 2000].

Artificial Intelligence Markup Language, abreviada em AIML, descreve uma classe de objetos de dados chamados de AIML que deriva de XML (Extensible Markup Language). As estruturas de objetos AIML são semelhantes a XML, embora objetos XML possam conter documentos AIML. Entre os objetivos desta linguagem destacamos: AIML deve ser fácil para pessoas aprenderem; deve codificar o mínimo conceito necessário para poder modelar um conhecimento de estimulo-resposta; e AIML não deve incorporar dependências de qualquer outra linguagem.

Chatterbean é um interpretador AIML desenvolvido puramente em Java. Seus objetivos são: Ser conforme a versão padrão atual AIML (1.0.1); Programar um simples, fácil e personalizável JavaBeans; Ser o mais auto contido possível. Idealmente, uma atualização do Chatterbean deveria compilar e rodar em qualquer maquina virtual com a apropriada versão do JDK instalada; Utilizando a API Java o máximo possível para escrever códigos concisos, fáceis de entender e modificar; e Prover um framework controlável. Possível de construir, configurar e controlar uma instancia de interpretador AIML. Este ambiente tem suporte a diversas tags AIML, entre elas: <aiml>, <gender>, <bot>, <category>, <person>, <li>, <condition>, <date>, <formal>, <get>, <person2>.

Com o objetivo de facilitar o uso, a distribuição e adaptação o Chatterbean permite utilizar arquivos XML para indicar propriedades e configurações predefinidas. Usualmente há quatro arquivos XML auxiliares: context, properties, slitters e substitutions.

No arquivo XML context são configurados as propriedades que contextualizam o bot, sendo estas divididas em dois tipos: os que podem ser mudadas em tempo de execução e as que não podem. No site oficial da ALICE é indicada uma lista de propriedades para ser utilizada com a Alice [Wallace 2007].

O XML properties define os locais em que estão os arquivos que possuem os valores das propriedades, sendo estes: context, splitters, substituitions, categorias (arquivos AIML) e pasta onde serão armazenados os arquivos log.

No arquivo XML slitters estão os indicadores de quebra de sentença e de palavra. O XML substitutions estão indicados substituições que devem ser realizadas na entrada do usuário para esta estar adequada ao que o sistema espera. Da mesma forma que o site oficial da Alice contém as propriedades necessárias para o desenvolvimento de uma Alice este contém arquivos AIML com a base de conhecimento da Alice [Wallace 2007].

(4)

2. Agente Conversacional Emocional

2.1. Sistema Conversacional

O sistema conversacional utiliza-se do framework chatterbean para realizar a interpretação. Para a utilização deste com os arquivos disponibilizados no site oficial da Alice necessitamos fazer algumas alterações na base de conversações. Sendo estas descritas nesta subseção.

Devido ao framework chatterbean não possuir suporte a HTML necessitamos realizar algumas alterações nos arquivos. Para solucionar esta dificuldade substituímos estas tags por comandos ou frases com a mesma semântica. Estas substituições são mostradas na tabela 2.

Tabela 2: Substituições das tags HTML por textos de mesma semântica. Tag HTML Substituição Justificativa

</br> \n A tag indica quebra de linha. O equivalente em Java é “\n”.

<a href = “link”>

nome nome in link

Indica o nome e o link que estava associado.

</a> Não há representação gráfica desta tag já que não utilizamos o link.

<ul> -> A tag indica lista, portanto substituímos por um marcador ASCII.

Outra dificuldade encontrada foi o fato das tags serem armazenadas de forma recursiva, devido a isto se tem limitações quanto ao número de tags interpretadas. Esta limitação deve-se a linguagem de programação Java possuir uma pilha de memória para recursão. Considerando esta limitação retiramos alguns arquivos, utilizando portanto os arquivos: Adverbs, AI, ALICE, Astrology, Atomic, Biography, Blackjack, Bot, Botmaster, Client, Computers, Date, Default, Geography, Happy, History, Human, Humor, Inquiry, Integer, Interjection, IU, Knowledge, Literature, Luckslots, Multiple, Music, Pesonality, Philosophy, Pickup, Psycology, Reduce, Reducer, Salutations, Science, Spam, Stack, That, Utilities e Workplay.

Devido a esta dificuldade, do tamanho limitado na pilha de memória, preparamos também uma lista com os próximos arquivos a serem removidos, baseados no número de categorias contidos nestes.

2.2. Sistema Emocional

O sistema emocional é responsável por representar o estado emocional do agente, atualizando a representação do agente para refletir este estado. Neste há a representação das emoções, personalidade, instintos e percepções internas do agente.

A memória primitiva é responsável por indicar como a ação tem impacto no agente de forma não interpretada, similar ao reflexo, em agentes conversacionais isto equivale à sensação passada pela palavra.

O estimulo neural é responsável por questões ligadas ao estado “físico” do agente. Nesta implementação é o tempo que o agente espera por respostas do usuário. As emoções são responsáveis por armazenar as emoções do agente e realizar as inferências nestas, assim como, por indicar a personalidade e a influencia desta sobre a emoção. A Valência (V) da emoção pode ser calculada utilizando a seguinte fórmula:

(5)

(

I E G

)

EVF

V = , , , onde I é o peso do estado emocional, E indica o peso do estado

externo (instintos da frase atual), G representa o peso do objetivo e esta função é compreendida entre [0,1].

O estado Emocional indica a personalidade do agente e, portanto, torna as modificações consistentes com o modelo de personalidade. Os traços de personalidade do modelo Big-Five são implementados neste.

A emoção deve sempre respeitar o limite superior e inferior da emoção. Como mostrado em [Vick 2005] utiliza-se valores compreendidos entre 0 e 1, sendo considerado a intensidade da manifestação dividida entre baixo, normal e alto, respectivamente considerando os seguintes valores: 0,0≤x<0,25, 0,26≤x≤0,9 e

0 , 1 91 , 0 ≤x< .

Periodicamente (independente de outras partes do sistema) o valor das emoções deve ser atualizado para tender ao valor inicial [Nasr, Yen e Ioerger 2000]. Esta atualização dever ser realizada de forma a possuir uma curva suave de decremento utilizamos a fórmula y

x 1

. Quando for realizado o último decremento este deve ser o decrementado somado com o valor de −

nx= y

x

2

1

1 , para que tenha sido normalizado o valor (retorne ao valor inicial).

3. Implementação

3.1. Sistema Emocional

Implementamos a memória primitiva estendendo as tag AIML criando uma nova tag, que chamamos de emocao figura 1. Esta é composta de uma intensidade e uma lista de tuplas, onde uma tupla é composta por um nome da emoção e o seu valor.

<emocao intensidade = “intensidade_emoção” nome = “nome_emoção1” valor = “valor_emoção1” nome = “nome_emoção2” valor = “valor_emoção2” ... nome = “nome_emoçãoN” valor = “valor_emoçãoN”>

Figura 1: Tag emoção

A tag emoção foi implementada no chatterbean, como mostra a figura 2. Durante a fase de leitura dos arquivos são criadas instâncias da classe Emocao (representação da tag emocao no chatterbean) e nestas são armazenadas a intensidade e as tuplas (nome e valor a se manifestar). Durante a conversação os dados da instância são passados para o estado emocional com o objetivo de atualizá-lo.

Public class Emocao extends TemplateElement{ private float intensidade;

private List<Tupla> emocoes = new ArrayList<Tupla>(); public Emocao(Attributes attributes) {

intensidade = Integer.parseInt(attributes.getValue( "intensidade")); for(int x = 1; x < attributes.getLength(); x = x + 2){ emocoes.add(new Tupla(attributes.getValue(x), Double.parseDouble(attributes.getValue(x+1)))); } }

public String process(Match match) {

EstadoEmocional.atualizar(intensidade, emocoes);

(6)

} }

Figura 2: Classe que implementa a tag emoção

Sendo definido a sintaxe desta tag, modificamos os arquivos AIML para que estes possuam esta tag nas palavras que devem impactar nas emoções. Estas são indicadas em [Strauss e Allen 2008], como mostrado na

tabela 3. Na

tabela 3 o atributo intensidade indica a intensidade que deve afetar, e a lista de nome e valor indica a emoção que deve ser afetada, a porcentagem de impacto em cada emoção e Hp, Sd, Ax e Ag indicam respectivamente as emoções Happiness, Sadness, Anxiety e Anger, onde a categoria um indica a primeira porcentagem de impacto e a categoria dois indica a segunda categoria de impacto [Strauss e Allen 2008].

Tabela 3: Palavras e impactos nas emoções

Palavra Intensidade Categoria 1 Categoria 2

Excited 6.63 (1.53) Hp 60.0 Sp 30.0 Lust 6.38 (0.93) Hp 66.0 Sp, Ax 08.0 Murder 6.27 (1.42) Fr 40.0 Ag 36.0

Pain 6.21 (1.16) Fr, Sd 34.0 Ax 18.0

A funcionalidade prevista pelo neural foi implementada através da classe que passa a frase do usuário para o chatterbean. Nesta classe foi criado um atributo com o horário da última conversação, e a cada entrada do usuário é verificado o tempo decorrido após a última conversação, se o tempo decorrido for maior que cinco minutos é inserido o texto “finally” no inicio do texto de resposta do agente.

O estado emocional foi implementado na forma de uma classe, nesta estão às representações das emoções e de personalidade. O modelo de personalidade utilizado foi o Big-Five e quanto às emoções foi utilizado os valores apresentados em [Strauss e Allen 2008]. As emoções representadas foram: anger, anxiety, disgust, fear, happiness, neutral, sadness e surprise, sendo utilizado valores entre zero e um para representar seus valores. A atualização das emoções ocorrem da seguinte maneira: para cada valor da tupla este é multiplicado pelo valor da intensidade e pelo valor do traço de personalidade e então este valor total é adicionado ao valor atual da emoção.

O decremento das emoções, para normalizá-las, é realizado por um fluxo de execução (thread) totalmente independente das outras classes. Este método implementa a função descrita na seção anterior, permitindo assim uma aproximação muito boa com o valor inicial da emoção (antes da ativação do fluxo de execução paralelo).

3.2. Interface Gráfica

O ambiente onde o usuário realiza a conversa com o agente segue o mesmo padrão de interface que os sistemas de troca de mensagens instantâneas. Esta escolha de interface deu-se devido ao grande número de usuários deste tipo de sistema. A interface principal, figura 3, é composta de dois campos de texto (o superior contém um registro da conversa e o inferior é a entrada de frases do usuário) um botão para o usuário enviar a sua mensagem e uma imagem do agente.

(7)

Figura 3: Interface de conversação.

Outra interface disponível no sistema é a interface de inspeção de valores das emoções. Esta indica o valor atual de cada emoção, assim como se esta possui valor alto, médio ou baixo. Como mostrado na figura 4, o usuário pode visualizar tanto os valores de alto nível (indicando apenas o grau de manifestação) como os valores que estão sendo utilizados internamente pelo sistema.

(a) (b)

Figura 4: Interface de inspeção: (a) valor real, (b) valor de alto nível.

Outra característica do sistema é a utilização de um mesmo avatar, mas com expressões faciais diferentes. A representação do agente sempre indica a emoção que possui a maior manifestação. Estas faces foram criadas a partir do programa xFace [Balci 2005] e são utilizadas oito faces, uma para cada emoção, sendo estas mostradas na figura 5.

anger anxiety disgust fear happiness neutral sadness surprise

Figura 5: Faces representando as emoções.

Conclusão

Neste trabalho detalhamos a implementação do sistema emocional de um agente conversacional emocional, explorando o impacto do diálogo sobre as emoções e o impacto da personalidade sobre as emoções. O agente desenvolvido apresenta uma

(8)

interface comum ao usuário, que representa as emoções do agente, assim como, permite verificar as valências das emoções.

Referências

Allen, B. P. 2000. 3rd ed. Personality theories. Development, growth, and diversity. Boston: Allyn & Bacon.

Balci, K. Xface: authoring tool for embodied conversational agents. Proceedings of the 7th international conference on Multimodal interfaces, Torento, Italy. 2005

Bates, J. The Nature of Characters in Interactive World and The OZ Project. Thecnical Report CMU-CS-92-200 – Carnegie Mellon University. 1992.

Erickson, T. Design Agent As If People Mattered. In: Software Agents. Menlo Park, California: AAAI Press, 1997.

Ferreira, A. B. H. Novo Aurélio século XXI: o dicionário da língua portuguesa. Rio de Janeiro: Nova Fronteira, 1999. p.2128.

Franklin, S.; Graesser, A. Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. International Workshop on Agent Theories, Architectures and Languages, 3º, 1996. Springer-Verlag. 1996

Hutchens, J.; Alder, M. Introducing MegaHAL. Proceedings of the Human-Computer Communication Workshop. 271-274, 1998.

Jennings, N.R. Agent-based computing: Promise and perils. In: Proc. IJCAI-99, Stockholm, Sweden (1999), pp. 1429–1436.

John, O. P.; Srivastava, S. The Big-Five Taxonomy: history, measurement and theoretical perspectives. 1999

Laven, S. The Simon Lavel Home Page. Disponível em: <http://www.toptown.com/hp/sjlaven/>. Acesso em: 19 maio 2001.

Mauldin, M. L. Chatterbots, Tinymuds, And The Turing Test: Entering The Loebner Prize Competition, AAAI-94. 1994

Strauss G.; Allen D. Emotional intensity and categorisation ratings for emotional and nonemotional words. Cognition And Emotion, 2008, 22 (1), 114_133. 2008

Vick, E., H. Implementing Lexical and Creative Intentionality in Synthetic Personality. 2005, 105. Tese University of Central Florida.

Wallace, R. S. Don’t read me - A.L.I.C.E. and AIML documentation, available online at http://www.alicebot.com/dont.html, 2000 Acesso em: 20/07/2008

Wallace, R. S. The Annotated A.L.I.C.E. AIML, available online at http://www.alicebot.org/aiml/aaa, 2007 Acesso em: 20/08/2008

Weizenbaum, J. Eliza - A Computer Program for the Study of Natural Language Communication Between Man and Machine. Communication of the Association for Computing Machinery 9: 36–45. 1966

Wooldridge, M. J.; Jennings, N. R. Intelligent agents: theory and practice. The Knowledge Engineering Review, v.10, n. 2, pp.115-152,1995

Referências

Documentos relacionados

O principal objetivo deste passo ´ e introduzir metacaracteres (∗, +, ?, ...) para produzir sub-express˜ oes que gerem os padr˜ oes observados nas seq¨ uˆ encias de entrada.(2) Isto

Para isso o grupo dividiu-se em quatro subgrupos com diferentes temas de pesquisa: importância do níquel (propriedades e aplicações), os principais minérios de níquel e

Nesse sentido, as SE possibilitam a contextualização dos conteúdos escolares, tornando-os mais significativos para os estudantes, pois “[...] busca a articulação

LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré SF 02-16B 2004 LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré

[r]

Este trabalho tem como objetivo, apresentar uma metodologia alternativa de cálculo, baseada no Método dos Elementos Finitos (MEF) aliada ao Método dos Mínimos Quadrados e ao Método

Corrente Convencional de Não Funcionamento – Inf Valor estipulado da corrente para o qual o fusível não deve fundir durante o tempo convencional. Corrente Convencional

O aluno, para cumprir os requisitos do Programa, deverá cursar na UNIVALI as disciplinas do Núcleo de Inteligência Intercultural (NII) e permanecer pelo menos dois