Introduction
Sometimes, customer service representatives don't have the immediate answers and they must transfer the customer to another person. That's how they serve multiple customers, and it is fair enough to take a long resolution time in order to resolve the customer service tickets. However, this could disappoint customers. So, instead of disappointing them, we could handle these challenges adding chatbot. As a result, 24/7 customer support can enhance customer satisfaction.
Topics
- Chatbot types and their benefits
- Process flow and basic components of chatbots
- Basic idea about rule-base, retrieval-based and generative chatbot
- Text classification approaches for solving NLP problem
- Pipe-and-Filter architecture pattern for ML chatbot implementation
- Prerequisite guides to chatbot development for starters using .NET framework
Chatbot
A chatbot is a conversational software application that interacts with customers over the internet.
Benefits of Chatbot
- Enhances customer engagement
- 24/7 customer support availability
- Quickly resolve customer issues
- Reduce customer support cost
Types of Chatbots
Rule-Based Chatbot
The chatbot answers the customer queries based on the predefined rules. The rule-based chatbot implementation is very straightforward and cheap.
Chatbot Process Flow and Basic Components
For example, if we consider a flow-based design, then it's easy to identify the intent and entities to a set of predefined intents. Let's see the given chatbot below:
- If a user chooses "Yes, I'd like to create an account", then chatbot identifies the intent which is "create an account". Now chatbot can respond, "Okay, you want to create an account. What is your email?"
- Now if a user responds, "Why do you need my email?", then chatbot can response, "Sorry, I didn't understand that. What's your email?"
- If a user replies, "My email address is [email protected]", then chatbot identifies the value of the entity and responds, "Got it! Thanks for giving us your email address. Hold on a second, let me pull your information."
The rule-based chatbot uses regular expressions in order to match the pattern of the text. If the input text matches the existing pattern, then it can respond to the user correctly.
Self-Learning Chatbot
Self-learning chatbot uses a machine learning (ML) approach. It uses deep-learning to train itself. It is better than the rule-based chatbot.
Retrieval-Based Model
A retrieval-based chatbot can be built with the machine learning (ML) algorithm which uses data processing techniques such as natural language processing (NLP) to process the user input. So, the response accuracy depends on the existing training data and data processing algorithm. It can handle only predefined intents and entities. It can't handle unknown intents and entities. It is also known as ML-based chatbot.
Process Flow and Basic Components of ML Chatbot
- Natural language processing (NLP) converts human input text into structured data so that the machine can understand it. So, NLP performs the following tasks such as speech recognition, tokenization, parsing, and information extraction, etc.
- Natural language understanding (NLU) uses an algorithm to classify the intent (verb) and recognize the entity (noun or action content).
- Natural language generation (NLG) converts structured data of the machine into text so that humans can understand it.
For example, if a user types free input text, then the bot can identify the intent and entities to a set of predefined intents. Let's see the given chatbot below,
- If a user types "Hi, my email is [email protected] and I want to open an account.", then chatbot identifies the intents that are "greetings" and "create an account". Now chatbot can response, "Okay, you want to create an account and your email is [email protected]. Right?"
- If a user replies, "Yes", then chatbot identifies the value of the entity and responds, "Got it! Hold on a second, let me pull your information."
Text Classification Approaches for Solving NLP Problem
There are three text classification approaches to classify text such as,
- Pattern Matcher
- Algorithm
- Neural Network
Text Classification using Algorithm for NPL Problem
You can use a multinomial naive bayes algorithm to classify text.
ML Service Design using Pipe-and-Filter Architecture Pattern for Retrieval Chatbot
Framework Implementation using Pipe-and-Filter Architecture Pattern
Generative Model Chatbot
It is similar to the retrieval-based chatbot that can be built with the machine learning (ML) algorithm. But it can't only handle predefined intents and entities, but it can also handle unknown intents and entities. It is also known as AI-based chatbot. Since it is mimicking the human brain, you can use a recurrent neural network (RNN) and attention mechanisms for the NLP problem. RNN is one of the types of artificial neural networks. The attention mechanism is one of the input processing techniques for neural networks.
Types of Artificial Neural Networks for Solving NLP Problem
- Recurrent Neural Network
- Recursive Neural Network
- Sequence-to-Sequence Model
- Multilayer Perceptron
- Shallow Neural Network
- Long Short-Term Memory
- Convolutional Neural Network
Prerequisite Guides to Chatbot Development for Starters using .Net Framework
I'm guessing, you've already installed the visual studio 2019. If you need a machine learning graphical interface to generate the model, then open the visual studio setup file and select "ML.NET Model Builder" component as shown in the below image.
Now you need to install the following extensions from the Visual Studio extension:
Web Application Project Creation using Bot Framework
In the visual studio, click on the "Create a new project". If you want to see the bot templates, then choose "AI Bots" from the "Project types" and select your required template as shown in the below image.
Integrate ML.NET with Bot Project
Select the project from the Solution Explorer> click on the right button of the mouse> Add> Machine Learning as in the below image.
Taking a coffee break, we will come back soon with the implementation of the rule-based/ML-based chatbot using .NET Technology.