I have about 2000 examples for around 40 intents, and they are generally working fine. Additionally I want to add a separate intent (an intent for using a general search engine) which is triggered when a certain keyword appears. I.e. I want my chatbot to work as usual with its robust NLU, but to be overriden if it recognizes a certain fixed pattern, and recognize all that follows this keyword as entities.
This pattern is:
wyszukaj [keywords for the query](keywords)
I’m not sure how to proceed, because this is supposed to be a keyword, I cannot add much variation, and I am also not sure how to provide the examples of keywords, since they are supposed to be general (and thus can overlap with entities from other examples). Perhaps I should add a custom component?
To use this add the KeywordIntentClassifier to your pipeline after your main classifier, all intent examples will then be treated as keywords for their corresponding intents and if they are found in a message will result in the message automatically being classified as having that intent.
Depends what you mean by dangerous. The KeywordIntentClassifier classifies a message if it found a keyword, putting it in the pipeline after another classifier would result in messages containing a keyword being classified based on keyword and the rest as normal.
Edit: Would you mind sharing your solution? I’d be interested to know what you did
In the end this custom component works better, as it imposes more rigid constraints (working by a regex which requires a certain ordering of the words, and also does automatic extraction of the search phrase).
By the feature being handy, I meant the possibility of adding custom components.
Hello @ryszardtuora, sorry to reactivate old topic, but I’m wondering since I probably need to do the same as you, having pattern classifier intent together with normal ML intent classification. How does the intent class priority go if you use pattern classification together machine learning classifier?