The Learning Chatbot
The purpose of a chatbot program is generally to simulate conversation and entertain the user. More specialized chatbots have been created to assist with particular tasks, such as shopping. The golden standard that the general chatbot tries to achieve is to pass the Turing test, which means to generate conversation which is indistinguishable from that of a real person. State of the art chatbots have not yet reached this goal, which makes this field so interesting to work in.
Most chatbot programs approach the problem with a form of Case Based Reasoning. CBR is the process of solving new problems based on the solutions of similar past problems. Of course, there are many varieties to CBR, such as how to store past cases and how to determine which cases are most similar to a new case. A common implementation is pattern matching, in which the structure of the sentence is identified and a stored response pattern is adjusted to the unique variables of the sentence. In this implementation, past cases are not explicitly stored. Rather, past cases are put into a generalized form. For example, a pattern might be: “I like X” and the corresponding response may be “What a coincidence! I like X as well!” where X is variable.
The inadequacies of this type of approach are that responses are frequently predictable, redundant, and lacking in personality. Also, there is usually no memory of previous responses, which can lead to very circular conversations. Even more complex pattern matching algorithms are very limited in the types of responses given, which can lead to uninteresting conversation.