Intent classification with similar examples in nlu.md

Hello Everyone, I am developing chatbot using Rasa for a Contract Manager Organisation. I am facing few issues and after reading a lot on the forums and Rasa blog, I am unable to conclude to a solution for this. I have several similar intents with similar examples like :- [1]- “inform_supplier_start_date” and “inform_contract_start_date” . [2]-“inform_supplier_email” and “inform_customer_email” and “inform_reviewer_email”

Now the issue is, for both the categories of intents the example sentence in nlu.md is same. What I exactly mean is-

##intent:inform_suppler_start_date
1)what is the supplier  [Microsoft] (supplier_name) start date
2)[EON Digital] (supplier_name) start date
##intent:inform_contract_start
1) start-date of [O2 Mobile phones] (contract_name) 
2) [O2 Mobile phones] (contract_name) start date

The model isnt able to differentiate and identify the correct intent. It is getting confused and identifying the wrong intent, since the words in these intents are similar.

I need correct intents to be recognised ,so that accordingly, In custom action i can query the Database and get the corresponding result for supplier and contract.

I have many fields like this for which the example data and user queries will be same. For Example-

  1. customer_email & supplier_email & reviewer_email
  2. total_spend_contract & total_spend_supplier & total_spend_customer
  3. contract_number_for_supplier & contract_number_of_contract & contract_number_organisation

What exactly I should be doing to get correct classification. One solution i am thinking of is merging the intents like “supplier_start_date” and “contract_start_date” as one “start_date” and check for the extracted entity inside custom actions in both supplier and contract database. But I dont think that would be proper usage of Natural Language.

Please Suggest, I shall be highly greatful for the same. Regards.

The solution you suggested sounds about right - merge intents with similar example sentences, and use Slots (set by entity extraction) to affect the flow of the dialogue, or use the slot info directly in your action to query the data base.

1 Like