System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及机器学习,特别是涉及一种用于意图检测和语义槽填空的模型训练方法、系统以及一种意图检测和语义槽填空方法、系统。
技术介绍
1、意图检测和语义槽填空是自然语言理解中重要的一部分,对于以任务为导向的对话系统更是必不可少。例如,“我想买一张a地到b地的机票”,意图检测在句子层面识别到意图是“买机票”,语义槽填空在单词层面找到出发地和目的地分别是“a地”和“b地”。
2、在早期研究中,意图检测和语义槽填空被当成两个独立的任务,其中意图检测被当作分类任务,语义槽填空被当作序列标注任务。但是,一些实验研究表明,由于这两个任务之间具有一定的相关性,联合训练可以让两个任务的表现相互促进,达到更好的效果,例如joint-bert模型。joint-bert模型以bert模型为基础,bert模型的[cls]作为意图检测分类,其它的隐层输出输入到softmax层,最后输出语义槽填空标注结果。joint-bert模型效果突出但是体积过大,在实际应用中不够理想。
技术实现思路
1、鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种用于意图检测和语义槽填空的模型训练方法、系统以及一种意图检测和语义槽填空方法、系统。
2、为了解决上述问题,根据本专利技术实施例的第一方面,公开了一种用于意图检测和语义槽填空的模型训练方法,所述方法包括:
3、获取预训练数据集和训练数据集;
4、根据所述预训练数据集训练convert
5、基于训练完毕的convert模型搭建iter-convert模型;
6、生成所述iter-convert模型的联合交叉熵损失函数,所述联合交叉熵损失函数包含意图检测损失函数和语义槽填空损失函数;
7、根据所述训练数据集和所述联合交叉熵损失函数对所述iter-convert模型进行训练,直至满足收敛条件。
8、可选地,所述获取预训练数据集和训练数据集,包括:
9、获取单轮对话的所述预训练数据集和所述训练数据集;
10、其中,所述预训练数据集包含预训练输入语句和回答语句;所述训练数据集包含训练输入语句、意图标签和语义槽标签。
11、可选地,所述根据所述预训练数据集训练convert模型,包括:
12、根据单轮对话的所述预训练数据集对所述convert模型进行训练;
13、其中,所述convert模型基于transformer模型,并且通过多个注意力层进行搭建;在所述convert模型的训练过程中,利用前馈神经网络计算所述预训练输入语句与所述回答语句的相似度;所述convert模型的多个注意力层的输出作为所述预训练输入语句的向量表征。
14、可选地,所述基于训练完毕的convert模型搭建iter-convert模型,包括:
15、将所述训练输入语句输入训练完毕的convert模型输出嵌入编码;
16、将所述嵌入编码依次进行意图检测处理和语义槽填空处理两次迭代处理,得到所述iter-convert模型的意图检测分类结果和语义槽填空标注结果。
17、可选地,所述将所述嵌入编码依次进行意图检测和语义槽填空两次迭代处理,得到所述iter-convert模型的意图检测分类结果和语义槽填空标注结果,包括:
18、对所述嵌入编码进行意图检测处理得到第一意图检测结果;
19、对所述第一意图检测结果进行语义槽填空处理得到第一语义槽填空结果;
20、对所述第一语义槽填空结果和所述嵌入编码进行意图检测处理得到第二意图检测结果;
21、对所述第二意图检测结果进行语义槽填空处理得到第二语义槽填空结果;
22、将所述第二意图检测结果输入所述iter-convert模型的前馈神经网络输出所述iter-convert模型的意图检测分类结果;
23、将所述第二语义槽填空结果输入所述iter-convert模型的前馈神经网络输出所述iter-convert模型的语义槽填空标注结果。
24、可选地,所述iter-convert模型的联合交叉熵损失函数为:
25、
26、其中,ljoint为联合交叉熵损失函数,ni为意图分类的数量,为意图检测分类结果,为真实意图分类结果,l为预训练输入语句的长度,ns为语义槽类型的数量,为语义槽填空标注结果,为语义槽真实标签。
27、可选地,所述根据所述训练数据集和所述联合交叉熵损失函数对所述iter-convert模型进行训练,直至满足收敛条件,包括:
28、根据所述训练数据集和所述联合交叉熵损失函数对所述iter-convert模型进行训练,直至所述联合交叉熵损失函数的数值不再下降。
29、根据本专利技术实施例的第二方面,还公开了一种意图检测和语义槽填空方法,所述方法包括:
30、获取待预测的语句数据;
31、将所述语句数据输入根据第一方面所述的方法训练得到的模型,输出所述语句数据的意图检测分类结果和语义槽填空标注结果。
32、根据本专利技术实施例的第三方面,还公开了一种用于意图检测和语义槽填空的模型训练系统,所述系统包括:
33、数据集获取模块,用于获取预训练数据集和训练数据集;
34、模型预训练模块,用于根据所述预训练数据集训练convert模型;
35、模型搭建模块,用于基于训练完毕的convert模型搭建iter-convert模型;
36、损失函数计算模块,用于生成所述iter-convert模型的联合交叉熵损失函数,所述联合交叉熵损失函数包含意图检测损失函数和语义槽填空损失函数;
37、模型训练模块,用于根据所述训练数据集和所述联合交叉熵损失函数对所述iter-convert模型进行训练,直至满足收敛条件。
38、可选地,所述数据集获取模块,用于获取单轮对话的所述预训练数据集和所述训练数据集;
39、其中,所述预训练数据集包含预训练输入语句和回答语句;所述训练数据集包含训练输入语句、意图标签和语义槽标签。
40、可选地,所述模型预训练模块,用于根据单轮对话的所述预训练数据集对所述convert模型进行训练;
41、其中,所述convert模型基于transformer模型,并且通过多个注意力层进行搭建;在所述convert模型的训练过程中,利用前馈神经网络计算所述预训练输入语句与所述回答语句的相似度;所述convert模型的多个注意力层的输出作为所述预训练输入语句的向量表征。
42、可选地,所述模型搭建模块,包括:
43、输入输出模块,用于将所述训练输入语句输入训练完毕的convert模型输出嵌入编码;
44、迭代处理模块,用于将所述嵌入编码依次进行意图检测处理和本文档来自技高网...
【技术保护点】
1.一种用于意图检测和语义槽填空的模型训练方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取预训练数据集和训练数据集,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述预训练数据集训练conveRT模型,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于训练完毕的conveRT模型搭建Iter-conveRT模型,包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述嵌入编码依次进行意图检测和语义槽填空两次迭代处理,得到所述Iter-conveRT模型的意图检测分类结果和语义槽填空标注结果,包括:
6.根据权利要求1所述的方法,其特征在于,所述Iter-conveRT模型的联合交叉熵损失函数为:
7.根据权利要求1所述的方法,其特征在于,所述根据所述训练数据集和所述联合交叉熵损失函数对所述Iter-conveRT模型进行训练,直至满足收敛条件,包括:
8.一种意图检测和语义槽填空方法,其特征在于,所述方法包括:
9.一种用于意
10.一种意图检测和语义槽填空系统,其特征在于,所述系统包括:
...【技术特征摘要】
1.一种用于意图检测和语义槽填空的模型训练方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取预训练数据集和训练数据集,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述预训练数据集训练convert模型,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于训练完毕的convert模型搭建iter-convert模型,包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述嵌入编码依次进行意图检测和语义槽填空两次迭代处理,得到所述iter-convert模型的...
【专利技术属性】
技术研发人员:刘桐,
申请(专利权)人:及云香港科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。