There are several different ways to develop a new chatbot. The two broad choices provided below are important when considering what problems you want the chatbot to address.
These are state machines that involve complex pattern matching, and are about matching incoming strings (customer text,) with pre-defined patterns. Pattern matching uses regex to find patterns in the incoming text and classifies it into different blocks of resolution. Pattern matching is called Finite State Automata, and is used when the bot is not expecting to respond to broader questions. For example, IVR, vending machines, and very narrow domains – such as appointment booking – are all Finite State Automata.
Need an example of a well-developed chatbot? Check out snowbOT!
Deep learning techniques are more sophisticated methods than Finite State Machines. They process, input, and understand intention in a broader context. They employ various types of neural networks for this purpose. This way they are more capable and effective in managing dialogue with humans than Finite State Machines are. The chatbot applications within deep learning can handle a broader context that can cover multi-domain or multi-service business context.
Choosing the correct architecture depends on what type of domain the chatbot will have. For narrow domains, such as booking an appointment with a dentist, a pattern-matching architecture would be the ideal choice. However, for chatbots that deal with multiple domains or multiple services, you need the domain the chatbot operates within to become a little broader. In these cases, sophisticated, state-of-the-art neural network architectures, such as LSTMs and Reinforcement Learning Agents are your best bet.
Due to the varying nature of chatbot usage, the architecture will change upon the unique needs each chatbot has.