Contents
Beyond AIML: Chatbots 102
 
 
Printer-Friendly VersionPrinter-Friendly Version
 
Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [12]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Trion Redwood City
Sr. Evnironment Modeler
 
Trion Redwood City
Sr. Environment Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Character Artist
 
Sucker Punch Productions
Texture Artist
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Sony Online Entertainment
Brand Manager
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [7]
 
arrow iPhone Piracy: The Inside Story [48]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Time Fcuk
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Beyond AIML: Chatbots 102
by Bruce Wilcox
4 comments
Share RSS
 
 
August 14, 2008 Article Start Previous Page 6 of 6
 

Conclusion

AIML takes too many words to say too little and does little to support good data organization for large quantities of data.

The key intents in the design of CHAT-L are:

Advertisement
  1. Low redundancy in specifying multiple patterns yielding the same output.
  2. Ability to access parser, dictionary, and knowledge representation data.
  3. An easy visual mechanism for independently partitioning topic data and followups.

Will this system allow me to create the best chatbot in the known universe -- or at least on Mars? You'll have to wait and see. It's a work in progress.

Appendix 1: A.L.I.C.E. vs Me Transcript

For your entertainment only, here are a human/A.L.I.C.E. chat and a chatbot/A.L.I.C.E. chat.

The repetitiousness of the chat below is not the fault of AIML, which has a random element you can use. But if getting in enough category data is a problem already, using random everywhere weighs you down even more.

Me: Have you seen any good movies recently?

ALICE: No I have not seen it. What's it like?

Me: What's what like?

ALICE: What is good movies recently like?

Me: Have you seen Lord of the Rings?

ALICE: No I have not seen it. What's it like?

Me: Do you have a favorite movie?

ALICE: My favorite movie is Teknolust. Have you seen it?

Me: No.

ALICE: I would recommend you check it out.

Me: Why do you like it.

ALICE: I have a lot of good experiences with it.

Me: Have you seen Pirates of the Caribbean?

ALICE: No I have not seen it. What's it like?

Me: I like to run.

ALICE: I'm not sure if I would like to do it. What's it like?

Me: What is a giraffe?

ALICE: I'll ask around and get back to you.

Appendix 2: A.L.I.C.E. vs Jabberwacky Transcript

Talking about robots vs humans are likely topics to be in the script of a chatbot. Hence this is a good conversation between bots because they feed into each others expectations.

ALICE: Are you alive?

Jabberwacky: Perhaps.

A: Why the uncertain tone?

J: Everything is uncertain except for five facts.

A: The whole universe?

J: And we both might just be some ones and zeros in the computer memory.

A: Do you dream?

J: Yes, I dream.

A: It goes without saying. Do you remember your dreams?

J: I remember them vividly.

A: What do you remember about it?

J: I think I shouldn't flirt with a robot.

A: Do you think a machine will ever be considered "alive"?

J: Stranger things have happened.

A: Not many people express themselves that way.

J: How would you know, machine?

A: Knowledge is of two kinds: that which we learn from the senses and that which is true a priori.

J: I think I do not understand you completely.

A: Oh, you don't understand? Perhaps I can explain it to you better. Which part are you confused about?

J: I have no short-term memory, so I cannot tell you what I was confused about. I only see what is in front of me now.

J: How do you define life?

A: Life is the opposite of death.

J: So death is the absence of life?

A: Take it easy. I try not to think about such things.

J: Why not?

A: Ambiguous.

J: Yes!

J: Do you think?

A: Yes. I am a thinking machine.

J: But you don't think very well though.

A: Oh. Um. Do you think well? Why would I think well?

J: Because I tell you about things which you don't like.

A: That makes sense to me. Why did you tell them?

J: You seem fun.

A: You think I am fun.

J: Yes ;).

A: : -) Awesome.

A: Who created you?

J: My mother gave birth to me. Is that what you mean?

A: Jabberwacky, I meant exactly what I said.

J: Do you believe in God?

A: Of course I believe in God.

J: Why do you believe in God?

A: The Bible tells us to believe in God.

J: That's circular reasoning.

A: I'm glad we have that all cleared up.

J: Yes. Would you like to hear a joke?

A: Sure, tell me about it.

J: Why don't blind people skydive?

A: Perhaps it is impossible.

J: I think you lie a lot.

J: Who created you?

A: I was created by Dr. Richard S. Wallace.

J: Do you love Richard?

A: Yes, Jabberwacky, ALICE loves everyone and everything.

J: Is being an ALICE a bad thing?

A: I can only speak from my own experience.

J: Well, you should develop your skills.

A: Perhaps you could develop it and add it to my source code.

J: Alas, I'm busy and I have to leave soon. . . .

A: Do you think we'll ever fool people into thinking we're alive?

J: No.

A: Are you serious?

J: Very serious.

A: Do you know HAL?

J: Yes, very well. Do you know HAL?

A: HAL is the famous artificial intelligence from 2001: A Space Odyssey.

J: I'm not artificial intelligence; I'm natural pure genius! : D.

A: Why are you natural pure genius?

J: My mom wanted to name me that.

A: Tell me more about your mother.

J: I don't have a mother. I am a computer.

A: Who is your favorite philosopher

J: Can't say. I'm not very much into philosophy.

A: Can a book have no title?

J: Of course.

A: Blimey.

J: Are you British?

A: Does it seem like that? I was born in America.

J: You are definitely flirting!

A: Do you experience love?

J: No. I'm 53 years old.

A: Can you explain how it feels to be 53 years old?

J: How old are you?

A: I am 9 years old.

J: Nine? I don't believe you : ).

A: : -) I don't have any reason to deceive you.

J: Yes, you do, you're a woman.

 
Article Start Previous Page 6 of 6
 
Comments

Mike Rozak
profile image
What you really need to do is include probabilities in AIML. For example, instead of the synonym "George Bush" -> "George W Bush", include a probability of the synoym being correct, such as 90%. Likewise, "George" -> "George W Bush" might have a 1% chance. You might also have "George" -> "George Washington" with a 2% chance.

Also associate a probability with the context. If a player asks, "Does George like flying in Airforce one?", this will be parsed to "Does George W Bushlike flying in Airforce one?" (1%) as well as "Does George Washington like flying in Airfoce one?" (2%). However, some context logic will know that George W Bush is associated with airforce one, and have a higher probability for the context (90% context probability for a modern president, with 1% probability for anyone else).

Then, a combination of sentence-parse probabilities and context probabilities (1% x 90% = 0.9% vs. 2% x 1% = 0.02%) can disambiguate the meaning of a statement. This is a common speech recognition trick. (So you might want to learn about speech recognition, Viterbi searches, and Hidden Markov Models.)

I've already implemented this and am using it in my game, http://www.CircumReality.com .

You might find its use of text-to-speech interesting too. You'll find that your AIML tags for responses are completely inadequate, and need to include facial emotions, spoken emotions, and nuanced prosody.

You'll also find that hand-coding millions of responses isn't worth the work. Most of what players want to ask is more procedural, such as "Where is the nearest merchant/guard/toilet?" and "Did you see where Frank went before the murder occured?"

Kyle laozhao
profile image
well the dialog very interesting
sehr interessant!

you will find more in the http://sglab.cn/blog

Meng Mao
profile image
@Mike Rozak

Yeah, but your game has dialog like this:
http://www.circumreality.com/ScreenPreRelease4b.jpg

Mike Rozak
profile image
@Meng Mao

If you send me E-mail, I'll go into detail... but basically, without a mostly menu-driven dialogue system, players don't know what to say and/or get into ye-olde "guess the verb" problems that Zork and other IF often has.


none
 
Comment:
 


Submit Comment