If you are reading this article it means that you have already worked on the platform and want to make your Bot more efficient in detecting your clients needs when talking to the Bot.
If you don't know what a NLP Engine is or are unfamiliar with Intents please refer to Timothée's article right here.
For starters here are a few basic principles 👩🏫
- Semantic diversity
- Balanced number of intent formulations
- Use entities for endless variations of intentions
How to write good intent phrases ? 💡
How many formulations per intents?
It's important to have a balanced number of formulations per intents. A minimum of 5 or 6 formulations is required per intent but you can add as many as you like as long as all the intents have a balanced number of phrases in each of them ⚖️
Don't forget that the Bot learns what you feed him, so the more you will give it intent formulations, and the more he will be precise.
Don't forget: If two intents are similar and one has more intent formulations than the other the engine will promote the answer of the intent with the most formulations.
The same goes in the way you write your intent formulations, if you use a certain type of wording, try and repeat the wording in all the intent phrases you think it would be used.
Here is an example with two intents :
I want to be reimbursed
I would like to be reimbursed
How can I be reimbursed
Closing account intent
I want to close my account
I would like to close my account
How can I close my account
Should I train the bot with short or long phrases ?
Well it depends on what are the type of phrases your user's use if you think your user's will use short phrases try short phrases. If they use long phrases try long phrases 😉
📯 Note : The bot will only understand one intent per phrase. He won't understand "I want to be reimbursed, close my account and a nice cup of hot chocolate with vanilla chantilly please".
What about spelling mistakes ?
The NLP should be able to manage minor spelling mistakes.
The Clustaar platform handles a few languages, queries are sent to the NLP engine without accents nor upper and lower cases, so it is not necessary to write the same wording by varying them. It is the same for feminine/masculine and singular/plural words.
How does the priority of intentions work? 📈
Priority always outweighs matching probabilities when recognizing intentions.
When an intent is detected, the most likely intention is always matched unless an intention has a higher priority.
Imagine we have two intentions:
"You're super nice" with normal priority and matching method in NLP.
"Nice" with high priority and matching method in Contains.
If the user says "you're super nice", the second intention will take over the first one. Whereas if both intentions have the same priority, the first intent will match.
What you can do when creating a bot is set the smalltalk (i.e hello, yes, no) priority level to low. Those are formulations that, even if they are present in the sentence, must pass after others.
"Hello you, I would like to change my password"
We want to be sure that it will always be the "password forgotten" intent that will be chosen and never the "hello" intent. This can be secured by setting a lower priority on "hello".
How to use entities? 💬
If you don't know what are entities please refer yourself to Timothée's article right here.
Entities have a great purpose : They avoid writing exactly the same sentence with an important word that changes to describe the same concept.
@payment_option: payment option, payment method, credit card, cc, debit card, card, cash
@change: change, update, switch, modify, edit
I want to @change my @payment_option
how do I @change @payment_option
I'd like to @change my @payement_option
Can I @change my @payment_option
How to @change my @payment_option
Is there a way to @change my @payment_option
🎁 Bonus Tip 🎁
You can use use the "Analyze" function on the top right of the Clustaar WebChat Stream in the platform to see your intent scoring :