I am creating a chabot for the restaurant search and I have created the data to be trained in JSON format. for city entity I have created a lookup table. E.g.
intent:restaurant_search
show me a mexican place in the delhi
for cusine and cities I have created the lookup table.
when I test model using text:
show me a mexican place in the delhi then it works fine. But when I test model with different cusine like italian and other city like mumbai. it does not extract the entities.
Can you please help me where I have made a mistake?
the lookup tables are just a “help” for the algorithm to find entities. If this intent and the provided sample are “all” you feeded your bot to train, this might not be enough.
Derived from your sample: Have you thought about using e.g. spacy to auto-extract / map your slot with the predefined entity “LOC” ? That possibly might be easier…
You should keep the note from the documentation in mind
Note:
For lookup tables to be effective, there must be a few examples of matches in your training data. Otherwise the model will not learn to use the lookup table match features.
If a word is in a lookup table or not, is just another feature for our NER. So, you should have a couple of training examples that contain cities from your lookup tables. Otherwise, the NER cannot learn, that the lookup table feature is important to mark a word as city. Does that help?