Let’s say I have a bot that answers questions regarding restaurants based on cuisine specified by the user. In some cases, it is possible that the user can specify multiple cuisines. Here are some examples -
- What is the average cost of a meal at a Mexican or a Mediterranean restaurant in SF?
- Which is the nearest Italian restaurant to Coit Tower?
- Are there any restaurants that serve both Mediterranean and Moroccan food in SoMa?
- Could you suggest where I can go for lunch? I love Japanese, Vietnamese and Indian food.
Let’s also say that I’ve defined an entity preferredCuisine
as a list in my domain.
How do I annotate the above examples so that -
preferredCuisine:["mexican", "mediterranean"]
-
preferredCuisine:["italian"]
- this one’s straightforward preferredCuisine:["mediterranean","moroccan"]
preferredCuisine:["japanese","vietnamese","indian"]
I tried annotating each cuisine individually like in the example below as preferredCuisine so it seemed to append each additional cuisine into the list. Is there a problem if I annotate this way?
Are there any restaurants that serve both [Mediterranean](preferredCuisine) and [Moroccan](preferredCuisine) food in SoMa?
Another nuance that I was hoping to extract from the training example (for later) is combinational logic like “and”/“or”. For example, in example 1 and 4 above, the user is looking for a restaurant that satisfies any of the condition on the cuisine while in example 3, the user is looking for a restaurant that satisfied BOTH cuisine conditions. My hunch is that I should use a different intent altogether for such utterances, but I wasn’t sure if there was a better way to do so in Rasa within the same intent.
Thanks in advance for your help!