Hello everybody,
I’m working on my Rasa bot since approximately two weeks, and there is a problem I still haven’t figured out. How to extract entities from an intent without providing a huge lookup table ?
My goal is to extract entities without really knowing them precisely before the user input based on a sentence pattern.
Here is an example of a potential user input :
I’m looking for an article about basketball
I want to recognize the intent “search” and the entity basketball.
To that end, I created training data following this form :
{
"text": "I'm looking for an article about basketball",
"intent": "search",
"entities": [
{
"start": 33,
"end": 43,
"value": "basketball",
"entity": "search_term"
}
]
}
And my stories look like that (here’s a sample) :
* search{"search_term": "basketball"}
- slot{"search_term": "basketball"}
- utter_give_article
Thus, I don’t know how to train my bot to recognize the intents following the same pattern ? If the user input is
I’m looking for an article about rock’n’roll
I would like to retrieve “rock’n’roll” as a “search_term” intent. Currently, the intent is correctly guessed but the entity is rarely extracted if it isn’t textually in the training data set. I don’t want to have an infinite number of training data and of stories containing each existing potential search word.
As it is complicated to predict all the potential entites from the user, I can’t create a lookup table for the “search_term” entity (or else, it would be the entire dictionnary…)
Thanks a lot for your help
TBX