一种基于改进的OneRel模型的领域重叠实体关系抽取方法
未命名
10-19
阅读:206
评论:0

一种基于改进的onerel模型的领域重叠实体关系抽取方法
技术领域
1.本发明属于文本实体关系抽取技术领域,具体涉及一种基于改进的onerel模型的领域重叠实体关系抽取方法。
背景技术:
2.关系抽取(relation extraction)是一种从文本中抽取实体关系的典型的信息抽取任务,是知识图谱以及人工智能领域涉及智能问答、智能对话等应用的重要基础,一直深受关注。随着时代发展和技术进步,关系抽取的相关技术不断改进,并广泛应用于医学、金融、机器人助手等领域。早期的关系抽取主要聚焦于单实体对之间的关系,但在大多数情况下,一个语句不仅有一对实体且实体间的关系也存在重叠的现象,因此,重叠实体关系抽取具有更大的研究价值。
3.现有技术中对重叠实体关系的抽取方式进行优化的同时,又会产生新的技术问题:存在误差传播和曝光偏差的缺点;没有充分利用实体与关系间的交互信息,造成大量冗余计算;当实体识别错误或遗漏,结果不可逆;存在正负样本不均衡、训练时负样本过多等问题。尤其是存在正负样本不均衡、训练时负样本过多的技术问题最为突出。
技术实现要素:
4.本发明的目的在于,提供一种基于改进的onerel模型的领域重叠实体关系抽取方法,解决了自然语言处理任务中正负样本不均衡的问题,提高了模型的泛化能力。
5.为解决上述技术问题,本发明的技术方案为:一种基于改进的onerel模型的领域重叠实体关系抽取方法,包括以下步骤:
6.领域数据集构建:获取领域数据,对领域数据进行筛选得到利于训练onerel模型的领域数据语句,对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组,将标注后的领域数据语句及其对应的三元组统合形成领域数据集;领域数据的类型至少包括病虫害的表现症状、治疗药物、多发时期以及药物的主要成分、使用剂量、功效和副作用;
7.对onerel模型进行的改进:在模型训练阶段引入focal loss损失函数,得到改进模型,通过focal loss损失函数衡量真实值与预测值之间的差异,即损失值;
8.对改进模型的训练:将领域数据集作为训练集输入改进模型;
9.向训练后的改进模型中输入与领域数据语句格式相同的语句,得到该对应语句抽取实体关系后的三元组。
10.对onerel模型进行的改进还包括:选取中文自然语言预训练模型macbert作为onerel模型的预训练模型。
11.对onerel模型进行的改进还包括:通过multi-sample dropout方法对onerel模型进行训练。
12.对onerel模型通过选取中文自然语言预训练模型macbert作为预训练模块,减少
冗余信息且使网络结构变得简单,引入focal loss作为损失函数,以解决正负样本不均衡的问题,使用multi-sample dropout方法提高该模型泛化能力,将通过这三种方式改进后的模型命名为iorm模型。
13.focal loss损失函数的形成过程为:
14.通过基于二分类的交叉熵损失函数进行改进,二分类交叉熵损失函数表示为:
[0015][0016]
定义p
t
为:
[0017][0018]
得到:
[0019]
ce(p,y)=ce(p
t
)=-log(p
t
)
[0020]
其中,ce为二分类交叉熵损失函数,p表示预测样本为1的概率,y表示标注形成的标签;
[0021]
在二分类交叉熵损失函数中引入权重因子α
t
∈[0,1],得到平衡的二分类交叉损失函数,表示为:
[0022]
ce(p
t
)=-α
t
log(p
t
)
[0023]
在平衡的二分类交叉熵损失函数中引入动态调节因子,得到focal loss损失函数,表示为:
[0024]
fl(p
t
)=-(1-p
t
)
γ
log(p
t
)
[0025]
其中,fl为focal loss损失函数,(1-p
t
)
γ
是动态调节因子,γ≥0表示可调节参数,γ越大易分类样本的损失值越小。
[0026]
对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组的具体步骤为:
[0027]
当某一领域数据语句中存在重叠实体,将重叠部分进行重新划分形成若干个新实体,对领域数据语句进行特征提取得到对应各新实体的三元组;其中,新实体与重叠实体在领域数据类型的划分中属于同一类型,且重叠实体从属于新实体;
[0028]
当某一领域数据语句中存在超过两个类型的领域数据时,对每一类型的领域数据分别进行特征提取生成对应领域数据各类型的三元组。
[0029]
通过multi-sample dropout方法对改进模型进行训练的具体方法为:设置两个dropout样本,dropout样本通过掩码不同的dropout层得到多个不同的样本,分别对各样本进行与其对应的初始的dropout样本相同的激活函数与损失函数的计算,对各样本的损失取平均值,使用该平均值更新改进模型的网络参数。
[0030]
对改进模型的训练还包括:采用适用于文本分类任务的数据增强技术eda,通过在训练集的领域数据语句中随机插入文字、随机删除文字以及随机拼接语句的方式增加训练样本。
[0031]
还设置有评估改进模型的评估测试方法,选取准确率、召回率和f1值作为评价指标;其中,f1值为准确率和召回率的调和平均值,兼容准确率和召回率;评估测试方法具体
表示为:
[0032][0033][0034][0035]
其中,p为准确率,r为召回率,tp表示被正确预测为正样本的数量,fp表示被错误地预测为正样本的数量,fn表示被错误地预测为负样本的数量,tn表示被正确预测为负样本的数量。
[0036]
还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述方法的步骤。
[0037]
还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述方法的步骤。
[0038]
与现有技术相比,本发明的有益效果为:
[0039]
本发明对onerel模型进行了改进,采用了适用于本领域数据集的中文预训练模型,并使用focal loss解决了自然语言处理任务中正负样本不均衡的问题,还利用multi-sample dropout提高了模型的泛化能力,并采用eda进行数据增强,以提高模型性能。
附图说明
[0040]
图1为本发明实施例的流程示意图;
[0041]
图2为本发明实施例中改进模型的结构示意图;
[0042]
图3为本发明实施例中改进模型单模块单步关系抽取模式的示意图;
[0043]
图4为本发明实施例中改进模型中特定关系角标注策略实例图。
具体实施方式
[0044]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0045]
本发明的技术方案为:一种基于改进的onerel模型的领域重叠实体关系抽取方法,包括以下步骤:
[0046]
领域数据集构建:获取领域数据,对领域数据进行筛选得到利于训练onerel模型的领域数据语句,对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组,将标注后的领域数据语句及其对应的三元组统合形成领域数据集;领域数据的类型至少包括病虫害的表现症状、治疗药物、多发时期以及药物的主要成分、使用剂量、功效和副作用;
[0047]
对onerel模型进行的改进:在模型训练阶段引入focal loss损失函数,得到改进模型,通过focal loss损失函数衡量真实值与预测值之间的差异,即损失值;
[0048]
对改进模型的训练:将领域数据集作为训练集输入改进模型;
[0049]
向训练后的改进模型中输入与领域数据语句格式相同的语句,得到该对应语句抽取实体关系后的三元组。
[0050]
对onerel模型进行的改进还包括:选取中文自然语言预训练模型macbert作为onerel模型的预训练模型。
[0051]
对onerel模型进行的改进还包括:通过multi-sample dropout方法对onerel模型进行训练。
[0052]
本发明提出了改进的onerel关系抽取模型iorm模型,对onerel模型通过选取中文自然语言预训练模型macbert作为预训练模块,减少冗余信息且使网络结构变得简单,引入focal loss作为损失函数,以解决正负样本不均衡的问题,使用multi-sample dropout方法提高该模型的泛化能力。
[0053]
focal loss损失函数的形成过程为:
[0054]
通过基于二分类的交叉熵损失函数进行改进,二分类交叉熵损失函数表示为:
[0055][0056]
定义p
t
为:
[0057][0058]
得到:
[0059]
ce(p,y)=ce(p
t
)=-log(p
t
)
[0060]
其中,ce为二分类交叉熵损失函数,p表示预测样本为1的概率,y表示标注形成的标签;
[0061]
在二分类交叉熵损失函数中引入权重因子α
t
∈[0,1],得到平衡的二分类交叉损失函数,表示为:
[0062]
ce(p
t
)=-α
t
log(p
t
)
[0063]
在平衡的二分类交叉熵损失函数中引入动态调节因子,得到focal loss损失函数,表示为:
[0064]
fl(p
t
)=-(1-p
t
)
γ
log(p
t
)
[0065]
其中,fl为focal loss损失函数,(1-p
t
)
γ
是动态调节因子,γ≥0表示可调节参数,γ越大易分类样本的损失值越小。
[0066]
对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组的具体步骤为:
[0067]
当某一领域数据语句中存在重叠实体,将重叠部分进行重新划分形成若干个新实体,将新实体对重叠实体进行替换生成新的领域数据语句,对新的领域数据语句进行特征提取得到对应各新实体的三元组;其中,新实体与重叠实体在领域数据类型的划分中属于同一类型,且重叠实体从属于新实体;
[0068]
当某一领域数据语句中存在超过两个类型的领域数据时,对每一类型的领域数据分别进行特征提取生成对应领域数据各类型的三元组。
[0069]
通过multi-sample dropout方法对改进模型进行训练的具体方法为:设置两个dropout样本,dropout样本通过掩码不同的dropout层得到多个不同的样本,分别对各样本进行与其对应的初始的dropout样本相同的激活函数与损失函数的计算,对各样本的损失取平均值,使用该平均值更新改进模型的网络参数。
[0070]
对改进模型的训练还包括:采用适用于文本分类任务的数据增强技术eda,通过在训练集的领域数据语句中随机插入文字、随机删除文字以及随机拼接语句的方式增加训练样本。
[0071]
还设置有评估改进模型的评估测试方法,选取准确率、召回率和f1值作为评价指标;其中,f1值为准确率和召回率的调和平均值,兼容准确率和召回率;评估测试方法具体表示为:
[0072][0073][0074][0075]
其中,p为准确率,r为召回率,tp表示被正确预测为正样本的数量,fp表示被错误地预测为正样本的数量,fn表示被错误地预测为负样本的数量,tn表示被正确预测为负样本的数量。
[0076]
还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述方法的步骤。
[0077]
还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述方法的步骤。
[0078]
实施例:
[0079]
1.领域数据集构建
[0080]
目前,农业大数据的完整性和规范性还有待提高,现有的可用于关系抽取任务的数据集主要是nyt数据集和webnlg数据集,而应用于作物病虫害领域的数据集十分匮乏,为了在农业领域进行深入探索,寻找适合该领域的实体关系抽取模型,本实施例构建了一个作物病虫害领域的数据集。
[0081]
1.1领域数据获取
[0082]
本实施例通过beautiful soup框架爬取百度百科(https://baike.baidu.com/)、微农资网(http://www.weinongzi.com)等网站的数据,在专业人士的指导下选取较为优质的植物病虫害及相关药剂施用信息,主要包含大量农作物病害、虫害、药物信息,例如病虫害的表现症状、治疗药物、多发时期以及药物的主要成分、使用剂量、功效和副作用等。
[0083]
1.2领域数据标注
[0084]
为使关系抽取任务更加高效准确,本实施例中筛选出了利于训练的语句,对每一个语句进行标注,提取三元组。具体细节如下:
[0085]
语句中含有重叠实体,本实施例中将重叠部分进行重新划分作为新实体,例如:“福美锌属于一种苯环杀菌剂”中苯环杀菌剂也是一种杀菌剂,可被细分为两个实体,因此从该句中提取的三元组为[福美锌,属于,苯环杀菌剂],[福美锌,属于,杀菌剂]。
[0086]
(2)语句中含多种关系,例如“疫霉类根腐病主要侵染茎基部,造成茎基部软腐”中,疫霉类根腐病的患病部位是茎基部,症状是茎基部软腐,因此提取的三元组为[疫霉类根腐病,发病部位,茎基部],[疫霉类根腐病,症状,茎基部软腐]。
[0087]
依据上述规则,本实施例中对获取到的2712条语句进行标注,得到26080组三元组,标注后的数据样例如表1所示,数据集中涉及到的关系类型及其数量如表2所示,语句中的关系分布如表3所示,可以看出每个语句样本中包含的关系数量不同,包含三种关系的语句样本最多,共1797句。
[0088]
表1
[0089]
[0090][0091]
表2
[0092][0093]
表3
[0094]
[0095]
2.改进的onerel模型
[0096]
此前,实体关系联合抽取的建模方式多数为多模块建模(multi-module)、多步解码(multi-step),忽视了实体与关系间的依存性,同时导致了冗余计算和误差累积。本实施例提出了改进的onerel关系抽取模型(iorm),利用单模块、单步解码的实体关系联合抽取方法减少冗余信息且使网络结构变得简单,引入focal loss作为损失函数以解决正负样本不均衡的问题,使用multi-sample dropout方法提高模型泛化能力。此外,考虑中文语料的特点,采用macbert模型作为输入预训练模型。改进的onerel关系抽取模型如图2所示。
[0097]
2.1onerel模型构建
[0098]
2.1.1词向量表示
[0099]
onerel提出了新的关系抽取方法,采用单模块、单步解码的模式,单模块单步关系抽取模式如图3所示,该模式可以更好地利用三元组间的依赖关系,减少冗余信息。任务定义为:识别长度为n的语句s={w1,w2,w3,...,wn}中所有可能的三元组其中k表示三元组个数,hi和ti分别代表关系的主体和客体,一个三元组中包含一个头实体hi和一个尾实体ti,以及它们之间的关系,这些关系可以从预定义的m种关系r={r1,r2,r3,...,rm}中选择。
[0100]
2.1.2特定关系角标注策略(relation specific horns tagging)
[0101]
shang等人设计了一个分类器,为所有可能的(wi,rm,wj)组合分配标签,其中,wi,wj∈s,rm∈r,利用三维矩阵mn×m×n存储关系分类结果。采用“bie”(begin、inside、end)标记方式表示三元组(h,r,t)中的头实体和尾实体的位置信息。其中,“hb”表示头实体的初始位置,“he”表示头实体的结束位置。“tb”表示尾实体的初始位置,“te”表示尾实体的结束位置,
“‑”
表示除上述三种情况以外的所有情况。在onerel模型中,为了缩小分类时的潜在搜索空间,确保三元组解码的简单性和高效性,在一个三元组中,onerel模型仅标记头尾实体的初始位置(hb-tb),头实体初始位置与尾实体的结束位置(hb-te),头尾实体的结束位置(he-te),即标记头尾实体构成的矩形中的三个角所处的位置信息,例如“柑橘疮痂病会导致果实畸形”中,[柑,因果,果]被标记为“hb-tb”,[柑,因果,形]被标记为“hb-te”,[病,因果,形]被标记为“he-te”,特定关系角标注实例如图4所示。
[0102]
2.1.3基于评分的分类器(scoring-based classifier)
[0103]
输入长度为n的语句,经过预训练模型编码后得到每个标记的d维标记嵌入ei:
[0104]
{e1,e2,...,en}=bert({x1,x2,...,xn})
ꢀꢀ
(1)
[0105]
其中,xi是每个标记的输入表示,它是由对应的标记嵌入和位置嵌入的总和构成。shang等人设计了一个评分函数:
[0106]fr
(h;t)=r
t
(h*t)
ꢀꢀ
(2)
[0107]
其中h,t表示头实体和尾实体,*用于挖掘实体对之间潜在的依赖关系,表示循环相关,定义*运算符如下:
[0108]
h*t=φ(w[h;t]
t
+b)
ꢀꢀ
(3)
[0109]
其中矩阵de表示实体对的维度,φ(
·
)是relu激活函数,[;]是级联运算,b是权重与偏差。该评分函数可以与bert编码器的输出无缝衔接,同时充分利用关系间的依赖性与互斥性,最终得到分数函数为:
[0110][0111]
表示得分向量,drop(
·
)为防止模型过拟合的dropout策略,使用所有关系表示计算所有token对(wi,wj)的的显著性,其中4表示分类标签数量,分类标签即上文提到的四种标记方法。最后,使用softmax函数,将(wi,rm,wj)的得分向量作为输入,得到相应的预测标签
[0112][0113]
onerel的目标函数被定义为:
[0114][0115]
代表从标注中获得的黄金标签,即真实的标记。
[0116]
2.2建模型改进
[0117]
2.2.1预训练模型的选择
[0118]
bert(bidirectional encoder representation from transformers)
[5]
是一个预训练语言模型,专门应用于自然语言处理任务,由大量无标记数据训练得到,有效提升各种自然语言处理任务的效率与准确性。bert模型共由三个模块构成,包括embedding、transformer和预微调模块。其中,embedding模块包含词向量、位置向量和文本向量。transformer模块则是采用了经典transformer中的encoder部分,共具有12个隐含层,输出768维张量,12个自注意力头。预微调模块则是根据不同任务需求做出不同的调整。自bert被提出以来,人们在bert的基础上提出了很多优化模型,例如ernie(enhanced representation through knowledge integration)模型、roberta(arobustly optimized bert pretraining approach)模型、macbert模型等。
[0119]
onerel模型使用英文预训练模型bert-base,cased,由于英文与中文在掩码方式和分词方式上存在差异,中文语料通常没有明显的分隔符,由连续字符构成,因此英文预训练模型并不适用于本次研究任务,因此本实施例尝试了多种中文预训练模型,包括谷歌(google)研发的采用单字掩码方式的bert-base,chinese、哈工大讯飞联合实验室(hfl)开发的使用全词掩码(whole word masking)方式的bert-wwm-ext模型、对随机的邻接分词添加掩码的基于分词的预训练模型spanbert、基于动态掩码和文本编码的roberta模型、纠错型掩码预训练模型macbert,并对其效果进行比较。
[0120]
2.2.2focal loss
[0121]
在模型训练阶段,数据输入模型后通过前向传播得到预测值,损失函数用于衡量真实值与预测值之间的差异,即损失值。模型通过反向传播更新参数以降低损失值,使得预测值更加接近真实值。何恺明等人于2017年在retinanet网络中提出了focal loss损失函数,该方法的目的是应对目标检测任务中的两个问题,即难以分类的样本学习和正负样本
数量不平衡。focal loss采用动态加权思想,对置信度低的样本赋予更高的权重以便在反向传播时从该类样本中获取更多信息,而对于置信度高的样本则对其进行降权。
[0122]
focal loss是基于交叉熵函数的改进函数,利用一个动态缩放的因子控制样本权重。其中,基于二分类的交叉熵损失函数形式如下:
[0123][0124]
定义p
t
如下:
[0125][0126]
得到
[0127]
ce(p,y)=ce(p
t
)=-log(p
t
)
ꢀꢀ
(9)
[0128]
其中p表示预测样本为1的概率,y表示标签。为了解决类别不均衡问题,在损失函数中加入权重因子α
t
∈[0,1],定义方式与p
t
相似,得到平衡的二分类交叉熵损失函数,形式如下:
[0129]
ce(p
t
)=-α
t
log(p
t
)
ꢀꢀ
(10)
[0130]
但该损失函数并未区分易分类样本和难分类样本,这会导致整体损失值主要由易分类样本的分类错误组成。因此,focal loss在此基础上引入动态调节因子,主要关注难分类样本的学习,解决样本量少导致的分类准确率低的问题。focal loss损失函数的定义如下:
[0131]
fl(p
t
)=-(1-p
t
)
γ
log(p
t
)
ꢀꢀ
(11)
[0132]
其中,(1-p
t
)
γ
是动态调节因子,γ≥0表示可调节参数,γ越大,易分类样本的损失值越小,使得研究可以重点关注难分类样本,在研究过程中可根据需要自行定义γ的取值。focal loss最初是为了提升目标检测任务的准确率,但在关系抽取任务中也面临着和目标检测任务相同的问题,例如,本实施例要求从语句中提取三元组,负样本数量远大于正样本,因此本实施例将focal loss损失函数引入onerel模型中,以便提高关系抽取任务的准确率。
[0133]
2.2.3multi-sample dropout
[0134]
hinton于2012年提出dropout防止模型过拟合其原理是在前向传播时,忽略部分特征检测器,使模型泛化性能更强。在此基础上,inoue
[13]
在2019年提出了multi-sample dropout方法,即采用dropout技术,创建多个dropout样本,将其损失取平均值,并利用该平均损失更新网络参数,从而使得最终的损失值低于任一dropout样本的损失值,该做法可以有效缓解过拟合问题。本实施例将该方法引入模型中,设置两个dropout样本,样本经过掩码不同的dropout层可以生成多个不同的样本,最后分别对这些样本进行与初始dropout相同的激活函数与损失函数的计算,对多个样本的损失取平均值。该方法不仅可以减少训练迭代次数,还可以有效提高模型的泛化效果。
[0135]
3.实验与结果
[0136]
3.1评价指标
[0137]
本实施例的实验中将准确率(precision)、召回率(recall)和f1值作为评价指标
评估iorm模型的效果,计算公式见12)、(13)、(14)。其中,tp(true positive)表示被正确预测为正样本的数量,fp(false positive)表示被错误地预测为正样本的数量,fn(false negative)表示被错误地预测为负样本的数量,tn(true negative)表示被正确预测为负样本的数量。本实施例中通过准确率评估模型对负样本的识别能力,使用召回率评估模型对正样本的识别能力,而f1值则是综合考虑准确率和召回率的评价指标,反映了模型的稳健性。
[0138][0139][0140][0141]
3.2实验环境与参数设置
[0142]
本实施例的实验处理平台为autodl,处理器为10vcpu intel xeon gold6248r,内存大小为72gb,系统盘为25gb,数据盘为50gb;gpu型号是a100-pcie-40gb(40gb)*1;实验所用的python版本为3.7。
[0143]
实验参数设置如表4所示。
[0144]
表4
[0145][0146]
3.3实验结果分析
[0147]
在上述实验环境与参数配置下,本实施例将整理好的数据集按照6:2:2划分为训练集、验证集和测试集,采用不同预训练模型进行关系抽取任务,不同预训练模型的效果如表5所示。
[0148]
表5
[0149][0150]
由表6可得,以macbert作为预训练模型时,准确率在五种预训练模型中表现最佳。本实施例中选择macbert作为预训练模型进行后续改进。
[0151]
本实施例中将multi-sample dropout引入onerel模型,模型效果得到提高,相较于基于macbert的onerel模型,准确率提高0.38%;在此基础上引入focal loss函数,f1值和召回率均有所提高,模型稳健性增强。相较于初始模型,引入multi-sample dropout和focal loss函数的模型准确率提高0.14%,f1值提高0.32%,召回率提高0.36%。最后,为更好地提高模型泛化性,解决过拟合问题,本实施例中采用适用于文本分类任务的数据增强技术eda((easy data augmentation),通过在语句样本中随机插入文字、随机删除文字,以及随机拼接语句的方法增加训练样本,最终,模型准确率达到77.86%,f1值达到64.88%,召回率达到55.62%,具体的模型表现如表6所示。
[0152]
表6
[0153][0154]
4.结论
[0155]
1)本实施例主要对作物病虫害领域的重叠实体关系抽取方法进行研究,主要包括构建作物病虫害领域数据集,并提出针对该领域的改进onerel模型iorm。iorm模型在原有基础上进行了改进,采用了适用于本数据集的中文预训练模型,并使用focal loss解决了自然语言处理任务中正负样本不均衡的问题。此外,还利用multi-sample dropout提高了模型的泛化能力,并采用eda(easy data augmentation)进行数据增强,以提高模型性能。
[0156]
2)本实施例表明,数据增强、focal loss损失函数以及multi-sample dropout方法均可以改进物病虫害领域的重叠实体关系抽取任务,且数据增强是提高模型效果的最有利手段之一。试验结果表明,multi-sample dropout在提高模型准确率方面发挥积极作用,focal loss函数主要提高模型稳健性与对正样本的识别能力。在数据集、实验环境与实验参数一致的情况下,本文提出的改进onerel模型取得了较好的效果,准确率达到77.86%,召回率达到55.62%,f1值达到64.88%。
[0157]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,包括以下步骤:领域数据集构建:获取领域数据,对领域数据进行筛选得到利于训练onerel模型的领域数据语句,对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组,将标注后的领域数据语句及其对应的三元组统合形成领域数据集;领域数据的类型至少包括病虫害的表现症状、治疗药物、多发时期以及药物的主要成分、使用剂量、功效和副作用;对onerel模型进行的改进:在模型训练阶段引入focal loss损失函数,得到改进模型,通过focal loss损失函数衡量真实值与预测值之间的差异,即损失值;对改进模型的训练:将领域数据集作为训练集输入改进模型;向训练后的改进模型中输入与领域数据语句格式相同的语句,得到该对应语句抽取实体关系后的三元组。2.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,对onerel模型进行的改进还包括:选取中文自然语言预训练模型macbert作为onerel模型的预训练模型。3.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,对onerel模型进行的改进还包括:通过multi-sample dropout方法对onerel模型进行训练。4.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,focal loss损失函数的形成过程为:通过基于二分类的交叉熵损失函数进行改进,二分类交叉熵损失函数表示为:定义p
t
为:得到:ce(p,y)=ce(p
t
)=-log(p
t
)其中,ce为二分类交叉熵损失函数,p表示预测样本为1的概率,y表示标注形成的标签;在二分类交叉熵损失函数中引入权重因子α
t
∈[0,1],得到平衡的二分类交叉损失函数,表示为:ce(p
t
)=-α
t
log(p
t
)在平衡的二分类交叉熵损失函数中引入动态调节因子,得到focal loss损失函数,表示为:fl(p
t
)=-(1-p
t
)
γ
log(p
t
)其中,fl为focal loss损失函数,(1-p
t
)
γ
是动态调节因子,γ≥0表示可调节参数,γ越大易分类样本的损失值越小。5.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,
其特征在于,对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组的具体步骤为:当某一领域数据语句中存在重叠实体,将重叠部分进行重新划分形成若干个新实体,对领域数据语句进行特征提取得到对应各新实体的三元组;其中,新实体与重叠实体在领域数据类型的划分中属于同一类型,且重叠实体从属于新实体;当某一领域数据语句中存在超过两个类型的领域数据时,对每一类型的领域数据分别进行特征提取生成对应领域数据各类型的三元组。6.根据权利要求3所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,通过multi-sample dropout方法对改进模型进行训练的具体方法为:设置两个dropout样本,dropout样本通过掩码不同的dropout层得到多个不同的样本,分别对各样本进行与其对应的初始的dropout样本相同的激活函数与损失函数的计算,对各样本的损失取平均值,使用该平均值更新改进模型的网络参数。7.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,对改进模型的训练还包括:采用适用于文本分类任务的数据增强技术eda,通过在训练集的领域数据语句中随机插入文字、随机删除文字以及随机拼接语句的方式增加训练样本。8.根据权利要求1所述的一种基于改进的onerel模型的领域重叠实体关系抽取方法,其特征在于,还设置有评估改进模型的评估测试方法,选取准确率、召回率和f1值作为评价指标;其中,f1值为准确率和召回率的调和平均值,兼容准确率和召回率;评估测试方法具体表示为:体表示为:体表示为:其中,p为准确率,r为召回率,tp表示被正确预测为正样本的数量,fp表示被错误地预测为正样本的数量,fn表示被错误地预测为负样本的数量,tn表示被正确预测为负样本的数量。9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述方法的步骤。
技术总结
本发明公开了一种基于改进的OneRel模型的领域重叠实体关系抽取方法,包括以下步骤:获取领域数据,对领域数据进行筛选得到利于训练模型的领域数据语句,对领域数据语句进行标注并进行特征提取得到各领域数据语句对应的三元组,将标注后的领域数据语句及其对应的三元组统合形成领域数据集;对OneRel模型进行的改进:在模型训练阶段引入FocalLoss损失函数,得到改进模型,通过FocalLoss损失函数衡量真实值与预测值之间的差异,即损失值;将领域数据集作为训练集输入改进模型;向训练后的改进模型中输入与领域数据语句格式相同的语句,得到该对应语句抽取实体关系后的三元组。本发明解决了自然语言处理任务中正负样本不均衡的问题,提高了模型的泛化能力。提高了模型的泛化能力。提高了模型的泛化能力。
技术研发人员:赵良 牛恬瑾
受保护的技术使用者:华中农业大学
技术研发日:2023.06.29
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/