如何训练聊天机器人的意图 - 基于用例的训练或“合并意图,拆分实体”?

问题描述

我正在尝试通过 opennlp 构建一个聊天机器人。我使用 OpenNLP 文档分类器作为意图分类器。
我正在基于用例进行培训,(类似于 Google DialogFlow https://cloud.google.com/dialogflow/es/docs/best-practices#intent-naming

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 …

但是,我公司的一位 NLP 专家告诉我,有一种培训最佳实践可以提高准确性“合并意图,拆分实体。”(https://blog.rasa.com/10-best-practices-for-designing-nlu-training-data/)。因此,最好这样训练:

create  Could you please create a goal
create  help me generate a goal
create  Can you create an award
create  create a leave request
…

然后我需要像这样添加一个带有 if-else 的层:

If intent==’create’ and entity==’goal’: do create_goal
If intent==’create’ and entity==’leaverequest’: do create_leaverequest
…

我认为这不是直截了当的,很难训练并且需要复杂的 if-else。

“合并意图,拆分实体”的最佳实践是否适用于所有 NLP 引擎?是否有任何例外,例如:Opennlp?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)