Handling multi-intent without labeling new intents eg (affirm + greet)

Hi this post is not a error post but more of a review post. I have implemented a method which can handle multi-intent without the need of adding new multi-label examples in training data.

This is how it works


Used input : hello. How are you doing ?

Step 1.

We split the sentence into [hello , how are you doing ?].

Step 2:

Use a model to predict intents for each statement

The assumption for this method to work well is that The input will always be properly punctuated.

With this approach I am able to handle 2 or more intents in any order.

I am not a pro. So I want to know from the community and limitations of this approach (Other then step 1)


Just so I understand, how did you implement this? Did you make your own tokeniser?

Thanks for responding. Yes I did I am not using rasa tokenizer. Why haven’t rasa done something like this with diet ?

Is it that this method is not optimal ?

@koaning form a custom action is it possible to return [SlotSet(“slot_name”,“val”), FollowupAction(“action_name”)]

I am not able to do this.

What happens is the follow-up action is called but the slot_name is not set and its in a form so the execution just stops in middle. No question is asked and requested_slot == ‘slot_name’

What I want to do is . set the slot , execute the another action using folloeupaction and then move to the next question in the form

So this case is like handling non - linear conversations

Is it that this method is not optimal?

What do you mean by “optimal” here? Optimal with regards to what goal?

form a custom action is it possible to return [SlotSet(“slot_name”,“val”), FollowupAction(“action_name”)]

This sounds like it’s a separate issue from the one in this thread. Could you expand on what you tried and expected in a new issue? It might help to share more code from the custom action for the new ticket.

Ya sure. So now that I have the multiple intents I need to call multiple actions right

Like say I have custom actions for all intents.

User utterance. : I am 19 years old. [What’s the weather like ?] (Chitchat)

Then now I need to call action for inform and also action for chitchat.

Or set a slot like age and call another action this case I am facing a issue

Hello @Bob1 , I am very intrested in your dynamic multi-intent solution that I find better than the static solution of creating an intent that regroups two different ones. Could you share the code please. I don’t know how to do a custom tokenizer :frowning: Thanks in advance,