:本发明涉及一种双通道循环胶囊神经网络的生物医学词义消歧方法,该方法在生物医学领域中有着很好的应用。
背景技术
0、
背景技术:
1、在生物医学文本中,词汇普遍具有一词多义现象。词义消歧的目的是确定歧义词汇在特定上下文环境中的语义类别。词义消歧在信息检索、机器翻译和自动文摘中有着重要的应用。目前,在词义消歧中经常使用的一些方法包括:svm、最大熵和朴素贝叶斯分类器等。但是,传统的方法存在着一些缺点和不足。所提取的消歧特征只局限于局部区域,分类器的训练效果不是很好。近年来,深度学习算法已被广泛地应用到自然语言处理领域。胶囊循环神经网络的优势在于:它可以处理序列数据并捕捉文本数据中的序列相关性,并且它利用胶囊单元来编码模式和特征,提高了网络的可解释性,并能够更好地对输入文本进行消歧,能够有效地建模文本数据,提高词义消歧的准确率。对于生物医学歧义词汇而言,可以很好地应用胶囊循环神经网络进行消歧,实现语义的正确分类。
技术实现思路
0、
技术实现要素:
1、为了解决生物医学领域中的词汇歧义问题,本发明公开了双通道循环胶囊神经网络的生物医学词义消歧方法。
2、为此,本发明提供了以下技术方案。
3、1.双通道循环胶囊神经网络的生物医学词义消歧,该方法包含以下步骤:
4、步骤1:对生物医学语料中的所有句子进行词性标注和语义类标注;
5、步骤2:设置词窗大小和歧义词,把词窗从左向右移动,计算词窗移动过程中将出现歧义词的词窗内的其它词汇的词频总值,选取词频总值最高的词汇并将它们的词性和语义类作为消歧特征;
6、步骤3:将处理好的生物医学语料按照7:3的比例划分为训练数据和测试数据,利用bert模型对训练数据和测试数据进行向量化处理;
7、步骤4:训练包括前向传播和反向传播两个过程,利用训练数据来优化双通道循环胶囊神经网络;
8、步骤5:测试过程为前向传播过程,即语义分类过程,将测试数据输入到优化后的双通道循环胶囊神经网络中,计算歧义词汇在每个语义类别下的概率分布序列,将具有最大概率的语义类别作为歧义词汇的语义类别。
9、2.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤1中,对生物医学语料中的所有句子进行词性标注和语义类标注,具体为:
10、步骤1-1利用词性标注工具对所有生物医学句子进行词性标注;
11、步骤1-2利用语义类标注工具对所有生物医学句子中的词汇进行语义类标注;
12、3.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤2中,设置词窗大小和歧义词,把词窗从左向右移动,计算词窗移动过程中将出现歧义词的词窗内的其它词汇的词频总值,选取词频总值最高的词汇,并将它们的词性和语义类作为消歧特征,具体为:
13、步骤2-1设置词窗大小和歧义词;
14、步骤2-2把词窗从左向右移动,计算词窗移动过程中将出现歧义词的词窗内的除歧义词外的词汇的词频frequency:
15、
16、其中,numw表示词汇w在词窗中出现的次数,lw表示词汇w与歧义词之间的距离;
17、4.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤3中,将处理好的生物医学语料按照7:3划分为训练数据和测试数据,利用bert模型对训练数据和测试数据进行向量化处理,具体为:
18、步骤3-1按照7:3的比例将处理好的生物医学语料随机划分为训练数据和测试数据;
19、步骤3-2利用bert模型对训练数据和测试数据中的词形、词性和词义类分别进行向量化处理,具体为:
20、步骤3-2-1使用tokenizer.encode将输入的文本序列转化为bert词表中对应的id序列,同时加入了[cls]和[sep]符号;
21、步骤3-2-2bert的输入的计算如下:
22、input(i)=embedding(ti)+pe(i)+segment(ti)
23、其中,embedding(wi)表示将wi映射为词向量的操作,pe(i)表示位置编码,用于将每个位置的信息加入到对应位置的词向量中,segment(wi)表示句子编码,用于将不同句子中的词区分开;
24、步骤3-2-3input(i)经过bert中的多层encoder编码器,通过堆叠来建模输入语料的上下文信息和语义信息,生成特征矩阵x;
25、步骤3-2-4按照5个一组将语料的特征矩阵分为若干组;
26、5.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤4中,利用训练数据来优化双通道循环胶囊神经网络,具体为:
27、步骤4-1将当前批次的训练数据的特征矩阵x输入到gru层,计算gru层的输出,具体为:
28、步骤4-1-1计算gru层中的更新门zt和重置门br,如下:
29、zt=σ(wz[ht-1,xt+bz])
30、rt=σ(wr[ht-1,xt+bt])
31、其中,σ代表sigmoid函数,wr表示权重矩阵,br是重置门,rt是偏置项,xt表示t时刻的输入,wz表示输入xt与更新门zt的相关权重矩阵;
32、步骤4-1-2计算t时刻的候选隐藏状态如下:
33、
34、其中,ht代表t时刻的候选隐藏状态,tanh()是双曲正切函数;
35、步骤4-1-3利用t-1时刻的隐藏状态ht-1与t时刻的候选隐藏状态ht计算t时刻的隐藏状态ht,如下:
36、
37、步骤4-1-4重复执行步骤4-1-1至4-1-3max_length次,组合每个时刻的输出作为gru层的输出ht;
38、步骤4-2将当前批次的训练数据的特征矩阵x输入到卷积层,使用大小为n×n的卷积核进行卷积运算得到textcnn层的输出c′,如下:
39、
40、c′=maxpool(c)
41、其中,代表卷积运算,f表示激活函数,w表示textcnn层的权重矩阵,b为偏置,c表示卷积结果,maxpool表示池化操作;
42、步骤4-3使用torch.cat()对c′和gru层输出的语义特征ht在第二维度进行融合得到特征矩阵m,如下:
43、m=torch.cat(c′,ht)
44、步骤4-4将特征矩阵m输入到multi-head attention层计算注意力,具体为:
45、步骤4-4-1将特征矩阵m拆分为m1、m2、…、mn,分别对应于n个头;
46、步骤4-4-2qi=mi、ki=mi、vi=mi;
47、步骤4-4-3计算第i个头的注意力headi,如下:
48、
49、其中,q表示query,k表示key,v表示value,dk表示注意力机制的维度;
50、步骤4-4-4将每个头得到的注意力结果串联拼接成一个矩阵,得到多头注意力层的输出att_output,如下:
51、att_output=concat(head1,....,headn)
52、步骤4-5将att_output输入到胶囊层,计算胶囊层的输出,具体为:
53、步骤4-5-1将att_output分为v1、v2、…、vn作为胶囊网络的输入;
54、步骤4-5-2使用torch.matmul初始化胶囊网络的预测向量ui和路由权重wi;
55、步骤4-5-3迭代执行3次动态路由算法,具体为:
56、步骤4-5-3-1ui的计算过程如下:
57、ui=vi*wi
58、步骤4-5-3-2采用softmax函数计算第i个胶囊的输出对第j个胶囊的输入的权重ci,j,如下:
59、
60、其中,num_capsule表示胶囊个数,bi,j表示第i个胶囊与第j个胶囊之间的相似度;
61、步骤4-5-3-3计算sj,如下:
62、
63、步骤4-5-3-4使用squash函数对sj进行规范化,如下:
64、
65、其中,aj表示第j次路由算法的输出;
66、步骤4-5-3-5利用aj来更新bi,j,如下:
67、bi,j=bi,j+aj*ui
68、步骤4-5-4胶囊网络输出为a3;
69、步骤4-6将a3输入分类层,通过线性变换得到概率分布向量d;
70、步骤4-7利用softmax层来计算歧义词汇m在语义类别si(i=1,2,...,n)下的预测概率p(si|m)(i=1,2,…,n),如下:
71、
72、其中,di为概率分布向量d的第i个分量;
73、步骤4-8从p(s1|m)、p(s2|m)、...、p(sn|m)中选取最大概率作为歧义词汇m的预测语义类别概率:
74、
75、其中,y_predictedj表示歧义词汇m的预测语义类别概率;
76、步骤4-9利用交叉熵损失函数来计算误差loss,如下:
77、
78、其中,yj表示歧义词汇m属于语义类别si的真实概率;
79、步骤4-10根据误差loss反向传播,逐层更新参数,如下:
80、
81、其中,θ表示参数集,θ′表示更新后的参数集,α为学习率;
82、步骤4-11不断执行步骤4-1至步骤4-10,直到所有批次的训练数据都用完为止,得到优化的双通道循环胶囊神经网络;
83、6.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤5中,利用优化后的双通道循环胶囊神经网络对测试数据中的歧义词汇m进行语义分类,具体为:
84、步骤5-1将当前批次的测试数据的特征矩阵x输入到gru层,计算gru层的输出,具体为:
85、步骤5-1-1计算gru层中的更新门zt和重置门br,如下:
86、zt=σ(wz[ht-1,xt+bz])
87、rt=σ(wr[ht-1,xt+bt])
88、其中,σ代表sigmoid函数,wr表示权重矩阵,br是重置门,rt是偏置项,xt表示t时刻的输入,wz表示输入xt与更新门zt的相关权重矩阵;
89、步骤5-1-2计算t时刻的候选隐藏状态如下:
90、
91、其中,ht代表t时刻的候选隐藏状态,tanh()是双曲正切函数;
92、步骤5-1-3利用t-1时刻的隐藏状态ht-1与t时刻的候选隐藏状态ht计算t时刻的隐藏状态ht,如下:
93、
94、步骤5-1-4重复执行步骤5-1-1至5-1-3max_length次,组合每个时刻的输出作为gru层的输出ht;
95、步骤5-2将当前批次的训练数据的特征矩阵x输入到卷积层,使用大小为n×n的卷积核进行卷积运算得到textcnn层的输出c′,如下:
96、
97、c′=maxpool(c)
98、其中,代表卷积运算,f表示激活函数,w表示textcnn层的权重矩阵,b为偏置,c表示卷积结果,maxpool表示池化操作;
99、步骤5-3使用torch.cat()对c′和gru层输出的语义特征ht在第二维度进行融合得到特征矩阵m,如下:
100、m=torch.cat(c′,ht)
101、步骤5-4将特征矩阵m输入到multi-head attention层计算注意力,具体为:
102、步骤5-4-1将特征矩阵m拆分为m1、m2、…、mn,分别对应于n个头;
103、步骤5-4-2qi=mi、ki=mi、vi=mi;
104、步骤5-4-3计算第i个头的注意力headi,如下:
105、
106、其中,q表示query,k表示key,v表示value,dk表示注意力机制的维度;
107、步骤5-4-4将每个头得到的注意力结果串联拼接成一个矩阵,得到多头注意力层的输出att_output,如下:
108、att_output=concat(head1,....,headn)
109、步骤5-5将att_output输入到胶囊层,计算胶囊层的输出,具体为:
110、步骤5-5-1将att_output分为v1、v2、…、vn作为胶囊网络的输入;
111、步骤5-5-2使用torch.matmul初始化胶囊网络的预测向量ui和路由权重wi;
112、步骤5-5-3迭代执行3次动态路由算法,具体为:
113、步骤5-5-3-1ui的计算过程如下:
114、ui=vi*wi
115、步骤5-5-3-2采用softmax函数计算第i个胶囊的输出对第j个胶囊的输入的权重ci,j,如下:
116、
117、其中,num_capsule表示胶囊个数,bi,j表示第i个胶囊与第j个胶囊之间的相似度;
118、步骤5-5-3-3计算sj,如下:
119、
120、步骤5-5-3-4使用squash函数对sj进行规范化,如下:
121、
122、其中,aj表示第j次路由算法的输出;
123、步骤5-5-3-5利用aj来更新bi,j,如下:
124、bi,j=bi,j+aj*ui
125、步骤5-5-4胶囊网络输出为a3;
126、步骤5-6将a3输入分类层,通过线性变换得到概率分布向量d;
127、步骤5-7利用softmax层来计算歧义词汇m在语义类别si(i=1,2,...,n)下的预测概率p(si|m)(i=1,2,…,n),如下:
128、
129、其中,di为概率分布向量d的第i个分量;
130、步骤5-8选取具有最大概率的语义类别作为歧义词汇m的预测语义类别s,如下:
131、
132、步骤5-9不断执行步骤5-1至步骤5-8,直到所有批次的测试数据都用完为止。
133、有益效果:
134、本发明是一种双通道循环胶囊神经网络的生物医学词义消歧。
135、1.对含有歧义词的句子进行词性标注和语义类标注。用bert对词形、词性、语义类分别进行向量化处理。所提取的消歧特征具有较高的质量。
136、2.本发明所使用的网络为双通道循环胶囊神经网络,最大的特点是:胶囊网络的循环结构可以实现长时记忆和正确分类。无需手动选取数据特征,只要训练好双通道循环胶囊神经网络,就可以获得较好的词义消歧效果。
137、3.在训练网络时,采用随机梯度下降法进行参数更新。通过计算误差,利用误差通过反向传播沿原路线返回,即从输出层反向经过各中间隐藏层,逐层更新每一层参数,最终回到输入层。不断地进行前向传播和反向传播,以减小误差,更新模型参数,直到双通道循环胶囊神经网络训练好为止。随着误差反向传播不断地对参数进行更新,整个双通道循环胶囊神经网络对输入数据的消歧准确率也会有所提高。
138、4.本发明以公开的生物医学词义消歧语料msh为基础,验证本发明所提出的方法,结果表明,本发明具有较高的准确性。
1.双通道循环胶囊神经网络的生物医学词义消歧,该方法包含以下步骤:
2.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤1中,对生物医学语料中的所有句子进行词性标注和语义类标注,具体为:
3.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤2中,设置词窗大小和歧义词,把词窗从左向右移动,计算词窗移动过程中将出现歧义词的词窗内的其它词汇的词频总值,选取词频总值最高的词汇,并将它们的词性和语义类作为消歧特征,具体为:
4.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤3中,将处理好的生物医学语料按照7:3划分为训练数据和测试数据,利用bert模型对训练数据和测试数据进行向量化处理,具体为:
5.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤4中,利用训练数据来优化双通道循环胶囊神经网络,具体为:
6.根据权利要求1所述的双通道循环胶囊神经网络的生物医学词义消歧,其特征在于,所述步骤5中,利用优化后的双通道循环胶囊神经网络对测试数据中的歧义词汇m进行语义分类,具体过程为: