Differentiating between "Do you have [entity]" intents

I’m currently working on a restaurant bot which will handle questions such as:

Do you have wifi?

Do you have pizza?

Currently I have two intents handling these questions:

Menu

Ammenities

As one can expect, I’m having issues differentiating between these two intents. The only solution is to include as many amenities as possible in the training data to ensure a match, however this obviously isn’t ideal.

What is the best way to go about this problem? I’ve seen some examples with a single inform intent, however I’m not sure how this could work without having to manually define the logic behind this in the actions.

Thanks in advance.

Hello @danielgauci,

The problem is, with this kind of situation, it is almost impossible to train the bot to recognize both intent correctly (I think). If your training data is like above, you can see that they are almost identical, the ONLY thing that is different is the entity, so naturally the bot will only use the words that dictate menu or amenities to predict intent.

Think about it like this, the part ‘do you have’ is basically useless, even for humans. If I ask you “do you have ?”, you wouldn’t know what I want to ask either. That’s why the bot can only rely on the menu and amenities you defined in the training data.

Hope that clear up something :D.

Thanks @fuih. Do you have any suggestions on what would be the best way to tackle this?

Would the only option be to create a generic “Do you have” intent and then perform some sort of elastic search on the database within the actions server to determine if the user is requesting an amenity (WiFi) or a menu item (pizza)?