NLU训练和Core训练
准备好刚才那些东西,其实Rasa就可以训练了。并且因为我们把NLU里的意图识别和命名实体识别都放在bert里,其实Rasa的训练,主要就是Core的部分,也就是对话过程管理。
各种Policy就是为了让对话过程符合我们的要求。
我们用到的:
- Mapping Policy
- Fallback Policy
Mapping Policy
这就是QA对话过程的简单特点,一问一答,一个意图对应一个回答或者动作。这种场景下,我们就用mapping策略。直接在domain文件中进行配置。
- query_garbage:
triggers: action_garbage
- query_weather:
triggers: action_weather
- query_todo:
triggers: action_query_todo
意图是查询天气,就直接调用天气动作~~~~
Fallback Policy
对于我们没有设计的意图,识别不出来的意图,直接扔给闲聊
题外话
Policies
Rasa的policy是可以支撑很复杂的对话过程的,比如多轮对话,意图切换等等
根据编写的对话训练数据,可以简单使用memoization Policy进行严格的记忆对话过程,也可以使用keras/embedding等使用神经网络进行对话过程的特征提取进行预测,特征会包括上下文的对话意图、对话过程中的命名实体等。
还有我们会常用的Form Policy,这个我会在后面详细说,因为比如网上常见的订机票、订酒店等等场景,都需要这个策略的支撑。
训练过程
python -m rasa train --augmentation 0
一条命令就可以完成训练过程,自动使用当前目录下的标准配置文件、数据文件、domain文件等等
生成的模型文件在models下面
总用量 6904
-rw-r--r--. 1 wrd wrd 2354426 3月 19 15:30 20200319-065547.tar.gz
-rw-r--r--. 1 wrd wrd 2357378 3月 19 15:30 20200319-072940.tar.gz
-rw-r--r--. 1 wrd wrd 2352932 7月 29 17:24 20200729-092428.tar.gz