I have created a dialog task with intent name “Get weather report”, haven’t added any pattern yet. What I am noticing that all the below utterances matches this intent name, this is not the expected behavior I am looking for, is there any way to stop this and match intent only when the meaning matches.
- xxx weather
- xxx report
We have analyzed the scenario.
Ideally, the nouns and verbs in the Intent name are considered for identifying the intent.
Hence, the words “weather” , “report” and combinations related to weather & report are considered to be default utterances in identifying the Intent name by the NLP engine.
To avoid that, you can use the “Negative patterns” feature.
In the “Natural language” >> “Training” >> Advanced settings >> Enable Negative Patterns.
Now, you will be able to observe a “Negative pattern” option in Training left-nav options.
You can provide negative patterns for the respective intent.
In this case, to avoid detecting the intent for the words “weather” and “report”,
please add “~weather” and “~report” in the negative patterns for that intent.
Train the bot.
Please refer the following link for further information:
Also, for the words like “get”, “for” or to generalize, the irregular verbs, prepositions in the intent name should be ignored and cannot be considered as utterances to recognize the intent.
As of now, we observe that “for” is being exempted as utterance whereas “get” is still considered. We are discussing this with our engineering team.
We will post further updates soon.
Thank you for your response.
I do understand that nouns and verbs from intent name are considered to be default utterances. However sometimes just one word from the intent name should not be enough to identify the intent from user’s utterances. Also not sure how “xxx weather” and “xxx report” are being resolved as the intent, this should not be.
On the other hand, if we use “weather” and “report” as negative patterns then when these words are used within a sentence that would be ignored, which will defeat the whole purpose. What would be the resolution to use those words in a meaningful sentence vs bad sentence like “xxx wather”?
Can you please help with more clarification on the above scenarios.
We will discuss this with our team and will update you soon.
What you are seeing is default behavior with the task name.
The platform only knows about the tasks that you have defined and therefore if there is only a simple match against nouns in a task name then the platform assumes that is the intention because it doesn’t have anything else to go on.
Matching on single verbs doesn’t trigger that behavior because verbs are more general.
Nowadays we generally recommend not relying on task name for intent matching because of these incidental matches - it is handy for quick testing, but with a larger audience then they can be problematic.
In the current version, 7.0, then the only way to disable this type of task name matching and rely on other training (ML and/or patterns) is to remove the spaces between the words, i.e. the task name is not a word that a user would ever say. There is a feature coming in the next version where there is a UI toggle to do this and so you can leave the task names as natural words.