# How do English language robots work?

By English language robots I mean something like this: http://www.tolearnenglish.com/free/celebs/audreyg.php I don't know what they called exactly, but interested to know how they work and how can I build something like them? and what subject should I look for it?

• They are called "chatter bots". You can see AIML which is usually used for making chatter bots! – kiner_shah Jan 28 '17 at 13:35
• @marli, Sure, I will post this as a formal answer! – kiner_shah Feb 1 '17 at 9:39

English language robots which you mentioned, are called "chatter bots". Chatter Bots are used to communicate with a human and undergo conversations in such a way that the human which is communicating will think that he/she is talking to another human.

There are two types of chatter bots: One is which uses certain rules and pattern matching techniques and the other one is which uses actual artificial intelligence techniques. Of course, the latter one is the most difficult to implement.

This can be understood with an example. The former type of bots which uses pattern matching and rules consist of questions stored in the form,

if question matches 'WHO (IS/ARE) (MEMBERS OF PARLIAMENT/PRESIDENT)?' then
RETURN Y ... where Y is some predefined answer.


The latter part which uses actual AI techniques, uses various mechanisms to actually understand the question, extract information out of it, process the information into some standard normalized form and then do some inference w.r.t. the facts in the knowledge base. Such methods may use learning algorithms to actually learn question patterns.

To make simple bots (probably of the former type), you can use Artificial Intelligence Markup Language (AIML) which is a XML based language for developing chatter bots like ALICE bot.

If you want to focus more towards latter type of chatter bots, you may have to learn about various AI techniques, like searching, logic, knowledge and inference, learning, etc or sub-domains of AI like Natural Language Processing (NLP). There are various tool kits for NLP like for developing in Python there is nltk, for developing in Java there is Stanford's CoreNLP, and so on.