Hi all,

I am trying to build a chatbot via opennlp. I am using The OpenNLP Document 
Categorizer as intent classifier.
I am training like this, (similar to Google DialogFlow 
https://cloud.google.com/dialogflow/es/docs/best-practices#intent-naming)
goal.create could you please create a goal
goal.create help me generate a goal
goal.create I would like to add a goal
…….
award.create I’d like to give an award to Tim
award.create Can you create an award
…
leaverequest.create …
leaverequest.create …

However,  an NLP expert from my company told me, there is a training best 
practice for better accuracy “Merge on intents, split on 
entities.”(https://blog.rasa.com/10-best-practices-for-designing-nlu-training-data/).
 Thus, it is better to train like this:
create  could you please create a goal
create  help me generate a goal
create  Can you create an award
create  create a leave request
…..
Then I need to add a layer with if-else like this:
If intent==’create’ and entity==’goal’: do create_goal
If intent==’create’ and entity==’leaverequest’: do create_leaverequest
….
I think this is not straight forward, hard to train and requires complex 
if-else.

Is this best practice “Merge on intents, split on entities” applicable to all 
NLP engine?  Is there any exception, e.g: Opennlp?
I am looking forward to you replies.

Thanks,
Joyce

Reply via email to