Chat Bots Ruta Mehta Mugdha Jain Jeetendra Mirchandani Welcome to the world of living people and...

27
Chat Bots Ruta Mehta Mugdha Jain Jeetendra Mirchandani Welcome to the world of living people and artificial intelligence entities called bots!

Transcript of Chat Bots Ruta Mehta Mugdha Jain Jeetendra Mirchandani Welcome to the world of living people and...

Chat Bots

Ruta Mehta

Mugdha Jain

Jeetendra MirchandaniWelcome to the world of living people and artificial intelligence entities called bots!

Questions We’ll Answer

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?

A Chat Bot…

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>

<pattern>HELLO</pattern>

<template>Hi there!</template>

</category>

Chat SequenceUser: Hello!

Chat Bot: Hi There!

<category>

<pattern>YES</pattern>

<that>DO YOU LIKE MOVIES</that> <template>What is your favorite movie?</template>

</category>

Chat Bot: Do you like Movies?

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:

Conversation:

<category>

<pattern>10 *</pattern> <template> It is ten.</template>

</category>

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 normalizationsAbbreviations such as "Mr." may be spelled out as "Mister" to avoid sentence-splitting at the period in the abbreviated form.

Sentence-splitting normalizationsRule: break sentences at periods. It relies upon substitutions performed in the substitution phase.

Pattern-fitting normalizationsRemove all characters that are not normal characters; like converting lowercase letters to uppercase .

<category>

<pattern>_ WHAT IS 2 AND 2</pattern>

<template>

<sr/><srai>WHAT IS 2 AND 2</srai>

</template>

</category>

<category>

<pattern>WHAT IS 2 *</pattern>

<template><random>

<li>Two.</li>

<li>Four.</li>

<li>Six.</li>

<li>12.</li>

</random></template></category><category>

<pattern>HALO</pattern>

<template>

<srai>HELLO</srai>

</template>

</category>

<category>

<pattern>HELLO</pattern>

<template> <random>

<li>Well hello there!</li>

<li>Hi there!</li>

<li>Hi there. I was just wanting to talk</li>

<li>Hello there !</li>

</random></template></category>

Example

Halo, What is 2 and 2

_ What is 2 and 2

</sr>

<srai> WHAT IS 2 AND 2 </srai>

Well hello there!Hi there!Hi there. I was justwanting to talk.Hello there !

WHAT IS 2 AND *

WHAT IS 2 *

TwoFourSix12

Hi There! Six

Question :

Answer :

HALO

HELLO

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

Search sub-graph rooted at child

node linked by ‘_’

Node-mapper Contains ‘X’?

Match?

Search sub-graph rooted at child

node linked by ‘X’ using input ‘tail’

Search sub-graph rooted at child

node linked by ‘*’

Try all remainingsuffixes of input

following ‘X’

Node-mapper Contains ‘_’?

Node-mapper Contains ‘*’?

Try all remainingsuffixes of input

following ‘X’

Match?

Match?yes

yes

yes

yes

yes

yes

no

no no

no

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

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?

A Chat Bot…

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!