I am working on something similar to emotion recognition, and part of my process is asking the user for a story of their day, from which I will then analyse different components such as how angry they are, how sad, how afraid they are, etc.
The problem that I run into is handling negations. I had made my intents with only positive examples, but that unfortunately means that a sentence like “I am not happy” is classed as very high confidence happy, as the sentence looks too similar. The suggestions I found on the forum would be to add negative examples of the other intents to the intent, so for instance add the sentence “I am not happy” to the sad intent, however, this doesn’t really work as my categories are not mutually exclusive. I can be happy and afraid at the same time, or afraid and sad, or a mix of happy and sad. As a result, I cannot conclude that just because it says “I am not happy” that therefore I am sad, as it can just as well be angry or afraid.
One solution could be adding the “I am not happy” to ALL the other intents that aren’t happy, but that would also not really work as the intents overlap.
My ideal situation would be to use only positive examples for the different intents, and then getting a list of confidence scores for them and selecting the intents that match if they’re above a certain threshold. The main reason why this doesn’t work right now is because the negations are not being classified correctly, and so the only solution I can see now is writing a script which makes an intent for every possible combinations of intents, which of course increases exponentially, and since I have somewhere between 7-14 of these intents… That can become a problem.
In conclusion: I’m looking for a better way to handle negations before intent classification, or I’m looking for a way to handle multiple non mutually exclusive intents. If anyone could help me with that, that’d be great!