Too Many Intents? Data Mapping to Intents

The data we are using holds MANY user utterances which map to a certain product with which they are having an issue. Would it be a good idea to have all of these products be intents with the data held within mapping to them, or would it be better to keep the products as entities with an issue intent?

Without knowing the exact details, I think you should go for the latter.

Assuming you have:

  • A finite / small number of known products (I guess you don’t have millions of products unless you’re a shop?)
  • The sentence structure is always the same (e.g. across products, the sentence structure may always be "I have an issue with ").
  • Same dialogue flow (e.g. user mentions problem -> you apologize -> you refer him to some complaint form)

In that case, it would be very easy for Rasa Core to pickup your dialogue flows and can easily learn a few variants of the flow instead of having to learn to distinguish the MANY user utterances.

At the same time, you could just provide the most common utterance structures with some sample products and provide an extensive list of products using the lookup tables feature.

For example, check this out: Entity extraction with the new lookup table feature in Rasa NLU

I’m not an expert on this, but that’s how I would do it. If there’s an expert around, I’d appreciate your input as well :slight_smile:

Does that help you?

1 Like