一种中文对话语义角色标注方法及系统

文档序号:30417520发布日期:2022-06-15 11:55阅读:106来源:国知局
一种中文对话语义角色标注方法及系统

1.本发明涉及自然语言处理技术领域,尤其涉及一种中文对话语义角色标注方法及系统。


背景技术:

2.自然语言分析技术大致分为三个层面:词法分析、句法分析和语义分析。语义角色标注(semantic role labeling,下文简称srl)是实现浅层语义分析的一种方式,srl以句子的谓词为中心,不对句子所包含的语义信息进行深入分析,只分析句子中各成分与谓词之间的关系,即句子的谓词-论元结构,并用语义角色来描述这些结构关系,是许多自然语言理解任务(如信息抽取,篇章分析,深度问答等)的一个重要中间步骤,随着深度学习技术的日趋发展,许多学者也开始对深度srl进行研究,但基于传统的算法或者模型来实现srl任务都存在巨大的训练代价或者模型显存占用过高等问题。


技术实现要素:

3.为了解决上述技术问题,本发明的目的是提供一种中文对话语义角色标注方法及系统,能够在降低模型的计算代价的同时提高模型的性能。
4.本发明所采用的第一技术方案是:一种中文对话语义角色标注方法,包括以下步骤:
5.将数据集中的对话文本数据进行关联实体增强处理,得到增强数据集;
6.将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量;
7.根据对话语义角色标注的数据样本构建索引编码器并输出索引向量;
8.将富有外部知识的词向量与索引向量进行拼接,得到拼接向量;
9.将拼接向量输入至预构建的语义角色标注层,得到语义角色标注结果。
10.进一步,所述将数据集中的对话文本数据进行关联实体增强处理,得到增强数据集这一步骤,其具体包括:
11.从互联网获取中文对话数据集并对中文对话数据集进行数据清洗,得到清洗后的数据集;
12.对清洗后的数据集中的对话文本数据向知识图谱库请求知识三元组,并进行关联实体增强处理,得到增强数据集。
13.进一步,所述对清洗后的数据集中的对话文本数据向知识图谱库请求知识三元组,并进行关联实体增强处理,得到增强数据集这一步骤,其具体包括:
14.对清洗后的数据集中的对话文本数据向知识图谱库发起请求,得到对应的知识三元组;
15.将对应的知识三元组进行提取处理,得到关联实体;
16.将清洗后的数据集中的对话文本数据与关联实体以键值对格式按行存成本地文件,构建关联实体字典;
17.根据关联实体字典构建关联实体查找表;
18.基于关联实体查找表对数据集中的对话文本数据进行增强处理,得到增强数据集。
19.进一步,所述将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量这一步骤,其具体包括:
20.将bert架构的roberta预训练模型作为词向量编码器,构建关联实体知识增强模型;
21.将关联实体知识增强模型依次进行适应性修改和轻量化处理,构建轻量化关联实体知识增强模型并将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量。
22.进一步,所述将关联实体知识增强模型依次进行适应性修改和轻量化处理,构建轻量化关联实体知识增强模型并将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量这一步骤,其具体包括:
23.基于软位置编码对关联实体知识增强模型的输入层进行适应性修改,得到修改后的输入层;
24.获取清洗后的数据集中的对话文本数据与关联实体的关系并结合硬位置编码,构建可见矩阵;
25.基于可见矩阵对bert编码器层进行适应性修改,得到修改后的bert编码器层;
26.对修改后的bert编码器层进行轻量化处理,得到轻量化后的k-bert编码器层;
27.结合修改后的输入层和轻量化后的k-bert编码器层,构建轻量化关联实体知识增强模型;
28.将增强数据集进行两种词序编码处理并输入轻量化关联实体知识增强模型,输出富有外部知识的词向量,所述两种词序编码包括硬位置编码和软位置编码。
29.进一步,所述将增强数据集进行两种词序编码处理并输入轻量化关联实体知识增强模型,输出富有外部知识的词向量这一步骤,其具体包括:
30.基于增强数据集对轻量化关联实体增强模型进行多代的训练,对增强数据集中的请求实体相关的知识进行增强处理,得到增强数据集合;
31.通过对每一个查找句子数据中的所有请求实体请求到的增强数据集合中,对于每个请求实体,均随机取出对应的一个关联实体插入到该请求实体后面,得到增强句子;
32.将增强句子进行两种词序编码,得到各个词对应的位置索引;
33.将增强句子、软位置编码索引和可见矩阵输入轻量化关联实体知识增强模型,输出富有外部知识的词向量。
34.进一步,所述根据对话语义角色标注的数据样本构建索引编码器并输出索引向量这一步骤,其具体包括:
35.将对话语义角色标注的数据样本进行关联实体增强,得到经过关联实体增强的句子序列;
36.对经过关联实体增强的句子序列分别建立对话轮次索引和谓词位置索引,并使用两个全连接层分别构建两个索引编码器,得到索引编码器和谓词位置索引编码器;
37.将对话轮次索引和谓词位置索引分别输入至对话轮次索引编码器和谓词位置索
引编码器得到对话轮次嵌入向量和谓词位置嵌入向量;
38.整合对话轮次嵌入向量和谓词位置嵌入向量,得到索引向量。
39.进一步,语义角色标注层包括自注意力层和softmax归一化层,所述将拼接向量输入至预构建的语义角色标注层,得到语义角色标注结果这一步骤,其具体包括:
40.基于自注意力层对拼接向量进行特征捕获处理,得到输出向量;
41.基于softmax归一化层对输出向量进行归一化处理,输出语义角色角色标注结果。
42.本发明所采用的第二技术方案是:一种中文对话语义角色标注系统,包括:
43.数据增强模块,用于将数据集中的对话文本数据进行关联实体增强处理,得到增强数据集;
44.关联实体知识增强模块,用于将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量;
45.索引编码器模块,用于根据对话语义角色标注的数据样本构建索引编码器并输出索引向量;
46.词向量与索引向量拼接模块,用于将富有外部知识的词向量与索引向量进行拼接,得到拼接向量;
47.语义角色标注预测模块,用于将拼接向量输入至预构建的语义角色标注层,得到语义角色标注结果。
48.本发明方法及系统的有益效果是:本发明通过引入知识图谱的关联实体对对话文本进行知识增强并通过修改bert编码器得到富有外部知识的词向量以及结合索引编码器模块与基于自注意力srl模型进行中文文本处理及数据增强联合训练,实现多个增强数据集对模型进行联合训练,使得模型的性能更好,另外,基于轻量化技术对中文对话语义标注的模型进行轻量化处理,从而减少整体模型的参数量,降低模型的计算代价,对模型进行多个增强数据集的联合训练可以提高模型的性能。
附图说明
49.图1是本发明一种中文对话语义角色标注方法的步骤流程图;
50.图2是本发明一种中文对话语义角色标注系统的结构框图;
51.图3是本发明一种中文对话语义角色标注方法的整体模型图;
52.图4是本发明关联实体知识增强模块的示意图图;
53.图5是本发明设计可见矩阵的示意图;
54.图6是本发明轻量化k-bert模块的示意图。
具体实施方式
55.下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
56.本发明依托于较为成熟的语义角色标注技术,利用模型轻量化技术,通过索引编码器模块与基于自注意力的srl模型进行中文文本处理及数据增强联合训练,能够在降低模型实际运行时间的同时也不增加计算代价。
57.参照图1,本发明提供了一种中文对话语义角色标注方法,该方法包括以下步骤:
58.s1、将数据集中的对话文本数据进行关联实体增强处理,得到增强数据集;
59.s11、从互联网获取中文对话数据集并对中文对话数据集进行数据清洗,得到清洗后的数据集;
60.具体地,从互联网获取需要处理的中文对话数据集,并对数据集进行数据清洗,剔除标签出错及不符合训练要求的条目,以获得可以进行后续处理的训练数据集,通过roberta预训练模型进行构建关联实体知识增强模型,将roberta模型中的预测输出层去掉,只留下嵌入层(包括token embedding/position embedding/segment embedding)和编码器层,并将roberta预训练模型中的12个编码器层的前6层编码器保留,以减小模型的参数量规模。
61.s12、对清洗后的数据集中的对话文本数据向知识图谱库请求知识三元组,并进行关联实体增强处理,得到增强数据集;
62.s121、对清洗后的数据集中的对话文本数据向知识图谱库发起请求,得到对应的知识三元组;
63.s122、将对应的知识三元组进行提取处理,得到关联实体;
64.s123、将清洗后的数据集中的对话文本数据与关联实体以键值对格式按行存成本地文件,构建关联实体字典;
65.s124、根据关联实体字典构建关联实体查找表;
66.s125、基于关联实体查找表对数据集中的对话文本数据进行增强处理,得到增强数据集。
67.具体地,对数据集中的每一个词向知识图谱库请求知识三元组,将请求回来的大量知识三元组,其格式为(请求实体、关系、关联实体)按一定的规则将信息量不高的,或者是不适合用于数据增强的条目进行过滤后,只提取出关联实体和对应的请求实体以[请求实体:[关联实体1,关联实体2,关联实体3,

]]的键值对格式,按行进行储存为本地文件,得到关联实体字典。其中请求实体作为字典中的键,对应的经过过滤并抽取的多个关联实体以集合的方式进行存储确保不重复,该集合作为关联实体字典中的值与请求实体对应,将关联实体字典文件读到内存中,形成关联实体查找表,基于关联实体查找表对数据集中的对话文本数据进行增强处理,得到增强数据集。
[0068]
s2、将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量;
[0069]
s21、将bert架构的roberta预训练模型作为词向量编码器,构建关联实体知识增强模型;
[0070]
s22、将关联实体知识增强模型依次进行适应性修改和轻量化处理,构建轻量化关联实体知识增强模型并将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量。
[0071]
s221、基于软位置编码对关联实体知识增强模型的输入层进行适应性修改,得到修改后的输入层;
[0072]
s222、获取清洗后的数据集中的对话文本数据与关联实体的关系并结合硬位置编码,构建可见矩阵;
[0073]
具体地,参照图5,对于关联实体增强过后的句子,例如下列句子所示,
[0074]
玩了战神索尼特别喜欢阿特柔斯希腊神话;
[0075]
原始句子中的:玩了、战神、特别、喜欢、阿特柔斯,这5个词相互可见,在可见矩阵上体现为实心圈,玩了、战神、索尼、特别、喜欢、阿特柔斯、希腊神话,为经过关联实体增强后的句子,其中索尼是战神的关联实体,希腊神话是阿特柔斯的关联实体,关联实体只与其对应的请求实体相互可见,也就是说关联实体与其他词语均不可见,例如可见矩阵第三行,索尼这个词只在战神和索尼本身的地方为实心圆圈,其他位置均为空心圆圈,例如,使用硬位置编码对进入轻量化k-bert编码器层进行注意力值计算的句子序列建立一个可见矩阵,对于原始句子来说各个词对应的词向量之间均需要进行注意力值的计算,即可见,而对于关联实体来说,它们只能与其对应的请求实体互相可见,可见矩阵中,若第i行第j列为实心圆圈,则表示词i和词j是相互可见的,空心圆圈则表示不可见。对于一个可见矩阵m,其中的元素为m
ij
,令可见的实心圆圈元素取值为0,不可见的空心圆圈元素取值为-∞,所述可见矩阵的公式表达如下:
[0076][0077]
上式中,m
ij
代表可见矩阵其中的元素;
[0078]
s223、基于可见矩阵对bert编码器层进行适应性修改,得到修改后的bert编码器层;
[0079]
s224、对修改后的bert编码器层进行轻量化处理,得到轻量化后的k-bert编码器层;
[0080]
s225、结合修改后的输入层和轻量化后的k-bert编码器层,构建轻量化关联实体知识增强模型;
[0081]
具体地,对关联实体知识增强模型的输入层和bert编码器层进行适应性修改,分别将原始的位置编码修改为软位置编码,并结合可见矩阵对bert编码器层的注意力值进行计算,只保留12个bert编码器层的前若干层,得到轻量化关联实体知识增强模型;
[0082]
s226、将增强数据集进行两种词序编码处理并输入轻量化关联实体知识增强模型,输出富有外部知识的词向量,所述两种词序编码包括硬位置编码和软位置编码。
[0083]
s2261、基于增强数据集对轻量化关联实体增强模型进行多代的训练,对增强数据集中的请求实体相关的知识进行增强处理,得到增强数据集合;
[0084]
s2262、通过对每一个查找句子数据中的所有请求实体请求到的增强数据集合中,对于每个请求实体,均随机取出对应的一个关联实体插入到该请求实体后面,得到增强句子;
[0085]
s2263、将增强句子进行两种词序编码,得到各个词对应的位置索引;
[0086]
s2264、将增强句子、软位置编码索引和可见矩阵输入轻量化关联实体知识增强模型,输出富有外部知识的词向量。
[0087]
具体地,参照图4,关联实体增强的联合训练方法,在进行模型训练时,基于增强数据集对模型进行多代(epoch)训练,在每个epoch训练开始时,对每一条句子数据中的每一个词作为请求实体向已经读到内存中的关联实体查找表进行查找,如果请求到关联实体集合则随机从该请求实体对应的关联实体集合中读取一个关联实体直接插入到对应的请求实体的后面。例如:“玩了战神特别喜欢阿特柔斯”这个句子中向知识图谱库请求的请求实
体为战神,则返回的知识三元组有[“战神”“游戏类型”“动作游戏”]或者[“战神”“发行公司”“索尼”]等等,向知识图谱库请求的请求实体为阿特柔斯,则返回的知识三元组有["阿特柔斯","神话体系","希腊神话"]、["阿特柔斯","子女","阿伽门农"]或者["阿特柔斯","兄弟姐妹","梯厄斯忒斯"]等等,对于请求实体“战神”而言,请求到的上述两个三元组中,对应的关联实体有“动作游戏”、“索尼”等等情况,则在一个epoch开始时进行关联实体增强时得到的增强句子可能会有以下多种情况:
[0088]
玩了战神动作游戏特别喜欢阿特柔斯阿伽门农;
[0089]
玩了战神动作游戏特别喜欢阿特柔斯希腊神话;
[0090]
玩了战神索尼特别喜欢阿特柔斯希腊神话;
[0091]
……
[0092]
每一个增强句子中的各个请求实体后面的词表示其对应的关联实体,这样的增强方式比较类似于人们日常口头说话或书写表达时使用一对括号将附加说明的信息添加到某个词后面,例如玩了战神(动作游戏),特别喜欢阿特柔斯(希腊神话)。由于每个epoch开始时都会进行新的关联实体增强,且每个请求实体均随机增强一个关联实体,故每次增强后的句子都有很大的概率是与其他epoch增强的不一样。也就是说每次训练都会使用一个新的增强数据集,该增强方式不仅仅只是简单的加上噪声或其他的数据增强,更是对训练样本中的请求实体密切相关的知识进行增强。而经过多个epoch的训练,则相当于使用了多个增强数据集对模型进行了联合训练。对每一个句子数据中的所有请求实体请求到的关联实体集合中均随机取出一个对应的关联实体插入到句子序列中之后,需要对关联实体增强过后的句子序列进行两种词序编码。第一种词序编码方式称为硬位置编码,具体编码方式为将关联实体增强后的句子序列,从第一个词从0开始编码一直到句子末尾。第二种词序编码方式称为软位置编码,具体编码方式为将未经过关联实体增强的原始句子序列先进行硬位置编码,再将插入到请求实体后面的关联实体词序按其对应的请求实体硬位置编码+1的方式进行编码,则此时每个请求实体后面将会有两个词序编码相同的词,一个是原始句子中直接跟在该请求实体后面的词,另一个是进行数据增强的关联实体。
[0093]
s3、根据对话语义角色标注的数据样本构建索引编码器并输出索引向量;
[0094]
s31、将对话语义角色标注的数据样本进行关联实体增强,得到经过关联实体增强的句子序列;
[0095]
s32、对经过关联实体增强的句子序列分别建立对话轮次索引和谓词位置索引,并使用两个全连接层分别构建两个索引编码器,得到索引编码器和谓词位置索引编码器;
[0096]
s33、将对话轮次索引和谓词位置索引分别输入至对话轮次索引编码器和谓词位置索引编码器得到对话轮次嵌入向量和谓词位置嵌入向量;
[0097]
s34、整合对话轮次嵌入向量和谓词位置嵌入向量,得到索引向量;
[0098]
具体地,参照图3,对经过关联实体增强的句子序列分别建立对话轮次索引和谓词位置索引,对话轮次索引,假如某段对话文本有k轮,则从k-1开始进行编码,直至0,例句有3轮对话,则所有属于第1轮对话的词标2,第2轮的对话标1,第3轮的标0;谓词索引标注当前的分析谓词是哪个,谓词标1,其他词标0,当前的谓词是“喜欢”,则在对应位置标1,比如下列增强句子:
[0099][0100]
由于本文处理的是对话级语义角色标注,其中对话级这个概念就体现在文本下面的第一行数字上,本段对话有三句话,从左往后编号分别为2、1和0,而语义角色标注与谓词位置有关,所以第二行的1则用来标记当前要分析的谓词位置,而这两行数字在本文分别称为对话轮次索引和谓词索引;将对话轮次索引和谓词位置索引分别输入到对话轮次索引编码器和谓词位置索引编码器后得到对话轮次嵌入向量v
dialog
和谓词位置嵌入向量v
pred

[0101]
s4、将富有外部知识的词向量与索引向量进行拼接,得到拼接向量;
[0102]
具体地,参照图6,对基于硬位置编码索引构建的可见矩阵m
ij
加到bert模型的编码器中,具体做法是将原始bert模型中的编码层的attention计算公式:
[0103][0104]
修改为如下所示的可见注意力公式:
[0105][0106]
上式中,q表示查询向量,k表示键向量,dk表示键的维度,m表示可见矩阵,v表示值向量;
[0107]
进一步计算得出可见注意力的值,当词与词之间可见时,m
ij
=0,可见注意力与传统attention相同,表明可以正常计算两个词的attention。当词与词之间不可见时,m
ij
=-∞,则可见注意力的值为零,将数据集拆分成多个batch,将每一个batch的多段文本数据及经过修改的词序软编码索引首先进入轻量化k-bert模块,随后输入模块内经过修改的编码层进行计算后得到轻量化k-bert词向量v
k-bert
,将k-bert词向量v
k-bert
与对话轮次嵌入向量和谓词位置嵌入向量进行拼接,得到拼接向量。
[0108]
其中,所述一个batch中包含多段文本数据,在处理和训练过程中,将每个batch中的多段文本数据并行前向传播结束后获得的梯度再往后传递进行训练。
[0109]
s5、将拼接向量输入至预构建的语义角色标注层,得到语义角色标注结果。
[0110]
s51、基于自注意力层对拼接向量进行特征捕获处理,得到输出向量;
[0111]
s52、基于softmax归一化层对输出向量进行归一化处理,输出语义角色角色标注结果。
[0112]
具体地,三种向量拼接得到的拼接向量h,将拼接向量h输入至下游csrl模块,拼接向量h通过n个self-attention层,用以捕获句子中不同的特征,其中包括本文的浅层语义特征,拼接向量h经过了n个self-attention层之后,输出cm最终会通过一个含有一层隐藏层的多层感知机(mlp),并通过softmax归一化输出最终的预测结果,如下公式所示:
[0113]
mlp(cm)=w
mlpcm
+b
mlp
[0114]
prediction=softmax(mlp(cm))
[0115]
上式中,b
mlp
表示多层感知机的偏置,w
mlp
表示多层感知机的权重;
[0116]
参照图2,一种中文对话语义角色标注系统,包括:
[0117]
数据增强模块,用于将数据集中的对话文本数据进行关联实体增强处理,得到增强数据集;
[0118]
关联实体知识增强模块,用于将增强数据集输入轻量化关联实体增强模型,输出富有外部知识的词向量;
[0119]
索引编码器模块,用于根据对话语义角色标注的数据样本构建索引编码器并输出索引向量;
[0120]
词向量与索引向量拼接模块,用于将富有外部知识的词向量与索引向量进行拼接,得到拼接向量;
[0121]
语义角色标注预测模块,用于将拼接向量输入至预构建的语义角色标注层,得到语义角色标注结果。
[0122]
具体地,将关联实体知识增强模型进行轻量化处理得到富有外部知识的词向量,进一步为了词向量在编码器层计算注意力值时,可以让关联实体只计算与其对应的请求实体之间相互的注意力值,将可见矩阵与编码器层进行整合,通过索引编码器模块产生对话轮次向量和谓词位置向量,将k-bert词向量v
k-bert
、对话轮次向量和谓词位置向量输入至词向量与索引向量拼接模块得到拼接向量,进一步将拼接向量输入至语义角色标注预测模块输出语义角色标注结果。
[0123]
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0124]
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1