Multiple intents or single intents with multiple entities?


Can someone advise on the following issue. My bot needs to be able to schedule a day off and schedule meetings and i was wondering what the best pratice would be. As both actions are very closely related in terms of NLU training data. examples:

I would like to schedule a meeting & I would like to schedule a holiday.

Both intents mainly use the same word/sentences, but scheduling a meeting will require a roomnumber or phonenumber and scheduling a holiday will require a name or service.

What would be better for the bot? Mutliple intents (schedule_meeting and schedule_holiday) or single intent (schedule) with entities such as roomnumber, phonenumber etc. And use the entity “service” (which defines if its a holiday or a meeting you want to schedule) to determine which entities should be filled to complete the action?

Many thanks.


you have to look at it from two perspective

NLU and Dialogue

In your example The understanding from a machine is scheduling.

However the dialogue understand the difference between scheduling a meeting or scheduling a holiday.

Also keep in mind, your goal is to identify the intent and as far as I am concerned, I never schedule a holiday, I plan it which is different than scheduling

This is a notable difference. Verbs matter

Keep the NLU simplified and the intents quite different from each other to improve the understanding, use entities which are a subset of slots in Rasa Core as a driver of the conversation.

Hi Souvik, thank you for your response.

Very clear explination. And I Agree that you plan a holiday, but my end users have been testing and using the verbs “Schedule/Plan/Create/Add” for both intents. My end users are both Dutch and English, so the both is in English. My guess is that the non native english speakers (such as myself) use schedule and planning as the same word.

As i don’t want to provide a manual to the end users on which verbs they can use to schedule or plan, I raised the question.

Would you recommend 2 intents or single intents and an entity in this situation?

The point wasn’t on what verb to use for that particular example. my point was to simplify your Intent classification. If your users don’t make a difference between schedule and plan, then you don’t need to worry about that but what you should take care of is how to find the right intention of the user and intent is highly linked to the verb of a sentence

Hence in your case - scheduling is your verb so you should have one intent.

You can use the entities holidays/meeting to drive the conversation

I take the same example in my domain

  • Open a bank account as a non-customer vs Open a bank account as a customer. It is clear that their intention is to open an account but the follow up questions from the bot is driven by who they are which is an entity .
1 Like

Awesome! Will get right to it :smile:

How do you handle in practice diferent spelling and “custom-specific” phrases for entities like custom compounds of words? Customers are describung mostly not their wish in formal entities, they might use diferent words. Like for your case. If I am a user I would not write non-customer. Do you really use entities for this? )I suppose you ask afterwards per buttons with the right entities? Do you use some fuzzy matching for entity matching or just collect all different wordforms?

Ideally entity-synonyms , fuzzy matching though I am not familiar how it works with Rasa.