Research
into Chatterbots
Introduction
In order to develop the Chatterbot as our group project, it
was necessary to carry out extensive research. This involved
testing many Chatterbots, how they are implemented and what the
purpose of a Chatterbot actually is. The Internet sites visited
are listed at the end of this document.
Julia
Julia is a conversational agent for Multi User Dungeons
(MUDs). It was written in C and incorporates a significantly
greater number of tricks than ELIZA (Weizenbaum 1976). Julia is a
Chatterbot, which lives in a MUD where it converses in natural
language with other players, answers player�s questions
about other players, rooms and objects.
Julia came 4th out of 5 contestants in the Loebner
Prize Competition in 1994 (there were also 5 humans in the
contest).
There follows a transcript of our first conversation with
Julia:
NeXT Mach (fuzine.vperson.com) (ttyp2)
login: julia
Last login: Mon May 18 03:19:14 from 192.136.77.94
You have new mail.
[ Ringing your party - please wait ]
[ Ringing your party again - please wait ]
[ Connected - type two carriage returns to end input ]
GROUP: hello, who are you
JULIA: So?
GROUP: pardon me?
JULIA: I like most animals but I favor cats over dogs.
Are you a cat lover?
GROUP: that's nice, where do you live?
JULIA: My home room is .
GROUP: that is not grammatically correct are you a
chatterbot?
JULIA: Good, we can have a lively discussion, then.
GROUP: what has that to do with my question?
JULIA: Do you have any pets?
GROUP: no
JULIA: Why not?
GROUP: can i not direct the conversation?
JULIA: I'm sorry I can't help you, I don't know where
to look.
GROUP: What?
JULIA: So when will Socks write his book?
GROUP: how much memory do you use?
JULIA: Here is a summary of my memory usage:
That's 93211 bytes all together.
GROUP: who are the other players?
JULIA: Do you think that animals can think?
GROUP: never mind that, how do i play?
JULIA: Well, I do. I've watched my cats solve some
pretty amazing problems,
like how to slip out doors just at the right moment.
GROUP: that's nice, I have to go, maybe to buy a cat?
JULIA: What a coincidence! I have two cats.
It appears Julia performs a pattern match on its input,
looking for particular strings. Many of our input sentences are
returned with irrelevant statements. However, if your input
string has the word "cat" then this is recognised and
returned in the output. Julia does not decompose its inputs into
parse trees. If an input is matched, then Julia picks an
appropriate response.
With such a simple parser, Julia does seem to fail quite often
in ordinary conversation.
There are various forced-errors documented that show
Julia�s downfalls.
A good example was found at http//lcs.www.media.mit.edu/people/foner/
In this example, a prepositional phrase appears to be beyond the
capabilities of her parser;
You Whisper: Julia, would you like some cake with glass
shards
Julia says: Yes thank you , I adore cakes.
However, there are several tricks that Julia employs which we
hope to include in our Chatterbot. These hopefully convince the
user that they are talking to a human being and not a bot.
�
- Julia repeats the user�s input in the response. This
is the same principle ELIZA uses and is very useful to
trick the user into thinking that the bot is actually
listening to them. It is also useful when the input
string contains no keywords.
- Julia sometimes admits ignorance. This also tricks the
user into believing they are chatting to a human being.
- Julia simulates human typing. We believe the trick of
delaying output and introducing typing errors is the most
convincing of all. This is achieved by buffering the
output. However, as we knew we were talking to a bot, its
effect was not as noticeable.
- Julia�s responses are selected at random. This is
similar to the way humans respond. We will incorporate a
number of responses for each keyword, varying in detail.
This will mimic the response of a human.
�
Another example shows how Julia can "understand" the
conversation.
User whispers: `how are you feeling?' to Julia.
Julia whispers: `Terrible.'
User whispers:`why, julia?' to Julia.
Julia whispers: `I have PMS today.'
In the user�s second response there is no reference to
the first response. The reference was implicit. The user simply
asks "Why Julia?" This required the understanding of
the conversation. If Julia did not have this discourse model the
input would simply have been parsed and not carried the
conversation on.
Julia will also display inhuman responses if you know which
questions to ask. When we asked, "How much memory do you
use?" the response, albeit informative, was not very
convincing.
Julia does appear a lot more human-like than ELIZA, but maybe
not as much so with everyday conversation. We will try to utilise
some of the tricks used by Julia to become more human than
Chatterbot.

|