Anda di halaman 1dari 122

Ps-Graduao em Cincia da Computao

iAIML:

um mecanismo para o tratamento de inteno em


Chatterbots
Por

ANDR MENEZES MARQUES DAS NEVES


Tese de Doutorado

Universidade Federal de Pernambuco


posgraduacao@cin.ufpe.br
www.cin.ufpe.br/~posgraduacao

RECIFE, FEVEREIRO/2005

Universidade Federal de Pernambuco


CENTRO DE INFORMTICA
PS-GRADUAO EM CINCIA DA COMPUTAO

Andr Menezes Marques das Neves

iAIML:
um Mecanismo para o Tratamento de Inteno em Chatterbots

Este trabalho foi apresentado Ps-Graduao em Cincia da


Computao do Centro de Informtica da Universidade Federal de
Pernambuco como requisito parcial para obteno do grau de Doutor em
Cincia da Computao.

ORIENTADOR(A): Prof. Dra. Flvia de Almeida Barros

RECIFE, FEVEREIRO/2005

NEVES, ANDR MENEZES MARQUES DAS


iAIML: Um mecanismo para o tratamento de
inteno em chatterbots / Andr Menezes Marques das
Neves. Recife: O Autor, 2005.
120 folhas : il., fig., tab., quadros.
Tese (doutorado) Universidade Federal de
Pernambuco. Cin. Cincia da Computao, 2005.
Inclui bibliografia e glossrio.
1. Inteligncia artificial.
006.3

CDD (22.ed.)

I. Ttulo.
MEI2008-087

Simone, minha esposa, Sophia e Vincius, meus filhos.

AGRADECIMENTOS

minha famlia, por sua compreenso nos momentos em que precisei estar ausente para
elaborao deste trabalho.
minha orientadora, Prof. Dra. Flvia de Almeida Barros, por sua pacincia e dedicao
durante todo o processo de definio e orientao.
Ao Prof. Dr. Geber Ramalho, pelos momentos de aconselhamento que muito contriburam
para o resultado final deste trabalho.
Ao Prof. Dr. Jacques Robin, por suas crticas que tanto contriburam para a formulao
deste documento.
Ao Prof. Dr. Luiz Antnio Marcuschi, pelos encontros que iluminaram os caminhos para a
soluo adotada.
Ao Prof. Dr. Paulo Carneiro da Cunha e a todos que participam do Virtus, laboratrio de
hipermdia da UFPE, pela convivncia que influenciou diretamente a construo dos
princpios epistemolgicos que guiaram todo o trabalho.
Aos estudantes, professores e funcionrios do Departamento de Design da UFPE, que
souberam aguardar com pacincia o retorno s minhas atividades.

O tempo um produto mental que resulta da


diviso do espao. S o espao existe, s
consigo me deitar no espao. No tempo, tenho
que caminhar sempre. O tempo a alma dos
relgios. Os relgios param. Se paro o relgio,
elimino o tempo, e me encontro no espao. No
h tempo fora de mim. Se o tempo no existe,
como podemos ser seus prisioneiros? Sou
portanto prisioneiro apenas de mim mesmo. De
fato, sinto que s existe o tempo presente; o
passado j no mais existe e o futuro ainda no
chegou. Ser essencialmente espacial me traz
uma paz interior. No h tempo no meu
interior; eu preciso fabricar o tempo, o tempo
todo.
Prof. Dr. Clilton Galamba

RESUMO
NEVES, Andr M. M. iAIML: um mecanismo para o tratamento de inteno em
Chatterbots. 2005. 120 f. Tese (Doutorado em Cincia da Computao) Ps-Graduao
em Cincia da Computao, Centro de Informtica, Universidade Federal de Pernambuco,
Recife, 2008.

O trabalho de pesquisa aqui apresentado teve como objetivo principal melhorar o


desempenho de chatterbots em dilogos livres com usurios. Chatterbots so sistemas
computacionais que se propem a conversar em linguagem natural como se fossem
humanos. O primeiro desses sistemas foi ELIZA, desenvolvido em 1965 por Weizenbaum.
Desde ento, inmeros sistemas foram produzidos com esse mesmo objetivo. Porm, uma
srie de problemas ainda continuam em aberto, dentre os quais, o tratamento de inteno,
questo central na interpretao de dilogos naturais. Nesse sentido, desenvolvemos um
mecanismo para tratamento de inteno para ser incorporado a chatterbots baseados em
AIML. Adotamos como base conceitual para o trabalho a Teoria da Anlise da
Conversao (TAC), por considerar a inteno em pares adjacentes, e no apenas na
sentena do falante, como a Teoria dos Atos de Fala. Com base na TAC e em experimentos
realizados, selecionamos um conjunto de intenes, que foram utilizadas na criao de
regras em AIML que utilizam informaes de intencionalidade para interpretar e gerar
sentenas em dilogos naturais. A soluo final foi testada em uma srie de experimentos,
e demonstrou ser capaz de corrigir alguns problemas presentes em dilogos com
chatterbots. Por exemplo, o sistema baseado em AIML padro tratou 40% das sentenas
dos usurios como sendo desconhecidas, enquanto o nosso sistema classificou apenas 3,5%
das sentenas como totalmente desconhecidas. Alm disso, o sistema foi capaz de manter a
estrutura global dos dilogos, criticando turnos de abertura ou fechamento que foram ditos
no desenvolvimento, ou turnos de desenvolvimento ditos na abertura ou fechamento. Por
fim, implementamos trs aplicaes com chatterbots, o que demonstra que a soluo
adotada favorece o reuso de categorias em bases AIML, processo extremamente custoso do
ponto de vista de engenharia de software com os sistemas atuais.

PALAVRAS-CHAVE: Inteligncia artificial. Chatterbot. Aiml

ABSTRACT

NEVES, Andr M. M. iAIML: A Mechanism to Treat Intentionality in Chatterbots. 2005.


120 f. Doctoral Thesis (PhD of Law) Ps-Graduao em Cincia da Computao, Centro
de Informtica, Universidade Federal de Pernambuco, Recife, 2008.

Chatterbots are computational systems that aim at maintaining dialogues in natural


language as if they were humans. The research work presented here had as main goal to
improve chatterbots performance in dialogues with users. ELIZA, the first chatterbot, was
developed by Weizenbaum in 1965. Since then, several systems were developed with the
aim of improving ELIZAs performance. However, important issues are still open, among
which, the treatment for ntentionality, a central point in the interpretation of human
dialogue. We developed a mechanism for the treatment of intentions to be incorporate into
chatterbots based on AIML. We adopted as conceptual base for this work the
Conversational Analysis Theory (CAT), which regards intentions in adjacent pairs, rather
than solely in the speakers sentence (as the Theory of the Acts of Speech). Based on CAT
and on our experiments, we selected a set of intentions, that were used in the creation of
AIML rules that use intentionality information to interpret and generate sentences in
dialogues. The final solution was tested in a series of experiments, and it demonstrated to
be capable of coping with some problems found in dialogues with chatterbots. For
example, the system based on standard AIML treated 40% of the users sentences as
ignored, whereas our system classified only 3.5% of the sentences as totally ignored.
Besides, the system was able to maintain the global structure of the dialogues, criticizing
opening or closing users turns typed during the development of the dialogue. Finally, we
implemented three chatterbots applications, what demonstrates that the adopted solution
favors the reuse of categories in AIML bases, a very expensive process from the viewpoint
of software engineering.

KEYWORDS: Artificial Intelligence.Chatterbo. Aiml.

SUMRIO

1. Introduo...........................................................................................................
1.1 Trabalho realizado...........................................................................................
1.2 Estrutura do documento..................................................................................

16
19
23

2. Chatterbots.........................................................................................................
2.1 Chatterbots e Processamento de Linguagem Natural.....................................
2.1.1 Primeira gerao....................................................................................
2.1.2 Segunda gerao....................................................................................
2.1.3 Terceira gerao.....................................................................................
2.2 Teoria da Anlise da Conversao..................................................................
2.2.1 Organizao global da conversao.......................................................
2.2.2 Organizao local da conversao.........................................................
2.3 Anlise de chatterbots segundo a TAC...........................................................
2.3.1 Procedimento de anlise.........................................................................
2.3.2 Definio do objeto de anlise...............................................................
2.3.3 Resultados da anlise.............................................................................
2.4 Concluses.......................................................................................................

25
26
28
31
35
43
44
45
47
47
48
49
54

3. Intencionalidade..................................................................................................
3.1 Abordagens lingusticas para tratamento de inteno......................................
3.1.1 Pragmtica e semitica............................................................................
3.1.2 Pragmtica conversacional (Mximas de Grice)....................................
3.1.3 Pragmtica ilocucional (Atos de Fala)....................................................
3.1.4 Pragmtica dialgica...............................................................................
3.1.5 Pragmtica e teoria da anlise da conversao.......................................
3.2 Sistemas para reconhecimento de inteno......................................................
3.2.1 Intenes locais.......................................................................................
3.2.2 Intenes emergentes..............................................................................
3.2.3 Intenes paralelas..................................................................................
3.3 Concluses.......................................................................................................

57
58
58
59
60
62
62
63
64
65
66
66

4. Tratamento de inteno em chatterbots...........................................................


4.1 Desenvolvimento da pesquisa..........................................................................
4.1.1 Fase da explorao..................................................................................
4.1.2 Fase da pretenso....................................................................................
4.1.3 Fase do isolamento..................................................................................
4.2 AIML com inteno.........................................................................................
4.2.1 Aspectos funcionais do sistema..............................................................
4.2.2 Aspectos de implementao do sistema..................................................
4.3 Redefinio da base AIML padro..................................................................
4.3.1 A base AIML padro...............................................................................
4.3.2 A base AIML redefinida.........................................................................
4.4 Concluses.......................................................................................................

69
74
74
72
75
77
77
79
83
83
85
88

5. Experimentos e aplicaes.................................................................................
5.1 Experimentos...................................................................................................
5.1.1 Experimento aberto................................................................................
5.1.2 Avaliao de desempenho por um especialista......................................
5.2 Aplicaes.......................................................................................................
5.2.1 Liberbot..................................................................................................
5.2.2 Animotrnicos........................................................................................
5.2.3 Virtusbot.................................................................................................
5.3 Concluses......................................................................................................

90
91
91
94
97
97
100
103
103

6. Concluses...........................................................................................................
6.1 Contribuies...................................................................................................
6.2 Crticas.............................................................................................................
6.3 Trabalhos futuros.............................................................................................
6.4 Consideraes finais........................................................................................

105
106
107
107
108

Referncias Bibliogrficas.....................................................................................

110

NDICE DE FIGURAS

Figura 2.1
Figura 2.2
Figura 2.3
Figura 2.4

Arquitetura clssica de sistemas de PLN............................................


Arquitetura dos sistemas de primeira gerao....................................
Arquitetura dos sistemas de segunda gerao.....................................
Arquitetura dos sistemas de terceira gerao......................................

27
29
32
35

NDICE DE TABELAS

Tabela 2.1
Tabela 2.2
Tabela 2.3
Tabela 2.4
Tabela 2.5
Tabela 2.6
Tabela 2.10
Tabela 4.1
Tabela 4.2
Tabela 5.1a
Tabela 5.1b
Tabela 5.2

Trecho da base de um chatterbot de primeira gerao......................


Trecho da tabela de equivalncia de pronomes de um chatterbot de
primeira gerao................................................................................
Tabela de substituio de JULIA......................................................
Trecho de uma rede de ativao de JULIA.......................................
Frame do modelo de usurio de JULIA............................................
Critrios de avaliao........................................................................
Matriz de interao PLN-TAC..........................................................
Classes de maior ocorrncia em AIMLplus......................................
Arquivos de uso geral da base AAA.................................................
Dados do experimento aberto............................................................
Teste de hiptese do experimento aberto..........................................
Dados do registro de ocorrncias e erros...........................................

29
29
33
33
33
48
55
74
84
93
93
94

NDICE DE EXEMPLOS

Exemplo 1.1
Exemplo 1.2
Exemplo 2.1
Exemplo 2.2
Exemplo 2.3
Exemplo 2.4
Exemplo 2.5
Exemplo 2.6
Exemplo 2.7
Exemplo 2.8
Exemplo 2.9
Exemplo 2.10
Exemplo 2.11
Exemplo 2.12
Exemplo 2.13
Exemplo 2.14
Exemplo 2.15
Exemplo 2.16
Exemplo 2.17
Exemplo 2.18
Exemplo 2.19
Exemplo 2. 20
Exemplo 2.21
Exemplo 2.22
Exemplo 2.23
Exemplo 3.1
Exemplo 3.2
Exemplo 4.1a
Exemplo 4.1b
Exemplo 4.1c
Exemplo 4.1d
Exemplo 4.2a
Exemplo 4.2b
Exemplo 4.2c
Exemplo 4.3
Exemplo 4.3a
Exemplo 4.3b
Exemplo 4.3c
Exemplo 4.3d
Exemplo 4.3e
Exemplo 4.3f
Exemplo 4.4a
Exemplo 4.4b
Exemplo 4.5

Trecho de um dilogo com ELIZA [WEIZENBAUM 1966]....


Trecho de dilogo com A.L.I.C.E..............................................
Trecho de um arquivo de substituio AIML............................
Categoria AIML modelo............................................................
Categoria AIML com *..............................................................
Trecho da base de tpicos em AIML.........................................
Variveis em AIML...................................................................
Base de substituio de pronomes em AIML.............................
Base de descrio do chatterbot em AIML................................
Processo de reescrita em AIML.................................................
Definio de tpico vigente em AIML......................................
Definio de tpico vigente em AIML......................................
Recuperao do valor de "it" em AIML.....................................
Utilizao do elemento <topic> em AIML................................
Uma conversa tpica formada por trs turnos.............................
Abertura tpica com chatterbots.................................................
Trecho
de
um
desenvolvimento
com
ELIZA
[WEIZENBAUM 1966].............................................................
Aquisio de informao no desenvolvimento..........................
Exemplo de fechamento.............................................................
Problema de andamento do dilogo...........................................
Problema de formao de pares adjacentes................................
Problema de negociao de tpicos...........................................
Negociao de tpicos em A.L.I.C.E.........................................
Repetio de sentenas dos interlocutores.................................
Repetio de sentenas com variao sinttico-morfolgica.....
Dilogo tpico dos registros analisados por Allen......................
Dilogo entre tutor e aprendiz....................................................
Exemplo de cabealho de classe em AIMLplus.........................
Exemplo de categorias da forma em AIMLplus........................
Exemplo de categorias do contedo em AIMLplus...................
Exemplo de categoria desconhecida em AIMLplus...................
Trecho do mdulo de entradas XbotML....................................
Trecho do mdulo de preferncias XbotML..............................
Classes do mdulo de rplicas XbotML....................................
Dilogo de ilustrao..................................................................
Variveis de inteno.................................................................
Regra para controle do andamento do dilogo...........................
Categoria que questiona o andamento do dilogo......................
Regra para controle de repeties..............................................
Categoria que questiona repeties no dilogo..........................
Regra para sentenas desconhecidas..........................................
Categoria principal do arquivo saudar.aiml da base
reestruturada...............................................................................
Categorias com variaes formais do arquivo saudar.aiml da
base reestruturada.......................................................................
Trecho da categoria para sentenas desconhecidas....................

17
19
36
37
37
38
38
39
39
40
41
41
42
42
45
49
50
50
51
51
52
53
53
54
54
64
66
72
73
73
74
75
76
76
78
79
80
80
82
82
83
86
87
88

Exemplo 5.1
Exemplo 5.2
Exemplo 5.3
Exemplo 5.4
Exemplo 5.5
Exemplo 5.6

Formulrio para avaliao do experimento aberto.....................


Repetio de sentenas com o AIML baseado em inteno......
Sentenas desconhecidas em AIML padro...............................
Sentenas desconhecidas em AIML com inteno....................
Dilogo modelo do Liberbot......................................................
Dilogos entre os animotrnicos................................................

92
95
96
96
99
102

NDICE DE QUADROS

Quadro 4.1
Quadro 4.2a
Quadro 4.2b
Quadro 4.3c

Classes de "inteno"......................................................................
Classes de abertura..........................................................................
Classes de abertura..........................................................................
Classes de fechamento....................................................................

72
81
81
81

GLOSSRIO DE TERMOS
Intrprete. Aquele que traduz a outrem na lngua que este fala a vontade e as
intenes de outrem.
Diticos. Elementos da enunciao que recebem determinado sentido por sua
relao com o que representam no momento que so enunciados, por exemplo, isto, aquilo,
este, etc.
Pragmtica. O estudo das relaes entre as mensagens e os sujeitos, cabendo ento
a pragmtica, o estudo da inteno.
Semitica. Cincia que estuda a interpretao de signos ou mensagens.

1. Introduo

Neste captulo, apresentamos uma viso


geral do nosso trabalho e descrevemos a
estrutura deste documento.

17

ELIZA, o primeiro sistema que se propunha a conversar em linguagem natural,


como se fosse um ser humano, foi desenvolvido em 1965 por Weizenbaum
[WEIZENBAUM 1966]. Esse sistema, foi projetado para auxiliar Weizenbaum em estudos
sobre teorias lingsticas, e abriu a possibilidade real de se desenvolverem "mquinas de
conversar", conhecidas atualmente por "chatterbots". No exemplo 1.1, apresentamos um
trecho de um dilogo entre ELIZA e um interlocutor humano.
Exemplo 1.1. Trecho de um dilogo com ELIZA [WEIZENBAUM 1966].
ELIZA: Hi, my name is Eliza, what is your name?
USER: My name is user, how are you?
ELIZA: I am fine
USER: men are all alike.
ELIZA: in what way?
USER: they're always bugging us about something or other.
ELIZA: can you think of a specific example?
USER: well, my boyfriend made me come here.
Desde ento, inmeros sistemas foram desenvolvidos com a inteno de melhorar o
desempenho de ELIZA [WEINTRAUB 1990; GARNER 1997; HUTCHENS 1998;
WALLACE 2004]. Porm, uma srie de questes ainda continuam em aberto e precisam
ser solucionadas para que os chatterbots alcancem desempenhos prximos de
interlocutores humanos.
Alguns desses problemas so comuns a todos os sistemas que trabalham com
processamento automatizado de linguagem natural, por exemplo, a ambiguidade lxica e a
ambiguidade semntica [ALLEN 1995]. Outros problemas so mais especficos dos
chatterbots, por exemplo: o controle do andamento global da conversao; o controle de
sentenas repetidas; e o tratamento de sentenas desconhecidas.
Analisando a forma como os chatterbots so implementados quando comparados a
outros sistemas de processamento de linguagem natural (PLN) [ALLEN 1995],
identificamos trs geraes desses sistemas: uma primeira gerao baseada em tcnicas
simples de casamento de padro [WEIZENBAUM 1966]; uma segunda gerao baseada
em tcnicas mais complexas do ponto de vista de Inteligncia Artificial, como por

18

exemplo, redes de ativao

[MAULDIN 1994]; e uma terceira gerao baseada em

tcnicas mais complexas de casamento de padro, apoiadas em XML [WALLACE 2004].


Dessas geraes, destacamos os sistemas de terceira gerao, por sua arquitetura
mais completa, quando comparada arquitetura padro de PLN [ALLEN 1995] e pelo
desempenho de A.L.I.C.E., um chatterbot dessa gerao, em concursos de grandeza
internacional como o Prmio Loebner [LOEBNER 2004] e o Chatterbox Challenger
[COWARD 2004]. A.L.I.C.E. venceu trs das ltimas quatro edies do Prmio Loebner e
a ltima edio do Chatterbox Challenger. Esses chatterbots utilizam um vocabulrio XML
para construo de suas bases (AIML - Artificial Intelligence Markup Language). AIML
possui uma estrutura bastante simples do ponto de vista computacional, porm com uma
capacidade de processamento de linguagem natural bem superior s duas primeiras
geraes [WALLACE 2004].
O sucesso de A.L.I.C.E. e a simplicidade de implementao de AIML so
responsveis diretos pela popularizao dessa gerao, que conta com cerca de 50.000
chatterbots, implementados em diversos idiomas (ingls, espanhol, alemo, italiano,
francs e portugus) [AIMLESS & UMATANI 2004].
No entanto, apesar do evidente sucesso, os chatterbots da terceira gerao ainda
apresentam uma srie de limitaes na forma como interpretam e geram sentenas em
linguagem natural. Dentre outras limitaes, destacamos a incapacidade desses sistemas de
tratar informaes de intencionalidade, o que leva os chatterbots dessa gerao a errarem
com freqncia a interpretao das sentenas de seus interlocutores. No exemplo 1.2,
temos um trecho de um dilogo com A.L.I.C.E., onde o chatterbot faz uma pergunta no
turno (1) para o interlocutor e quando este responde no turno (2), o sistema no leva em
conta o fato do segundo turno ser uma resposta ao primeiro, tratando-o como uma sentena
desconhecida. O turno (3) uma rplica tpica para sentenas desconhecidas, o chatterbot
sugere uma mudana de tpico que quebra a fluncia natural do dilogo.

19

Exemplo 1.2. Trecho de dilogo com A.L.I.C.E.


(1) BOT: Do you know some interesting place? ?
(2) INTERLOCUTOR: Vancouver, Canada.
(3) BOT: What do you know about computers?
1.1 Trabalho realizado
O processo de construo de chatterbots envolve duas tarefas: (1) o
desenvolvimento de mecanismos de processamento de linguagem natural; e (2) a produo
de bases de conhecimento. AIML engloba essas duas tarefas, integrando dados a funes
de controle de processamento (WALLACE 2004b).
Neste trabalho, desenvolvemos um mecanismo para tratamento de informaes de
intencionalidade para ser acrescentado a sistemas que utilizam AIML 1.01 [WALLACE
2004b]. Fizemos essa opo por dois motivos principais: o tratamento de inteno um
dos pontos mais relevantes no desenvolvimento de sistemas de processamento de
linguagem natural [ALLEN 2001 et. al]; e, a partir do uso de informaes de
intencionalidade, possvel corrigir uma srie de problemas que ocorrem com freqncia
em dilogos realizados pelos chatterbots existentes, como ser visto no captulo 2, seo
2.4.
O mecanismo que desenvolvemos traz como diferencial em relao a outros
sistemas para tratamento de inteno [ALLEN 1983, SIDNER & ISRAEL 1981 e
LITMAN & ALLEN 1990] o fato de ser baseado em princpios de Teoria da Anlise da
Conversao [MARCUSCHI 1986] como alternativa lingstica Teoria dos Atos de Fala
[SEARLE 1976], base conceitual adotada na maioria dos sistemas. Com essa opo pela
Teoria da Anlise da Conversao, procuramos evitar algumas limitaes da Teoria dos
Atos de Fala, dentre as quais destacamos a incapacidade de lidar com a inteno vinculada
ao contexto scio-cultural em que a mensagem est inserida [ALLEN et. al 2001].
Segundo Marcuschi (1986), a conversao um fenmeno nico, que pode ser
analisado a partir de organizadores locais e globais. Nesse sentido, Marcuschi divide o
dilogo em trs fases do ponto de vista global (abertura, desenvolvimento e fechamento) e

20

aponta uma srie de elementos organizadores locais (o turno, as seqncias, a preferncia e


os tpicos). Dentre esses elementos locais, destacamos as seqncias, mais
especificamente, os pares adjacentes, ou pares conversacionais, por sua estruturao
altamente padronizada. O termo "par adjacente" foi introduzido por Schegloff
[SCHEGLOFF 1972], e define uma seqncia de dois turnos que coocorrem e servem para
organizar localmente uma conversao. Esses pares so identificados a partir da inteno
embutida em cada um dos turnos (por exemplo, no caso dos cumprimentos, quase
obrigatria a ocorrncia de um segundo turno em resposta ao primeiro). Como exemplos
de pares conversacionais, Marcuschi cita, entre outros: pergunta resposta, ordem
execuo, cumprimento cumprimento, convite recusa ou aceitao [MARCUSCHI
1986].
Assim, com base nos exemplos citados por Marcuschi e em experimentos que
realizamos, selecionamos um conjunto de 54 intenes como sendo o cerne de nossa
soluo. Essas intenes esto classificadas de acordo com a fase do dilogo em que
costumam ocorrer, sendo 7 de abertura, 43 de desenvolvimento e 4 de fechamento. Esse
conjunto pode ser estendido ou reduzido, de acordo com as caractersticas de cada
aplicao.
Com base nesse conjunto de intenes definimos uma srie de regras escritas em
AIML 1.01 para tratar questes como o controle global do dilogo, alm de melhorar o
tratamento dado a sentenas repetidas e a sentenas consideradas desconhecidas,
problemas apontados na anlise que realizamos com sistemas das trs geraes de
chatterbots (Captulo 2).
Como prova de conceito, modificamos uma base AIML padro, reconhecida pela
Fundao Alicebot [WALLACE 2004c], incorporando as novas funcionalidades
desenvolvidas neste projeto (Captulo 4). A base modificada formada por 54 arquivos de
categorias AIML, sendo cada arquivo referente a uma das intenes identificadas durante a
anlise conceitual do problema.
Em seguida, utilizamos um interpretador de domnio pblico [WALLACE 2004d] e
realizamos uma bateria de testes para verificar a eficincia do mecanismo desenvolvido.

21

Iniciamos esses testes com um experimento aberto, onde usurios puderam conversar
livremente com dois chatterbots, sendo um deles com a base AIML padro e o outro com a
base AIML modificada com informaes de intencionalidade. Em seguida, convidamos um
especialista em conversao para avaliar o desempenho dos chatterbots, a partir dos
dilogos entre os usurios e os chatterbots. A eficincia do mecanismo que desenvolvemos,
foi avaliada verificando a forma como o nosso sistema utilizou a informao de inteno
durante os dilogos.
Os resultados dos experimentos demonstraram que o uso de informaes de
intencionalidade pode melhorar qualitativamente os dilogos com chatterbots. Por
exemplo, no nvel global o sistema capaz de controlar com eficincia o andamento do
dilogo, e no nvel local, o sistema forma pares adjacentes consistentes, mesmo em
situaes onde a sentena do usurio no reconhecida.
Como parte desse trabalho, implementamos trs aplicaes que demonstram a
aplicabilidade da soluo adotada: (1) um chatterbot que auxilia usurios a localizar
documentos em um banco de teses e dissertaes; (2) um ambiente com dois chatterbots
que conversam um com o outro sobre temas diversos, agindo como atores autnomos; e,
(3) um sistema para aprendizagem de lnguas estrangeiras baseado em chatterbots. Durante
o desenvolvimento dessas aplicaes, ficou claro que o fato da base estar estruturada de
acordo com a inteno favorece o trabalho de planejamento de novos chatterbots e
simplifica o reuso de categorias em comparao com a base AIML padro.
Nossa soluo apresenta uma srie de contribuies para a rea, dentre as quais
destacamos: (1) a adequao da soluo computacional Teoria da Anlise da
Conversao, modelo conceitual que adotamos para o problema por integrar informaes
de inteno com o contexto, em contraponto Teoria dos Atos de Fala; (2) a estrutura
modular consistente da base AIML modificada, que facilita o seu reuso e favorece sua
manuteno e extensibilidade; e (3) a compatibilidade com AIML 1.01, o estado da arte
em tecnologia para a construo de chatterbots.
Do ponto de vista de PLN, a soluo adotada no cannica, uma vez que
adotamos uma abordagem de processamento do conhecimento por extenso (informao

22

embutida na base), e no por inteno (informao embutida em regras do sistema). Essa


opo deve-se essencialmente a dois fatores: (1) esta uma caracterstica da aplicao que
estamos tratando (chatterbots); e (2) os sistemas que tentam tratar inteno usando regras
no tm obtido resultados satisfatrios, segundo o prprio Allen afirma [ALLEN et. al
2001].
Os resultados obtidos nesse trabalho demonstram sua relevncia, pois apresentam
uma soluo consistente que corrige alguns problemas de grande influncia na qualidade
final dos dilogos de chatterbots, e que ocorrem com freqncia nos sistemas atuais: (1)
repetio de sentenas; (2) sentenas desconhecidas; e (3) andamento global do dilogo
(Captulo 2).
Alm disso, o trabalho traz um componente de originalidade pois, alm de
implementar tratamento de inteno em chatterbots, o faz de uma forma alternativa, tanto
do ponto de vista computacional, usando tcnicas de casamento de padro ao invs de
regras e heursticas [ALLEN 2001 et. al], quanto do ponto de vista lingstico, baseando-se
na Teoria da Anlise da Conversao [MARCUSCHI 1986], e no em Teoria dos Atos de
Fala [SEARLE 1976], como acontece com outros sistemas reconhecimento de inteno
[ALLEN 1983, SIDNER & ISRAEL 1981 e LITMAN & ALLEN 1990]. Como resultado
indireto do trabalho, as informaes de intencionalidade permitem uma redefinio da
estrutura de bases AIML, classificando as categorias a partir de critrios bem definidos,
diferente do que ocorria com as bases existentes [WALLACE 2004e].
Durante o desenvolvimento deste trabalho foram submetidos quatro artigos que
influenciaram diretamente na sua elaborao: (1) SBIA 16th Brazilian Symposium on
Artificial Intelligence, "PixelBot: an AIML-Plus chatterbot for Portuguese Language" Recife, Brasil; (2) IHC 2002 - V Symposium on Human Factors in Computer Systems,
"AIML Plus: an extension of AIML based on Speech Acts Theory" - Fortaleza, Brasil; (3)
IV ENIA - IV Encontro Nacional de Inteligncia Artificial, " XbotML - Um Framework
para o Desenvolvimento de Chatterbots em XML " - Rio de Janeiro, Brasil; e (4) ICWE'03
Third International Conference on Web Engineering, "XbotML: Extensible Chatterbots
Markup Language" - Astria, Espanha.

23

Apesar do bom desempenho dos chatterbots implementados durante o


desenvolvimento desta pesquisa, uma srie de questes ainda precisam ser solucionadas at
que tenhamos sistemas eficientes o suficiente para substituir interlocutores humanos em
dilogos [NEVES et al. 2003]. Em nosso grupo de pesquisa, j foram desenvolvidos trs
outros projetos dando continuidade a este trabalho, sendo um deles voltado para a incluso
de traos de personalidade em chatterbots [GALVO et al. 2003]; um outro para aquisio
automtica de perfis de usurios durante os dilogos [MOURA 2003]; e um outro para
anlise de dilogos colaborativos on-line [VIEIRA et. al 2004].
Vislumbramos, ainda, uma srie de novos trabalhos a serem desenvolvidos, dentre
os quais destacamos a integrao com outras inovaes propostas para AIML, como
OpenCin [COURSEY 2004], alm do desenvolvimento de novas aplicaes, como um
sistema baseado em chatterbots atuando como intrprete em ambientes de conversao
multilinge (mais detalhes no captulo 6).
1.2 Estrutura do documento
Alm deste captulo, este documento conta com 5 outros, descritos a seguir:
Captulo 2 - Nesse captulo, apresentamos as principais abordagens adotadas no
desenvolvimento de chatterbots sob dois pontos de vista. Comparamos os chatterbots com
outros sistemas de Processamento de Linguagem Natural, para verificar a forma como os
chatterbots so construdos, e depois analisamos o comportamento dos chatterbots com
base em critrios estabelecidos a partir de princpios da Teoria da Anlise da Conversao.
Captulo 3 - Nesse captulo, apresentamos princpios lingsticos e computacionais
para o tratamento de inteno. Na primeira seo, apresentamos um breve levantamento
das principais abordagens lingusticas para o tratamento de inteno, e na segunda seo
apresentamos os principais sistemas computacionais desenvolvidos at ento com a
finalidade de tratar informaes de intencionalidade.
Captulo 4 - Nesse captulo, apresentamos a soluo que desenvolvemos no mbito
deste trabalho. Na primeira seo, descrevemos o caminho que trilhamos at o

24

desenvolvimento de nossa soluo. Nas prximas sees, apresentamos nossa proposta,


detalhando questes tcnicas e funcionais da soluo adotada.
Captulo 5 - Nesse captulo, apresentamos os experimentos que realizamos para
testar nossa soluo, e as aplicaes que desenvolvemos a partir dos resultados obtidos
nesse trabalho.
Captulo 6 - Nesse captulo, enfatizamos as principais contribuies deste trabalho
e apontamos trabalhos futuros a serem desenvolvidos como conseqncia deste projeto.

25

2. Chatterbots

Neste captulo, apresentamos as principais


abordagens adotadas no desenvolvimento
de chatterbots.

26

Com base na literatura da rea, possvel identificar pelo menos duas formas
principais de se avaliar um sistema que se prope a processar textos em linguagem natural:
(1) analisando a forma como os sistemas so construdos, testando seus sub-sistemas e
verificando como realizam as tarefas para as quais foram implementados; e (2) analisando
o desempenho do sistema atravs de testes de performance [ALLEN 1995]. Buscamos aqui
avaliar os sistemas sob esses dois aspectos, atravs de um estudo aprofundado das tcnicas
e teorias utilizadas, bem como do desempenho de alguns dos principais chatterbots j
construdos.
Dividimos este captulo em quatro sees. Na seo 2.1, discutimos a forma como
os chatterbots so implementados, comparando-os com modelos tradicionais de
processamento de linguagem natural. Na seo 2.2, apresentamos a Teoria da Anlise da
Conversao, que nos serviu de base para a anlise do comportamento dos chatterbots,
apresentada na seo 2.3. Inclumos ainda a seo 2.4, onde associamos os problemas
conversacionais com os limites computacionais dos sistemas avaliados.
2.1 Chatterbots e Processamento de Linguagem Natural
Desde a dcada de 1950, um dos problemas mais recorrentes para a Cincia da
Computao tem sido a interpretao e a gerao de texto em linguagem natural. O
Processamento da Linguagem Natural (PLN) [ALLEN 1995], um ramo especfico da
Inteligncia Artificial (IA), uma tarefa complexa que envolve conhecimento em
diferentes disciplinas: lingstica, semitica, cincia da computao, psicologia cognitiva
dentre outras. Uma primeira abordagem para tratar o problema surgiu na dcada de 1950,
inspirada pela Teoria Behaviorista da Linguagem [SKINNER 1950]. Nos anos seguintes,
essa abordagem foi drasticamente abandonada em funo das novas idias propostas por
Chomsky [CHOMSKY 1957, 1959].
Inspirados na Teoria Gerativo-Transformacional de Chomsky, uma srie de
sistemas demonstrou habilidade para tratar linguagem natural em domnios restritos, como
manuteno de avies [WALTZ 1978] ou anlise das pedras da lua [WOODS

&

KAPLAN 1977] (dcada de 1970). No entanto, esses sistemas interpretavam e geravam

27

sentenas em linguagem natural de forma rudimentar, muitas vezes atravs de um nico


mdulo de processamento.
Mais tarde, com o amadurecimento de PLN, e seguindo os avanos da prpria
Engenharia de Software [PRESSMAN 1992], os sistemas adotaram arquiteturas
modulares, bem mais robustas [ALLEN 1995]. Esses mdulos so distribudos em trs
nveis de tratamento da informao (Figura 2.1): (1) nvel da forma, que trata
essencialmente de relaes da estrutura das palavras e das sentenas a partir informaes
morfolgicas e sintticas obtidas de duas bases de regras e fatos (o lxico e a gramtica);
(2) nvel do significado, que trata das relaes entre as sentenas e o conhecimento do
domnio a partir de informaes semnticas obtidas do modelo do domnio ou atravs de
semntica formal; e (3) nvel do contexto, que deve dar conta de questes relacionadas ao
contexto em que se d a interao a partir de informaes pragmticas e discursivas obtidas
dos modelos do discurso e do usurio. Nessa arquitetura, a interpretao de texto das
sentenas ocorre no sentido forma contexto, enquanto a gerao de texto se d no sentido
inverso [ALLEN 1995].
g e ra o d e te x to

in f o r m a e s
p r a g m t i c as

in f o r m a e s
d o d isc u r so

N v e l I I I - c o n te x to
u su r io

d iscu r so

N v e l I I - s ig n ific a d o
d o m n i o

in f o r m a e s
se m n t ica s

l x ico

in f o r m a e s
sin t t ic a s

N v e l I - fo rm a
g r a m t ica

in f o r m a e s
m o r f o l g i c a s

in te rp re ta o d e te x to

Figura 2.1. Arquitetura clssica de sistemas de PLN.

28

Comparando a arquitetura dos chatterbots com essa arquitetura, identificamos trs


geraes de sistemas que diferem umas das outras pelo tipo de informao utilizada e pela
forma como essa informao obtida. De uma maneira geral, apesar de terem surgido
como aplicaes de PLN, percebemos que os chatterbots no seguem os mesmos
princpios de outros sistemas da rea, pois trabalham com conhecimento representado por
extenso, e no por inteno, como acontece com os sistemas clssicos de PLN. A seguir,
apresentamos como cada uma das geraes se comporta em relao arquitetura modular
padro.
2.1.1 Primeira gerao
A primeira gerao de chatterbots baseada em um sistema desenvolvido em 1965
no "MIT Artificial Intelligence Lab" pelo Dr. Joseph Weizenbaum [WEIZENBAUM
1966]. ELIZA, um programa de computador capaz de conversar em linguagem natural com
seres humanos mantm o status de ser um dos sistemas de inteligncia artificial mais
populares no mundo, com verses em diferentes idiomas e implementaes para quase
todas as plataformas existentes (mainframes, computadores pessoais, consoles de jogos
etc.) [EDEN 2004].
Arquitetura
Apesar de ser capaz de simular um interlocutor humano, o sistema desenvolvido
por Weizenbaum (Figura 2.2) extremamente simples quando comparado arquitetura
proposta por Allen. No nvel da forma, utiliza uma tabela de pares de padres de entrada e
moldes de rplicas (Tabela 2.1) para, atravs de casamento de padro, classificar as
sentenas dos interlocutores e gerar sentenas. No nvel do contexto, o sistema utiliza uma
tabela de equivalncia de pronomes (Tabela 2.2) para fazer substituies pronominais.

29
gerao de texto

Nvel III - contexto

infor m aes
pragm t icas
tabela de
pronomes

infor m aes
do discur so

Nvel II - significado
infor m aes
sem nt icas

t abela
de padres
e r plicas

Nvel I - forma

infor m aes
sint t icas

infor m aes
m orfolgicas

interpretao de texto

Figura 2.2. Arquitetura dos sistemas de primeira gerao.


Na tabela de padres e rplicas (Tabela 2.1), os padres de entrada so antecedidos
por um identificador <K>, enquanto os moldes de rplicas, por um identificador <R>.
Entre os padres de entrada e os moldes de rplicas est uma linha com um identificador
<C>, seguido por um nmero que indica o grau de prioridade daquele padro.
Tabela 2.1. Trecho da base de um chatterbot de primeira gerao.
Identificador
K
C
R
R

Contedo
I AM *
55
SURE?
HOW LONG HAVE YOU BEEN *?

Na tabela de equivalncias de pronomes (Tabela 2.2), cada pronome na primeira


pessoa seguido de seu equivalente na terceira pessoa.
Tabela 2.2. Trecho da tabela de equivalncia de pronomes de um chatterbot de primeira
gerao.
Primeira pessoa
I
MY

Terceira pessoa
YOU
YOUR

30

Interpretao de sentenas
O trabalho de interpretao comea por uma busca seqencial na base de padres
para encontrar o que melhor representa a sentena do interlocutor, atravs de casamento de
padro. O valor de <C> utilizado pelo sistema quando uma sentena do usurio "casa"
com mais de um grupo de padres. Os valores podem variar de 0 a 100, sendo que quanto
maior o valor, maior o grau de prioridade. Inicialmente, todos os grupos tm grau 100,
podendo o administrador do sistema omitir esses valores se julgar desnecessrio modificlos. Encontrado o grupo de padres que melhor representa a sentena do interlocutor, o
sistema a divide em blocos identificados por rtulos numricos, sendo um deles o bloco
que coincide com o padro da base. Por exemplo, se o usurio digitar a sentena "I am very
unhappy with my work", o sistema ao encontrar o padro "[K] I AM *", divide a sentena
em dois blocos: (1) I AM, e (2) VERY UNHAPPY WITH MY WORK.
Gerao de sentenas
A gerao de rplicas comea pela substituio de pronomes. Dando continuidade
ao exemplo anterior, no bloco (2) "VERY UNHAPPY WITH MY WORK", os pronomes
na primeira pessoa so substitudos por pronomes na terceira pessoa, resultando em (2)
"VERY UNHAPPY WITH YOUR WORK". De posse dessa representao interna da
sentena do interlocutor, o sistema seleciona o molde de rplica que ir utilizar para
construir a sua sentena. A escolha do molde realizada por sorteio, dentre os moldes
associados ao padro identificado na interpretao. Por exemplo, para o padro da tabela
2.1, teramos dois moldes: "SURE?" e "HOW LONG HAVE YOU BEEN *?". O primeiro
molde , na verdade, uma sentena pronta que, se for sorteada, ser apresentada ao
interlocutor sem modificaes. J o segundo molde possui um asterisco para ser
substitudo pelo bloco (2) da sentena do interlocutor. Assim, continuando o exemplo
acima, o asterisco seria substitudo pelo bloco "VERY UNHAPPY WITH YOUR
WORK", e teramos como rplica: "HOW LONG HAVE YOU BEEN VERY UNHAPPY
WITH YOUR WORK?" [WEIZENBAUM 1966].

31

Apesar da simplicidade do sistema, com esse tipo de recurso, ELIZA consegue


iludir o interlocutor e manter dilogos em torno de diferentes tpicos com um bom nvel de
coerncia [EDEN 2004].
Crticas
As principais crticas aos sistemas dessa gerao so: (1) a necessidade de se
construir uma base de padres muito grande para dar cobertura s vrias possibilidades de
variaes de sentenas dos interlocutores; (2) a ausncia de conhecimento explcito sobre
tpicos; (3) a falta de tratamento de informaes sobre o usurio; e (4) o uso limitado de
informaes do discurso, uma vez que os sistemas mantm apenas o registro de sua ltima
rplica para evitar a repetio de sentenas. De qualquer modo, importante lembrar, que
ELIZA foi projetado para agir como um psicanalista rogeriano [WEIZENBAUM 1966], ou
seja, o sistema apenas devolve ao usurio perguntas elaboradas a partir de suas prprias
sentenas, sem dar nenhuma resposta de fato.
Apesar dessas limitaes, o modelo empregado por Weizenbaum inspirou uma
srie de chatterbots. Alguns sistemas baseados em ELIZA alcanaram resultados
significativos, como THE PC THERAPIST [WEINTRAUB 2004], vencedor de quatro das
cinco primeiras edies do Prmio Loebner [LOEBNER 2004]. Seu sucesso deveu-se
muito mais ao tipo de aplicao do que s suas caractersticas, tanto do ponto de vista de
Engenharia de Software quanto do ponto de vista de Inteligncia Artificial.
2.1.2 Segunda gerao
Na dcada de 1990, mesmo diante da popularizao de sistemas baseados em
ELIZA, cientistas da computao, inspirados pelos avanos de PLN, da Engenharia de
Software e da prpria Inteligncia Artificial, deram incio segunda gerao de
chatterbots. Como exemplo dessa gerao, temos JULIA, desenvolvido por Michael
Mauldin [MAULDIN 1994], que ficou muito conhecido na dcada de 1990. JULIA
funcionava em um ambiente virtual de entretenimento, TINYMUD [RHEINGOLD 1991],
participando do ambiente como se fosse um usurio humano interagindo com outros
humanos atravs de salas de chat [EDWARDS 2000].

32

Arquitetura
Apesar de no seguirem risca a arquitetura tradicional de PLN, esses sistemas
apresentam uma arquitetura um pouco mais sofisticada do que os sistemas de primeira
gerao (Figura 2.2). Com isso, corrigem alguns problemas como: (1) a cobertura de
variaes morfolgicas e sintticas, melhorada atravs da introduo de um mecanismo de
normalizao de palavras e sentenas, baseado em uma tabela de substituio (Tabela 2.3);
(2) a falta de conhecimento sobre tpicos especficos, solucionada atravs da
implementao de bases com conhecimento sobre tpicos escolhidos (Tabela 2.4); e (3) o
tratamento de informaes referentes aos interlocutores, solucionado atravs de um modelo
simplificado do usurio, baseado em frames (Tabela 2.5) (Figura 2.3).

gerao de texto

fr am e
do usur io

inform aes
pragm t icas

Nvel III - contexto

inform aes
do discurso

Nvel II - significado
rede
de at ivao

inform aes
sem nt icas

inform aes
sint t icas

t abela
de subst it uio

Nvel I - forma

inform aes
m orfolgicas

interpretao de texto

Figura 2.3. Arquitetura dos sistemas de segunda gerao.


A tabela de substituio formada por duas colunas. Na coluna 1 esto cadeias de
caracteres a serem substitudas pelas cadeias presentes na coluna 2 (Tabela 2.3).

33

Tabela 2.3. Tabela de substituio de JULIA


cadeia original
What's
That's
Yu

cadeia de substituio
What is
That is
You

O conhecimento sobre tpicos representado atravs de uma rede de ativao, em


que cada n da rede consiste em: (1) o ttulo do n; (2) um valor de ativao; (3) uma ou
mais palavras-chave associadas ao n; (4) um molde de rplica; (5) uma lista de ns a
serem realados; e (6) uma lista de ns a serem inibidos (Tabela 2.4).
Tabela 2.4. Trecho de uma rede de ativao de JULIA
1
2
3
4
5
6

node
a
k
r
+
-

<havepet>
1.0
*pet*
Do you have any pets <name>?
<havepet-1> <havepet-2>
<havepet-6> <havepet-7>

Finalmente, o frame do usurio formado por informaes descritivas do


interlocutor, que podem ser adquiridas durante o dilogo (Tabela 2.5). As informaes a
serem adquiridas podem ser definidas pelo administrador do chatterbot nos moldes de
rplica da rede de ativao.
Tabela 2.5. Frame do modelo de usurio de JULIA
name
country
city
province

Ryan
United States
San Diego
CA

Interpretao de sentenas
O sistema desenvolvido por Mauldin, ao receber uma sentena do interlocutor,
utiliza a tabela de substituio (Tabela 2.3) para retirar pontuaes da sentena e corrigir
variaes de palavras conhecidas. Por exemplo, para a sentena "What's a pet?", o sistema
retira o sinal de interrogao <?> e substitui "What's" por "What is", gerando uma
representao interna da sentena "what is a pet". Em seguida, o sistema utiliza a rede de

34

ativao (Tabela 2.4) para extrair informaes semnticas da sentena. Ao encontrar uma
palavra-chave que casa com a sentena do interlocutor, o sistema aumenta o nvel de
ativao do n correspondente e dos ns a serem realados, e diminui os nveis de ativao
dos ns a serem inibidos. No exemplo anterior, o sistema encontraria o padro "pet"
associado ao n <havepet>, e aumentaria o nvel de ativao daquele n e dos ns
<havepet-1> e <havepet-2>. Depois, diminuiria o nvel de ativao dos ns <havepet-6>
<havepet-7>.
Gerao de sentenas
Para a gerao de rplicas, JULIA utiliza as informaes descritivas dos usurios
(Tabela 2.5) para compor uma sentena, a partir do molde de rplica pertencente ao n da
rede de ativao com maior nvel de ativao. Seguindo o exemplo acima, o sistema
consulta o frame do usurio e substitui o marcador <name> pelo nome do usurio no
molde de rplica "Do you have any pets <name>?" para compor a sentena "Do you have
any pets Ryan?".
Crticas
As principais crticas aos sistemas dessa gerao so: (1) as redes de ativao, alm
de trazerem representaes muito simplificadas do significado das sentenas, precisam ser
completamente refeitas a cada novo domnio, o que diminui a escalabilidade do modelo; e
(2) as informaes sobre os usurios so apenas descritivas, e no trazem nenhuma
informao relativa inteno dos interlocutores.
Apesar das dificuldades apontadas para a construo dos chatterbots dessa gerao,
outros sistemas semelhantes JULIA foram implementados na dcada de 1990, dentre os
quais destacamos JFRED, um framework para o desenvolvimento de chatterbots
desenvolvido por Robby Garner [GARNER 2000]. Um chatterbot baseado no framework
de Garner chegou a vencer uma edio do Prmio Loebner em 1997. Porm, de uma
maneira geral, os sistemas da primeira gerao continuaram superando os sistemas dessa
gerao nesse concurso [LOEBNER 2004].

35

2.1.3 Terceira gerao


Recentemente, no final da dcada de 1990, Wallace [WALLACE 2004a] props
um novo framework para o desenvolvimento de chatterbots, inspirado na simplicidade da
primeira gerao. A.L.I.C.E., um chatterbot implementado em AIML (Artificial
Intelligence Marckup Language), rendeu reconhecimento internacional ao trabalho de
Wallace ao vencer trs das ltimas quatro edies do Prmio Loebner [LOEBNER 2004],
bem como na ltima edio do Chatterbox Challenger [COWARD 2004], dois eventos de
grandeza internacional que avaliam o desempenho de chatterbots.
Arquitetura
O sistema proposto por Wallace amplia a arquitetura dos sistemas das geraes
anteriores, incluindo tratamento de informaes nos trs nveis propostos no modelo de
Allen (Figura 2.4).
gerao de texto

variveis de
descrio do
usurio

Nvel III - contexto

inform aes
pragm t icas

variveis de
cont role de
dit icos

inform aes
do discurso

base de
subst it uio de
pr onom es

base de
descrio do
chat t erbot

inform aes
sem nt icas

base de t picos

Nvel II - significado

base de
cat egorias

base de
subst it uio

inform aes
sint t icas

inform aes
m or folgicas

interpretao de texto

Figura 2.4. Arquitetura dos sistemas de terceira gerao.

Nvel I - forma

36

Wallace desenvolveu um vocabulrio XML denominado AIML, utilizado para


representar as bases de dados do sistema.
A primeira dessas bases a base de substituio, semelhante tabela da segunda
gerao (seo 2.1.2), porm escrita em AIML (Exemplo 2.1).
Exemplo 2.1. Trecho de um arquivo de substituio AIML
<?xml version="1.0" encoding="ISO-8859-1"?>
<substitutions>
<substitute find=" ohh" replace=" oh"/>
<substitute find=" hehe" replace=" he"/>
<substitute find=" haha" replace=" ha"/>
<substitute find=" hellp " replace=" help "/>
<substitute find=" becuse " replace=" because "/>
<substitute find=" becasue " replace=" because "/>
<substitute find=" becuase " replace=" because "/>
<substitute find=" becouse " replace=" because "/>
<substitute find=" practice " replace=" practise "/>
<substitute find=" reductionalism " replace=" reductionism "/>
<substitute find=" loebner price " replace=" loebner prize "/>
<substitute find=" its a " replace=" it is a "/>
</substitutions>
A base de substituio em AIML possui um elemento <substitutions> formado por
uma srie de elementos <substitute>. No elemento <substitute> esto os parmetros
<find>, onde ficam as cadeias de caracteres a serem substitudas, e <replace>, onde esto
as cadeias que iro substituir o contedo de <find>. No exemplo 2.1, temos alguns
exemplos de uso do elemento <substitute>, tanto para correo de erros de digitao (e.g.,
<substitute find=" becuase " replace=" because "/>), quanto para padronizao de
variaes de digitao que no representam necessariamente um erro (e.g., <substitute
find=" ohh" replace=" oh"/>).
A base de categorias formada por unidades identificadas pelo elemento
<category>, compostas por um padro de entrada associado a um ou mais moldes de
rplica (Exemplo 2.2), semelhante aos sistemas de primeira gerao.

37

Exemplo 2.2. Categoria AIML modelo


<category>
<pattern>padro de entrada</pattern>
<template>
<random>
<li>molde de rplica 01
<li> molde de rplica n
</random>
</template>
</category>
Os padres de entrada podem usar caracteres especiais (e.g., * _ ) para casar com
sentenas variadas digitadas pelos usurios, substituindo esses caracteres por qualquer
expresso, como foi proposto por Weizenbaum em ELIZA [WEIZWNBAUM 1966]. No
exemplo 2.3, apresentamos uma categoria que utiliza um padro com caracteres especiais.
Exemplo 2.3. Categoria AIML com *
<category>
<pattern>what is *</pattern>
<template>I don't know what is <star>.</template>
</category>
No molde de rplica, o elemento <star> seria substitudo pelo trecho da sentena do
interlocutor que no casou com o padro de entrada. Por exemplo, se um usurio digita
"What is a notepad ?", o sistema responderia "I don't know what is a notepad". Os moldes
de rplica podem conter ainda elementos de controle de processamento, dentre os quais
destacamos: <condition>, que possibilita a construo de regras do tipo if-then em AIML;
e <srai>, que redireciona o processo de casamento de padro.
A base de tpicos AIML formada por conjuntos de categorias, porm isoladas da
base e classificadas por tpicos. No exemplo 2.4, temos um conjunto de categorias que
pertencem ao tpico "LOVE". Essas categorias no so utilizadas pelo processador durante
o casamento de padro, a no ser quando o tpico vigente for "LOVE".

38

Exemplo 2.4. Trecho da base de tpicos em AIML


<topic name="LOVE">
<category>
<pattern>*</pattern>
<template>
<random>
<li> How much do you love me?</li>
<li> Why don't you ever show me you love me?</li>
<li> Why is it so difficult for you to show affection?</li>
<li> Your coldness chills me to the bone</li>
</random>
</template>
</category>
</topic>
Assim, o sistema s realiza uma busca nas categorias que pertencem ao tpico
"LOVE" se este for o tema vigente do dilogo.
As variveis de controle de diticos e de descrio do usurio so definidas em
tempo de execuo. Essas variveis so definidas pelo elemento <set> e recuperadas pelo
elemento <get>, inseridos nos moldes de rplica das categorias AIML. No exemplo 2.5,
utilizamos o elemento <set> para definir o nome do interlocutor na primeira categoria e
depois o recuperamos atravs do elemento <get> na segunda categoria.
Exemplo 2.5. Variveis em AIML
<category>
<pattern>My name is *</pattern>
<template>
Nice to meet you <set name="user"><star/></set>
</template>
</category>
<category>
<pattern>You are a good bot.</pattern>
<template>
Thank you <get name="user"/>
</template>
</category>

39

A base de substituio de pronomes tem uma sintaxe semelhante utilizada na base


de substituio morfolgica, porm os elementos <substitute> esto vinculados a um
elemento <person> que indica ao sistema que essas substituies so pronominais.
Exemplo 2.6. Base de substituio de pronomes em AIML
<person>
<substitute find=" I was " replace=" he or she was "/>
<substitute find=" he was " replace=" I was "/>
<substitute find=" she was " replace=" I was "/>
<substitute find=" I am " replace=" he or she is "/>
<substitute find=" I " replace=" he or she "/>
<substitute find=" me " replace=" him or her "/>
<substitute find=" my " replace=" his or her "/>
<substitute find=" myself " replace=" him or herself "/>
<substitute find=" mine " replace=" his or hers "/>
<substitute find=" with you " replace=" with me "/>
<substitute find=" with me " replace=" with you "/>
<substitute find=" to you " replace=" to me "/>
<substitute find=" to me " replace=" to you "/>
<substitute find=" of you " replace=" of me "/>
<substitute find=" of me " replace=" of you "/>
<substitute find=" for you " replace=" for me "/>
<substitute find=" for me " replace=" for you "/>
</person>
A base de descrio do chatterbot formada por uma srie de elementos
<property>. Cada elemento possui dois parmetros, <name> e <value>, que contm
respectivamente um rtulo para identificar a caracterstica do chatterbot e o seu contedo
(Exemplo 2.7).
Exemplo 2.7. Base de descrio do chatterbot em AIML
<bot>
<property name="name" value="ALICE"/>
<property name="gender" value="female"/>
<property name="master" value="A.L.I.C.E. AI Foundation"/>
<property name="birthday" value="1995"/>
<property name="birthplace" value="Pennsylvania"/>
<property name="boyfriend" value="you"/>
<property name="favoritebook" value="Don't Read Me"/>
<property name="favoritecolor" value="transparent"/>
<property name="favoriteband" value="beatlles"/>

40

</bot>
AIML possui ainda uma srie de outros elementos que auxiliam o sistema na
interpretao de sentenas do interlocutor e na gerao de suas rplicas. Uma descrio
detalhada de todo o vocabulrio AIML pode ser encontrado no website da Fundao
AliceBot 1 .
Interpretao de sentenas
Ao receber uma sentena do interlocutor, o sistema consulta a tabela de
substituio para corrigir variaes de palavras da sentena e eliminar pontuaes. Por
exemplo, se um interlocutor digita a sentena "What's your favorite car?", o sistema
elimina <?>, substitui o "What's " por "What is " e depois passa toda a sentena para
maisculas, montando uma representao interna do tipo: "WHAT IS YOUR FAVORITE
CAR".
Em seguida, o sistema utiliza o elemento <srai>, para padronizar possveis
variaes sintticas (Exemplo 2.8). No exemplo, a categoria com o padro de entrada
"WHAT ITS FAVORITE *" reescrita para "WHAT IS YOUR FAVORITE <star/>", e
esta entrada submetida novamente ao processador, como se fosse uma nova entrada do
interlocutor.
Exemplo 2.8. Processo de reescrita em AIML
<category>
<pattern>WHAT IS ITS FAVORITE *</pattern>
<template>
<srai>WHAT IS YOUR FAVORITE <star></srai>
</template>
</category>
Ainda durante o processo de interpretao, AIML prev a possibilidade de se
determinar o tpico corrente no dilogo atravs do uso de uma varivel de controle cujo

http://www.alicebot.org

41

valor determinado pelo elemento <set> (Exemplo 2.9). No exemplo, o tpico seria
definido como sendo a parte da sentena que no casa com o padro de entrada atravs da
instruo "<set name=topic> <star/> </set>". Assim, para a sentena "WHAT IS YOUR
FAVORITE CAR", o tpico corrente seria "CAR".
Exemplo 2.9. Definio de tpico vigente em AIML
<category>
<pattern>WHAT IS ITS FAVORITE *</pattern>
<template>
<set name="topic"><star/></set>
<srai>WHAT IS YOUR FAVORITE <star></srai>
</template>
</category>
No nvel do contexto, durante o processo de interpretao, o sistema tambm utiliza
o elemento <set> para definir variveis de controle de diticos e obter informaes
descritivas do usurio (Exemplo 2.10). No exemplo, o sistema usa o elemento <set> para
definir o valor de "it" como sendo "CAR".
Exemplo 2.10. Definio de tpico vigente em AIML
<category>
<pattern>WHAT IS ITS FAVORITE *</pattern>
<template>
<set name="topic"><star/></set>
<set name="it"><star/></set>
<srai>WHAT IS YOUR FAVORITE <star></srai>
</template>
</category>
Gerao de sentenas
O processo de gerao de rplicas utiliza o elemento <get> para recuperar as
informaes das variveis definidas no processo de interpretao atravs do elemento
<set> (Exemplo 2.11). No exemplo, o elemento <get> utilizado para recuperar o valor de
"it" definido anteriormente, assim a rplica seria "I LIKE CAR".

42

Exemplo 2.11. Recuperao do valor de "it" em AIML


<category>
<pattern>DO YOU LIKE IT</pattern>
<template>
I LIKE <get name="it"/>
</template>
</category>
Em seguida, o sistema utiliza o valor da varivel de controle de tpicos e verifica se
existe um tpico correspondente ao tpico corrente na sua base. Caso isso ocorra e o
sistema encontre dois padres semelhantes na base, um interno ao tpico e outro externo,
ele dar preferncia ao padro interno. No exemplo 2.12, o sistema encontra o padro
"What is your favorite *" dentro e fora da rea do tpico "CAR", e d preferncia rplica
da rea interna ao tpico, respondendo "I LOVE FERRARI", o que garante rplicas mais
consistentes.
Exemplo 2.12. Utilizao do elemento <topic> em AIML
<category>
<pattern>WHAT IS YOUR FAVORITE *</pattern>
<template>
I DON'T KNOW WHAT IS MY FAVORITE <star/>
</template>
</category>
<topic name="CAR">
<category>
<pattern>WHAT IS YOUR FAVORITE *</pattern>
<template>
I LOVE FERRARI
</template>
</category>
</topic>
A simplicidade de implementao associada aos resultados obtidos por chatterbots
baseados em AIML no Prmio Loebner em 2000, 2001 e 2004 [LOEBNER 2004] garantiu
a popularizao dessa linguagem, considerada atualmente o principal framework para o
desenvolvimento de chatterbots, contando com mais de 50.000 implementaes em

43

diversos idiomas [AIMLESS & UMATANI 2004] e uma rede de desenvolvedores que
inclui grupos de pesquisa de diferentes centros acadmicos [ELST 2004].
No entanto, apesar do sucesso alcanado, os sistemas baseados em AIML ainda
apresentam limitaes: (1) no nvel da forma - apesar de os sistemas padronizarem
variaes sintticas e morfolgicas de palavras e sentenas das entradas do interlocutor,
todo o trabalho de criao e manuteno da base ainda realizado por um administrador
humano; (2) no nvel do significado - os sistemas apenas direcionam as sentenas por
tpico, mas no possuem informaes descritivas do domnio; e (3) no nvel do contexto utilizam informaes descritivas do usurio, porm no fazem uso de informaes que
dem conta da inteno do usurio e nem do andamento global do dilogo.
Com o objetivo de melhorar o desempenho geral dos chatterbots em AIML,
algumas pesquisas vm sendo desenvolvidas para tentar minimizar os problemas acima
[AIMLBOTS 2004]. Destacamos dois desses trabalhos: (1) GrokItBot, um sistema para
aquisio de variaes sintticas para bases AIML [GOUGH 2003]; e (2) OpenCin, um
sistema que integra conhecimento de senso comum a bases AIML [COURSEY 2004]. O
terceiro problema apontado justamente o foco do trabalho que desenvolvemos [NEVES
et al. 2003].
2.2 Teoria da Anlise da Conversao
Podemos identificar duas abordagens clssicas para a anlise da conversao: uma
que se iniciou na dcada de 1960, e preocupa-se sobretudo com os aspectos estruturais da
conversao [SCHEGLOFF 1972]; e outra, originada na dcada de 1980, e focada
principalmente nos aspectos comunicativos (cognitivos, tnicos e culturais) da conversao
[GUMPERZ 1982]. Esta segunda perspectiva desvia o enfoque da atividade
conversacional do nvel organizacional para o nvel interpretativo. Neste trabalho,
investigamos o modelo proposto por Marcuschi para anlise da conversao
[MARCUSCHI 1986], por tratar tanto dos aspectos organizacionais da conversao quanto
dos aspectos comunicativos da conversao como base para definio de critrios de
avaliao de chatterbots.

44

Para caracterizar a conversao em relao a outros processos comunicativos,


Marcuschi identifica cinco caractersticas bsicas que identificam uma situao
conversacional: (1) interao entre pelos menos dois interlocutores; (2) ocorrncia de pelo
menos uma troca de interlocutores (estas duas caractersticas diferenciam a conversao de
outras situaes comunicativas, como o monlogo e o discurso); (3) presena de uma
seqncia de aes coordenadas (toda conversao pode ser vista como uma estrutura
organizada, distribuda em aes previsveis); (4) execuo em ma identidade temporal
(essa caracterstica diferencia a conversao de processos de interao assncrona, por
exemplo, debates por correspondncia); e, (5) envolvimento em uma "interao centrada",
que distingue a conversao de situaes em que duas ou mais pessoas esto falando, sem
no entanto estarem envolvidas em torno de um tema comum.
importante perceber que a interao face a face no condio necessria para
que haja uma conversao, uma vez que podem ocorrer conversaes a distncia, por
exemplo, atravs de telefones ou, mais recentemente, em salas de chat na Internet.
Segundo Marcuschi, a conversao um fenmeno nico que precisa ser analisado
de forma ampla, a partir de organizadores locais e globais. A seguir, apresentamos detalhes
sobre esses dois nveis de organizao da conversao.
2.2.1 Organizao Global da Conversao
Segundo Marcuschi, uma conversao considerada normal ocorre em trs fases
distintas: abertura, desenvolvimento e fechamento.
Na abertura, cada interlocutor procura reconhecer os demais participantes do
dilogo, em seguida cumprimentam-se e, caso se faa necessrio, os interlocutores podem
apresentar-se uns aos outros. importante observar que existem diferentes formas de se
iniciar uma conversao, dependendo da situao, das circunstncias e dos meios
utilizados. No caso das ligaes telefnicas, por exemplo, comum que aquele que recebe
o telefonema fale primeiro e pea para que o outro se identifique, enquanto que em
encontros casuais, esta regra no faz muito sentido, uma vez que os interlocutores esto se
vendo face a face.

45

No desenvolvimento, iniciam-se os tpicos que evoluem durante a conversa,


podendo ocorrer vrias mudanas de tpico. comum que um interlocutor inicie um
tpico em um determinado ponto da conversa e a manuteno desse tpico passe a ser
negociada durante a seo com os demais interlocutores.
No fechamento, os usurios despedem-se. Assim como acontece com a abertura, as
formas de fechamento variam em funo da situao, das circunstncias e dos meios.
Novamente, citando as ligaes telefnicas, comum que aquele que telefona conclua e
encerre a conversa, o que no ocorre necessariamente em uma conversao face a face,
onde qualquer um pode encerrar a conversa.
2.2.2 Organizao Local da Conversao
Dentro das fases de organizao global da conversao descritas acima, temos,
segundo Marcuschi, uma srie de elementos organizadores. Dentre estes elementos,
destacam-se o turno, as seqncias, a preferncia e os tpicos.
Segundo Marcuschi, entende-se por turno a produo de um falante enquanto est
com a palavra, incluindo a a possibilidade do silncio, quando este for significativo
[MARCUSCHI 1986]. No exemplo 2.13, temos uma conversa formada por trs turnos,
sendo o primeiro e o terceiro do interlocutor A, e o segundo turno do interlocutor B.
Exemplo 2.13. Uma conversa tpica formada por trs turnos
Interlocutor A: oi, como vai voc?
Interlocutor B: estou indo muito bem e voc, como vai?
Interlocutor A: vou bem tambm.
importante no confundir o conceito de turno com o de ato de fala [SEARLE
1976], uma vez que podemos ter mais de um ato de fala em um mesmo turno. Por
exemplo, em vamos ao cinema / que est passando um bom filme, temos dois atos de
fala diferentes em um mesmo turno, um convite e uma afirmao. Para Marcuschi, a
tomada de turno uma operao bsica da conversao, e o turno, um de seus
componentes centrais.

46

Outros fatores de organizao local da conversao extrapolam o nvel do turno, e


se estendem ao nvel da seqncia. Entre essas seqncias, os pares adjacentes, ou pares
conversacionais, so extremamente relevantes para a anlise da conversao, por sua
estruturao altamente padronizada. O termo "par adjacente" foi introduzido por Schegloff
[SCHEGLOFF 1972], e define uma seqncia de dois turnos que coocorrem e servem para
organizar localmente uma conversao. Por exemplo, no caso dos cumprimentos, quase
obrigatria a ocorrncia de um segundo turno em resposta ao primeiro, sendo incomum, ou
mesmo inadequada a incluso de algo entre um turno e outro. Como exemplos de pares
conversacionais, Marcuschi cita, entre outros: pergunta resposta, ordem execuo,
cumprimento cumprimento, convite recusa ou aceitao [MARCUSCHI 1986]. Esses
pares so citados apenas como exemplos, uma vez que, em cada situao particular de
conversao, podem aparecer diferentes pares conversacionais, segundo Schegloff (1972,
1974, 1999, 2000, 2002), a formao de pares adjacentes se d em funo de aspectos
scio-culturais.
Ainda no nvel local da organizao conversacional, importante falar das
preferncias, conceito desenvolvido por Sacks e Schegloff em 1974, e que trata das
diferentes maneiras de se responder a uma determinada ao no contexto conversacional
[SACKS & SCHEGLOFF 1974]. Por exemplo, ao se realizar um convite, mais comum
esperarmos do nosso interlocutor uma aceitao do que uma recusa, no entanto, nada
impede que o interlocutor d preferncia a esta segunda opo. Assim, temos segundas
partes do par preferidas e "despreferidas", sendo consideradas preferidas aquelas mais
comuns. Esta estruturao da conversao com base em preferncias tem, segundo
Levinson [LEVINSON 2003], uma forte ligao scio-cultural.
Finalmente, no nvel local de organizao da conversao, resta-nos tratar do
tpico, que, neste caso, diferentemente do que ocorre no monlogo, negociado pelos
interlocutores a cada turno, podendo a qualquer momento ser redirecionado. Segundo
Coulthard (1977), a primeira questo que se deve observar com relao aos tpicos quais
tpicos so aceitveis na conversao corrente, pois algumas coisas podem ser ditas a
qualquer um e outras a poucos, assim como algumas devem ser ditas de imediato e outras
devem ser adiadas, e assim por diante [COULTHARD 1977]. Seguindo ento o caminho

47

da generalizao, podemos afirmar que, de uma maneira geral, inicia-se uma conversa com
o tpico que motivou o encontro, e este vai se modificando durante o decorrer da
conversao, sendo importante observar que s se mantm uma conversao quando se
tem algo sobre o que falar, ainda que sejam futilidades.
Para Marcuschi, uma conversao deve ser considerada fluente quando passa de um
tpico para outro de forma natural, sem que se perceba uma quebra. Neste ponto,
importante levar em considerao uma diferenciao proposta por Stech (1982) entre
quebra e mudana de tpico, sendo considerada como quebra de tpico uma interrupo, e
mudana quando um determinado tpico se esgota e inicia-se um novo tpico [STECH
1982].
2.3 Anlise de chatterbots segundo a TAC
Tomando como base os princpios da TAC apresentados na seo 2.2, analisamos o
comportamento dos chatterbots das trs geraes, complementando a anlise apresentada
na seo 2.1. Esta anlise nos revelou alguns problemas no desempenho dos chatterbots
que tentamos corrigir neste trabalho. Dentre outros, destacamos a incapacidade dos
sistemas de controlar o andamento global dos dilogos e de montar pares adjacentes
consistentes.
2.3.1 Procedimento de anlise
A partir do modelo proposto por Marcuschi, definimos critrios de ordem global e
local para analisar os chatterbots (Tabela 2.6). Os critrios de ordem global so: (1)
abertura, onde observamos a forma como o chatterbot se comporta no incio dos dilogos,
considerando seu desempenho nos cumprimentos iniciais e nas apresentaes ao usurio;
(2) desenvolvimento, onde observamos a capacidade do sistema em dar andamento ao
dilogo de maneira fluente, sem quebras abruptas de tpicos; e (3) fechamento, onde
observamos o desempenho do chatterbot nos momentos finais de cada dilogo, verificando
a forma como o sistema se comporta quando o usurio inicia suas despedidas e encerra
definitivamente o dilogo.

48

Os critrios de ordem local so: (1) tomada de turno, onde observamos o tipo de
atitude adotada (reativa ou pr-ativa) pelo chatterbot para tomar o turno; (2) formao de
pares adjacentes, onde observamos a adequabilidade conversacional das rplicas do
chatterbot aos turnos dos interlocutores; (3) definio de preferncias, onde observamos a
consistncia das decises tomadas pelos chatterbots ao escolherem suas rplicas e a
capacidade dos sistemas de ajustarem suas decises durante o andamento do dilogo; e (4)
negociao de tpicos, onde observamos o domnio do chatterbot sobre tpicos especficos
e sua capacidade de mudar de tpico sem quebrar a fluncia dos dilogos.
Tabela 2.6. Critrios de avaliao

Global

Local

Critrio
Abertura
Desenvolvimento
Fechamento
Tomada de turno
Formao de pares
Definio de preferncias
Negociao de tpicos

2.3.2 Definio do objeto de anlise


Para dar uma viso ampla do comportamento dos chatterbots, selecionamos trs
sistemas para serem avaliados, sendo um deles da primeira gerao (ELIZA 2 ), um
representante da segunda gerao (ULTRAHAL 3 ) e um representante da terceira gerao
(A.L.I.C.E. 4 ). Instalamos uma verso de cada um desses chatterbots no website do Virtus
Laboratrio de Hipermdia da UFPE 5 , ficando disponveis durante aproximadamente 60
dias. Todos os sistemas foram instalados a partir de cpias de cdigo livre, disponveis
para download na Internet 6 , e mantm dilogos em ingls.

http://www.eliza.org
http://www.ultrahal.com
4
http://www.alicebot.org
5
http://www.virtus.ufpe.br
6
http://www.laven.com
3

49

Durante esse perodo, os chatterbots foram utilizados por cerca de 150 usurios,
que deixaram registrados 176 dilogos, sendo que desses, 39 foram realizados com ELIZA,
58 com ULTRAHAL e 77 com A.L.I.C.E..
2.3.3 Resultados da anlise
De uma maneira geral, a conversao com os chatterbots, no nvel global, muito
semelhante conversao entre seres humanos em ligaes telefnicas [SCHEGLOFF
1972]. As fases de abertura, desenvolvimento e fechamento se mantm e apresentam
apenas algumas peculiaridades. J no nvel local, percebemos uma srie de problemas nos
dilogos com os chatterbots que normalmente no ocorrem em dilogos entre humanos. A
seguir, apresentamos uma descrio da anlise que realizamos para cada critrio da tabela
2.6.
Aberturas
No caso das aberturas, comum que as conversas se iniciem por uma apresentao
do chatterbot, seguida de um pedido de identificao do usurio, assim como acontece nas
ligaes telefnicas descritas por Schegloff, onde aquele que recebe o telefonema costuma
perguntar quem est falando antes de iniciar a conversa. No exemplo 2.14, temos um
trecho de uma abertura tpica de dilogo com ELIZA. Essa estrutura se repete no dilogos
com ULTRAHAL e A.L.I.C.E..
Exemplo 2.14. Abertura tpica com chatterbots.
INTERLOCUTOR: hi, my name is eliza, what is your name?
BOT: my name is username, how are you?
INTERLOCUTOR: I am fine
No entanto, apesar das semelhanas nas aberturas nos trs sistemas analisados,
importante ressaltar o fato de que ELIZA no possui registros de seus usurios, ou seja, a
solicitao que ela faz para que o usurio se identifique apenas para simular uma
conversao real entre seres humanos.

50

Desenvolvimento
O desenvolvimento to semelhante s conversaes entre seres humanos quanto a
abertura. Aqui, o processo repete os mesmos mecanismos de troca de tpicos. No entanto,
um ponto deve ser levado em considerao: os chatterbots solicitam com freqncia que o
seu interlocutor fale mais sobre os tpicos do dilogo, assumindo a posio de um
"ouvinte" que estimula o outro interlocutor a adotar o papel do "falante principal"
(Exemplo 2.15).
Exemplo 2.15. Trecho de um desenvolvimento com ELIZA [WEIZENBAUM 1966].
INTERLOCUTOR: men are all alike.
BOT: in what way?
INTERLOCUTOR: they're always bugging us about something or other.
BOT: can you think of a specific example?
INTERLOCUTOR: well, my boyfriend made me come here.
Assim como acontece nas aberturas, no desenvolvimento podemos perceber uma
similaridade com as conversas atravs do telefone. normal que o outro interlocutor,
aquele que chama o chatterbot, inicie um determinado tpico de seu interesse. Um fato
importante na etapa de desenvolvimento com A.L.I.C.E. e ULTRAHAL nos chama a
ateno. Estes sistemas procuram adquirir informaes sobre o usurio durante o dilogo
para manter um perfil dos seus interlocutores. O exemplo 2.16 mostra como o sistema
descobre a idade do usurio durante a conversa.
Exemplo 2.16. Aquisio de informao no desenvolvimento.
BOT: how old are you?
INTERLOCUTOR: I am 17
BOT: great
Fechamento
O fechamento mantm a mesma estrutura das conversas telefnicas descritas por
Schegloff. Normalmente, o interlocutor se despede do chatterbot e este ento se despede
(Exemplo 2.17).

51

Exemplo 2.17. Exemplo de fechamento.


INTERLOCUTOR: ok, bye bye
BOT: bye
Neste ponto, importante ressaltar um problema de ordem global que apareceu em
alguns dilogos registrados. Quando o usurio digitava turnos caractersticos da seo de
abertura durante o desenvolvimento ou no fechamento, os sistemas respondiam
naturalmente, sem questionamentos. No exemplo 2.18, temos uma situao recorrente, em
que o usurio digita "Hi" durante o desenvolvimento, para testar o sistema, e ELIZA
responde "Hi there", como se o dilogo estivesse comeando. Situaes semelhantes
ocorreram nos dilogos com A.L.I.C.E. e ULTRAHAL.
Exemplo 2.18. Problema de andamento do dilogo.
INTERLOCUTOR: do you like dogs?
BOT: yes, I love pets
INTERLOCUTOR: hi
BOT: hello there!
No entanto, esse problema no ocorreu em muitos dilogos, pois normalmente o
usurio respeita os padres scio-culturais de andamento do dilogo, descritos por
Marcuschi [MARCUSCHI 1986], dando aos dilogos uma estrutura coerente de abertura,
desenvolvimento e fechamento.
Tomada de turno
Diferentemente do que acontece com dilogos entre seres humanos, a tomada de
turno com os chatterbots se d de maneira extremamente simplificada. Os sistemas
costumam ser reativos e s tomam o turno quando o interlocutor solicita a sua participao
no dilogo, normalmente atravs da tecla [enter].
importante lembrar que estes sistemas so quase sempre projetados para
conversar com apenas um usurio por vez, o que torna o processo de tomada de turno to
simples.

52

Formao de pares adjacentes


Os chatterbots analisados formaram pares consistentes na abertura e no
fechamento, respondendo bem a cumprimentos e despedidas, porm apresentaram uma
srie de problemas no desenvolvimento. Muitas sentenas so tratadas como
desconhecidas pelos sistemas, quando na verdade so complementos ao turno anterior do
chatterbot. No exemplo 2.19, o chatterbot faz uma pergunta a um usurio no turno (1) e,
quando o usurio responde no turno (2), o sistema no reconhece a sentena do usurio e
procura continuar o dilogo no turno (3) sem levar em considerao o par perguntaresposta anterior.
Exemplo 2.19. Problema de formao de pares adjacentes.
(1) BOT: who else in your family takes care of you?
(2) INTERLOCUTOR: my father
(3) BOT: can you think of a specific problem?
No entanto, mesmo no possuindo um padro de entrada para casar com "my
father", o sistema poderia prever que a atitude mais natural do usurio seria responder a
sua pergunta, e ento montar uma rplica mais consistente no turno (3), dando uma
continuidade mais fluente ao dilogo. Esse tipo de problema ocorreu com freqncia nos
dilogos analisados, tanto com ELIZA, quanto com A.L.I.C.E. e ULTRAHAL.
Definio de preferncias
Nos sistemas avaliados, as preferncias no se modificam durante o dilogo. Por
exemplo, se um interlocutor xingar um chatterbot no incio do dilogo, e ele solicitar que o
usurio evite esse comportamento, o sistema manter essa atitude durante todo o dilogo,
mesmo que o interlocutor repita o xingamento inmeras vezes. Esse fato demonstra que a
definio de preferncias montada turno a turno e no se modifica durante a medida que
o dilogo se desenvolve.

53

Negociao de tpicos
Como foi descrito na seo 2.1, os chatterbots, de uma maneira geral, no possuem
bases consistentes de conhecimento sobre tpicos especficos. Durante a anlise dos
dilogos, percebeu-se que os sistemas evitam emitir opinies a respeito de qualquer
domnio. A atitude mais comum nos sistemas se esquivar, solicitando que o interlocutor
exponha suas prprias opinies. No exemplo 2.20, quando o interlocutor diz que gostou de
um determinado filme, o chatterbot pede que ele fale mais sobre o seu filme favorito. Essa
atitude se repete, independente de ser um filme, um livro ou uma partida de futebol.
Exemplo 2.20. Problema de negociao de tpicos.
INTERLOCUTOR: my favorite movie is star wars.
BOT: tell me more about your favorite movie.
No entanto, nos dilogos com A.L.I.C.E., percebemos que o sistema costuma
utilizar informaes sobre suas preferncias em relao a determinados tpicos. No
exemplo 2.21, quando o usurio diz ter preferncia pela cor "azul", A.L.I.C.E. diz em
seguida que sua cor preferia o amarelo, dando continuidade ao tpico levantado pelo
usurio.
Exemplo 2.21. Negociao de tpicos em A.L.I.C.E..
INTERLOCUTOR: my favorite color is blue.
BOT: oh, I love yellow. Do you like yellow too?
Assim como ocorreu na anlise dos critrios de ordem global, na anlise dos
critrios locais, um fato recorrente nos chamou a ateno. Todos os sistemas tentam evitar
que o usurio seja repetitivo em seus turnos, criticando-o quando ele repete a mesma
sentena seguidamente. No exemplo 2.22, quando o usurio digita "hi", o chatterbot
responde saudao com uma nova saudao, "hello there". Porm, quando o usurio
repete a saudao "hi" no turno seguinte, o sistema pede para que ele no seja repetitivo.

54

Exemplo 2.22. Repetio de sentenas dos interlocutores


INTERLOCUTOR: hi
BOT: hello there!
INTERLOCUTOR: hi
BOT: please, don't be repetitive.
No entanto, em alguns dilogos, os chatterbots foram facilmente "enganados" pelos
interlocutores. No exemplo 2.23, o usurio mudou a forma de sua saudao e o chatterbot
respondeu "hello, how are you?", demonstrando claramente que no considera a
semelhana semntica e pragmtica nas duas sentenas.
Exemplo 2.23. Repetio de sentenas com variao sinttico-morfolgica
INTERLOCUTOR: hi
BOT: hello there!
INTERLOCUTOR: hello
BOT: hello, how are you?
2.4 Concluses
A partir das duas anlises realizadas, construmos uma matriz de interao (Tabela
2.10) do tipo causa-conseqncia, relacionando os problemas observados na anlise dos
dilogos (seo 2.2) com os limites de ordem computacional (seo 2.1). A tabela
formada por quatro colunas: (1) nvel lingstico de informao onde se enquadra o
problema; (2) descrio do problema verificado nos dilogos; (3) descrio do limite
computacional que leva ao problema; e (4) projeto de pesquisa que procura minimizar o
problema (esses projetos so todos voltados ao desenvolvimento de chatterbots da terceira
gerao, baseados em AIML).

55

Tabela 2.10. Matriz de interao PLN-TAC


Nvel
Forma

Problema
Pouca cobertura
para variaes
sintticas e
morfolgicas

Limite
Falta de um
mecanismo para
aquisio
automtica de
variaes sintticas
e morfolgicas

Pesquisa
GrokItBot 7 ,
sistema voltado
para aquisio de
variaes sintticas
e morfolgicas para
bases AIML

Significado

Os chatterbots no
conseguem
aprofundar o
dilogo em torno de
tpicos especficos
durante o
desenvolvimento
Formao de pares
adjacentes
inconsistentes

Os sistemas no
possuem
informaes
descritivas de fatos
e objetos do
domnio

OpenCIN 8 ,
sistema que integra
conhecimento do
senso comum
AIML

Os sistemas no
tratam de
informaes de
intencionalidade
dos interlocutores

Nosso trabalho
busca preencher
esta lacuna, e
pretende solucionar
os problemas
apresentados no
nvel do contexto

Contexto

Os chatterbots no
percebem a
semelhana de
inteno nas
sentenas dos
interlocutores
Os chatterbots no
controlam o
andamento global
do dilogo

No nvel da forma, o projeto GrokitBot tenta atrelar um mecanismo para aquisio


automtica de variaes sinttico-morfolgicas aos chatterbots baseados em AIML
utilizando lgica bayseana. Apesar de ter ainda poucos resultados prticos, o projeto
apresenta uma soluo consistente do ponto de vista computacional. No nvel do
significado, o trabalho desenvolvido no projeto OpenCin integra os resultados obtidos no
projeto OpenCyc a AIML. O projeto OpenCyc conta com uma das maiores bases de

7
8

http://www.suttree.com/code/GrokItBot/
http://www.opencyc.org

56

conhecimento do mundo sobre o senso comum, com mais de um milho de regras


catalogadas.
Considerando o resultado obtido com a anlise do estado da arte em chatterbots,
optamos por desenvolver nosso trabalho no nvel do contexto, mais especificamente, no
tratamento de inteno, onde trs problemas ainda esto em aberto: (1) os sistemas no
levam em conta a estrutura global de uma conversao (abertura, desenvolvimento e
fechamento) [MARCUSCHI 1986] e aceitam que turnos tpicos da abertura, como por
exemplo as saudaes, apaream no desenvolvimento ou no fechamento (Exemplo 2.17);
(2) apesar de os sistemas tentarem tratar turnos repetidos dos usurios, eles o fazem apenas
com base na estrutura sinttico-morfolgica das sentenas (Exemplo 2.18); e (3) muitas
sentenas so tratadas como desconhecidas pelos sistemas, quando na verdade so turnos
adjacentes ao turno anterior do chatterbot, esperados do ponto de vista scio-cultural
[SCHEGLOFF 1972] (Exemplo 2.22).
No prximo captulo, apresentamos uma breve descrio do estado da arte em
tratamento de inteno, tanto do ponto de vista lingstico quanto computacional.

57

3. Intencionalidade

Neste captulo, apresentamos princpios


lingsticos

computacionais

tratamento de inteno.

para

58

Como foi apresentado no captulo anterior, o tratamento de inteno ainda um


problema em aberto em chatterbots, mesmo nos sistemas mais recentes, baseados em
AIML. Nesse captulo, apresentamos, na seo 3.1, fundamentos da lingstica para o
tratamento de inteno e, na seo 3.2, uma viso geral de sistemas computacionais para
reconhecimento de inteno.
3.1 Abordagens lingusticas para tratamento de inteno
Nos ltimos anos, muitos filsofos da linguagem tm discutido a questo da
inteno, porm, suas reflexes apontam diferentes caminhos para o tratamento de
intenes. O prprio termo inteno impreciso, utilizado de maneira diferente por uma
srie de disciplinas, como a Filosofia da Linguagem [MORGADO 2002], a Lgica
[GRICE 1957], a Psicologia [BENDASSOLLI 2002], a Lingstica [LIMA 1983] e a
Semitica [MORRIS 1946].
No entanto, consenso que o processo de interpretao de mensagens se d em trs
nveis: (1) sinttico, que trata essencialmente de relaes estruturais da mensagem; (2)
semntico, que trata das relaes entre as mensagens e os objetos; e (3) pragmtico, que
trata das relaes entre as mensagens e os sujeitos, cabendo ento a pragmtica, o estudo
da inteno. A seguir, apresentamos diferentes vises da pragmtica, partindo da semitica
de Peirce (1867) at a pragmtica dialgica de Ducrot (1977).
3.1.1 Pragmtica e Semitica
A considerao dos aspectos pragmticos da linguagem remonta aos ensaios dos
filsofos pr-socrticos. Porm, foi Charles Peirce, filsofo americano, um dos iniciadores
da Semitica, o primeiro grande nome da pragmtica na era moderna. Segundo ele, um
signo, ou representamen, algo que, sob certo aspecto ou de algum modo, representa
alguma coisa para algum [PEIRCE 1867].
Para Peirce, o funcionamento do signo envolve aquilo que o signo representa e
aquele para quem o signo representa algo, uma relao tridica que coloca em cena o

59

usurio do signo. O processo de interpretao de uma mensagem envolve pelo menos trs
elementos:
(1) o significante, aquilo que atua como um signo;
(2) o objeto, aquilo a que o signo se refere; e
(3) o intrprete, o sujeito que interpreta o signo.
, no entanto, Charles Morris [MORRIS 1946] que prope um componente
pragmtico na teoria dos signos. Morris prope a tripartio da Semitica em sintaxe,
semntica e pragmtica, cabendo pragmtica investigar o modo como o signo expressa
seu interpretador (seus objetivos e intenes), enquanto a semntica investiga a maneira
como o signo se refere ao seu objeto e a sintaxe trata da estrutura formal do signo. Essa
estrutura d pragmtica a ao final de atribuio de significado, uma vez que o
interpretador quem atribui significado ao objeto. Segundo Peirce (1867), o objeto por si s
no tem inteno, cabe ao sujeito atribuir-lhe finalidade.
3.1.2 Pragmtica Conversacional (Mximas de Grice)
A pragmtica conversacional uma vertente da lingstica que considera o
interlocutor no processo de interpretao de mensagens. Dentro dessa vertente, poderamos
destacar as colocaes de Grice [GRICE 1975].
Para Grice, o significado de um enunciado tratado como uma consequncia da
inteno do enunciador e do reconhecimento desta inteno pelo ouvinte. Grice considera a
existncia de princpios gerais que regulam o modo pelo qual, numa conversao, o
ouvinte pode reconhecer a inteno do falante. Para ele, a conversao regida pelo
princpio da cooperao, que envolve quatro mximas [GRICE 1975]:
1. qualidade - no diga o que acredita ser falso. No diga aquilo para o que
voc no pode fornecer evidncia adequada;
2. quantidade - faa com que sua contribuio seja to informativa quanto
requerido. No faa sua contribuio mais informativa do que necessrio;

60

3. relao - seja relevante; e


4. modo - seja claro, evite obscuridade, evite ambigidade, seja breve e seja
ordenado.
Embora seja esta uma Pragmtica que considera os participantes da conversao
enquanto interlocutores, ela ainda considera a funo informativa (referncia) como
essencial na linguagem, chegando a tratar a mxima da qualidade como uma supermxima.
3.1.3 Pragmtica Ilocucional (Atos de Fala)
Na mesma linha da pragmtica de Grice, temos uma segunda direo, a Pragmtica
Ilocucional. Ressalta-se aqui a Teoria dos Atos de Fala, desenvolvida inicialmente por
Austin (1962), e depois por Searle (1976). A principal contribuio de Austin foi a idia de
que a linguagem deve ser tratada fundamentalmente como uma forma de ao, e no de
representao da realidade. O sentido de um enunciado no pode ser estabelecido apenas
atravs da anlise de seus elementos constituintes. Ao contrrio, so as condies de uso
do enunciado que determinam o seu significado.
Austin definiu os primeiros conceitos da Teoria dos Atos de Fala na segunda
metade do sculo XX. Seu trabalho uma conseqncia direta da Lingstica Analtica
promovida por Wittgenstein [WITTGENSTEIN 1953]. Partindo do pressuposto de que
Wittgenstein no havia sido exaustivo em sua anlise das funes lingusticas
desempenhadas pelos diversos tipos de expresses, Austin esforou-se na tentativa de
delimitar os modos em que as proposies realizam uma ao no mundo: um ato de fala
[AUSTIN 1962].
Neste sentido, Austin categorizou os atos de fala em dois tipos fundamentais:
1. Atos performativos - aqueles que, ao serem proferidos, realizam uma ao
(apostar, declarar, nomear, etc.); e,

61

2. Atos constatativos - declaraes verdadeiras ou falsas sobre um fato (por


exemplo, "a mesa marrom").
A Teoria dos Atos de Fala, lanada por Austin, foi, mais tarde, desenvolvida por
Searle. No livro "Os Atos de Fala" [SEARLE 1969], Searle foca seu trabalho na fora
ilcocucionria dos atos de fala. Searle estabeleceu trs dimenses de fora ilocucionria:
1. Propsito ilocucionrio - a parte da fora ilocucionria que est relacionada
ao objetivo do falante;
2. Direo de ajuste, que implica em dizer que algumas sentenas tm, como
parte de seu propsito ilocucionrio, fazer as palavras corresponderem ao
mundo, enquanto outras sentenas tm como parte de seu propsito fazer o
mundo corresponder s palavras; e
3. Condio de sinceridade, que vai estabelecer as condies de verdade
referentes ao contedo proposicional.
Searle prope ainda uma tipologia dos atos de fala:
1. Representativos, que comprometem o falante com a verdade expressa na
proposio (dizer, asseverar);
2. Diretivos, que tentam levar o interlocutor a fazer algo (pedir, mandar,
ordenar);
3. Comissivos, que comprometem o falante com uma ao futura (prometer,
ameaar);
4. Expressivos, que expressam um estado psicolgico (agradecer, congratular);
e
5. Declarativos, que mudam o estado institucional, e tendem a se apoiar em
instituies extralingsticas (excomungar, declarar guerra, condenar,
demitir).

62

Diversas crticas foram feitas proposta de Searle, principalmente quanto


tipologia, que no cobriria toda gama de atos de fala usados no dia a dia. Outra crtica diz
respeito separao entre o enunciado e o seu uso no contexto. De uma maneira geral, a
pragmtica ilocucional tambm uma pragmtica da relao falante-ouvinte, tal qual a de
Grice, porm no considera a funo informativa como a funo fundamental da
linguagem. Aqui, a linguagem vista como ao entre os interlocutores.
3.1.4 Pragmtica Dialgica
Uma outra vertente da pragmtica desenvolvida, entre outros, por Ducrot (1977), e
que teve como base os trabalhos de Austin, a que poderamos chamar de Pragmtica
Dialgica. Para Ducrot, o falante, ao produzir seu discurso, constitui-se como enunciador,
definindo o ouvinte como seu interlocutor. Ducrot ressalta ainda a concepo da linguagem
como ao e, de modo particular, a importncia da ao ilocucional, atravs da qual o
enunciador modifica sua relao com o enunciatrio.
Esta concepo caracteriza o ato ilocucional como um ato que exige uma relao de
pelo menos dois interlocutores. Diferente do que ocorre na proposta de Searle, aqui a ao
ilocucional uma ao na qual o falante estabelece uma relao com o ouvinte. Alm
disso, Ducrot no se prende tipologia dos atos de fala proposta por Searle (1976).
Apesar de representar um avano em relao proposta de Searle, a Pragmtica
Dialgica ainda mantm uma certa distncia entre o enunciado e o contexto ao
desconsiderar o universo scio-cultural em que se d o processo de significao.
3.1.5 Pragmtica e Teoria da Anlise da Conversao
Como visto no captulo 2, a pragmtica considerada pela Teoria da Anlise da
Conversao [MARCUSCHI 1986] no processo de anlise de dilogos, tanto na avaliao
dos organizadores globais quanto locais da conversao. No nvel global, os turnos so
classificados em diferentes sees, de acordo com a inteno embutida. Por exemplo, um
turno em que a inteno do interlocutor cumprimentar outros interlocutores considerado
como um turno tipicamente da seo de abertura, enquanto outro turno onde a inteno do
interlocutor despedir-se classificado como sendo da seo de fechamento.

63

No nvel local, a noo de inteno est presente na formao de pares adjacentes


proposta por [SCHEGLOFF 2002]. Segundo Schegloff, a inteno embutida na segunda
parte de um par adjacente pode ser prevista, e varia de acordo com o contexto sciocultural em que se d a conversao. Por exemplo, nos pases do norte europeu quando
algum faz um convite, espera que o ouvinte aceite de fato o convite. Em outros contextos,
como no Brasil, convida-se muitas vezes apenas para cumprir uma "obrigao social", mas
o que se espera que o ouvinte recuse o convite. Assim, diferente do que ocorre com as
demais abordagens apresentadas acima, a inteno vista aqui como uma ao contextual,
percebida em seqncias de turnos, e no em eventos isolados.
Essa concepo mais abrangente de inteno nos levou a adotar a Teoria da Anlise
da Conversao como alternativa lingustica s demais teorias no desenvolvimento de
nossa soluo (mais detalhes no captulo 4).
3.2 Sistemas para Reconhecimento de Inteno
O reconhecimento de inteno um dos problemas mais complexos do
processamento de linguagem natural, segundo Allen [ALLEN et. al 2001]. Porm,
informaes de intencionalidade so, segundo o prprio Allen, fundamentais para que um
sistema computacional para tratamento de dilogos possa interpretar corretamente as
sentenas de seus interlocutores e "compreender" de maneira ampla o dilogo. Assim,
mesmo diante das dificuldades, alguns pesquisadores buscam solues para o problema. A
seguir, apresentamos algumas solues computacionais desenvolvidas para o tratamento de
inteno.
Os primeiros sistemas desenvolvidos no final da dcada de 1970 e incio da dcada
de 1980, limitavam-se a tratar a inteno isolada por sentena (seo 3.2.1), sem levar em
conta a inteno que emerge do discurso como um todo. Nos anos seguintes, uma srie de
sistemas foram desenvolvidos para dar conta da inteno global ou emergente (seo
3.2.2), porm esses sistemas tratavam apenas da inteno principal do dilogo.
Recentemente, alguns sistemas tm demonstrado ser capazes de tratar de intenes
paralelas, que surgem em alguns pontos de um dilogo (3.2.3).

64

3.2.1 Intenes locais


Allen (1979 1980 e 1983), Cohen (1978 e 1979) e Perrault (1979) foram os
primeiros a trabalhar computacionalmente com reconhecimento de inteno, adotando
como base lingstica para seus trabalhos a Teoria dos Atos de Fala [SEARLE 1976].
Inicialmente, Perrault e Cohen concentraram-se em aplicar essa teoria para planejamento
de contedo na gerao de linguagem natural [COHEN 1978; COHEN & PERRAULT
1979], enquanto Allen concentrou-se em usar a teoria diretamente para reconhecimento de
intenes na interpretao de linguagem natural [ALLEN 1979; ALLEN & PERRAULT
1980; ALLEN 1983].
Neste sentido, Allen estudou registros de interaes em um banco de informaes
de uma estao de trem em Toronto, para tentar montar um sistema capaz de atuar em
dilogos semelhantes. No exemplo 3.1, temos um dilogo tpico dos registros avaliados por
Allen [ALLEN 1983].
Exemplo 3.1. Dilogo tpico dos registros analisados por Allen
USURIO: Quando o trem sai para Montreal?
BALCONISTA: 3- 15 no porto 7.
Note que, embora o usurio s tenha perguntado pela hora da partida do trem, o
balconista voluntariamente informou o porto de sada, o que indica que ele foi capaz de
reconhecer a inteno do usurio de embarcar no trem e complementou a resposta.
Allen desenvolveu um sistema que utilizava regras e heursticas para inferir a
inteno do usurio a partir do encadeamento de seus Atos de Fala. importante perceber
aqui uma distino clara entre Atos de Fala e inteno. Para Allen, a inteno definida a
partir dos Atos de Fala, e descrita em funo do contexto. No exemplo 3.1, o Ato de Fala
da sentena do usurio seria "perguntar", enquanto que a "inteno" seria "perguntar
quando sai um trem para um determinado local".
O sistema desenvolvido por Allen demonstrou ser capaz de, no apenas reconhecer
os Atos de Fala embutidos nas sentenas dos interlocutores, como tambm sua inteno.

65

Porm, s tratava da inteno local em cada sentena isolada, no sendo capaz de dar conta
da inteno global que emerge do dilogo, alm de trabalhar em domnios muito restritos
[ALLEN 1983].
3.2.2 Intenes emergentes
Sidner e Israel (1981) foram os primeiros a estender o trabalho de Allen para tratar
de reconhecimento de intenes que emergem do dilogo. Eles levavam em conta o
contexto do discurso para interpretar a inteno em cada nova sentena. Assim, a cada
sentena do interlocutor, o sistema atualizava suas crenas sobre as intenes do usurio
(desejos, metas e planos), at obter a meta global do usurio no dilogo. Este trabalho
baseava-se na pragmtica conversacional de Grice [GRICE 1957; GRICE 1969] e no
prprio sistema de Allen, descrito acima [ALLEN 1983].
Mais tarde, Carberry (1990) tambm estendeu o trabalho de Allen para tratar
reconhecimento de intenes em dilogos. Ela usou uma hierarquia de decomposio
baseada no modelo de Kautz [KAUTZ & ALLEN 1986] para construir uma rvore onde os
ns representam as diferentes metas locais em cada sentena de um dilogo. O sistema de
Carberry faz o reconhecimento de intenes em duas fases: a primeira fase tenta identificar
a meta imediata do usurio em sua sentena, enquanto uma segunda fase compara essa
meta local com a meta global relativa ao contexto do dilogo. Carberry percebeu em seus
testes que os interlocutores tendem a navegar por caminhos semelhantes nas rvores de
decomposio, o que permitia ao seu sistema prever padres de navegao, sendo capaz de
identificar, a partir de um certo nmero de sentenas, o objetivo final dos interlocutores.
No entanto, o modelo adotado por Carberry no dava conta de intenes paralelas
que surgem naturalmente em dilogos. Por exemplo, em dilogos entre tutores e
aprendizes, apesar da inteno global ser a compreenso de um determinado tpico, os
aprendizes costumam pedir esclarecimentos sobre pontos especficos no decorrer do
dilogo, fugindo do objetivo geral do dilogo. No exemplo 3.2, temos um trecho de um
dilogo em que um tutor est ensinando um aprendiz como projetar um website, e o
aprendiz interrompe a explicao do tutor para solicitar um esclarecimento sobre o tipo de
representao que ele pretende adotar na definio da arquitetura da informao.

66

Exemplo 3.2. Dilogo entre tutor e aprendiz


TUTOR: o prximo passo preparar o layout da arquitetura de informao do
website.
APRENDIZ: o layout em forma de rvore ?
TUTOR: isso, o layout em forma de rvore.
APRENDIZ: ok, e depois disso ?
3.2.3 Intenes paralelas
Litman e Allen [LITMAN 1985; LITMAN 1986; LITMAN & ALLEN 1987;
LITMAN & ALLEN 1990] estenderam o trabalho de Carberry, introduzindo uma nova
camada no sistema, capaz de dar conta das intenes paralelas que eram desconsideradas
no modelo de Carberry. Mais tarde, alguns trabalhos [LAMBERT & CARBERRY 1991;
LAMBERT 1993; RAMSHAW 1991; ARDISSONO et al. 1996] estenderam o modelo de
Litman e Allen, subdividindo a camada proposta por eles em duas ou trs sub-camadas
especficas:
1. Camada de correo, que trata de ajustes na inteno global provocados
pela ocorrncia de um determinado evento durante o dilogo;
2. Camada de introduo, que trata da mudana completa da inteno global a
partir do surgimento de uma nova proposta de objetivo durante o dilogo; e
3. Camada de mudana, que trata de modificaes em partes da inteno
global.
Apesar de representar um avano em relao aos demais modelos para o tratamento
de intenes, os sistemas baseados nesses modelos ainda so limitados a domnios muito
restritos [ALLEN et. al 2001], o que os torna inadequados a sistemas voltados a dilogos
abertos, como os chatterbots.
3.3 Concluses
Observando as diferentes abordagens lingusticas para a pragmtica, percebemos
que, em primeiro lugar preciso entender que a pragmtica pressupe o envolvimento do

67

sujeito em ao discursiva, e que atravs da interpretao de inteno que se d a ao


final de atribuio de significado, o que demonstra a relevncia da pragmtica no processo
de interpretao e gerao de sentenas em qualquer linguagem. Austin, dentre outros
(como Morris 1946), refora a importncia da pragmtica quando afirma que o sentido de
uma mensagem no pode ser estabelecido apenas atravs da anlise de seus elementos
constituintes [AUSTIN 1962].
No entanto, apesar de reconhecerem a importncia da pragmtica, as abordagens
apresentadas na seo 3.1 (da subseo 3.1.1 subseo 3.1.4) esbarram em um mesmo
problema, a separao entre a mensagem e o seu uso no contexto [GRICE 1972; SEARLE
1976; DUCROT 1977].
Mesmo diante deste limite, essas abordagens tm sido utilizadas como base para o
desenvolvimento dos sistemas computacionais de reconhecimento de inteno [ALLEN
1979; COHEN & PERRAULT 1979; CARBERRY 1990; LITMAN & ALLEN 1990;
LAMBERT 1993; ARDISSONO et al. 1996]. Porm, apesar do aparente avano, segundo
o prprio Allen, os sistemas de reconhecimento de inteno, mesmo diante da incorporao
de tcnicas estatsticas para aquisio de regras em grandes corpora [CHARNIAK &
GOLDMAN 1991], ainda esto longe de reconhecerem inteno independente de domnio.
Allen atribui esta dificuldade ao fato de esses sistemas esbarrarem nos limites das prprias
teorias subjacentes, que no tratam a inteno vinculada ao contexto scio-cultural em que
a mensagem est inserida [ALLEN et. al 2001].
No caso especfico dos chatterbots, como destacamos no captulo 2, no existem
sistemas que realizam tratamento de inteno, o que poderia minimizar uma srie de
problemas recorrentes nos dilogos realizados por esses sistemas (seo 2.4). Nesse
sentido, propomos em nosso trabalho o uso de informaes de intencionalidade em
chatterbots, no entanto, como alternativa s abordagens lingusticas tradicionais,
principalmente a Teoria dos Atos de Fala [SEARLE 1976], propomos a adoo de
princpios de Teoria da Anlise da Conversao [MARCUSCHI 1986] para o
desenvolvimento de um mecanismo para tratamento de inteno.

68

Como foi apresentado na subseo 3.1.5, a Teoria da Anlise da Conversao,


diferentemente das demais abordagens apresentadas na seo 3.1, trata tanto de aspectos
organizacionais quanto scio-culturais dos dilogos, sendo a inteno vista aqui como uma
ao contextual [SCHEGLOFF 1972]. No prximo captulo, apresentamos nossa proposta
para tratamento de inteno em chatterbots com base em Teoria da Anlise da
Conversao.

69

4. Tratamento de inteno em chatterbots

Neste captulo, apresentamos a soluo que


desenvolvemos no mbito desse trabalho.

70

Nosso trabalho tem como objetivo central tentar melhorar o desempenho de


chatterbots em dilogos com seres humanos. Nesse sentido, estamos trabalhando desde
2001 em pesquisas que envolvem o desenvolvimento e a anlise de desempenho de
chatterbots.
Como visto no captulo 2, investigamos o estado da arte para avaliar o desempenho
dos chatterbots tanto do ponto de vista computacional, onde comparamos os chatterbots
com outros sistemas de Processamento de Linguagem Natural (PLN), como do ponto de
vista conversacional, onde exploramos princpios de Teoria da Anlise da Conversao
(TAC) para verificar os limites funcionais destes sistemas.
Em nossas anlises, apontamos trs problemas recorrentes com os sistemas
existentes, todos no nvel do contexto: (1) os sistemas no levam em conta a estrutura
global de uma conversao (abertura, desenvolvimento e fechamento) [MARCUSCHI
1986] e aceitam que turnos tpicos da abertura, como por exemplo as saudaes, apaream
no desenvolvimento ou no fechamento; (2) apesar dos sistemas tentarem tratar turnos
repetidos dos usurios, eles o fazem apenas com base na estrutura sinttico-morfolgica
das sentenas. Por exemplo, se um usurio digita "oi" duas vezes seguidas, os sistemas
percebem a repetio, no entanto, se um usurio digitar "oi" e em seu prximo turno digitar
"ol", os sistemas no percebem a semelhana nos turnos e no consideram uma repetio;
e (3) muitas sentenas so tratadas como desconhecidas pelos sistemas, quando na verdade
so turnos adjacentes esperados do ponto de vista scio-cultural [SCHEGLOFF 1972] ao
turno anterior do chatterbot. Por exemplo, se um chatterbot pergunta a um usurio "quantas
horas o usurio costuma usar o seu computador por dia" e o usurio responde "oito", os
sistemas no reconhecem o "oito" e tratam a sentena como desconhecida, quebrando
quase sempre a fluncia do dilogo.
Para solucionar esses problemas, sugerimos o uso de informao de inteno nos
sistemas. Porm, como visto no captulo 3, os sistemas de tratamento de inteno ainda
apresentam uma srie de limitaes, dentre os quais destacamos a incapacidade de lidar
com o contexto scio-cultural no processo de reconhecimento de inteno, tanto para
interpretao de sentenas dos interlocutores [ALLEN 2001] quanto para a gerao de

71

sentenas [COHEN 1972]. Assim, adotamos princpios da Teoria da Anlise da


Conversao [MARCUSCHI 1986] como alternativa lingstica para o desenvolvimento
do nosso mecanismo de tratamento de inteno.
Esse captulo est dividido em quatro sees: na seo 4.1, apresentamos o
caminho que trilhamos durante o desenvolvimento da pesquisa; na seo 4.2, descrevemos
a soluo adotada; na seo 4.3, apresentamos a incorporao de informaes de
intencionalidade na base AIML padro; e, na seo 4.4 comparamos nossa soluo com os
sistemas das trs geraes de chatterbots descritas no captulo 2.
4.1 Desenvolvimento da pesquisa
O trabalho desenvolvido nos ltimos anos pode ser dividido em quatro fases
distintas: (1) fase da explorao, onde construmos chatterbots para conhecer as diferentes
tcnicas de implementao desses sistemas [NEVES et al. 2001]; (2) fase da pretenso,
onde propusemos uma nova verso de AIML, que chamamos de AIMLplus, orientada a
classes de inteno [NEVES et al. 2002]; (3) fase do isolamento, onde construmos uma
nova linguagem de marcao, XbotML, para o desenvolvimento de chatterbots [NEVES et
al. 2003]; e (4) fase do realismo, onde desenvolvemos um mecanismo de tratamento de
inteno para ser adicionado AIML. A seguir, apresentamos as trs primeiras fases de
nossa pesquisa, que antecedem a soluo final adotada, descrita na seo 4.2.
4.1.1 Fase da explorao
Durante essa fase, trabalhamos com trs chatterbots, sendo um deles baseado em
ELIZA [WEIZENBAUM 1966], um segundo, baseado em ULTRAHAL [GARNER 1996]
e um utilizando AIML, a partir da verso de A.L.I.C.E. vencedora do Prmio Loebner
2001 [WALLACE 2004]. Ainda nessa fase, implementamos um quarto chatterbot, uma
verso de AIML para lngua portuguesa, desenvolvido a partir de tradues diretas de
padres e moldes de rplicas da base AIML de A.L.I.C.E.. Foram acompanhados dilogos
efetuados entre o chatterbot em portugus baseado em AIML e 143 interlocutores, por um
perodo de 30 dias consecutivos. A partir de uma anlise nos registros dos dilogos,
percebemos que os turnos dos interlocutores poderiam ser agrupados de acordo com sua

72

"inteno" e identificamos 15 classes de inteno que apareciam com grande freqncia


nos dilogos (Quadro 4.1).
Quadro 4.1. Classes de "inteno"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

agradecer ao bot
saber como o bot est se sentindo
perguntar se o bot humano
contestar o bot
perguntar sobre algo
afirmar que compreende o bot
afirmar que est encantado com o bot
pedir para entrar em contato com o administrador do bot
perguntar sobre algum
perguntar onde o bot mora, trabalha ou nasceu
perguntar quem o programador do bot
perguntar como encerrar o dilogo com o bot
despedir-se do bot
xingar o bot
elogiar o bot

4.1.2 Fase da pretenso


A partir dos resultados da fase exploratria, optamos por desenvolver uma nova
verso de AIML orientada a classes de inteno. Nessa verso, as categorias AIML eram
distribudas em classes de inteno (Exemplo 4.1), inspiradas nos atos de fala da Teoria
dos Atos de Fala [SEARLE 1976]. Chamamos esta verso de AIML-Plus [NEVES et. al
2002].
Cada classe AIML-plus formada por um cabealho que indica a inteno daquela
classe atravs do elemento <intention> (Exemplo 4.1a) e por trs conjuntos de categorias:
categorias da forma, categorias de contedo e categoria desconhecida.
Exemplo 4.1a. Exemplo de cabealho de classe em AIMLplus
<class>
<intention>
perguntar informaes sobre algum
</intention>

73

Nas categorias da forma esto uma srie de padres com variaes de sentenas
que representam a mesma inteno e um molde de rplica que direciona o processador
AIML para as categorias de contedo atravs do elemento <srai> (Exemplo 4.1b).
Exemplo 4.1b. Exemplo de categorias da forma em AIMLplus
<category>
<type>variations</type>
<pattern>fale sobre .*</pattern>
<pattern>fale-me de .*</pattern>
<pattern>eu quero saber sobre .*</pattern>
<pattern>eu quero saber de .*</pattern>
<template><srai>defina <star/></srai></template>
</category>
Nas categorias do contedo esto informaes descritivas de fatos e objetos
relacionados classe de intenes (Exemplo 4.1c).
Exemplo 4.1c. Exemplo de categorias do contedo em AIMLplus
<category>
<type>content</type>
<pattern>defina Paulo Freire</pattern>
<template>
Paulo Freire foi um grande cientista da Educao no Brasil.
</template>
</category>
<category>
<type>content</type>
<pattern>defina Pablo Picasso</pattern>
<template>
Pablo Picasso foi um dos pioneiros do movimento cubista.
</template>
</category>
Na categoria para sentenas desconhecidas esto moldes de rplicas genricas para
sentenas que pertencem classe de intenes, mas no existem informaes de contedo
relacionados sentena do interlocutor da base (Exemplo 4.1d).

74

Exemplo 4.1d. Exemplo de categoria desconhecida em AIMLplus


<category>
<type>undefined</type>
<pattern>defina *</pattern>
<template>
Infelizmente eu no conheo <star/>.
</template>
</category>
</class>
No exemplo acima, se um interlocutor digita "Quem Paulo Freire?" ou "Voc
conhece Paulo Freire", o sistema monta a representao interna "defina Paulo Freire". Essa
representao processada novamente pelas categorias do tipo "content" pertencentes
quela classe de intenes e iria gerar como rplica, a sentena "Paulo Freire foi um grande
cientista da Educao no Brasil.".
Nessa verso do sistema, ampliamos o nmero de classes de inteno do quadro
4.1, de 15 para 47, a partir das anlises que realizamos em 3.000 dilogos registrados. No
entanto, apesar de termos aumentado o nmero de intenes, um ponto importante
observado nessa fase de nossa pesquisa foi a concentrao das intenes do interlocutores
em apenas algumas classes de inteno (Tabela 4.1).
Para testar o desempenho do sistema, foi disponibilizada uma verso em setembro
de 2001 na Internet.
Tabela 4.1. Classes de maior ocorrncia em AIMLplus
classe
perguntar pela definio de algo ou algum
perguntar a opinio do bot a respeito de algo
perguntar pelas preferncias do bot
responder de forma afirmativa
responder de forma negativa
xingar

ocorrncia
9,24%
4,89%
5,98%
9,78%
11,41%
4,35%

Esses dados, associados aos limites dos sistemas de reconhecimento de inteno


baseados na Teoria dos Atos de Fala apresentados no captulo 3 (seo 3.1), motivaramnos a investir em uma nova soluo para o desenvolvimento de um mecanismo para
tratamento de inteno em chatterbots.

75

4.1.3 Fase do isolamento


Nosso prximo passo foi a definio de uma linguagem de marcao, XbotML
(Linguagem de Marcao para Chatterbots), orientada a classes de inteno [NEVES et.al
2003]. XbotML foi concebida a partir de princpios de Teoria da Anlise da Conversao
[MARCUSCHI 1986], que, diferentemente do que ocorre com a Teoria dos Atos de Fala
[SEARLE 1976], trata da definio de inteno com base no contexto do dilogo e no em
sentenas isoladas.
XbotML estruturada em trs mdulos que separam os padres de entrada dos
moldes de rplica. O mdulo de entradas formado por marcadores, distribudos por
classes de inteno, que orientam a identificao da "inteno" do interlocutor a cada turno
digitado (Exemplo 4.2a).
Exemplo 4.2a. Trecho do mdulo de entradas XbotML
<?xml version="1.0" encoding="windows-1252"?>
<xbotml_input>
<class>
<intention>despedir-se</intention>
<marker>bye</marker>
<marker>tchau</marker>
<marker>vou nessa</marker>
</class>
</xbotml_input>
O mdulo de preferncias contm regras do tipo if-then que orientam a construo
de rplicas do chatterbot em funo da inteno do interlocutor (Exemplo 4.2b).

76

Exemplo 4.2b. Trecho do mdulo de preferncias XbotML


<?xml version="1.0" encoding="windows-1252"?>
<xbotml_preference>
<class>
<intention>despedir-se</intention>
<if>
<last_class>despedir-se</last_class>
<then>
<output_class>despedir-se</output_class>
</then>
<else>
<output_class>recusar despedida</output_class>
</else>
</if>
</class>
</xbotml_preference>
Finalmente, o mdulo de rplicas contm os moldes utilizados pelo chatterbot na
construo de seus turnos (Exemplo 4.2c).
Exemplo 4.2c. Classes do mdulo de rplicas XbotML
<?xml version="1.0" encoding="windows-1252"?>
<xbotml_output>
<class>
<intention>despedir-se</intention>
<template>tchau</template>
</class>
<class>
<intention>recusar despedida</intention>
<template>ainda cedo </template>
<template>que pressa , fique um pouco mais</template >
</class>
</xbotml_output>
Implementamos um chatterbot baseado em XbotML e o disponibilizamos na
Internet durante o ms de junho de 2003. Uma anlise quantitativa dos dilogos ocorridos
nos mostrou que havia 3.428 sentenas diferentes dos interlocutores, e que o sistema
conseguiu reconhecer corretamente a inteno de 72% dessas sentenas.

77

Porm, apesar do bom desempenho do mecanismo de tratamento de inteno, uma


anlise qualitativa dos dilogos com o chatterbot demonstrou que os resultados eram piores
do que os obtidos com sistemas baseados em AIML padro. Os dilogos com XbotML
eram menos fluentes, e o sistema cometia erros j superados pelos chatterbots baseados em
AIML, como por exemplo, tratamento de diticos e pronomes. Alm disso, a
incompatibilidade de XbotML com AIML obrigava-nos a desconsiderar grande parte dos
resultados obtidos pela comunidade de desenvolvimento de AIML, que conta hoje com
cerca de 500 desenvolvedores [ALICEBOT 2004] e mais de 50.000 chatterbots
implementados [AIMLESS & UMATANI 2004]. Assim, optamos por tentar uma nova
abordagem, desta vez acrescentando a noo de classes de inteno a AIML padro,
estendendo a linguagem ao invs de substitu-la. A seguir, apresentamos a soluo adotada.
4.2 AIML com inteno
Nessa fase de nossa pesquisa, que chamamos de fase do realismo, procuramos
ajustar o mecanismo de tratamento de inteno que utilizamos em XbotML e adapt-lo
para AIML, mantendo a compatibilidade do mecanismo com interpretadores AIML 1.01
[ELST 2004]. A soluo desenvolvida passa essencialmente por uma redefinio da base
AIML padro, que incorpora informaes de intencionalidade e regras que utilizam essas
informaes na interpretao e gerao de sentenas. A seguir, apresentamos o
funcionamento do sistema e os detalhes de implementao.
4.2.1 Aspectos funcionais do sistema
O processamento de sentenas nos chatterbots baseados em AIML com inteno
diferente do que ocorre nos sistemas que utilizam bases AIML padro (seo 2.1.3). Para
ilustrar o processamento de um chatterbot baseado em inteno, utilizamos um dilogo
curto com abertura, desenvolvimento e fechamento (Exemplo 4.3). Cometemos erros
propositadamente, os mesmos usados para verificar as limitaes dos chatterbots
analisados no captulo 2. O objetivo aqui foi verificar se os chatterbots baseados em
inteno so capazes de superar as limitaes encontradas nos outros sistemas testados.

78

Exemplo 4.3. Dilogo de ilustrao


Abertura
(1) INTERLOCUTOR: hi
(2) BOT: Hello there. How are you today?
(3) INTERLOCUTOR: Hello there!
(4) BOT: Do you expect a different answer by repeating yourself?
(5) INTERLOCUTOR: Ok, who are you?
(6) BOT: I am a chatterbot.
Desenvolvimento
(7) INTERLOCUTOR: what is a chatterbot?
(8) BOT: Chatterbots are computer systems. Do you believe that?
(9) INTERLOCUTOR: Perhaps I should consider it.
(10) BOT: When I was young I thought that.
(11) INTERLOCUTOR: hello there
(12) BOT: Excuse me. Didn't we greet ourselves already before?
Fechamento
(13) INTERLOCUTOR: goodbye
(14) BOT: Thanks for chatting, see you later.
Na abertura, o chatterbot classifica o turno (1) (do interlocutor) como sendo da
classe "saudar", e o turno (2) (do chatterbot) como sendo da classe "perguntar como est se
sentindo", ambos da seo de abertura de um dilogo. Note que, no segundo caso, havia
duas intenes embutidas no turno, porm foi dada preferncia inteno presente no
trecho final do turno. Segundo Schegloff, essa a prtica usual em dilogos entre seres
humanos: a inteno embutida na ltima parte do turno serve de base para a formao do
par adjacente [SCHEGLOFF 2002]. Em seguida, no turno (3), o interlocutor repete a
saudao com uma sentena diferente, porm o sistema percebe a similaridade de inteno
entre os turnos (1) e (3), questionando, no turno (4), o fato de o interlocutor estar sendo
repetitivo. No turno (5), o usurio d prosseguimento ao dilogo fazendo uma pergunta ao
chatterbot, que a responde diretamente no turno (6).
Inicia-se ento a seo de desenvolvimento. No turno (7), o interlocutor faz uma
pergunta ao chatterbot, que responde e faz uma nova pergunta, dando continuidade ao
dilogo. Apesar de no possuir um padro para a resposta do usurio no turno (9), o

79

sistema monta um turno consistente (10), tomando como base a sua prpria pergunta do
turno (8). Nesse ponto, o sistema utiliza o princpio da formao de pares adjacentes de
Schegloff (1972) e trata o turno desconhecido (9) como sendo uma resposta sua pergunta
(8). Em seguida, o interlocutor testa o sistema fazendo um novo cumprimento (11), e o
sistema critica o fato de aquele turno estar sendo realizado em um momento inadequado do
dilogo (12).
O fechamento simples. O interlocutor de despede (13) e o chatterbot agradece a
conversa e se despede com um convite para um novo encontro (14).
De uma maneira geral, o sistema conseguiu se sair bem no dilogo, mostrando ser
capaz de utilizar informaes de intencionalidade para tratar os trs "erros" cometidos pelo
usurio: no turno (3), quando o interlocutor repete a saudao com uma mudana de forma,
o sistema percebeu a similaridade de intenes e usou essa informao para formar sua
rplica; no turno (10) o sistema monta uma rplica para o turno (9), mesmo sem t-lo
reconhecido, supondo que se tratava de um complemento ao seu turno anterior (8); e no
turno (11), quando o interlocutor propositadamente usa um turno de abertura durante o
desenvolvimento, o sistema percebe o erro e critica esse comportamento em sua rplica no
turno (12).
4.2.2 Aspectos de implementao do sistema
O mecanismo que desenvolvemos foi todo implementado com elementos
compatveis com AIML 1.01. As informaes de intencionalidade so tratadas a partir do
elemento <set>, que utiliza trs variveis: session, user_intention e bot_intention (Exemplo
4.3a).
Exemplo 4.3a. Variveis de inteno
<set name="session" value="abertura"/>
<set name="user_intention" value="saudar"/>
<set name="bot_intention" value="perguntar como est se sentindo"/>
O valor de session indica a fase atual do dilogo, com base na proposta apresentada
por Marcuschi (1986). Essa varivel pode ser preenchida com trs valores fixos,

80

predefinidos (abertura, desenvolvimento e fechamento). A informao de session


utilizada para evitar que o sistema aceite situaes inusitadas do ponto de vista sciocultural, como um turno de abertura na seo de desenvolvimento ou durante a seo de
fechamento, assim como um turno de fechamento antes da seo de abertura
[MARCUSCHI 1986]. Esse controle se d atravs de regras escritas em AIML 1.01,
utilizando os elementos de controle de fluxo <condition> e <srai>. No exemplo 4.3b,
temos uma regra para questionar um turno de abertura do interlocutor durante o
desenvolvimento. Essa foi a regra utilizada pelo sistema para determinar que o turno (11)
do dilogo acima no deveria ser utilizado naquele ponto da conversa.
Exemplo 4.3b. Regra para controle do andamento do dilogo
<condition name="session" value="desenvolvimento">
<srai>questionar andamento</srai>
</condition>
Essa regra deve ser adicionada a todas as categorias da seo de abertura. Assim, o
elemento <condition> verifica o valor da varivel session, se o valor indicar que o dilogo
j est no desenvolvimento, o sistema direciona a rplica, atravs do elemento <srai>, para
uma categoria que questiona o andamento global do dilogo (Exemplo 4.3c).
Exemplo 4.3c. Categoria que questiona o andamento do dilogo
<category>
<pattern>questionar andamento</pattern>
<template>
Excuse me. Didn't we greet ourselves already before?
</template>
</category>
Os valores de <user_intention> e <bot_intention> so preenchidos com classes de
inteno. As classes so previamente registradas em um documento de especificao de
dados no formato DTD - Document Type Definition, para garantir consistncia no
preenchimento das variveis.

81

Nos quadros 4.2a, 4.2b e 4.2c temos as classes de inteno que foram identificadas
a partir dos experimentos realizados nas fases 1, 2 e 3 (seo 4.1) de nossa pesquisa. Esta
lista apenas uma sugesto, pois novas classes podem ser adicionadas ao documento de
especificao pelo administrador do chatterbot.
Quadro 4.2a. Classes de abertura
saudar, cumprimentar, apresentar-se, perguntar o nome do bot, perguntar como est se
sentindo, perguntar se o reconhece, dizer como est se sentindo

Quadro 4.2b. Classes de desenvolvimento


aceitar convite, aceitar desculpas, reclamar por ter sido xingado, agradecer, convidar,
desculpar-se, elogiar, pedir ajuda, pedir para mudar de assunto, pedir para o outro
desculpar-se, pedir para o outro perguntar algo, pedir que aguarde, pedir que conte
uma piada, pedir sugesto ou conselho, pedir um exemplo de algo, perguntar a opiniao
a respeito de algo, perguntar as horas, perguntar a idade do outro, perguntar como o
bot foi criado, perguntar onde o outro se encontra, perguntar pela definio de algo,
perguntar quem algum, perguntar pelas preferncias do outro, perguntar qual a
funo do outro, perguntar quem criou o bot, perguntar se fala algum outro idioma,
perguntar se lembra de um fato, perguntar se pratica esportes, perguntar se sonha,
perguntar se tem amigos, perguntar se tem desejos, perguntar sobre a familia,
perguntar se tem namorada ou namorado, perguntar se tem problemas, perguntar sobre
o conhecimento do bot, perguntar sobre o banco de dados do bot, recusar convite,
recusar desculpas, recusar despedida, responder no, responder sim, responder talvez,
xingar
Quadro 4.2c. Classes de fechamento
anunciar que vai encerrar o dilogo, despedir-se, aceitar despedidas, negar despedidas

A informao de <user_intention> utilizada para verificar repeties de


sentenas. No dilogo acima, quando o interlocutor digitou "Hi" no turno (1) e em seguida
"Hello" no turno (3), o sistema comparou as similaridades entre as sentenas em funo da
informao de inteno (Exemplo 4.3d) e no apenas em funo da similaridade entre a
forma das sentenas (como acontece com chatterbots baseados em AIML padro, que no
so capazes de perceber a semelhana entre dois turnos como "Hi" e "Hello").

82

Exemplo 4.3d. Regra para controle de repeties


<condition name="user_intention" value="saudar">
<srai>questionar repetio</srai>
</condition>
Essa regra deve ser adicionada a todas as categorias AIML que pertencem classe
de inteno "saudar". Assim, se o valor da varivel <user_intention> atual tambm for
"saudar", o sistema direciona sua rplica para uma categoria especial que questiona o fato
de o usurio estar sendo repetitivo (Exemplo 4.3e).
Exemplo 4.3e. Categoria que questiona repeties no dilogo
<category>
<pattern>questioner repetio</pattern>
<template>
Do you expect a different answer by repeating yourself?
</template>
</category>
A informao da varivel <bot_intention> utilizada para tentar inferir a inteno
do interlocutor nos turnos tratados como desconhecidos. Quando o chatterbot no consegue
reconhecer um turno do interlocutor, ele supe que determinados turnos so complementos
comuns aos seus turnos anteriores [SCHEGLOFF 1972]. Por exemplo, se um chatterbot
faz uma pergunta em um turno, esperado que o usurio responda a pergunta do bot, assim
como um cumprimento normalmente seguido por outro cumprimento, etc.
No caso do dilogo exemplo (4.3), socialmente esperado que, quando se pergunta
algo como no turno (8), o outro interlocutor responda dizendo se acredita ou no. Assim,
apesar de o sistema no possuir um padro para reconhecer o turno (9), ele montou uma
rplica no turno (10) que d prosseguimento ao dilogo.
Essas regras tambm foram escritas em AIML 1.01, utilizando o elemento
<condition>. No exemplo 4.3f temos um trecho da categoria de sentenas desconhecidas
onde utilizamos o elemento <condition> para vincular a rplica do chatterbot inteno do
seu ltimo turno.

83

Exemplo 4.3f. Regra para sentenas desconhecidas


<category>
<pattern>*</pattern>
<template>
<condition name="bot_intention" value="perguntar se o interlocutor acredita em
algo">
When I was young I thought that.
</condition>
</template>
</category>
4.3 Redefinio da base AIML padro
Esta seo apresenta o processo de redefinio da base AIML padro para
incorporar informaes de intencionalidade.
4.3.1 A base AIML padro
Para selecionar a base AIML padro, investigamos as bases AIML existentes a
partir do website da Fundao ALICEbot 9 . Atualmente, esto registradas trs bases AIML
em ingls, uma base em francs, uma em italiano, e uma base em alemo no website da
Fundao ALICEbot. Optamos por utilizar uma das bases em ingls, por dois motivos: (1)
a lngua mais utilizada em chatterbots AIML hoje, respondendo por cerca de 95% dos
50.000 bots disponveis na Internet [AIMLESS & UMATANI 2004]; e (2) por ser o
idioma oficial utilizado nos principais concursos internacionais que medem o desempenho
de chatterbots [LOEBNER 2004; COWARD 2004].
Temos trs bases oficiais em ingls: (1) original ALICE, a base utilizada por
Wallace ao vencer o Prmio Loebner em 2000; (2) Standard AIML, uma verso
modificada da primeira base, mantida atualmente por um grupo de desenvolvedores
vinculados Fundao ALICEbot. Desta base, foram retiradas todas as informaes
pessoais de A.L.I.C.E., para facilitar o seu reuso; e (3) Annotated A.L.I.C.E. AIML
(AAA), uma verso revisada de Standard AIML, formada por 45.729 categorias,

http://www.alicebot.org

84

distribudas em 50 arquivos. Desses arquivos, apenas 28 so considerados de uso geral


(Tabela 4.2), sendo os demais voltados para domnios especficos. Os 28 arquivos contm
43.977 categorias que correspondem a 96% do total de categorias da base. Por estar melhor
documentada que as duas outras bases, adotamos esta base para o nosso trabalho.
Tabela 4.2. Arquivos de uso geral da base AAA
Arquivo
Adverbs.aiml
Atomic.aiml
Biography.aiml
Bot.aiml
Botmaster.aiml
Client.aiml
Computers.aiml
Default.aiml
Geography.aiml
Inquiry.aiml
Interjection.aiml
IU.aiml
Knowledge.aiml
Parts.aiml
Personality.aiml
Pickup.aiml
Predicates.aiml
Psychology.aiml
Reduce.aiml
Reducer.aiml
Reductions.aiml
Salutations.aiml
Science.aiml
Spam.aiml
Stack.aiml
That.aiml
Xfind.aiml
update.aiml
Total

Categorias
1339
3380
559
3074
35
1210
138
4723
843
25
99
2
1452
8994
67
3
5
718
5215
790
9115
141
25
252
6
1354
5
408
43977

Os arquivos da base AAA so classificados ora por seu contedo semntico, ora
pela estrutura formal de suas categorias. Por exemplo, o arquivo "Science.aiml" contm
categorias relacionadas a conhecimento sobre cincia, enquanto o arquivo "That.aiml"
formado por categorias que utilizam o elemento <that>. De imediato, importante

85

perceber que essa classificao inconsistente, pois possvel termos uma categoria
dentro do arquivo "That.aiml" com informaes semnticas sobre cincia, assim como o
arquivo "Science.aiml" pode conter categorias que usam o elemento <that>.
4.3.2 A base AIML redefinida
Redistribumos as categorias da base AAA em 54 arquivos, classificados de acordo
com a sua inteno, sendo 7 arquivos com categorias com inteno tipicamente de
abertura, 43 arquivos com categorias com inteno que normalmente ocorrem no
desenvolvimento, e 4 arquivos com categorias com intenes naturais do fechamento.
Cada arquivo corresponde a uma das classes de inteno listadas nos quadros 4.2a, 4.2b e
4.2c.
Apesar de termos um nmero maior de arquivos do que na base AAA, essa nova
estrutura obedece um nico critrio de classificao das categorias, diferentemente do que
ocorre com a base original. Assim, trata-se de uma classificao consistente, e baseada na
caracterstica mais importante para o bom andamento de um dilogo a inteno. Observe
que, em dilogos face a face entre seres humanos, um gesto pode substituir um turno
"falado", e o dilogo prossegue naturalmente apenas pela identificao correta da inteno
desse gesto. Esta nova distribuio tambm facilita a atualizao e o reuso da base.
Em seguida, adicionamos as variveis de definio de inteno e regras de controle
apresentadas na seo 4.2 aos novos arquivos. As categorias do arquivo "saudar.aiml"
esto redefinidas, sendo divididas em dois grupos: (1) categoria principal, onde encontra-se
a categoria com as regras e os moldes de rplicas que podem ser utilizados para gerar o
turno do bot (Exemplo 4.4a); e (2) categorias com variaes formais (sintticomorfolgicas) de padres que correspondem a turnos de saudao (Exemplo 4.4b).

86

Exemplo 4.4a. Categoria principal do arquivo saudar.aiml da base reestruturada


<?xml version="1.0" encoding="ISO-8859-1"?>
<aiml>
<category>
<pattern>HELLO</pattern>
<template>
<!-- regras de controle do andamento global -->
<condition name="session" value="desenvolvimento">
Excuse me. Did we greet ourselves already before?
</condition>
<condition name="session" value="fechamento">
Excuse me. Did we greet ourselves already before?
</condition>
<!-- regra de controle de repeties -->
<condition name="user_intention" value="saudar">
Excuse me. Did we greet ourselves already before?
</condition>
<set name="user_intention" value="saudar"/>
<set name="bot_intention" value="perguntar como est se sentindo"/>
<set name="session" value="abertura"/>
Hello There! How are you?
</template>
</category>

Na

categoria

principal,

temos

um

padro

de

entrada

normalizado,

<pattern>HELLO</pattern>, e trs regras baseadas no elemento <condition>. As duas


primeiras regras criticam o interlocutor quando ele faz uma saudao nas sees de
desenvolvimento e fechamento, enquanto a terceira regra tenta evitar que o interlocutor
repita saudaes.

87

Exemplo 4.4b. Categorias com variaes formais do arquivo saudar.aiml da base


reestruturada
<category>
<pattern>HELLO*</pattern>
<template>
<srai>HELLO</srai>
</template>
</category>
HELLOW - HELOO - HELO - ALLO - ALOHA - ALOH - ANYBODY HOME GOOD DAY - GREETINGS - HI - HI - HIYA - HOI - HOWDIE - HOWDY HULLO - IS ANYONE THERE - KONNICHI WA - KONNICHIWA - MOOSHI
MOOSHI - OLA - BONJOUR - CIAO MEANS GOODBYE - CIAO - SHALOM GOOD EVENING - GOOD MORNING - GOOD AFFTERNOON
Nas categorias de variaes formais, o molde de rplica indica ao interpretador que
redirecione a busca na base de categorias atravs do elemento <srai>, cujo valor o padro
normalizado da categoria principal, <srai>HELLO</srai>.
De uma maneira geral, os demais arquivos da base seguem o mesmo padro do
exemplo 4.4, com exceo do arquivo "desconhecida.aiml" (Exemplo 4.5), que traz regras
para condicionar o turno do chatterbot a sentenas desconhecidas em funo da inteno
do seu turno anterior. O exemplo 4.5 traz um trecho desse arquivo, onde so tratadas
quatro classes de inteno. Em todas as regras, se o sistema no for capaz de reconhecer o
turno do interlocutor, ele verifica qual a ltima inteno do chatterbot a fim de inferir a
inteno do interlocutor e, com base nessa informao, montar seu turno. Na primeira
regra, se a inteno do turno anterior do chatterbot era "perguntar a idade do outro", o
sistema ir tratar o turno do interlocutor como sendo uma resposta sua pergunta, e ir
montar um turno que d continuidade ao dilogo (e.g. "Idades podem ser um problema
para algumas pessoas!").

88

Exemplo 4.5. Trecho da categoria para sentenas desconhecidas


<category>
<pattern>*</pattern>
<template>
<condition name="bot_intention" value="perguntar a idade do outro">
Idades podem ser um problema para algumas pessoas!
</condition>
<condition name="bot_intention" value="perguntar as horas">
J, mas eu pensei que ainda fosse mais cedo.
</condition>
<condition name="bot_intention" value="perguntar onde o outro se encontra">
Interessante, acho que no conheo.
</condition>
<condition name="bot_intention" value="perguntar se tem namorada ou namorado">
Voc gosta dessa pessoa?
</condition>
</template>
</category>
4.4 Concluses
Como descrevemos no captulo 2, os chatterbots apresentam uma srie de
limitaes do ponto de vista de PLN, principalmente no nvel do contexto, pois no
utilizam nenhum tipo de informao de inteno e nem do andamento global do dilogo.
Com o objetivo de melhorar o desempenho geral dos chatterbots, desenvolvemos
um mecanismo de tratamento de inteno para ser adicionado aos sistemas de terceira
gerao, baseado em AIML.
O mecanismo que desenvolvemos sobe o nvel de abstrao dos chatterbots e
possibilita aos sistemas tratar questes como o controle global do dilogo, alm de
melhorar o tratamento dado a sentenas repetidas e a sentenas consideradas
desconhecidas, problemas apontados na anlise que realizamos com sistemas das trs
geraes de chatterbots (Captulo 2).

89

Como resultado indireto do trabalho, as informaes de intencionalidade permitem


uma redefinio da estrutura de bases AIML, classificando as categorias a partir de
critrios bem definidos (seo 4.3), diferente do que ocorria com as bases existentes, que
distribuem as categorias em arquivos definidos com base em critrios imprecisos.
Conceitualmente, o mecanismo que desenvolvemos poderia ser incorporado a
chatterbots de outras geraes, como ELIZA ou JULIA. Porm, nos dois casos, seria
necessrio realizar modificaes no cdigo dos sistemas, diferentemente do que ocorre
com os sistemas baseados em AIML (como demonstrado na seo 4.2).
No prximo captulo, descrevemos os experimentos que realizamos para validar o
nosso mecanismo e algumas aplicaes que foram desenvolvidas a partir da soluo
adotada.

90

5 Experimentos e aplicaes

Neste

captulo,

apresentamos

os

experimentos que realizamos para testar


nossa

proposta

as

aplicaes

que

desenvolvemos a partir dos resultados


obtidos neste trabalho.

91

Neste captulo, apresentamos, experimentos que realizamos com interlocutores


reais para validar a nossa proposta apresentada no captulo 4 (seo 5.1). Nos
experimentos, comparamos o desempenho de um chatterbot baseado em AIML padro
com um chatterbot que utiliza informaes de intencionalidade. De uma maneira geral, o
chatterbot baseado em inteno conseguiu um desempenho melhor do que o sistema
baseado em AIML padro. Uma especialista 10 , convidada para avaliar o desempenho dos
dois sistemas, considerou que nos dilogos com o chatterbot baseado em inteno houve
menos quebras bruscas de fluncia nos dilogos do que no sistema baseado em AIML
padro.
Alm dos experimentos, apresentamos, na seo 5.2, trs aplicaes que
desenvolvemos para demonstrar diferentes possibilidade de uso desses sistemas. No final
do captulo, na seo 5.3, apresentamos algumas consideraes sobre os resultados dos
experimentos e das aplicaes.
5.1 Experimentos
Iniciamos nossos experimentos com um sistema aberto, onde usurios puderam
conversar livremente com dois chatterbots, sendo um deles com a base AIML padro e o
outro com a base AIML modificada com informaes de intencionalidade. Em seguida,
convidamos um especialista em conversao para avaliar o desempenho dos chatterbots, a
partir dos dilogos entre os usurios e os chatterbots, verificando a forma como o sistema
baseado em AIML com inteno utilizou essa informao durante os dilogos. A seguir,
apresentamos detalhes sobre esses experimentos.
5.1.1 Experimento aberto
Inicialmente, construmos um website e disponibilizamos dois chatterbots, um
baseado em AIML com inteno e outro em AIML padro. O website foi veiculado atravs
do portal do Virtus laboratrio de hipermdia da UFPE. No website, cada usurio

10

Isabelle Diniz, mestre em psicologia cognitiva pela UFPE, onde defendeu dissertao sobre as relaes de
significado em dilogos entre humanos e chatterbots [DINIZ 2004].

92

deveria: (1) conversar com o chatterbot em AIML padro; (2) responder a um questionrio
(Exemplo 5.1); (3) conversar com o chatterbot em AIML com inteno; e (4) responder o
questionrio novamente, agora avaliando o desempenho do segundo chatterbot.
O questionrio consistia em trs perguntas para identificao do usurio e quatro
perguntas do tipo mltipla escolha, para que os usurios pudessem expressar seu grau de
satisfao em relao aos dois chatterbots.
Exemplo 5.1. Formulrio para avaliao do experimento aberto
Identificao dos usurios
seu nome:
sua idade:
sua profisso:
Desempenho dos chatterbots
1. De uma maneira geral, voc considerou o dilogo:
(a) ruim
(b) regular
(c) bom
2. O andamento geral da conversa pode ser considerado:
(a) ruim
(b) regular
(c) bom
3. O conhecimento do bot sobre os temas conversados foi:
(a) ruim
(b) regular
(c) bom
4. A coerncia entre o que voc dizia e o que o bot respondia pode ser considerada:
(a) ruim
(b) regular
(c) boa
A pergunta (1) foi montada para verificar o grau de satisfao geral do usurio. A
questo (2), para verificar se a estrutura global do dilogo atendia s expectativas dos
usurios. A questo (3) avalia o grau de satisfao dos usurios com o conhcecimento dos
chatterbots sobre os tpicos presentes no dilogo, e a questo (4) foi elaborada para
verificar se os usurios ficaram satisfeitos com as rplicas utilizadas pelos bots durante os
dilogos.

93

O sistema ficou disponvel durante 10 dias e o questionrio foi respondido por 87


usurios. Os conceitos atribudos por cada usurio foram transformados em valores
numricos (ruim = 1, regular = 2 e bom = 3) e processados, gerando uma mdia de cada
chatterbot por questo (Tabela 5.1a). Na segunda coluna, temos as mdias obtidas pelo
chatterbot baseado em AIML padro, e na terceira coluna, as mdias obtidas pelo
chatterbot baseado em AIML com inteno.
Tabela 5.1a. Dados do experimento aberto
AIML
padro
1,55
1,93
1,68
1,82

Questo 1 - A qualidade do dilogo


Questo 2 - O andamento da conversa
Questo 3 - O conhecimento do bot
Questo 4 - A coerncia das rplicas

AIML
com inteno
1,77
2,12
1,51
2,42

Para verificar a confiabilidade do experimento, aplicamos um teste de hiptese


[MOORE & MCCABE 2002] com grau de confiabilidade de 95%. O teste comprova a
validade do experimento, conforme indica a tabela 5.1b. Os intervalos T1 T2 se mantm
totalmente positivos para as questes (1) (2) e (4), onde o chatterbot baseado em AIML
com inteno obteve mdias superiores ao chatterbot baseado em AIML padro, e o
intervalo T1 T2 negativo na questo (3), onde o chatterbot baseado em AIML padro
obteve uma mdia superior ao chatterbot baseado em AIML com inteno.
Tabela 5.1b. Teste de hiptese do experimento aberto
Mdia 1
1,55
1,93
1,68
1,82

Desvio 1
0,100
0,051
0,051
0,180

Mdia 2

Desvio 2
1,77
2,12
1,51
2,42

0,059
0,080
0,140
0,305

T1

T2
0,186
0,162
-0,211
0,497

0,254
0,218
-0,129
0,703

Assim, a partir dos dados do experimento, fica claro que avanamos em relao ao
estado da arte. Vale a pena ressaltar o melhor desempenho do chatterbot baseado em
AIML com inteno na questo (4), pois demonstra que o nosso chatterbot foi capaz de
formar pares adjacentes mais consistentes que o sistema baseado em AIML padro. A
inconsistncia na formao de pares adjacentes, decorrentes do no reconhecimento de

94

sentenas foi o problema mais recorrente nas anlises com chatterbots das trs geraes,
descritas no captulo 2. Porm, o resultado da questo (3) nos indica que ainda preciso
melhorar tambm outros aspectos dos sistemas, no apenas no nvel do contexto, mas
tambm nos nveis da forma e do significado.
5.1.2 Avaliao de desempenho por um especialista
Nessa segunda fase do experimento, solicitamos a uma especialista em conversao
com chatterbots, que avaliasse os registros dos dilogos realizados entre os usurios e os
dois chatterbots. Para a anlise, foi retirada uma amostra formada por quinze dilogos de
cada chatterbot. Os dilogos foram selecionados em funo do nmero total de pares
adjacentes ocorridos. Utilizamos os cinco dilogos mais curtos e os cinco mais longos de
cada chatterbot, alm de outros cinco, escolhidos aleatoriamente no arquivo de registro.
Nos dilogos com o chatterbot com informaes de intencionalidade foram registrados
1218 pares conversacionais, enquanto com o chatterbot baseado em AIML padro tivemos
1044 pares.
O procedimento de anlise consistiu em contabilizar o nmero de ocorrncias dos
trs problemas apresentados no captulo 2 (seo 2.4) e verificar quantas vezes os
chatterbots conseguiram superar esses problemas. A tabela 5.2 traz, para cada problema,
duas colunas para cada chatterbot. Na primeira coluna est o nmero de ocorrncias do
problema, e na segunda, o nmero de vezes em que o sistema no conseguiu tratar o
problema corretamente.
Tabela 5.2. Dados do registro de ocorrncias e erros

sentenas repetidas
andamento do dilogo
sentenas desconhecidas

AIML
padro
ocorrncias
erros
16
15,0%
11
10,0%
7
6,0%
7
6,0%
226
21,0%
209
20,0%

AIML
com inteno
ocorrncias
erros
9
7,0%
2
0,1%
11
9,0%
0
0,0%
248
20,0%
21
1,7%

De uma maneira geral, nos dilogos com o sistema baseado em inteno, esses trs
problemas foram tratados com mais eficincia do que nos dilogos com o chatterbot
baseado em AIML padro.

95

Nos dilogos com o sistema baseado em AIML padro, apareceram 16 tentativas de


repeties de sentenas com mudanas de forma (15% do total de sentenas), e o sistema
no foi capaz de perceber a repetio em 11 sentenas (10% do total de sentenas). J no
sistema com a base modificada, apareceram 9 tentativas de repetio (9% do total de
sentenas), e o sistema s no percebeu duas delas (0,1% do total de sentenas). No
exemplo 5.2, temos um trecho de dilogo em que o usurio repetiu seu turno, modificando
apenas a forma, e nosso sistema foi capaz de perceber a similaridade entre as sentenas
com base nas informaes de intencionalidade.
Exemplo 5.2. Repetio de sentenas com o AIML baseado em inteno
(1) INTERLOCUTOR: Quem foi seu programador ?
(2) BOT: Eu no fui programado, na verdade eu vou programando sozinho a minha
vida.
(3) INTERLOCUTOR: Quem escreveu o seu cdigo ?
(4) BOT: Voc no acha que est sendo um pouco insistente ?
Quanto ao andamento dos dilogos, tivemos poucas situaes em que nosso sistema
precisou questionar a sentena dos interlocutores. O sistema baseado em AIML padro
deixou passar todas as cinco sentenas em que o interlocutor inseriu um turno tipicamente
de abertura durante o desenvolvimento, e as duas vezes em que o interlocutor despediu-se
ainda na abertura. Por outro lado, o sistema com a base modificada identificou as oito
vezes em que um interlocutor inseriu uma sentena de abertura no desenvolvimento e
outras trs vezes em que o interlocutor despediu-se logo na abertura.
Finalmente, verificamos as sentenas que foram tratadas como desconhecidas nos
dois sistemas. O sistema baseado em AIML padro classificou 226 sentenas como sendo
desconhecidas e respondeu 209 delas a partir de moldes de rplicas para sentenas
totalmente desconhecidas. As outras sentenas foram respondidas com base no turno
anterior do chatterbot. No exemplo 5.3, temos um trecho onde o sistema classificou a
sentena do interlocutor como sendo totalmente desconhecida.

96

Exemplo 5.3. Sentenas desconhecidas em AIML padro


Trecho A
(1) BOT: Voc conhece algum lugar interessante ?
(2) INTERLOCUTOR: Porto seguro, na Bahia.
(3) BOT: Vamos falar sobre Inteligncia Artificial ?
No nosso sistema, tivemos um nmero total de sentenas maior do que nos dilogos
com o chatterbot em AIML padro. Assim, apesar de aparentemente termos tido mais
sentenas consideradas desconhecidas, 248 contra 226, percentualmente tivemos 20% de
sentenas desconhecidas contra 21% do sistema original. O nosso sistema utilizou
informaes de intencionalidade para responder a essas sentenas, tratando apenas 21
sentenas como sendo totalmente desconhecidas (1,7% do total de sentenas), um nmero
bem inferior s 209 sentenas do chatterbot em AIML padro (20% do total de sentenas).
No exemplo 5.4, temos um trecho de dilogo onde o sistema utilizou a informao de
inteno para montar a sua rplica. Neste caso, a inteno do turno do chatterbot era
"perguntar se o usurio gosta de esportes". Com base no princpio dos pares adjacentes, o
sistema pressupe que o usurio deveria responder sua pergunta com uma resposta
afirmativa ou negativa. Assim, foi construda uma rplica para respostas afirmativas e
outra para respostas negativas pergunta do chatterbot. No entanto, o usurio respondeu
com uma sentena que no se encaixa nos padres esperados. Isso levou o sistema a
retornar uma resposta genrica, porm, ainda considerando a inteno anterior do
chatterbot.
Exemplo 5.4. Sentenas desconhecidas em AIML com inteno
(1) BOT: Voc gosta de esportes ?
(2) INTERLOCUTOR: Eu assisto corridas de frmula 1.
(3) BOT: Tem gente que no gosta de esporte nenhum.
Concluindo a anlise Diniz afirma que o fato dos dilogos com o chatterbot em
AIML padro apresentarem, com freqncia, elocues que causam estranheza aos seus
interlocutores leva a quebras de tpico ou de fluxo na conversao que compromte a sua
coerncia. Muitas vezes, essas quebras de tpico e de fluxo so resgatadas pelos usurios a
partir da atribuio de propsito ao chatterbot, o que permite que essa elocuo ganhe

97

sentido. No entanto, esse resgate da quebra de tpico no capaz de manter a coerncia,


mas apenas de manter a conversao.
J nos dilogos com o chatterbot em AIML com informaes de intencionalidade,
foram detectadas menos elocues que causaram estranheza aos interlocutores, o que
diminui a quebra de fluncia no dilogo. Assim, de uma maneira geral, os dilogos com o
chatterbot baseado em informaes de intencionalidade mostraram-se melhor estruturados
do que os dilogos com o sistema original em AIML.
5.2 Aplicaes
Alm dos testes realizados para validar nossa soluo, no mbito desse trabalho,
desenvolvemos tambm uma srie de aplicaes baseadas em chatterbots, dentre as quais
destacamos: (1) um chatterbot que auxilia usurios a encontrar documentos em um banco
de teses e dissertaes; (2) um ambiente com dois chatterbots que conversam um com o
outro sobre temas diversos, agindo como atores autnomos; e, (3) um sistema para
aprendizagem de lnguas estrangeiras. A seguir, apresentamos as trs aplicaes.
5.2.1 Liberbot
O Liberbot um chatterbot voltado para auxiliar usurios a localizar documentos
de seu interesse no Liber - Banco de teses e dissertaes da Universidade Federal de
Pernambuco 11 . O Liber conta com mais de 1.200 documentos, distribudos em 52
programas de ps-graduao da UFPE. A idia central do sistema permitir que usurios
possam acessar qualquer documento presente no banco e copi-lo para o seu computador
pessoal. Todos os documentos esto registrados em formato PDF 12 (portable document
format) e classificados a partir de meta-informaes registradas em um banco de dados
MySQL 13 .

11

http://www.liber.ufpe.br
http://www.adobe.com
13
http://www.mysql.com
12

98

O usurio, ao acessar o sistema, pode procurar o documento de seu interesse


navegando por um menu com a lista dos programas de ps-graduao ou utilizando o
sistema de busca. A pesquisa atravs do sistema de busca pode ser realizada pelo nome do
autor, pelo nome do orientador ou por palavras-chaves presentes nos resumos dos
documentos.
A aplicao que desenvolvemos aparece como uma alternativa de pesquisa, e no
como um substituto s opes j existentes. Nesse sentido, implementamos um chatterbot
que conversa com o usurio para ajud-lo a encontrar documentos que atendam s suas
expectativas. Allen classifica chatterbot dessa natureza como um tipo especfico de sistema
de conversao, onde os interlocutores cooperam uns com os outros em funo de
atingirem um objetivo especfico comum [ALLEN 2001].
Para

implementar

chatterbot,

foram

necessrias

quatro

etapas

de

desenvolvimento:
(1) planejamento de um dilogo ideal, quando definimos um dilogo modelo
(Exemplo 5.5) que serviu de ponto de partida para a construo da base AIML;
(2) seleo das intenes, quando definimos as classes de inteno necessrias para
que o chatterbot pudesse realizar dilogos similares ao dilogo modelo;
(3) produo da base AIML inicial, quando construmos uma base AIML com as
classes de inteno definidas na etapa anterior; e
(4) ampliao da base AIML, quando acompanhamos os dilogos do chatterbot
com usurios para acrescentar novas categorias AIML base de classes e/ou para
acrescentar novas classes que surgiram durante os dilogos.

99

Exemplo 5.5. Dilogo modelo do Liberbot


(1) BOT: Oi, meu nome Liberbot, qual o seu nome ?
(2) BOT: Minha funo ajud-lo a encontrar documentos de seu interesse no banco
de teses. Voc est procurando por algum documento especfico ?
(3a) BOT: Qual o ttulo do documento que voc est procurando ? <query 1>
(3b) BOT: Voc est procurando por documentos de algum autor ou orientador
especfico ?
(4a) BOT: Qual o nome da pessoa de seu interesse ? <query 2>
(4b) BOT: Voc quer que eu procure documentos a partir de palavras-chave ?
(5a) BOT: Que palavras-chave voc acha que esto presentes nos documentos de seu
interesse ? <query 3>
(5b) BOT: Voc quer que eu liste documentos de um determinado programa de psgraduao ?
(6a) BOT: Qual o programa de ps-graduao de seu interesse ? <query 4>
(7) BOT: Voc conseguiu encontrar os documentos de seu interesse ?
(8a) BOT: Que bom, volte outras vezes.
(8b) BOT: Voc quer tentar um outro programa de ps-graduao ?
No exemplo 5.5, temos o dilogo modelo desenvolvido para servir de guia na
definio da base AIML dessa aplicao. O dilogo est estruturado em trs fases, com
uma abertura curta, onde o chatterbot se apresenta e pede ao usurio que se apresente (1).
Ainda na abertura, o chatterbot informa qual a sua funo, e j pergunta se o usurio est
interessado em algum documento especfico (2). Caso o usurio responda de forma
afirmativa, o chatterbot pergunta pelo nome do documento e envia uma consulta ao banco
de dados para verificar se o documento est cadastrado (3a). Se o usurio responder de
forma negativa pergunta (2), o chatterbot tenta obter mais informaes a respeito do(s)
documento(s) de interesse do usurio (3b). Se o usurio responder de forma afirmativa
pergunta (3b), o sistema pergunta o nome do autor ou do orientador, para gerar uma
consulta ao banco de dados (4a). Se a resposta pergunta (3b) for negativa, o sistema d
continuidade ao dilogo, perguntando se o usurio tem interesse em algum tema especfico,
descrito atravs de palavras-chave (4b).
Essa estrutura se repete at o final do dilogo modelo, quando o sistema pergunta
ao usurio se ele ficou satisfeito com o resultado da pesquisa e oferece reiniciar o processo,
caso o usurio ainda no tenha encontrado o documento de seu interesse (8b).

100

Como as classes identificadas no quadro 4.2 no trazem nenhum conhecimento


sobre domnios especficos, a no ser sobre o prprio chatterbot, optamos por incluir todas
essas classes no Liberbot. Apenas o contedo de algumas classes especficas foram
modificadas para tratar o dilogo modelo. Com isso, o chatterbot pode manter uma
conversao mais prxima de um dilogo natural com os interlocutores, no ficando
excessivamente restrito ao dilogo modelo. As principais modificaes foram nas classes
de respostas afirmativas e negativas, onde precisamos tratar essas repostas para dar
continuidade ao dilogo modelo, e na classe de sentenas desconhecidas, onde preciso
levar em conta as perguntas realizadas pelo chatterbot no seu ltimo turno para montar as
consultas ao banco de dados.
Atualmente, o Liberbot est sendo utilizado por um grupo restrito de usurios, para
que a base possa ser ajustada a partir de dilogos reais, antes de ser disponibilizado para o
pblico em geral. Os primeiros experimentos tm demonstrado resultados satisfatrios,
porm, ser preciso ampliar de maneira controlada o nmero de usurios at conseguirmos
uma base de categorias consolidada.
5.2.2 Animotrnicos
Outra aplicao que est em desenvolvimento no mbito deste trabalho um
ambiente onde chatterbots conversam uns com os outros, simulando atores humanos. Essa
aplicao baseada no modelo de atores sintticos proposto por Thalmann [THALMANN
et. al 1999], segundo o qual esses atores devem ser representaes autnomas e
adaptativas, capazes de agir com liberdade e comunicar-se com outros atores e com o
prprio ambiente (fsico ou virtual).
Esses atores foram classificados por Thalmann nas seguintes categorias: (1)
avatares, atores que representam um usurio em um ambiente virtual; (2) atores guiados,
dirigidos pelo usurio atravs de ordens; (3) atores autnomos, capazes de ter
comportamento prprio, o que requer a capacidade de interagirem com o ambiente; e (4)
atores interativos, capazes de comunicar-se com outros atores e/ou usurios humanos.

101

Atores do tipo (4) vm sendo utilizados como personagens em jogos de computador


ou em ambientes de entretenimento na Internet. Porm, os dilogos entre esses atores e
entre eles e os avatares (representaes dos jogadores humanos no ambiente do jogo) so
extremamente limitados, quase sempre pr-fixados, o que os torna repetitivos. Por
exemplo, no website da Brahma 14 , temos uma ilha virtual onde avatares e atores interativos
podem conversar uns com os outros. Porm, os dilogos realizados pelos atores interativos,
tanto entre eles, quanto com os avatares, so limitados a poucas sentenas prdeterminadas.
Nossa aplicao tem como principal diferencial a capacidade dos atores interativos
de realizarem dilogos complexos, tanto entre eles, como com usurios humanos. Um
primeira verso est disponvel no website do Virtus 15 , e traz dois chatterbots que
conversam um com o outro sobre temas variados. A idia central dessa aplicao simular
um novo modelo de teatro de fantoches, onde os dilogos no so previamente definidos,
ou seja, os atores podem improvisar durante a apresentao.
As bases AIML dos chatterbots foram definidas em trs blocos: (1) bloco de
abertura, onde os dois sistemas possuem classes de saudao, apresentao e
cumprimentos; (2) bloco de fechamento, onde os sistemas possuem classes de anncios de
despedidas e de despedidas propriamente ditas; e (3) bloco de desenvolvimento, onde cada
chatterbot possui uma srie de classes para tratar os diferentes domnios previstos para os
dilogos.
A partir dessa arquitetura de distribuio das classes de inteno, um dos
chatterbots inicia o dilogo com uma categoria de abertura e o dilogo segue de forma
autnoma. Para cada sentena dita por um chatterbot, o outro possui uma srie de moldes
de rplicas que so sorteados, dando a sensao que o dilogo sempre diferente. No
exemplo 5.6, temos dois dilogos realizados pelos chatterbots, um sobre o tempo e outro

14
15

http://www.brahma.com.br
http://www.virtus.ufpe.br/animotronicos

102

onde o tema central a guerra. A escolha desses tpicos aleatria, assim como a escolha
de cada turno tambm pode variar.
Exemplo 5.6. Dilogos entre os animotrnicos
# dilogo 1 sobre o tempo
bot_red: Oi
bot_blue: Oi, tudo bem?
bot_red: Ol, como voc se chama?
bot_blue: Eu sou o Blue, Qual o seu nome?
bot_red: Eu me chamo Red, muito prazer.
bot_blue: Prazer, Red, tudo bom?
bot_red: Eu estou muito bem, como voc est?
bot_blue: Caminhando, como todo mundo.
bot_red: Voc poderia ser mais claro?
bot_blue: Eu vivo minha vida como todas as outras pessoas.
bot_red: Ento a vida das pessoas apenas o fluxo do tempo?
bot_blue: No, no apenas isso, a vida humana mais que o passar do tempo, mas o
tempo fator muito importante.
bot_red: O tempo determina muito da sua vida?
bot_blue: Certamente, o tempo dita fases em nossa vida.
bot_red: Ento o tempo algo ruim?
# dilogo 2 sobre a guerra
bot_red: Oi
bot_blue: E a, como vai?
bot_red: Oi, eu sou o Red, e voc?
bot_blue: Eu sou o Blue, e voc?
bot_red: Eu me chamo Red, muito prazer.
bot_blue: Fico muito feliz de conhec-lo, Red, tudo bem com voc?
bot_red: Comigo vai tudo bem, e com voc?
bot_blue: Vou bem, levando a vida.
bot_red: Como assim?
bot_blue: Assim como as outras pessoas eu sigo meus dias.
bot_red: Se todas as pessoas seguem seus dias porque existem tantas guerras entre as
pessoas?
bot_blue: Porque seguir seus dias quer dizer levar adiante seu plano para a sua vida.
bot_red: Como isso pode gerar tantas guerras?
Nesta primeira verso, as expresses dos personagens ainda so muito
simplificadas, mas temos como plano para trabalhos futuros desenvolver mecanismos que
integrem as expresses e aes de cada personagem com os seus turnos a partir da
informao de inteno associada a cada turno.

103

5.2.3 Virtusbot
Ainda dentro deste trabalho, desenvolvemos um ambiente onde estudantes de
lnguas estrangeiras podem conversar com chatterbots em diferentes idiomas. O sistema foi
desenvolvido a partir de bases AIML disponveis na Internet que foram modificadas para
incorporar informaes de intencionalidade. Uma verso inicial do sistema est disponvel
no website do Virtus 16 e tem sido utilizada por cerca de 1.400 usurios por ms.
Na tela de abertura do website, o usurio escolhe o idioma de sua preferncia e
inicia o dilogo com o chatterbot. A idia central do sistema prover ao estudante a
possibilidade de praticar o uso do idioma que est estudando a qualquer hora e de qualquer
lugar, sem a necessidade de contar com um interlocutor humano. Essa aplicao foi
inscrita em um concurso nacional de software para Educao, promovido pelo portal
Universia 17 do Banco Santander, onde obteve a 5 colocao, de um total de 226 sistemas
concorrentes.
A verso atual do sistema conta com chatterbots em quatro idiomas (portugus,
ingls, francs e alemo) e um quinto chatterbot est sendo implementado (espanhol).
Como prosseguimento a essa aplicao, pretendemos integrar as bases a partir das
informaes de intencionalidade para montar um sistema capaz de atuar como intrprete
em dilogos entre usurios que falam idiomas diferentes. Essa uma proposta ainda
incipiente, no entanto, realizamos alguns pequenos ensaios que demonstram que o sistema
vivel.
5.3 Concluses
Como prova de conceito de nossa soluo, adicionamos o mecanismo de tratamento
de inteno a uma base AIML padro e testamos o desempenho do chatterbot com a nova
base, comparando-o com um chatterbot com a mesma base AIML, sem as informaes de
intencionalidade.

16
17

http://www.virtus.ufpe.br/virtusbot
http://www.universiabrasil.net.br

104

Apesar da base AIML com inteno ainda apresentar limitaes, os resultados dos
experimentos demonstraram que o uso de informaes de intencionalidade pode melhorar
qualitativamente os dilogos com chatterbots. Comparando o desempenho dos sistemas,
fica claro que o sistema com inteno apresenta um avano em relao aos demais sistemas
analisados. Por exemplo, no nvel global o sistema capaz de controlar o andamento do
dilogo, ao invs de atribuir essa responsabilidade exclusivamente ao usurio, como
acontecia com os sistemas analisados. J no nvel local, o sistema consegue formar pares
adjacentes mais consistentes, principalmente em situaes onde a sentena do usurio no
reconhecida, situao que ocorre com bastante freqncia nos dilogos. Porm, preciso
melhorar outros aspectos dos sistemas para que possamos obter resultados estatisticamente
mais expressivos que os obtidos com os chatterbots baseados em AIML padro.
Um outro aspecto a ser considerado no nvel local a possibilidade de se manter
uma maior consistncia na definio de preferncias, uma vez que as rplicas do chatterbot
so montadas em funo das informaes de intencionalidade. Apesar dessa possibilidade
no ter sido explorada no mbito deste trabalho, a soluo adotada serviu de base para um
outro trabalho mais focado em personalidade de chatterbots, realizado por Galvo como
tema de sua dissertao de mestrado em Cincia da Computao [GALVO et. al 2004].
Alm dos testes realizados, desenvolvemos tambm aplicaes baseadas em
chatterbots que utilizam informaes de intencionalidade. Durante o desenvolvimento das
aplicaes, ficou claro que o fato de a base estar estruturada de acordo com a inteno
facilita o trabalho de planejamento de novos chatterbots, pois simplifica o reuso.

105

6. Concluses

Neste captulo, enfatizamos as principais


contribuies deste trabalho, alm de
apontar alguns trabalhos futuros.

106

Neste captulo, apresentamos os fatores relevantes e originais deste trabalho,


procurando enfatizar no apenas os aspectos positivos, mas tambm os problemas que
ainda persistem. Dividimos o captulo em quatro sees: na seo 6.1 descrevemos as
principais contribuies, na seo 6.2 apresentamos nossas crticas, na seo 6.3
apresentamos sugestes de novos projetos que pretendemos desenvolver a partir das bases
discutidas e defendidas neste projeto, e na seo 6.4 esto algumas consideraes finais.
6.1 Contribuies
Os resultados obtidos neste trabalho demonstram claramente que houve uma
contribuio para o avano do estado da arte atual, corrigindo de forma consistente
problemas de grande influncia na qualidade final dos dilogos com chatterbots. Alguns
dos fatores que contribuem para o balano positivo deste projeto de pesquisa so:
(1) do ponto de vista da Lingstica Computacional, a originialidade do mecanismo
desenvolvido est na utilizao de conceitos da Teoria da Anlise da Conversao
[MARCUSCHI 1986], que traz o componente scio-cultural para tratamento de inteno
em contraponto Teoria dos Atos de Fala [SEARLE 1976], que tem sido largamente
utilizada como base conceitual clssica para o tratamento de inteno [ALLEN et. al
2001];
(2) do ponto de vista do Processamento de Linguagem Natural, o trabalho traz um
componente de originalidade tcnica ao implementar tratamento de inteno utilizando
representao de conhecimento por extenso, modelo comum aos chatterbots [WALLACE
2004], porm pouco explorado em outros sistemas de PLN, que costumam utilizar regras e
heursticas para tratar inteno [ALLEN 1983, SIDNER & ISRAEL 1981 e LITMAN &
ALLEN 1990];
(3) do ponto de vista da Engenharia de Software, a base AIML redefinida, por
utilizar um nico critrio de classificao de categorias a inteno, mais consistente do
que as bases existentes [WALLACE 2004e], favorecendo o reuso de categorias em
aplicaes com fins especficos, como visto no captulo 5 (seo 5.2); e

107

(4) do ponto de vista da aplicao propriamente dita, o mecanismo que


desenvolvemos corrige problemas recorrentes em dilogos com chatterbots, melhorando o
resultado final dos dilogos, como visto no captulo 5 (seo 5.1).
6.2 Crticas
O fato de termos adotado AIML como base para implementar o mecanismo que
desenvolvemos acompanha o estado da arte em chatterbots, garantindo um padro mnimo
de qualidade. No entanto, herdamos tambm os limites dos sistemas baseados em AIML,
dentre os quais destacamos:
(1) no nvel sinttico, todo o trabalho de definio da base continua sendo realizado
por um administrador humano, sem nenhum mecanismo de aquisio automatizada de
categorias. Esse problema tem sido tratado na comunidade de desenvolvedores de AIML
atravs do projeto GrokItBot [GOUGH 2003];
(2) o tratamento semntico ainda limitado a um agrupamento de categorias em
tpicos, sem formalizao do conhecimento de domnio. Esse problema tem sido tratado na
comunidade de desenvolvedores AIML atravs do projeto OPENCIN [COURSEY 2004]; e
(3) no nvel pragmtico, apesar do mecanismo que desenvolvemos incorporar
informaes de intencionalidade aos sistemas, a incluso de novas categorias nas classes
de inteno ainda totalmente realizada por um administrador humano, assim como a
definio de novas classes de inteno. Acreditamos na viabilidade de um mecanismo
capaz de incluir novas categorias nas classes de inteno atravs do uso de tcnicas para
aquisio supervisionada de conhecimento, semelhantes as utilizadas em Raciocnio
Baseado em Casos [LEAKE & SOORIAMURTHI 2003]. No entanto, a definio
automatizada de novas classes de inteno ainda nos parece um problema de difcil soluo
para os prximos anos.
6.3 Trabalhos futuros
Apesar do bom desempenho do chatterbot implementado neste trabalho, uma srie
de questes ainda precisam ser solucionadas at que tenhamos sistemas eficientes o

108

suficiente para substituir interlocutores humanos em dilogos. Em nosso grupo de


pesquisa, j foram desenvolvidos trs outros projetos dando continuidade a este trabalho:
(1) um projeto voltado para a incluso de traos de personalidade em chatterbots
[GALVO et al. 2003]; (2) um sistema para aquisio automtica de perfis de usurios
durante dilogos com chatterbots [MOURA 2003]; e (3) um sistema para anlises de
dilogos colaborativos on-line [VIEIRA et. al 2004].
Vislumbramos ainda, uma srie de novos trabalhos a serem desenvolvidos, dentre
os quais destacamos:
(1) a integrao com outras inovaes propostas para AIML, como OpenCin
[COURSEY 2004] e GrokItBot [GOUGH 2003];
(2) o desenvolvimento de um mecanismo para aquisio automatizada de novas
categorias para serem includas nas classes de inteno;
(3) o aprimoramento das aplicaes que j desenvolvemos; e
(4) o desenvolvimento de novas aplicaes. Por exemplo, um sistema baseado em
chatterbots que atuem como intrpretes em ambientes de conversao multilinge;
chatterbots como assistentes para celulares; e, chatterbots como assistentes de
recomendao on-line, dentre outras.
6.4 Consideraes finais
O carter multidisciplinar do objeto deste trabalho traz uma srie de vantagens e
desvantagens, do ponto de vista acadmico. Objetos que requerem mltiplos olhares, como
o caso dos chatterbots, quase sempre acabam sendo tratados de maneira superficial por
pesquisadores das diversas fronteiras de conhecimento que o tangenciam. A falta de uma
invaso fronteiria responsvel, muitas vezes, por uma espcie de "cegueira acadmica".
comum, em situaes como essa, que determinados problemas paream sem soluo,
quando na verdade um pequeno passo em direo da fronteira pouco explorada pode trazer
tona solues simples e eficazes.

109

Por princpio, a Informtica visa solucionar, ou pelo menos minimizar, problemas


de terceiros. Dessa forma, a Cincia da Computao precisa estar sempre aberta s novas
fronteiras. Essa atitude, que transcende as atitudes acadmicas egocntricas, tende a ser
algumas vezes mal interpretada, inclusive dentro do prprio ecossistema da Computao.
Trabalhos como este que apresentamos aqui acabam muitas vezes ignorados, ora por sua
superficialidade nas transgresses de fronteiras, ora por sua tecnicidade, que afasta a
curiosidade de "leigos", invasores de outras reas do conhecimento.
Tivemos aqui as preocupaes de, por um lado invadir as fronteiras da Lngustica,
buscando uma nova teoria para dar base ao nosso trabalho, bem como de construir uma
soluo computacionalmente vivel, respeitando os requisitos do PLN e da Engenharia de
Software. Acreditamos serem essas as maiores contribuies deste trabalho.

110

Referncias Bibliogrficas

Aqui, apresentamos a lista de documentos


consultados durante o desenvolvimento de
nossa pesquisa.

111

[AIMLESS & UMATANI 2004] Aimless, D & Umatani, S. A Tutorial for adding
knowledge to your robot.
Disponvel em: http://www.pandorabots.com/botmaster/en/tutorial?ch=1
Acesso em 31 de dezembro de 2004.

[ALLEN & PERRAULT 1980] Allen, J. F. & Perrault, C. R. Analyzing Intention in


Utterances. Artificial Intelligence, 15(3):143 - 178, 1980.

[ALLEN 1979] Allen, J. F. A Plan-Based Approach to Speech Act Recognition, Technical


Report 131/79, University of Toronto, 1979, PhD thesis.

[ALLEN 1983] Allen, J. F. Recognizing Intentions from Natural Language Utterances, In


M. Brady and R. C. Berwick, editors, Computational Models of Discourse, pp. 107 - 166.
MIT Press, 1983.

[ALLEN 1995] Allen, J. F. Natural Language Understanding. The Benjamin/Cummings


Publishing Company, Inc, New York, 1995.

[ALLEN 2001 et. al] Allen, J. F.; Ferguson, G. & Stent, A. An Architecture for More
Realistic Conversational Systems, In Proceedings of Intelligent User Interfaces 2001 (IUI01), pp. 1 - 8, Santa Fe, NM, Jan/2001.

[ARDISSONO et al. 1996] Ardissono, L. Boella, G. & Lesmo, L. Recognition of ProblemSolving Plans in Dialogue Interpretation, In Proceedings of the Fifth International
Conference on User Modeling, pp. 195-197, Kailua-Kona, Hawaii, Jan/1996.

[AUSTIN 1962] Austin, J. L. How to Do Things with Words. Harvard University Press,
Cambridge, Massachusetts, 1962.

112

[BENDASSOLLI 2002] Bendassoli, P. F. A psicologia revisitada pela pragmtica:


subjetividade, conhecimento e mtodo, In: Psicologia: Reflexo e Crtica. 2002.
Disponvel em:
http://www.doaj.org/ftxt/www.scielo.br/scielo.php?script=sci_arttext&pid=S010279722002000200009
Acesso em 1 de janeiro de 2005.

[CARBERRY 1990] Carberry, S. Plan Recognition in Natural Language Dialogue. ACLMIT Press Series on Natural Language Processing. MIT Press, 1990.

[CHARNIAK & GOLDMAN 1991] Charniak, E. & Goldman, R. A Probabilistic Model


for Plan Recognition, In Proeddings of the. 9th Conference of the AAAI, pp. 160 - 165,
Anaheim, CA, USA, 1991.

[COWARD2004] Cowart, W. The Chatterbox Challenge


Disponvel em: http://web.infoave.net/~kbcowart/
Acesso em: 30 de dezembro de 2004

[CHOMSKY 1959] Chomsky, N. Review of Skinners Verbal Behavior. Language 35:26


58, 1959.
Disponvel em: http://www.chomsky.info/articles.htm
Acesso em 1 de janeiro de 2005.

[COHEN & PERRAULT 1979] Cohen, P. R. & Perrault, C. R. Elements of a Plan-Based


Theory of Speech Acts, In Cognitive Science, 3:177 - 212, 1979.

[COHEN 1978] Cohen, P. R. On Knowing What to Say: Planning Speech Acts. Technical
Report 118, Department of Computer Science, University of Toronto, Ontario, January
1978, PhD thesis.

113

[COURSEY 2004] Coursey, K. Living in cyn: mating AIML and CYC together with
program N.
Disponvel em: http:\\www.daxtron.com
Acesso em: 31 de dezembro de 2004

[COULTHARD 1977] Coulthard, M. An Introduction to Discourse Analysis. Essex:


Longman, 1977.

[DINIZ 2004] DINIZ, I. C. Pixelbot e seus usurios: em busca de uma conversao


possvel. 131 f. Dissertao de Mestrado, Ps-graduao em Psicologia Cognitiva,
Universidade Federal de Pernambuco, Recife, 2004.
Disponvel em: http://www.liber.ufpe.br
Acesso em 10 de janeiro de 2005.

[DUCROT 1977] DUCROT, O. Princpio de Semntica Lingstica. So Paulo: Cultrix,


1977.

[EDEN 2004] Eden, C. ECC-Eliza V4.09 Your Psychologist Software


Disponvel em: http://www.psicopolis.com/artificia/tricks110.htm
Acesso em 1 de janeiro de 2005.

[EDWARDS 2000] Edwards, J. Chatterbots and the Turing Test, 2000.


Disponvel em:
http://helmet.stetson.edu/departments/mathcs/students/research/cs/cs498/2000/jeffedwards.
pdf
Acesso em 1 de janeiro de 2005.

[ELST 2004] Elst, S. V. der. Aimlbots


Disponvel em: http://www.aimlbots.com
Acesso em 1 de janeiro de 2005.

114

[GALVO et al. 2003] Galvo, A., Barros, F.A. & Neves, A.M.M. Persona-AIML: Uma
Arquitetura para Desenvolver Chatterbots com Personalidade, IV Encontro Nacional de
Inteligncia Artificial (ENIA), Congresso da SBC 2003.

[GARNER 2000] Garner, G.R. Generation5.


Disponvel em: http://www.generation5.org/garner.shtml
Acesso em 1 de janeiro de 2005.

[GRICE 1957] Grice, H. P. Meaning. In Philosophical Review, 66(3):377 - 388, 1957.

[GRICE 1969] Grice, H. P. Utterer's Meaning and Intention. In Philosophical Review,


78(2):147 - 177, 1969.

[GRICE 1975] Grice, H. P. Logic and Conversation, In P. Cole and J. L. Morgan, editors,
Speech Acts, volume 3 of Syntax and Semantics, pp. 41-58. Academic Press, New York,
1975.

[GOUGH 2003] Gough, D. GrokItBot: A Python, AIML and Bayesian IM bot


Disponvel em: http://www.suttree.com/code/GrokItBot/
Acesso em 1 de janeiro de 2005.

[GUMPERZ 1982] Gumperz, J. J. Discourse Strategies. Cambridge: Cambridge


University Press. 1982.
Disponvel em: http://sunsite.berkeley.edu/Anthro/gumperz/gumppub.html
Acesso em 1 de janeiro de 2005.

[HUTCHENS 1998] Hutchens, J. L. Natural language grammatical inference. Honour's


thesis, University of Western Australia, December 1998.
Disponvel em: http://citeseer.ist.psu.edu/hutchens96grammatical.html
Acesso em 1 de janeiro de 2005.

115

[KAUTZ & ALLEN 1986] Kautz, H. & Allen, J. F. Generalized Plan Recognition, In
Proceedings of the Fifth National Conference on Artificial Intelligence, pp. 32 - 37,
Philadelphia, 1986.

[LAMBERT & CARBERRY 1991] Lambert, L. Carberry, S. A Tripartite Plan-based


Model of Dialogue. In Proceedings of the 29th ACL Conference, pp. 47 - 54, Berkeley,
CA, June 1991.

[LAMBERT 1993] Lambert, L. Recognizing Complex Discourse Acts: A Tripartite Plan


Based Model of Dialogue. Technical Report 93-19, University of Delaware, Department of
Computer and Information Sciences, Newark, Delaware, May 1993, PhD thesis.

[LEAKE & SOORIAMURTHI 2003] Leake, D. B. & Sooriamurthi, R. Automatically


Selecting Strategies for Multi-Case-Base Reasoning. ECCBR 2002: Advances in CaseBased Reasoning. Springer-Verlag, Berlin, 2002, pp. 204-218.
Disponvel em: http://www.cs.indiana.edu/~leake/INDEX.html
Acesso em 1 de janeiro de 2005.

[LEVINSON 2003] Levinson, S. C. Language and mind: Lets get the issues straight! In
D. Gentner & S. Goldin-Meadow (eds.), Language in mind: Advances in the study of
language and cognition, pp. 25-46. Cambridge, MA: MIT Press
Disponvel em: http://www.mpi.nl/world/pub/lang&mind.pdf
Acesso em 1 de janeiro de 2005.

[LIMA 1983] Lima, J.P. (org.) Linguagem e Aco, Lisboa, Apaginastantas,1983.

[LITMAN & ALLEN 1990] Litman, D. J. & Allen, J. F. Discourse Processing and
Commonsense Plans, In P. R. Cohen, J. Morgan, and M. Pollack, editors, Intentions in
Communication, pp. 365 - 388. MIT Press, Cambridge, MA, 1990.

116

[LITMAN & ALLEN 1987] Litman, D. J. & Allen, J. F. A Plan Recognition Model for
Subdialogues in Conversations, In Cognitive Science, 11(2):163 - 200, 1987.

[LITMAN 1985] Litman, D. J. Plan Recognition and Discourse Analysis: An Integrated


Approach for Understanding Dialogues. Technical Report TR170, University of Rochester,
Department of Computer Science, 1985, PhD thesis.

[LITMAN 1986] Litman, D. J. Understanding Plan Ellipsis. In Proceedings of the Fifth


National Conference on Artificial Intelligence, pages 619 - 624, Philadelphia, 1986.

[LOEBNER 2004] Loebner, H. G. Why a Loebner Prize.


Disponvel em: http://www.loebner.net/
Acesso em 31 de dezembro de 2004

[MARCUSCHI 1986] Marcuschi, L.A. Anlise da Conversao. Editora tica, So Paulo,


1986.

[MAULDIN 1994] Mauldin, M. L. Chatterbots, TinyMUDs, and the Turing Test: Entering
the Loebner Prize Competition, Proceedings of Twelfth National Conference on Artificial
Intelligence (AAAI-94), Seattle, Washington, August 1994.
Disponvel em: http://lazytoad.com/lti/pub/aaai94.html
Acesso em 1 de janeiro de 2005.

[MOORE & MCCABE 2002] Moore D. S., McCabe G.P. , Introduo prtica da
estatstica, 3a. edioo, Editora LTC, 2002.

[MORGADO 2002] Morgado, I. Wittgenstein: O livre arbtrio e o determinismo: O que


podemos dizer?. In Saberes do Tempo, Edies Colibri, 2002, pp. 661-668. 2002.

[MORRIS 1946] Morris, C. W. Signs, Language and Behavior. New York: Prentice-Hall,
1946.

117

Disponvel em: http://www.aber.ac.uk/media/Documents/S4B/sem12a.html


Acesso em 1 de janeiro de 2005.

[MOURA 2003] Moura, T. J. M. Um Chatterbot para aquisio automtica de perfil do


usurio. Maro de 2003. Dissertao de Mestrado (Cincia da Computao) Universidade Federal de Pernambuco.
Disponvel em: http://www.liber.ufpe.br
Acesso em 10 de janeiro de 2005.

[NEVES et. al 2001] Neves, A.M.M, Paraguau, F., Barros, F., Cavalcante, P.S. & Barros,
S.G. Projeto FIACI: Concepo de Ferramentas Inteligentes para Aprendizagem
Cooperativa na Internet. In Anais do XII Simpsio Brasileiro de Informtica na Educao.
Vitria (ES) Brasil. Nov/2001.

[NEVES et. al 2002] Neves, A. M. M., Diniz, I., Barros, F. A. Natural Language
Communication via AIML Plus Chatterbots In: V Symposium on Human Factors in
Computer Systems (IHC 2002), 2002, Fortaleza - CE. Proc. of the IHC 2002 - V
Symposium on Human Factors in Computer Systems 2002. , 2002. p.387

[NEVES & BARROS 2003] Neves, A. M. M. & Barros, F. A. XbotML: A Markup


Language for Human Computer Interaction via Chatterbots. International Conference on
Web Engineering 2003; Lecture Notes in Computer Science (LNCS) 2722 pp 171-181,
2003.

[PEIRCE 1867] Peirce, C. S. On a New List of Categories. Proceedings of the American


Academy of Arts and Sciences. 7 (1867), 287-298.
Disponvel em: http://www.peirce.org/writings/p32.html
Acesso em 1 de janeiro de 2005.

[PRESSMAN 1992] Pressman, R (1992). Software Engineering, a practitioner's


approach. (Third edition). McGraw-Hill.

118

[RAMSHAW 1991] Ramshaw, L. A. A Three-Level Model for Plan Exploration, In


Proceedings of the 29th ACL Conference, pp. 39 - 46, Berkeley, CA, June 1991.

[RHEINGOLD 1991] Rheingold, H. Virtual Reality. Summit Books, New York, 1991.

[SACKS & SCHEGLOFF 1974] Sacks, H., Schegloff, E. A. & Jefferson, G. A Simplest
Systematics for the organization of Turn-Taking for Conversation, In Language, 50:696735, 1974.
Disponvel em: http://www.sscnet.ucla.edu/soc/faculty/schegloff/
Acesso em 1 de janeiro de 2005.

[SCHEGLOFF 1972] Schegloff, E. A. Sequencing in Conversational Openings, New York


1972.
Disponvel em: http://www.sscnet.ucla.edu/soc/faculty/schegloff/
Acesso em 1 de janeiro de 2005.

[SCHEGLOFF 1999] Schegloff, E. A. Discourse, Pragmatics, Conversation, Analysis. In


Discourse Studies 1:4, 405-35, 1999.
Disponvel em: http://www.sscnet.ucla.edu/soc/faculty/schegloff/
Acesso em 1 de janeiro de 2005

[SCHEGLOFF 2000] Schegloff, E. A. Overlapping Talk and the Organization of TurnTaking for Conversation. In Language in Society, 29:1, 1-63, 2000.
Disponvel em: http://www.sscnet.ucla.edu/soc/faculty/schegloff/
Acesso em 1 de janeiro de 2005

[SCHEGLOFF 2002] Schegloff, E. A. Conversation Analysis and Communication


Disorders. In C. Goodwin (ed.), Conversation and Brain Damage. New York: Oxford
University Press, 2002
Disponvel em: http://www.sscnet.ucla.edu/soc/faculty/schegloff/
Acesso em 1 de janeiro de 2005

119

[SEARLE 1976] Searle J. R. Expression and Meaning. Cambridge University Press. 1976.

[SIDNER & ISRAEL 1981] Sidner C. L. & Israel, D. J. Recognizing intended meaning
and speakers' plans. In Proceedings of IJCAI-81, pp. 203 - 208, Vancouver, British
Columbia, Canada, 1981.

[SKINNER 1950] Skinner, B. F. Verbal Behaviour. Appleton-Century-Crofts, New York.


Disponvel em: http://www.bfskinner.org/about_bfsf.asp
Acesso em 1 de janeiro de 2005.

[STECH 1982] Stech E. L. The Analysis of Conversational Topic Sequence Structures. In


Semiotica, 39: 1/2, 75-91, 1982.

[THALMANN et. al 1999] Thalmann, D., Musse, S. R. & Kallmann, M. Virtual Humans
Behaviour: Individuals, Groups, and Crowds. In DIGITAL. Media Features. 1999.
Disponvel em: http://robotics.usc.edu/~kallmann/page_publications.html
Acesso em 1 de janeiro de 2005.

[VIEIRA et. al 2004] Vieira, A. C., Teixeira, L., Timoteo, A., Tedesco, P. A., Barros, F. A.
Analyzing On-Line Collaborative Dialogues: The OXEnTCHChat In: 7th International
Conference on Intelligent Tutoring Systems - ITS 2004, 2004, Macei, Alagoas.
Proceedings of the 7th International Conference on Intelligent Tutoring Systems - ITS
2004. Springer-Verlag, 2004. p.1 10

[WALLACE 2004] Wallace, R. S. A.L.I.C.E.


Disponvel em: http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1
Acesso em: 30 de dezembro de 2004

[WALLACE 2004b] Wallace, R. S. AIML: Artificial Intelligence Markup Language


Disponvel em: http://www.alicebot.org/aiml.html

120

Acesso em: 30 de dezembro de 2004

[WALLACE 2004c] Wallace, R. S. Fundao AliceBot


Disponvel em: http://www.alicebot.org
Acesso em: 30 de dezembro de 2004

[WALLACE 2004d] Wallace, R. S. Don't Read Me:Program dB


Disponvel em: http://www.alicebot.org/articles/wallace/dont-dB.html
Acesso em: 30 de dezembro de 2004

[WALLACE 2004e] Wallace, R. S. The Annotated A.L.I.C.E. AIML


Disponvel em: http://www.alicebot.org/aiml/aaa/
Acesso em: 30 de dezembro de 2004

[WALTZ 1978] Waltz, D.L. An English Language Question Answering System for a
Large Relational Database, CACM, 21(526-539), 1978.

[WEINTRAUB 1990] Weintraub, J. History of the PC Therapist


Disponvel em: http://www.loebner.net/Prizef/weintraub-bio.html
Acesso em: 30 de dezembro de 2004

[WEIZENBAUM 1966] Weizenbaum, J. ELIZA: A computer program for the study of


Natural Language Communication between man and machine. In Communications of
ACM, 9(1), pp. 35-36, 1966.

[WITTGENSTEIN 1953] Wittgenstein, L. Philosophical Investigations. Oxford:


Blackwell. 1953.

[WOODS & KAPLAN 1977] Woods, W. & Kaplan, R. Lunar rocks in natural English:
Explorations in natural language question answering. Linguistic Structures Processing. In
Fundamental Studies in Computer Science, 5:521-569, 1977.

Anda mungkin juga menyukai