AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

A Librarian (Final year project)
 
 

Hi bot-masters,

Recently I am researching for good tools and techniques for my final year desertion.I am starting development after this research which is most important area.As every desertion I need to critically evaluate each and every decision I have taken. Since this is my first chatbot effort I decided AIML as (i.e. keyword identification ,pattern matching and knowledge base) after contrasting with ELIZA and Elizabeth. I need to choose good algorithms or techniques for following with a comparison.I am planing to use program D since I am planing to use Java web technologies..

1.Word Sense Disambiguation
  I want to check synonyms and spelling before it goes to aiml interpreter for pattern a   matching. My basic ideas is to use a POS tagger with WordNet. Is it correct ? .Is there good research paper to read about it or can you guide me for it ? .What are the other techniques ?.

2.Learning from users
  If I am using <learn> tag it will be easy. But is there any other techniques which goes with AIML
3.Find books by querying library database.

4.Natural conversation style .
This mean I am planing to ask questions from users to keep conversation more natural. This can done by AIML (I guess I am correct).But what are other approaches .

Thanks in advance.
soori

 

 
  [ # 1 ]

2. I have a file called learn.aiml which uses the <learn> and <eval> tags to create new categories on the fly from users. You can grab it from http://www.square-bear.co.uk/aiml

Here are a few examples of it:

Human: Learn the sun is hot
Bot: Ok I will learn that the sun is hot.
Human: Learn London is in England
Bot: Ok I will learn that London is in England.
Human: Learn a cat has four legs.
Bot: Ok I will learn that a cat has 4 legs.
Human: What has 4 legs?
Bot: a cat.
Human: What is the sun?
Bot: hot.
Human: Learn the sun is hot and yellow
Bot: Ok I will learn that the sun is hot and yellow.
Human: What is hot and yellow?
Bot: the sun.
Human: What is the sun?
Bot: hot and yellow.
Human: Where is London?
Bot: in England.
Human: What is in England?
Bot: London.
Human: Learn Dr Wallace is an AI expert
Bot: Ok I will learn that Dr Wallace is an AI expert.
Human: What is an AI expert?
Bot: Dr Wallace.
Human: Who is an AI expert?
Bot: Dr Wallace.
Human: Who is Dr Wallace?
Bot: an AI expert.
Human: What is hot?
Bot: the sun.
Human: What does a cat have?
Bot: 4 legs.

 

 
  [ # 2 ]

@ Steve Thanks a for your reply. I downloaded and read it according to a post of yours in a another thread. That make scene.I believe I can go with it. But main target in this stage is to compare an contrast for my desertion. Can i ask like this? .If I using ELIZA technique or other NLP techniques how I can implement learning behavior.(without using AIML <learn>)

 

 
  [ # 3 ]

Hi, my subbot.org/logicagent can do:

> The sun is hot.
Okay, The sun is hot.

> London is in England.
Okay, London is in England.

> A cat has four legs.
Okay, A cat has four legs.

> What has four legs?
four legs have a cat

> What is the sun?
the sun is hot

> the sun is hot and yellow
Okay, the sun is hot and yellow.

> What is hot and yellow?
hot and yellow is the sun

> What is the sun?
the sun is hot, hot and yellow

> Where is London?


> What is in England?
in England is london

> Dr. Wallace is an AI expert.
Okay, Dr. Wallace is an AI expert.

> What is an AI expert?
an AI expert is dr. wallace

> Who is Dr. Wallace?
Dr. Wallace is an ai expert

> What is hot?
hot is the sun

> what does a cat have/
a cat has: four legs

> logicagent: if input =~ /^where is (.*)/i then response = self.send(“what is #{$1}”) end
Okay I have added if input =~ /^where is (.*)/i then response = self.send(“what is #{$1}”)end.

> Where is London?
London is in england

> logicagent: if input =~ /^what has (.*)/i and response =~ /#{$1} (?:has|have) (.*)/ then response = $1 end
Okay I have added if input =~ /^what has (.*)/i and response =~ /#{$1} (?:has|have) (.*)/ then response = $1 end.

> what has four legs?
a cat

—-

This dialog isn’t perfect, but it demonstrates that the <learn> tag is not needed, and that I can add if-then rules at runtime to “teach” the bot to rewrite responses (i.e. it didn’t know how to handle “where is ...” until I told it to use “what is ...”, and I can eliminate the awkward phrasing of “four legs have a cat”). Also it was able to handle the typo of substituting a “/” for “?”.

 

 
  login or register to react