So this was an interesting problem that was posed to me. Take the following intent below.
This intent will try to detect where someone is asking to select results by criteria. Next up let’s create the entities based on the intents. I will be using the original method of creating entities. You end up with this.
So let’s test this out…
Oh dear! It is seeing “it” as “IT Department”. This is not good.
Thankfully Watson Assistant just recently got Contextual entities. The new engine is able to understand the nature of what the entity really means, as long as you annotate it.
So going into the intent again, I have selected each word and marked it up like so:
Now let’s test it again.
Now it understands that it is not the IT department. Let’s try again.
Woah!
It not only worked, but it created a new entity on the fly.
So once you teach it the patterns, it will capture the entities for you. This is currently on by default, but you should be able to toggle soon.
You still have to train it the different patterns you see. For example with the work I have done so far “Filter sales by marketing” will pick up marketing and sales. You would have to build an annotation to show what is the important term in that sentence.
Finally proper intelligence on your entities to augment your intents.
… Edit …
So someone asked what about “IT” as a department? That works too.