In this post, you are going to learn about chatbot intents, how it is used in the chatbot development process, and considerations when creating intents along with entities.
The terminology inside of the chatbot and conversational design industry can be overwhelming to understand initially when trying to learn about chatbot intents and entities. In this post, I’m going to talk about what a chatbot intent is and how you can use it to create an effective chatbot.
What is an intent in chatbot design and development?
An intent is the goal that the chatbot user has in mind when typing in a question or comment (known as an utterance) inside of the dialogue flow. WIthin a chatbot, an entity is the modifier or the lower level description of the intent.
In other terms, an intent represents the task or action that the chatbot user wants to perform. The primary purpose of an entity is to extract the data from the utterance in order to help boost the prediction of the intent.
All About Chatbot Intents
Intents are comprised of multiple permutations of a user requests or statements that are grouped together with the intention of performing the same action or task. These are known as utterances.
An intent is generally created and named by the bot development team by compiling a grouping of utterances for a particular action or tasks.
Generally, if a chatbot is robust, it will include a large set of intents (tasks or actions it can do) with each intent having multiple utterances.
For most chabot developing teams, each chatbot will have a collection of intents that reside in a training corpus. The training corpus of intents are all of the utterances, phrases, and intents that were created for the chatbot.
In order for a chatbot to be good at the ability to parse what task or response a user is intending, it needs to have a good data set of utterances to train intents on as well as ensuring that it takes advantage of re-learning in order to continuously improve the modeling data.
Knowing the difference between an intent, entity, and utterance will allow you to discern what it is the user is looking for. The goal is to deliver the user what they desired from the utterance they provided.
Related Terms to Intents
To ensure that you are aware of other terms that are often mentioned with intents, I wanted to take time to explain some of the most common ones.
Utterance: This is what the user says. This helps the bot drive to what the intent is.
Intent: An intent is the task, action, or response that the user wanted to do.
Entity: This helps clarify and modify the intent further.
Natural Language Processing (NLP): This is the science of extracting the intent from the utterances. In the marketplace today, there are service platforms that are purely dedicated to serving up intent and entity extracting which makes intent and entity designing a breeze.
Examples of Chatbot Intents
For each of the below intents, I’m going to share with you the utterances that would classify under each of those intents as well as the entities.
In this example, let’s say you want to create a chatbot for ordering pizzas.
Intent #1: OrderFood
- Order a cheese pizza
- I need breadsticks
- Add a drink to my order
Intent #2: Greeting
- Hey there
Intent #3: CheckOrder
- What’s my order status?
- When will my pizza be delivered?
- Show me my order
Intent #4: None
- Find me a dog.
- What’s your sign?
Common Intents for Chatbots
There are common intents that most chatbots should include in order to add skills abilities for a chatbot.
For your own chatbot, you can determine the types of utterances that would be mapped to each of these entities.
In my experience, I’ve found that different audiences use different language and vernacular to express similar intents differently across bots.
In order to ensure that your chatbot intents are not being missed in conversation, ensure that you are reviewing the conversation logs often, extracting inputs from users and adding it and ensuring that you are training your bot with entities and utterances for those intents.
What is a none intent?
A none intent is used by certain chatbot platforms that refer to a fallback intent. The purpose of a fall back intent is used to teach the natural language model utterances that the chatbot does not support.
The Best Practice for Building an Intent
To ensure that your chatbot can map the intents to what the user is asking, and thereby respond correctly, there are some best practices to ensure that you are training the chatbot in the best way possible.
Iterative and Batch Testing Intents
Using some phrases during batch testing will allow you to identify which utterances and intent combinations are resolving the way that you had expected. It’s an iterative approach to testing intents that will allow you to incrementally succeed in resolving dialogue.
Large List of Utterances
Having a large and varied set of utterances increases your chatbot’s ability to resolve intents accurately. Talk to your potential users of the chatbot to understand what languages they are using, how they ask questions, and use the exact vernacular they are using in order to add to the list of utterances for each intent.
Balanced List of Intents
Ensuring that each intent has the same number of utterances across the testing corpus will allow for more accuracy in resolving the intent. However, the more you feed the machine with utterances across all intents, the more the chatbot can use the intents to be more precise.
If you are starting with a new bot, a good guideline is having at minimum 5 and at the most optimum 10 utterances per intent in order to have a good foundation going.
While it may appear that having a large list of utterances increases a chatbot’s effectiveness to provide a response, the most important part of creating intents for a chatbot is having intents that are distinct and clear from one another. Having intents with very similar utterances across intents may cause the chatbot to fail far worse than one with a longer list of utterances.
Avoiding Short Utterances
Avoiding single words or sentence fragments can help the model be trained on better phrases in order to resolve the intent.
Opposing Intents with Parallel Utterances
If you have opposing intents, create parallel phrases. In the pizza example, you can have an intent called OrderPizza and another intent called CancelPizza so that there is contrast in what needs to be done.
Priority of Intents
Having your language understanding model align with an intent priority will allow you to control the intent detection. If you know that your chatbot has an adoption rate that is very much higher than another skill or task, you should set priority to the most used skill so that the detection rate is more successful for that skill because you know that’s what the user wanted most of the time.
Having a feedback loop for training and re-training will be important for ensuring that your chatbot is delivering the experience your user is looking for.
An intent allows your chatbot to understand what the user wants to do, allow it to categorize the user request by the actions and tasks that the chatbot can perform.
Having a shared vocabulary and mutual understanding of terms help to ensure that those that are in the field of chatbot innovation can learn and grow from one another.
They key for a chatbot to understanding humans is the ability to understand the human’s intentions and extracting the relevant information from it so that the chatbot can do, pull back, or provide the information the user is looking for.