Kingston University
Research
Development
Customising Arthur
Program Functions
Critique
Source Code
Knowledge Base
Template File
Home
Evaluation
Related Links
Arthur the Chatterbot

ELIZA


This is the original Chatterbot and was written by Weizenbaum in 1976. ELIZA�s main trick is to answer questions with questions.

Our Chatterbot has to hold a conversation on a subject of our choice. We have decided to implement a slot and frame parser, which matches keywords with responses. This is the only way that we have been able to provide a knowledge base to our program. However, The C++ function strstr() is used to locate a known phrase within the input string. Using a slot and frame parser can limit the conversation drastically. We therefore decided to implement the same trick that ELIZA uses, that is, to answer questions with questions.

Our primary goal is to build a conversational agent that will answer questions, instead of ignoring them, and that would be able to maintain a sequence of appropriate responses, instead of relying on unrelated responses.

In the following transcript we used ELIZA to compare it�s responses to questions that our Chatterbot can initially answer.

Enter QUIT to quit chatting

ELIZA: so how are you doing today?

GROUP: fine thank you, what does he like?

ELIZA: you're not really talking about me, are you?

GROUP: no, what does she like?

ELIZA: what answer would please you the most?

GROUP: let me ask a question.

ELIZA: i see.

GROUP: do you like the big blue

ELIZA: oh, i like the big blue?

GROUP: yes, do you know what the big blue is?

ELIZA: what difference does it make if i know what the big blue is?

GROUP: can you sing?

ELIZA: does it matter to you if i can sing?

GROUP: what does he sing?

ELIZA: what do you think?

GROUP: who created you?

ELIZA: what difference does it make if i ?

GROUP: if you what?

ELIZA: oh, i what?

GROUP: this makes no sense whatsoever!

ELIZA no sense whatsoever?

GROUP: no

ELIZA: you are being a bit negative.

GROUP: our bot can handle what

ELIZA: have you asked such questions before?

GROUP: why not answer my questions

ELIZA: your questions.

GROUP: that's what I said

ELIZA: what do you think?

ELIZA responds to "what questions" simply by matching the string "what" with a random selection of responses. It is our aim that our Chatterbot will be able to handle the verb "what" more realistically, and use the template to respond in a more human-like way.

ELIZA does not seem to have any responses to frequently used phrases such as "Who are you?" We intend to incorporate these common phrases into our slot and frame parser to trick the user into thinking they are talking to a human.

ELIZA failed when we entered "Who created you?" and responded "What difference does it make if I?" It seems to have picked up "you" and responded "I" but has made no attempt to understand the question. It is responding to these anticipated inputs that can really trick the user.