Blog

Approaches to Chatbot Development

Written by Caitlin Soard | Oct 25, 2017 2:18:12 PM
When developing a chatbot, there are several different approaches that can be taken. Whether you’re looking to go the Finite State Machines route, the Deep Learning route, or go off in another direction, choosing what type of development to use with your chatbot is crucial to its success. Are you creating a virtual assistant that will plan meetings and schedule appointments? Do you want to create an automated HR system to help save you time and money on on boarding? In this blog we will teach you about two major types of chatbots that you can develop.

Finite State Machines vs. Deep Learning

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.

Finite State Machines

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

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.

Which Architecture Should You Choose?

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.