Sunday, November 22, 2009

Two basic approaches of making a chat bot

Chat bots are usually developed using two approaches. The first approach uses Natural Language processing algorithms. This involves both linguistic analysis and "understanding". "Understanding" is not very well defined task. Most time this means some form of matching pre-stored information and using some logic reasoning to produce a response. The term "understand" is inherently meaningless to me. Because the only available criterion to demonstrate "understanding" is the ability to produce valid responses. NLP is a very hard problem. Though some NLP system performs better than others, it is fair say that, to this day, there is no general purpose NLP can provide conversational artificial intelligence.

The second approach is pattern matching. This is the method used by most chat bots since the 1967 Eliza bot. This is basically the same approach used by search engines. In a chat bot system, pattern matching is usually augmented by other techniques to produce better results. For example, Kyle combine real-time learning with evolutionary algorithms to optimise their ability to communicate based on each conversation held.

The latter approach also works well for the purpose of information retrieving (just as search engine), which is one of the most practical use of chat bots. Some specialized software or programming languages are created specifically for this narrow function required. For example, A.L.I.C.E., utilises a programming language called AIML which is specific to its function as a conversational agent. My CML and Novabot is also such a system. In fact, it is inspired by AIML. However, I did add my own "augments" to the general pattern matching and focussed on the convesation CONTEXT.

No comments:

Post a Comment