一种三元组抽取方法、装置、设备及存储介质与流程

文档序号:29168326发布日期:2022-03-09 03:54阅读:159来源:国知局
一种三元组抽取方法、装置、设备及存储介质与流程

1.本发明涉及知识抽取技术领域,更具体地说,涉及一种三元组抽取方法、装置、设备及存储介质。


背景技术:

2.从句子语法成分来看,可以将三元组描述为从句子中抽取句子的主语(subject)-谓语(predicate)-宾语(object);现有技术中在实现三元组抽取时,通常是人工实现,但是这种方式需要花费大量的人力,并且抽取的时间较长、效率较低。


技术实现要素:

3.本发明的目的是提供一种三元组抽取方法、装置、设备及存储介质,能够利用相应模型自动实现文档中三元组的有效抽取,无需人工介入,从而能够节省人力,缩短抽取时间,提高抽取效率。
4.为了实现上述目的,本发明提供如下技术方案:
5.一种三元组抽取方法,包括:
6.确定当前需实现三元组抽取的任意文档为待抽取文档;
7.将所述待抽取文档输入至分段模型中,得到所述分段模型输出的分段结果,并基于该分段结果得到所述待抽取文档包含的多个段落;所述分段模型为预先利用多个文档及相应分段结果训练得到的;
8.将所述待抽取文档包含的每个段落分别输入至抽取模型中,得到所述抽取模型输出的相应段落中包含的三元组;所述抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。
9.优选的,所述分段模型为利用bert以及bi-lstm进行联合建模所得的模型。
10.优选的,所述抽取模型为基于spanbert实现的closespo-ie模型。
11.优选的,利用多个段落及该多个段落中各段落分别包含的三元组训练得到抽取模型,包括:
12.预定义谓语集合,所述谓语集合包括需要提取全部三元组包含的各谓语;
13.基于所述谓语集合获取多个段落及相应的三元组作为训练语料,并利用所述训练语料训练得到抽取模型。
14.优选的,在训练得到所述分段模型及所述抽取模型之后,还包括:
15.通过增量训练方式定时训练所述分段模型及所述抽取模型。
16.优选的,将所述待抽取文档包含的每个段落分别输入至抽取模型中之前,还包括:
17.将所述待抽取文档包含的标点符号全部替换为英文的标点符号。
18.优选的,得到所述抽取模型输出的相应段落中包含的三元组之后,还包括:
19.将所述待抽取文档包含的每个段落中包含的三元组进行整合,得到相应的三元组知识集,并将所述三元组知识集输出。
20.一种三元组抽取装置,包括:
21.确定模块,用于:确定当前需实现三元组抽取的任意文档为待抽取文档;
22.分段模块,用于:将所述待抽取文档输入至分段模型中,得到所述分段模型输出的分段结果,并基于该分段结果得到所述待抽取文档包含的多个段落;所述分段模型为预先利用多个文档及相应分段结果训练得到的;
23.抽取模块,用于:将所述待抽取文档包含的每个段落分别输入至抽取模型中,得到所述抽取模型输出的相应段落中包含的三元组;所述抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。
24.一种三元组抽取设备,包括:
25.存储器,用于存储计算机程序;
26.处理器,用于执行所述计算机程序时实现如上任一项所述三元组抽取方法的步骤。
27.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述三元组抽取方法的步骤。
28.本发明提供了一种三元组抽取方法、装置、设备及存储介质,该方法包括:确定当前需实现三元组抽取的任意文档为待抽取文档;将所述待抽取文档输入至分段模型中,得到所述分段模型输出的分段结果,并基于该分段结果得到所述待抽取文档包含的多个段落;将所述待抽取文档包含的每个段落分别输入至抽取模型中,得到所述抽取模型输出的相应段落中包含的三元组;其中,所述分段模型为预先利用多个文档及相应分段结果训练得到的,所述抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。本技术在需要对任意文档实现三元组抽取时,先利用预先训练得到的分段模型对该任意文档进行分段处理得到该任意文档中包含的各段落,进而利用抽取模型得到该任意文档包含的每个段落中包含的各三元组,从而实现文档中三元组的自动抽取。可见,本技术能够利用相应模型自动实现文档中三元组的有效抽取,无需人工介入,从而能够节省人力,缩短抽取时间,提高抽取效率。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
30.图1为本发明实施例提供的一种三元组抽取方法的流程图;
31.图2为本发明实施例提供的分段模型的预测模式示意图;
32.图3为本发明实施例提供的bertspan模型的原理示意图;
33.图4为本发明实施例提供的一种三元组抽取装置的结构示意图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.请参阅图1,其示出了本发明实施例提供的一种三元组抽取方法的流程图,可以包括:
36.s11:确定当前需实现三元组抽取的任意文档为待抽取文档。
37.需要说明的是,本技术实施例中所抽取的三元组具体可以指主语(subject)-谓语(predicate)-宾语(object),简称为spo;但是由于spo的成分更加宽泛,因此只要三元组表达一条知识,则可以称其为一条spo。在需要对任意的文档实现三元组抽取时,均可以确认该任意的文档为待抽取文档,进而对待抽取文档中的三元组实现自动抽取;另外,待抽取文档可以为包含有金融知识的文档,当然也可以根据实际需要进行其他设置。
38.s12:将待抽取文档输入至分段模型中,得到分段模型输出的分段结果,并基于该分段结果得到待抽取文档包含的多个段落;分段模型为预先利用多个文档及相应分段结果训练得到的。
39.考虑到当太长的输入发生时,会导致抽取精度下降,且不符合抽取模型的输入长度限制,因此本技术实施例在对待抽取文档实现三元组抽取前,还会对待抽取文档进行自动文本分段,在实现自动文本分段时可以利用bmeo来标注文本的段落,b表示段落开头,e表示段落结尾,m表示段落中间部分,o表示其他杂项,如图片,图片注释等。具体来说,可以预先获取多个文档及相应的分段结果作为训练语料,然后利用训练语料训练得到分段模型,进而在对任意文档实现自动文本分段时,则可以将该任意文档输入至分段模型中,分段模型则可以输出该任意文档的分段结果;其中,任意文档对应的分段结果可以是利用bmeo为该任意文档中各句子进行标注所得的结果;进而基于分段结果可以确定出相应文档中包含的各个段落。
40.s13:将待抽取文档包含的每个段落分别输入至抽取模型中,得到抽取模型输出的相应段落中包含的三元组;抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。
41.为了实现三元组的自动抽取,本技术实施例可以预先获取多个段落及每个段落中分别包含的三元组作为训练语料,然后利用训练语料训练得到抽取模型,进而在对任意段落实现三元组抽取时,则可以将该任意段落输入至抽取模型中,抽取模型则可以输出该任意段落中包含的各三元组。
42.本发明提供了一种三元组抽取方法、装置、设备及存储介质,该方法包括:确定当前需实现三元组抽取的任意文档为待抽取文档;将待抽取文档输入至分段模型中,得到分段模型输出的分段结果,并基于该分段结果得到待抽取文档包含的多个段落;将待抽取文档包含的每个段落分别输入至抽取模型中,得到抽取模型输出的相应段落中包含的三元组;其中,分段模型为预先利用多个文档及相应分段结果训练得到的,抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。
43.本技术在需要对任意文档实现三元组抽取时,先利用预先训练得到的分段模型对该任意文档进行分段处理得到该任意文档中包含的各段落,进而利用抽取模型得到该任意文档包含的每个段落中包含的各三元组,从而实现文档中三元组的自动抽取。可见,本技术能够利用相应模型自动实现文档中三元组的有效抽取,无需人工介入,从而能够节省人力,
缩短抽取时间,提高抽取效率。
44.本发明实施例提供的一种三元组抽取方法,分段模型可以为利用bert以及bi-lstm进行联合建模所得的模型。
45.需要说明的是,分段模型可以主要采用基于预训练语言模型(bert)和双向长短记忆单元(bi-lstm)的联合建模方式对文档进行自动分段处理;其中,bi-lstm为前向的lstm和后向的lstm的拼接。在具体实现方式中,分段模型可以如图2所示,具体可以包括:
46.定义分段模型训练batch-size大小必须大于文档段落的平均长度。由于输入分段模型的为一段字符,故输出[cls]表征每行的信息,由于利用bi-lstm捕捉不同行之间的转移信息,故需要batch-size大于平均段落长度,一般地,可以设置batch-size大于16;
[0047]
将bert的输出(大小为batch_sizex 768)作为bi-lstm输入,设置bi-lstm的隐藏层大小(hidden-size)为128;
[0048]
设置mlp的权重大小为(2*hidden-size,4),得到logits矩阵;
[0049]
将logits映射到softmax概率空间上,选出概率最大的标签(tag)为预测值;例如:输入一段文字,softmax得到的标签概率为[0.76,0.16,0.05,0.03],对应的标签为[b,m,e,o],所以该段文字的最终预测标签为b,即其为段落的开头。
[0050]
本发明实施例提供的一种三元组抽取方法,抽取模型可以为基于spanbert实现的closespo-ie模型。
[0051]
需要说明的是,为了更好的表征文本向量,本技术实施例可以采用预训练模型(bert)实现抽取模型;具体的可以采用spanbert,进而在此基础上实现closespo-ie(限定域三元组抽取)模型作为抽取模型。其中,closespo-ie通过分析任意领域的数据,预先自定义该任意领域下需要抽取的三元组中包含的p的集合(可以将预定义的p的集合称作scheme),openspo-ie不需要预定义的关系类型,它可以有效地提取包含在其中的实体之间的新关系事实;另外,利用closespo-ie模型可以对输入的长度小于510个中文字符的段落进行spo的自动抽取,从而有效准确的实现相应领域下三元组的抽取。
[0052]
在具体实现方式中,本技术实施例中的closespo-ie模型主要采用基于spanspo联合建模方式对拆解后的文档进行spo抽取,原理图可以如图3所示。具体来说,举例说明span的含义,采用span编码的方式采样句子中的s和o,对于一个句子,设l=(c1c2c3...cn),其中ci表示一个中文字符,n表示句子中含有n个中文字符,即len(l)=n.,span编码则为span
i~j
=(c
ici+1
...cj),其表示从ci到cj,即为span
i~j
=l[i:j+1]。在span采样的过程中利用spanspo模型训练时,正样本即为标注的so实体的span下标以及p在scheme中的id,负样本的形成利用span,如定义span的跨度范围为[2,10],则从句子开始迭代选取所有的符合span跨度的span作为so,且p都定义相应正样本p的id;如:{“text”:“全球知名咨询机构idc发布《未来银行白皮书》”,“spo_list”:[([2,11],[13,22],1),([8,11],[4,8],2)]},设,1表示scheme中的“制定”对应的id(为1),2表示scheme中的“属于”对应的id(为2),正样本即为([2,11],[13,22],1),负样本可为[([2,11],[4,8],0),([2,11][8,11],0)],负样本的实体对来自真实实体,但是实体对之间不存在关系。相应的,利用抽取模型实现任意段落中三元组的抽取可以包括:
[0053]
span长度embedding,对于不同长度的span都给一个embedding编码,即为w
k+1
,;span的长度范围需要自定义,一般地设置span长度在[2,10]个字符;
[0054]
进行span表征如下:
[0055]
e(s)=concate(f(ei,e
i+1
,...e
i+k
,),w
k+1
):
[0056]
其中,f表示一种pooling方式,可以max pooling,mean pooling等(优选max pooling);concate表示把两个向量拼接在一起;
[0057]
进行span分类如下:
[0058]
定义xe=concate(e(s),cls);其中,cls为bert的[cls]输出向量,经过softmax函数,有:ye=softmax(w*xe+b);
[0059]
进行p多分类如下:
[0060]
定义context=c(s1,s2);其中,s1表示实体s的终点,s2表示实体o的起点位置,函数c表示,对bert从s1至s2的token输出embedding进行pooling,可以是max,mean pooling;
[0061]
然后做如下拼接:
[0062]
x
12
=e(s1)c(s1,s2),e(s2);
[0063]
x
21
=e(s2)c(s1,s2),e(s1);
[0064]
其中,x
12
、x
21
来表征p,不考虑头尾实体的顺序,故x
12
、x
21
都表示相同的关系或者属性p;
[0065]
通过一个如下的sigmoid激活函数:
[0066]
yr=sigmoid(wsx
12/21
+bs):
[0067]
最终的损失函数定义为:
[0068]
l=ye+yr。
[0069]
本发明实施例提供的一种三元组抽取方法,利用多个段落及该多个段落中各段落分别包含的三元组训练得到抽取模型,可以包括:
[0070]
预定义谓语集合,谓语集合包括需要提取全部三元组包含的各谓语;
[0071]
基于谓语集合获取多个段落及相应的三元组作为训练语料,并利用训练语料训练得到抽取模型。
[0072]
根据语料联合金融专家经验知识,预定义spo三元组集合中p(谓语)的取值集合,p的取值集合可以为{制定、产品定义、投资、担保、包含、别称、属于};进而在获取训练语料时则按照closespo-ie的方式获取,从而使得训练语料中的任一p以及利用抽取模型得到的任一p,均来自p的取值集合;从而能够实现任意领域内三元组的定向准确抽取。
[0073]
另外,在训练得到分段模型及抽取模型之后,还可以包括:通过增量训练方式定时训练分段模型及抽取模型。具体来说,本技术实施例在训练得到分段模型及抽取模型后,还可以在后期利用新确定出的文档及相应分段结果对分段模型进行增量学习,利用新确定出的段落及其包含的三元组对抽取模型进行增量学习,从而有效提高分段模型及抽取模型的模型精度,进而提高三元组抽取的抽取精度。
[0074]
需要说明的是,将待抽取文档包含的每个段落分别输入至抽取模型中之前,还可以包括:将待抽取文档包含的标点符号全部替换为英文的标点符号。具体来说,本技术在将段落输入至抽取模型之前,还可以将段落中包含的标点符合全部替换为英文的标点符号,从而使得标点符号尽可能均在bert的vocab词典中出现,减少未知字符的出现,提高三元组抽取的准确率。另外,还可以在段落输入抽取模型前去除段落中的空格和空格。
[0075]
并且,得到抽取模型输出的相应段落中包含的三元组之后,还可以包括:将待抽取
文档包含的每个段落中包含的三元组进行整合,得到相应的三元组知识集,并将三元组知识集输出。具体来说,本技术实施例在实现待抽取文档中全部的三元组后,可以将这些三元组进行整合得到相应三元组知识集,简单来说可以是将其以统一的格式存储至同一文件中,进而将该文件作为三元组知识集,并将三元组知识集输出,从而方便相应人员或者模块对抽取得到的全部三元组的获取。
[0076]
本技术提供一种面向任意特定领域(如金融领域)的三元组抽取方法,首先设计该领域的scheme(p集合),然后利用对需要实现三元组抽取的文档实现文本自动分段,最后利用closespo-ie模型抽取分段所得各段落中的spo。可见,本技术首先采用段落拆解的方式对文档进行拆解,把无结构的文本转化成段落形式进行输入,该步骤保证了三元组输入的完整性,避免了过长、过短以及不完整的输入导致三元组抽取不全的问题;其次采用spanspo的方式抽取三元组,该方法使用句子中的负样本进行训练,提高了模型的泛化性;减少人工构建知识成本,系统获取文档,自动抽取知识点,辅助知识图谱构建;采用联合建模的方式,不仅减少了不同任务之间的误差传播,而且大大减少了模型推理时间,提高了自动抽取效率,同时能够有效提升抽取准确率。另外,本技术具有自动抽取段落中相同p且不同头尾实体的能力,即《s,p,o》来自同一个段落,p相同,so不同;另一方面,本技术支持增量训练,通过拓展scheme的设计,抽取更加复杂的spo。
[0077]
本发明实施例还提供了一种三元组抽取装置,如图4所示,可以包括:
[0078]
确定模块11,用于:确定当前需实现三元组抽取的文档为待抽取文档;
[0079]
分段模块12,用于:将待抽取文档输入至分段模型中,得到分段模型输出的分段结果,并基于该分段结果得到待抽取文档包含的多个段落;分段模型为预先利用多个文档及相应分段结果训练得到的;
[0080]
抽取模块13,用于:将待抽取文档包含的每个段落分别输入至抽取模型中,得到抽取模型输出的相应段落中包含的三元组;抽取模型为预先利用多个段落及该多个段落中各段落分别包含的三元组训练得到的。
[0081]
本发明实施例提供的一种三元组抽取装置,分段模型可以为利用bert以及bi-lstm进行联合建模所得的模型;抽取模型可以为基于spanbert实现的closespo-ie模型。
[0082]
本发明实施例提供的一种三元组抽取装置,还包括:
[0083]
训练模块,用于:预定义谓语集合,谓语集合包括需要提取全部三元组包含的各谓语;基于谓语集合获取多个段落及相应的三元组作为训练语料,并利用训练语料训练得到抽取模型。
[0084]
本发明实施例提供的一种三元组抽取装置,还可以包括:
[0085]
增量训练模块,用于:在训练得到分段模型及抽取模型之后,通过增量训练方式定时训练分段模型及抽取模型。
[0086]
本发明实施例提供的一种三元组抽取装置,还可以包括:
[0087]
替换模块,用于:将待抽取文档包含的每个段落分别输入至抽取模型中之前,将待抽取文档包含的标点符号全部替换为英文的标点符号。
[0088]
本发明实施例提供的一种三元组抽取装置,还可以包括:
[0089]
输出模块,用于:得到抽取模型输出的相应段落中包含的三元组之后,将待抽取文档包含的每个段落中包含的三元组进行整合,得到相应的三元组知识集,并将三元组知识
集输出。
[0090]
本发明实施例还提供了一种三元组抽取设备,可以包括:
[0091]
存储器,用于存储计算机程序;
[0092]
处理器,用于执行计算机程序时实现如上任一项三元组抽取方法的步骤。
[0093]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可以实现如上任一项三元组抽取方法的步骤。
[0094]
需要说明的是,本发明实施例提供的一种三元组抽取装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种三元组抽取方法中对应部分的详细说明,在此不再赘述。本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
[0095]
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1