So another tricky (and often a pain) with intelligent chat bots is the detection of negation. For example:
Please remove all arugula from my prosciutto Pizza
Knowing what is not wanted in that question is normally quite hard. Contextual entities to the rescue again!
Somewhat different to the previous example, you not only need to train it the toppings but also what are not toppings. So we start off by creating a toppings entity.
We now export that entity, change the CSV File so the entity name is @notoppings, then import it back in.
Next we create our intent #Order_Pizza and annotate what is and isn’t a topping. The reason for this is to prevent it trying to guess a topping that isn’t annotated.
So let’s test our question from earlier. You will notice that I did not add the mentioned ingredients. Nor did I have an example matching how the request is structured.
Pretty cool! 🙂
Although this worked quite well, I could see you are likely to require a couple of similar negation examples so that the contextual entities can train better. I wouldn’t say it is much work, but it is probably something you need to test a bit more to ensure you don’t have edge cases.