一种命名实体和关系识别方法及存储介质与流程

文档序号:32248800发布日期:2022-11-19 00:33阅读:156来源:国知局
一种命名实体和关系识别方法及存储介质与流程

1.本发明涉及自然语言处理技术领域,特别涉及一种命名实体和关系识别方法和存储介质。


背景技术:

2.命名实体识别(named entity recognition,简称ner)和关系抽取(relation extraction,简称re)在自然语言处理中是一项非常重要的工作,特别在当今信息爆炸的背景下,每天有大量的新闻、娱乐、广告等信息被产生并飞速传播,为了更好地管理并从海量的信息中提取出有用的信息,基于自然语言处理的信息提取技术应运而生。命名实体识别和关系抽取是信息提取过程中至关重要的两步。
3.目前命名实体识别方法主要有序列标注和指针网络两种,但是不论是序列标注还是指针网络,在识别长实体和嵌套实体时效果都不理想。目前关系抽取模型主要分为管道模型和联合模型,管道模型先对输入文本抽取主体和客体,再判定其关系,联合模型同时进行主客体抽取和关系分类。管道模型一般由两个模型组成,整个识别过程分步进行,模型灵活性强,但实体抽取的错误会影响关系抽取的性能,联合模型通常通过共享参数或构建特定解码方式进行关系抽取,模型结构更复杂,但效果更好。
4.目前的命名实体识别和关系抽取模型都需要依靠复杂的解码过程才能得到最终结果,而这种解码过程往往不能利用电脑的gpu进行运算,耗时较长;且均为先识别实体后进行分类,分成两个独立的任务进行,降低了资源的使用效率,但目前还没有一个完整的方法能同时实现命名实体识别和关系抽取两个任务。


技术实现要素:

5.鉴于上述的分析,本发明旨在提供一种命名实体和关系识别方法和存储介质;解决现有技术中的命名实体和关系识别无法在一个任务中同时进行,需要分为两个独立的任务进行识别,耗时较长,降低了资源使用效率的问题。
6.本发明的目的主要是通过以下技术方案实现的:
7.一方面,本发明提供了一种命名实体和关系识别方法,包括以下步骤:
8.获取待识别文本及识别任务;所述识别任务为与命名实体和/或关系相关的识别任务;
9.根据所述识别任务对待识别文本添加对应的任务描述;
10.将待识别文本及对应的任务描述输入预先训练的实体关系联合识别模型,预测得到待识别文本的与任务描述对应的识别结果。
11.进一步的,所述识别任务包括主任务和辅助任务,所述主任务包括实体关系同时识别、命名实体识别和关系识别任务;所述辅助任务包括:实体抽取、实体分类、关系主客体抽取和关系分类任务。
12.进一步的,所述识别任务对应的任务描述包括:
13.所述实体关系同时识别的任务描述为:同时识别出待识别文本中的全部实体、实体类别以及全部关系;
14.所述命名实体识别的任务描述为:识别出待识别文本中所有实体和实体类别;
15.所述关系识别的任务描述为:识别出待识别文本中全部关系三元组;所述关系三元组包括原始文本中存在的关系及每个关系对应的主体和客体;
16.实体抽取的任务描述为:抽取出待识别文本中的全部实体;
17.实体分类的任务描述为:识别出待识别文本中的实体对应的实体类别;
18.关系主客体抽取的任务描述为:识别出待识别文本中关系的主体和客体;
19.关系分类的任务描述为:识别出待识别文本中主体和客体的关系。
20.进一步的,所述实体关系联合识别模型为基于t5的预训练模型,通过预先构建的训练样本集训练得到;
21.所述训练样本集中的每条数据包括至少一个独立实体和一个关系;
22.所述训练样本集的构建包括:分别获取命名实体识别数据集和关系抽取数据集;对数据集中的原始文本进行命名实体和关系联合标注;为数据集中的每条数据分别添加任务描述;根据任务描述构建每条数据的目标输出,构建得到所述训练样本集。
23.进一步的,所述命名实体和关系联合标注包括:
24.对命名实体识别数据集中的原始文本补充关系标注,得到补充关系标注的命名实体识别数据集d
ner+re
;所述数据集d
ner+re
中包括有关系标注的数据和无关系标注的数据;
25.对关系抽取数据集中的原始文本补充命名实体标注;得到补充命名实体标注的关系抽取数据集d
re+ner
,所述数据集d
re+ner
中包括有独立实体标注的数据和无独立实体标注的数据;
26.对所述数据集d
ner+re
中无关系标注的数据和所述数据集d
re+ner
中无独立实体标注的数据进行随机合并,得到数据集d3;
27.将数据集d
ner+re
中有关系标注的数据、数据集d
re+ner
中有独立实体标注的数据和数据集d3进行合并,得到命名实体和关系联合标注后的数据集d
all

28.进一步的,分别利用所述命名实体识别数据集和关系抽取数据集进行训练,得到命名实体识别模型和关系抽取模型;
29.利用所述命名实体识别模型预测关系抽取数据集中的所有数据,得到关系抽取数据集的命名实体标注;得到补充命名实体标注的关系抽取数据集d
re+ner

30.利用所述关系抽取模型预测命名实体识别数据集中的所有数据,得到补充关系标注的命名实体识别数据集d
ner+re

31.进一步的,将数据集d
all
中的数据按预设的比例分为n份,根据n种任务描述分别为相应份的数据构建对应的目标输出,构建完成后合并且打乱数据,得到所述训练样本集;其中,n为任务描述的种类数。
32.进一步的,对于实体关系同时识别的任务,通过下述方式构建目标输出:
33.实体转换:遍历每个原始文本的所有实体类别,得到每个实体类别中的实体,对每个实体以“实体+是+实体类别”的方式组合为实体句子,将得到的每个实体的句子以“,”拼接;
34.关系转换:遍历每个原始文本的所有关系标签,得到每个关系标签中的关系及每
个关系对应的主体和客体,对每个关系以“主体+的+关系+是+客体”的方式组合为关系句子,将得到的每个关系的句子以“,”拼接。
35.将每个原始文本对应的转换后的实体句子与关系句子以“,”拼接,构建得到每个原始文本对应的目标输出。
36.进一步的,所述实体关系联合识别模型包括编码器和解码器;
37.根据所述原始文本和任务描述,通过自注意力机制和前馈网络进行计算,预测目标输出,经过损失迭代,得到收敛的模型,即为实体关系联合识别模型;
38.其中,通过下述公式进行损失迭代:
[0039][0040]
其中,为时间步t的预测概率,为时间步t的真实概率;
[0041]
将所有时间步的损失相加得到总损失loss
t

[0042][0043]
其中,t为所有时间步。
[0044]
另一方面,还公开了一种命名实体和关系识别存储介质,所述存储介质存储有计算机指令,所述指令用于被计算机执行以实现前述的命名实体和关系识别方法。
[0045]
本技术方案的有益效果:
[0046]
1、本发明将命名实体识别和关系抽取两个任务视为一个文本生成任务,根据任务描述,可同时识别命名实体和关系,具有解码过程简单,预测速度快的优势。
[0047]
2、本发明构建了七种不同的训练数据来同时训练模型,包括三个主任务和四个辅助任务,任务之间利用任务描述加以区分,在实际应用中可以通过改变任务描述,完成七种不同的任务,具有极大的实用价值。
[0048]
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0049]
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0050]
图1为本发明实施例的命名实体和关系识别方法流程图。
[0051]
图2为本发明实施例的模型训练方法流程示意图;
[0052]
图3为本发明实施例的交叉补充数据集流程示意图;
[0053]
图4为本发明实施例的构建最终训练数据流程示意图;
[0054]
图5为本发明实施例的t5模型整体结构示意图;
具体实施方式
[0055]
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0056]
本实施例中的一种命名实体和关系识别方法,如图1所示,包括以下步骤:
[0057]
步骤s1、获取待识别文本及识别任务;
[0058]
具体的,待识别文本可以为任意的需要进行命名实体和关系识别的文本。识别任务为与命名实体和/或关系相关的识别任务;
[0059]
优选的,本实施例中的识别任务包括主任务和辅助任务。其中,主任务包括:实体关系同时识别、命名实体识别和关系识别任务;主任务为命名实体和关系识别常用的识别任务。
[0060]
辅助任务包括:实体抽取、实体分类、关系主客体抽取和关系分类任务;辅助任务为命名实体和关系识别特殊需求的任务;在模型训练时,辅助任务可同时起到锻炼模型实体识别、实体分类、关系主客体识别和关系分类的能力的目的。
[0061]
在获取待识别文本后,还可对待识别文本进行预处理:删除文本中中的特殊符号和多余的空格,将所有全角字符转换为半角,将所有繁体字转换为简体,将所有大写的英文字母转换为小写。
[0062]
步骤s2:根据所述识别任务对待识别文本添加对应的任务描述;
[0063]
具体的,每个认识任务对应不同的任务描述,将每个识别任务对应的任务描述添加到待识别文本的后边,作为后续识别任务的输入文本。
[0064]
优选的,所述实体关系同时识别的任务描述为:同时识别出待识别文本中的全部实体、实体类别以及全部关系;
[0065]
所述命名实体识别的任务描述为:识别出待识别文本中所有实体和实体类别;
[0066]
所述关系识别的任务描述为:识别出待识别文本中全部关系三元组;所述关系三元组包括原始文本中存在的关系及每个关系对应的主体和客体;
[0067]
实体抽取的任务描述为:抽取出待识别文本中的全部实体;
[0068]
实体分类的任务描述为:识别出待识别文本中的实体对应的实体类别;在构建实体分类任务的任务描述时需要在任务描述中给出待识别文本中的全部实体。
[0069]
关系主客体抽取的任务描述为:识别出待识别文本中关系的主体和客体;在构建关系主客体抽取任务的任务描述时,需要在任务描述中给出待识别文本中的全部关系。
[0070]
关系分类的任务描述为:识别出待识别文本中主体和客体的关系;在构建关系分类任务的任务描述时,需要在任务描述中给出待识别文本中的全部主体和客体。
[0071]
步骤s3:将待识别文本及对应的任务描述输入预先训练的实体关系联合识别模型,预测得到待识别文本的与任务描述对应的输出。
[0072]
具体的,实体关系联合识别模型为基于t5的预训练模型,通过预先构建的训练样本集训练得到;训练样本集中的每条数据包括至少一个独立实体和一个关系;训练样本集的构建包括:
[0073]
分别获取命名实体识别数据集和关系抽取数据集;分别利用命名实体识别数据集和关系抽取数据集进行训练,得到命名实体识别模型和关系抽取模型;
[0074]
利用命名实体识别模型预测关系抽取数据集中的所有数据,得到关系抽取数据集的命名实体标注;得到补充命名实体标注的关系抽取数据集d
re+ner
;数据集d
re+ner
中包括有独立实体标注的数据和无独立实体标注的数据;
[0075]
利用关系抽取模型预测命名实体识别数据集中的所有数据,得到补充关系标注的
命名实体识别数据集d
ner+re
。数据集d
ner+re
中包括有关系标注的数据和无关系标注的数据;
[0076]
对数据集d
ner+re
中无关系标注的数据和数据集d
re+ner
中无独立实体标注的数据进行横向合并,得到数据集d3;
[0077]
将数据集d
ner+re
中有关系标注的数据、数据集d
re+ner
中有独立实体标注的数据和数据集d3进行合并,得到数据集d
all

[0078]
优选的,命名实体识别数据集可选择人民日报数据集、cluener数据集等,人民日报数据集和cluener数据集已经包含了命名实体标注;关系抽取数据集可选择lic2021数据集等,lic2021数据集中已经包含了关系三元组标注。命名实体识别数据集和关系抽取数据集的语言一致,且数据集内容所处领域尽可能相似,以保证模型有稳定的预测效果。
[0079]
首先对数据集中的数据进行去噪:删除上述数据集中影响模型训练的特殊符号和多余的空格,将所有全角字符转换为半角,将所有繁体字转换为简体,将所有大写的英文字母转换为小写。将去噪完成的命名实体数据集记为d
ner
,将去噪完成的关系抽取数据集记为d
re

[0080]
由于最终的模型训练需要同时用到d
ner
和d
re
两个数据集,且两个数据集领域相似,因此命名实体识别数据集中可能存在一些未被标注的、与关系抽取数据集类似的关系,同理关系抽取数据集中也可能存在未被标注的、与命名实体识别数据集中类似的实体,即简单的合并数据集会造成数据漏标,因此需要对两个数据集的标注进行交叉补充。
[0081]
对数据集进行交叉补充需要补充命名实体识别数据集d
ner
中对于关系的标注、补充关系抽取数据集d
re
中对于命名实体的标注,使两个数据集同时具有命名实体和关系的标注,为后面的训练模型做准备。
[0082]
上述交叉补充数据集的步骤图2所示,包括:
[0083]
分别选择命名实体识别模型和关系抽取模型;其中的命名实体识别模型和关系抽取模型可根据需要选择,不做特别要求。本实施例采用的命名实体识别模型为bert+crf模型;关系抽取模型采用bert+cnn模型。特殊的,选择的模型需要支持数据集的语言。
[0084]
利用命名实体识别数据集训练命名实体识别模型,训练好的模型记为m
ner
;利用关系抽取数据集训练关系抽取模型,训练好的模型记为m
re

[0085]
利用训练好的命名实体识别模型m
ner
预测关系抽取数据集d
re
中的所有数据,得到关系抽取数据集的命名实体标注l
ner
;将命名实体标注l
ner
增加到原关系抽取数据集d
re
中,得到补充了命名实体标注的关系抽取数据集d
re+ner

[0086]
利用训练好的关系抽取模型m
re
预测命名实体识别数据集d
ner
中所有数据,得到命名实体识别数据集的关系标注l
re
;将关系标注l
re
增加到原命名实体识别数据集d
ner
中,得到补充了关系标注的命名实体识别数据集d
ner+re

[0087]
将d
re+ner
中有独立实体标注和无独立实体标注的数据分开,得到有独立实体标注的数据集和无独立实体标注的数据集将d
ner+re
中有关系标注和无关系标注的数据分开,得到有关系标注的数据集和五关系标注的数据集横向合并和得到既包括独立实体又包括关系标注的数据集d3;统一d3标注格式;合并d3,得到合并数据集,记为dall

[0088]
需要说明的是,d
re+ner
中理论上每一条数据都应该增加了命名实体标注,这是因为原本数据集对(主体,客体,关系)这样的三元组进行标注,而主体和客体本身也是实体,是能被m
ner
识别出来的,区别就在于原始文本中是否存在独立实体。独立实体指不能与文本中其他实体组成关系的实体。为了使训练后得到的命名实体和关系联合识别模型能同时识别出存在关系的实体和独立的实体,训练数据需要满足每条数据都同时包含至少一种关系和至少一个独立实体。
[0089]
例如,表1句子中“2009年”属于独立实体,则如表1中的句子这样包含独立实体的数据都被归为数据集中。
[0090]
表1关系抽取数据集有独立实体标注样例
[0091][0092][0093]
其余的不包含独立实体标注的数据指识别出的实体中只包含原有关系里的主客体,如表2中的句子,这类句子归为数据集
[0094]
表2关系抽取数据集无独立实体标注样例
[0095][0096]
同样的,d
ner+re
中有一部分数据被增加了关系标注,如表3中的句子同时拥有实体和关系的标注,这类句子作为包含关系标注的数据被归为的中。
[0097]
表3向实体识别数据集增加关系标注样例
[0098]
原实体标注1975年,小明、卓丹怀抱他们的孩子小方在河北武安留影。1975年,小明,卓丹,小方,河北武安
日期,人名,人名,人名,地区增加的关系标注(小方,小明,父亲)(小方,卓丹,母亲)
[0099]
而另外一部分数据由于不存在关系导致没有被增加关系标注,例如表4中的句子除了“记者”是职业类实体外没有任何关系描述,这类句子被归为数据集
[0100]
表4实体识别数据集无关系标注样例
[0101][0102][0103]
通过对数据集和进行合并,得到满足训练条件的同时包含至少一种关系和至少一个独立实体的训练数据。和经过筛选已满足条件,所以合并数据集和d3,得到满足条件的数据集d
all

[0104]
例如,表2中的句子属于数据集中无独立实体标注的数据,表4中的句子为数据集中无关系标注的数据,将这两类句子对应横向合并,即句子与句子合并、实体与实体合并、关系与关系合并,以表2与表4中的句子为例,二者合并后标注情况如表5所示,合并后得到独立实体“记者”:
[0105]
表5横向合并无独立实体标注数据和无关系标注数据
[0106][0107]
由于命名实体识别和关系抽取任务很少依赖句子之间的连贯性,故这样直接拼接不会影响训练效果。由于与中句数大多数情况下不一致,因此也可以多句子拼接,原理与上述一致。拼接后的数据集d3中每条数据都包含了至少一种关系和至少一个独立实体,满足训练数据要求。
[0108]
对数据集d3进行合并前,需要对数据集中的数据标注统一
格式。本实施例采用json格式,每一条文本和其对应的标签构成一个json格式的字典,其json格式字典的内部结构如表6所示:
[0109]
表6数据标注的json格式结构
[0110][0111]
其中,字典中的英文键"text","entity_label","relation_label","head","end","relation"是固定不变的,其余中文键和值需要根据具体内容修改和增减,以表5中的句子为例,其json格式的标注如表7所示:
[0112]
表7数据标注样例
[0113][0114]
优选的,对数据集d3的合并采用纵向合并,即上下拼接数据集,得到拼接后的数据集d
all

[0115]
对所述数据集d
all
中的原始文本数据添加命名实体识别及关系识别相关的任务描述,并根据所述任务描述构建目标输出。
[0116]
具体的,本实施例的模型训练包括3个主任务和4个辅助任务,故共需要构建7种数据标注。将d
all
中的数据以2:2:2:1:1:1:1的比例分为七份,分别用于构建主任务1-3、辅助任务1-4的数据,每个主任务数据占总数据的20%,辅助任务数据占总数据的10%,构建完成后合并并打乱数据,以8:1:1的比例分为训练集、验证集和测试集,构建最终训练数据整体流程如图3所示。其中每条数据都包括三部分:原始文本,即待识别文本、任务描述和目标输出。
[0117]
其中,主任务包括:实体关系同时识别、命名实体识别和关系识别;辅助任务包括:实体抽取、实体分类、关系主客体抽取和关系分类。具体的:
[0118]
1)主任务1——实体关系同时识别
[0119]
主任务1的目标是让模型同时识别出待识别文本中的全部实体、对应实体类别以及全部关系,目标输出为文中所有实体、实体类别和关系三元组的文本表示。将表6所示结构转换成主任务目标输出的过程如下:
[0120]
对于实体的转换,首先遍历每个待识别文本中所有实体类别,其次遍历每个实体类别中的实体,对每个实体,以“实体+是+实体类别”的方式组合为实体的句子,将得到的每个实体的句子以“,”拼接。
[0121]
对于关系的转换,遍历每个待识别文本中所有"relation_label"的值中代表关系的字典,对于每个字典,以“主体+的+关系+是+客体”的方式组合为关系的句子,将得到的每个关系的句子以“,”拼接。
[0122]
将每个待识别文本对应的转换后的实体句子与关系句子以“,”拼接,构建得到每个待识别文本对应的目标输出。
[0123]
例如,表7中的数据数据所对应的主任务1训练数据如表8所示:
[0124]
表8主任务1训练数据示例
[0125][0126][0127]
2)主任务2——命名实体识别
[0128]
主任务2的目标是让模型进行命名实体识别,即识别出待识别文本中所有实体和实体类别,目标输出为文中所有实体、实体类别的文本表示,转换方式与主任务1对于实体的转换方法相同。
[0129]
例如,表7中的数据所对应的主任务2的训练数据如表9所示:
[0130]
表9主任务2训练数据示例
[0131][0132]
3)主任务3——关系三元组识别
[0133]
主任务3的目标是让模型进行关系三元组识别,即识别出待识别文本中所有存在的关系和其主客体,目标输出为文中所有关系三元组的文本表示,转换方式与主任务1对于关系三元组的转换方法相同。
[0134]
例如,表7中的数据所对应的主任务3训练数据如表10所示:
[0135]
表10主任务3训练数据示例
[0136][0137]
4)辅助任务1——实体抽取
[0138]
辅助任务1的目标是让模型抽取出待识别文本中的全部实体,不包括实体的类别,锻炼的是模型识别实体的能力,目标输出是待识别文本中所有实体。将表6所示结构转换成目标输出的过程如下:
[0139]
首先遍历每个待识别文本中的所有实体类别,其次遍历每个实体类别中的实体,将得到的所有实体用“,”拼接。
[0140]
例如,表7中的数据所对应的辅助任务1的训练数据如表11所示:
[0141]
表11辅助任务1训练数据示例
[0142][0143]
5)辅助任务2——实体分类
[0144]
辅助任务2的目标是让模型对待识别文本中的实体进行分类,任务描述为识别出待识别文本中的实体对应的实体类别,锻炼的是模型实体分类能力,辅助任务2在构建任务描述时需要在任务描述中给出待识别文本中的全部实体,在目标输出中给出这些实体对应的类别。
[0145]
以表6所示结构为例,首先遍历所有实体类别,其次遍历每个实体类别中的实体,将所有实体以“,”拼接在一起,作为任务描述中的内容;将得到的所有实体的实体类别以“,”拼接在一起,作为目标输出的内容。任务描述与目标输出内容顺序应对应一致。
[0146]
例如,表7中的数据所对应的辅助任务2训练数据如表12所示:
[0147]
表12辅助任务2训练数据示例
[0148][0149]
6)辅助任务3——关系主客体抽取
[0150]
辅助任务3的目标是让模型识别出待识别文本中关系的主体和客体,任务描述为
识别出原始文本中关系的主体和客体,锻炼的是模型识别主客体的能力,辅助任务3在构建任务描述时需要在任务描述中给出待识别文本中的全部关系,在目标输出中给出这些关系对应的主体和客体。
[0151]
以表6所示结构为例,遍历所有"relation_label"的值中代表关系的字典,将所有字典中的"关系"以“,”拼接在一起,作为任务描述中的内容;对于每个字典,以“主体+和+客体”的方式组合成一句话,将所有组合的句子以“,”拼接,作为目标输出的内容。任务描述与目标输出内容顺序应对应一致。
[0152]
例如,表7中的数据所对应的辅助任务3的训练数据如表13所示:
[0153]
表13辅助任务3训练数据示例
[0154][0155]
7)辅助任务4——关系分类
[0156]
辅助任务4的目标是让模型对待识别文本中的主体和客体进行关系分类,任务描述为识别出原始文本中主体和客体的关系;锻炼的是模型关系分类的能力,辅助任务4在构建任务描述时需要在任务描述中给出原始文本中的全部主体和客体。目标输出是文本中所有存在的关系。辅助任务4的任务描述和目标输出内容刚好与辅助任务3相反,具体转换方式可参照辅助任务3。
[0157]
例如,表7中的数据所对应的辅助任务4的训练数据如表14所示:
[0158]
表14辅助任务4训练数据示例
[0159][0160][0161]
基于所述数据集d
all
中的原始文本及对应的任务描述和目标输出构建训练样本集,利用训练样本集中的数据进行训练,经过损失函数迭代更新,得到实体关系联合识别模型;
[0162]
所述命名实体和关系联合识别模型用于根据输入的待识别文本和任务描述,预测得到与所述待识别文本的任务描述对应的输出文本。
[0163]
具体的,采用上述七种方法对数据集d
all
中的数据进行处理,并将任务描述直接接在原始文本后面作为原始文本,处理后得到新的数据集d
all_
,将d
all_
中的数据顺序打乱,按照8:1:1的比例分为训练集、验证集和测试集,记为d
train
,d
vaild
,d
test
,最终的训练数据构建完成。
[0164]
本实施例的识别模型选用t5预训练模型,使用预训练+微调的方式进行训练。模型的输入为:原始文本+任务描述,目标输出,用d
train
全部数据对模型进行训练,具体过程如下:
[0165]
首先加载t5预训练权重,该预训练权重在训练阶段可以更新,t5由12个相同的编码器和12个相同的解码器组成,其结构如图4所示,每个编码器和解码器内部通过自注意力机制和前馈网络进行计算,解码器计算时需要用到编码器的输出。
[0166]
t5的第一个编码器接收原始文本+任务描述作为输入x
input
,通过词嵌入和位置编码,得到长度为n,维度为768的词向量集合n为分词后的token数。
[0167]
h1经过多头自注意力和前馈网络层得到第一个编码器的输出隐向量作为第二个编码器的输入。其中,多头自注意力的头数为12,每个头的计算公式为:
[0168]
q=hi·
wq,k=hi·
wk,v=hi·
wv(i∈[1,12])
[0169][0170]hi
为第i层的输入隐向量,wq、wk、wv是三个可训练的矩阵,训练时随机初始化,形状为768
×
n,dk=64。
[0171]
重复计算12次,得到第12个编码器的输出解码时,每个解码器的自注意力机制计算如下:
[0172]
q=he·
wq,k=he·
wk,
[0173][0174]
其中,q、k的计算使用编码器输出he,v的计算使用第i层的解码器隐向量wq、wk、wv是三个可训练的矩阵,训练时随机初始化,形状为768
×
n,dk=64。
[0175]
在每个解码时间步t,使用交叉熵计算预测概率和真实概率之间的损失loss
t
,并将所有时间步的损失相加得到总损失loss
t

[0176][0177][0178]
反向传播损失,通过最小化loss
t
更新模型各参数权重,用全部数据训练50轮,每训练完一轮,使用验证集d
vaild
进行验证,最后保存效果最好的一轮模型,作为最终的命名实体和关系联合识别模型。
[0179]
本发明的另一个实施例,提供了另一方面,还公开了一种命名实体和关系识别存储介质,所述存储介质存储有计算机指令,所述指令用于被计算机执行以实现前述的命名实体和关系识别方法。
[0180]
本发明公开了一种命名实体和关系识别方法,将命名实体识别和关系抽取两个任务当作一个文本生成任务,将待识别文本中的命名实体和关系的标签转换为文字描述的格
式作为模型的目标输出文本,使模型能一次性识别出原始文本中所有的实体和关系。在模型的训练过程中,为了提高模型识别的准确率,还增加四个辅助任务进行数据增强训练,并在训练数据中增加对任务要求的描述以区分各个任务,最终得到可同时完成命名实体和关系抽取任务的统一模型。使得本发明的命名实体和关系识别方法可以支持通过任务描述改变输出结果,以满足各种命名实体和关系的细分任务的需要,具有很强的实用性和灵活性。
[0181]
综上所述,本发明的实施例提供的命名实体和关系识别方法,可同时完成命名实体识别和关系抽取任务,也可选择性地完成其中一个任务。如图5所示,本发明的命名实体和关系识别方法在模型训练时可分为两大部分:构建训练数据和训练模型。其中,构建训练所需数据是该方法实施的重点,包括获取及预处理数据集、交叉补充数据集、构建最终训练数据三步,训练模型所得到的模型是该方法最终的命名实体和关系的联合识别模型。本发明将命名实体和关系抽取任务当作文本生成任务,通过构建文本形式的训练数据来训练文本生成模型,本发明训练模型时使用了三个主任务和四个辅助任务,通过给出不同的任务描述对数据和任务进行区分,提高了模型的性能和预测准确度,最终得到可同时完成命名实体和关系抽取任务的联合识别模型。
[0182]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0183]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1