You are on page 1of 27

Chat Bots

Ruta Mehta
Mugdha Jain
Welcome to the Jeetendra Mirchandani
world of living
people and artificial
intelligence entities
called bots!
Questions We’ll Answer
A Chat Bot…
 What is it? Who wants it? Why?
 Since when is it around?
 How does it work?
 How do you test it?
 Can it answer all my questions?
 Can I make one of my own?
 Where can I put it to work?
Introduction

 Chat Bot: A computer program that can talk to humans in


natural language!
 Uses Artificial Intelligence Markup Language (AIML) to
represent knowledge.
 Can replace a human for monotonous jobs of answering
queries, e.g. E-help desk.
How It All Started
 Eliza – the first chat bot made by Joseph Weizenbaum.
 Eliza Effect
– tendency of humans to attach associations to terms from prior
experience.
 Working of Eliza is based on
– Knowledge Representation
– Pattern Recognition
– Substitution of key words into known phrases.
How does it respond

 Looks for certain patterns of words in the user's input.


 Replies with pre-determined output, if the pattern is
matched.
 Needs to have an idea of what the user will chat
 Has suitable responses defined in the AIML file
Architecture of a Chat Bot

Responder

AIML Interpreter

AIML Objects

A Chat Bot
Knowledge Representation
 Types of AIML objects
– Topics
– Categories
 E.g. :
<aiml>
<topic name=“the topic” >
<category>
<pattern>PATTERN</pattern>
<that>THAT</that>
<template>TEMPLATE</template>
</category>
</topic>
</aiml>
Example AIML Object

 AIML Object <category>


<category> <pattern>YES</pattern>
<pattern>HELLO</pattern> <that>DO YOU LIKE MOVIES</that>
<template>Hi there!</template> <template>What is your favorite movie?
</category> </template>
</category>
 Chat Sequence
User: Hello! Chat Bot: Do you like Movies?
Chat Bot: Hi There! User: Yes
Chat Bot: What is your favorite
movie
Topics and Categories

 Topic: an optional top-level element that contains category


elements
 Category: consists of an input question (pattern) and an
output answer (template)
 Types of Categories
– Atomic Category
– Default Category
– Recursive Category
Atomic Category

 Contains patterns that does not have wildcards


“*” or “_”.
 Example:

 Conversation:
<category>
<pattern>10 DOLLARS</pattern>
<template> wow, what a cheap </template>
</category>

User: This watch is for 10 dollars


Chat Bot: Wow, what a cheap watch!
Default Category

 Contains patterns that have wildcards “*” or “_”.


 Example:
<category>
<pattern>10 *</pattern>
<template> It is ten.</template>
</category>
 Conversation:
User: 10 dollars.
Chat Bot: It is ten.
Recursive category
 Template calls the pattern matcher recursively
 Uses <srai> tag, that stands for symbolic recursion artificial
intelligence
 For example,
In English there are different ways to ask about X:
Describe x?
Tell me about X?
Do you know what X is?
The knowledge is stored in the simplest way.
Whatever the question is, it will be reduced to category like <What is>.
Input normalization
 Substitution normalizations
Abbreviations such as "Mr." may be spelled out as "Mister" to avoid
sentence-splitting at the period in the abbreviated form.
 Sentence-splitting normalizations
Rule: break sentences at periods. It relies upon substitutions performed
in the substitution phase.
 Pattern-fitting normalizations
Remove all characters that are not normal characters; like converting
lowercase letters to uppercase .
Example
<category> <category>
<pattern>HELLO</pattern> <pattern>WHAT IS 2 *</pattern>
<template> <random> <template><random>
<li>Well hello there!</li> <li>Two.</li>
<li>Hi there!</li> <li>Four.</li>
<li>Hi there. I was just wanting <li>Six.</li>
to talk</li>
<li>12.</li>
<li>Hello there !</li>
</random></template></category
</random></template></category> >
<category> <category>
<pattern>_ WHAT IS 2 AND <pattern>HALO</pattern>
2</pattern>
<template>
<template>
<srai>HELLO</srai>
<sr/><srai>WHAT IS 2 AND
2</srai> </template>
</template> </category>
</category>
Question : Halo, What is 2 and 2

_ What is 2 and 2

</sr>
<srai> WHAT IS 2 AND 2 </srai>
HALO
WHAT IS 2 AND *
HELLO
WHAT IS 2 *
Well hello there!
Hi there! Two
Hi there. I was just Four
wanting to talk. Six
Hello there ! 12

Answer : Hi There! Six


Graph-master – an example interpreter

 AIML interpreter: tries to match word by word to obtain the


largest pattern matching which is the best one.
 Graph-master: an interpreter that models this behavior
 Contains a set of nodes called Node-mappers .
 Node-Mappers : map branches from each node where
branches represent the first words of all patterns.
 Each leaf node contains a template.
Flowchart for Pattern Matching

yes
Search sub-graph Try all remaining
Node-mapper yes
rooted at child suffixes of input Match?
Contains ‘_’?
node linked by ‘_’ following ‘X’
no
no

Search sub-graph
Node-mapper yes rooted at child yes
Match?
Contains ‘X’? node linked by ‘X’
using input ‘tail’
no no

yes Search sub-graph Try all remaining


Node-mapper yes
rooted at child suffixes of input Match?
Contains ‘*’?
node linked by ‘*’ following ‘X’
Some Observations

 Priority order at every node:


– ‘_’ wildcard, followed by
– an atomic word, followed by
– ‘*’ wildcard .
 Patterns need not be ordered alphabetically
 The matching is word-by-word, not category-by-category
 Highly restricted form of depth-first search
Turing Test
 Alan Turing proposed the Turing Test as a replacement for
the question “Can machines think?”
 Turing's aim is to provide a method to assess whether or not a
machine can think.
 The test
– A man (A), a woman (B) and an interrogator (C) chat.
– The objective of the interrogator is to determine which of the other
two is the woman
– If a machine (bot) chats instead of A or B and fools the interrogator,
it has passed the Turing test.
Can It Answer All My Questions?

 A Chat Bot has a limited number of patterns and responses.


 The AIML structure supports regular expressions
 In AIML, you can define recursive categories.
 The bot may sometimes give funny replies, but that depends
on the AIML spec, i.e. Its brain!
How to build a bot of your own
 Components – An AIML Object Spec, AIML interpreter,
and a responder!
 A Chat Bot represents and models a character.
 The brain is the AIML file, that defines patterns and
corresponding replies
 A bot can be trained to be an Expert System about a special
theme – large data!
 Training data – Yahoo Chat!
What is a Chat Bot useful for?

 Commercial chatter bots to help customers


– At web-shops and e-commerce sites.
– Bots to receive complaints from users, online
 An interactive (talking) encyclopedia.
 Chatter bots administrating IRC-channels and Hotline server.
 The Psychiatrist – the famous pronoun reversal trick
 Starship Titanic, a game created by the famous writer Douglas
Adams along with Terry Jones
Questions We Answered
A Chat Bot…
 What is it? Who wants it? Why?
 Since when is it around?
 How does it work?
 How do you test it?
 Can it answer all my questions?
 Can I make one of my own?
 Where can I put it to work?
Clarifications
 How powerful is JavaCC-built parser?
– As long as one can use JavaCC's look-ahead specification to guide the
parsing where the LL(1) rules are not sufficient, JavaCC can handle any
grammar that is not left-recursive.
 Powerful than a yacc generated parser?
– AIML is connected to a system that allows for learning new patterns and
putting them into a context
– Context sensitive
 Learning ?
– Dialogue Corpora can be used to train a Chatbot! (See References)
 Intelligent?
– Even Turing tests have different levels and yet cannot finally decide whether
the system is intelligent or not. Nowadays a system is considered to be
intelligent if it is able to mimic intelligent behaviour (e.g. within a specified
domain).
Thank You
References

 The Anatomy of A.L.I.C.E.: Dr. Richard S. Wallace,


http://www.alicebot.org/anatomy.html
 Artificial Intelligence Markup Language (AIML), A.L.I.C.E. AI
Foundation, http://alicebot.org/TR/2001/WD-aiml/
 AIML Interpreter Overview 2004, http://www.aimlbots.com/en/aiml-
interpreters.html
 Computing machinery and intelligence, Alan Turing [1950],
http://www.abelard.org/turpap/turpap.htm
 Using Dialogue Corpora to Train a Chatbot (Bayan Abu Shawar, Eric
Atwell)
http://www.comp.leeds.ac.uk/andyr/research/papers/techreport2003_02.pdf
Project Proposal

 Extension to Chat Bot, that will reply emails


 Will maintain a chat session in terms of email-session-id
 Can be useful for auto replying to emails that have a
common reply, related to the question in the email
– e.g. – help@cse - email to register your complaints!

You might also like