实体及关系抽取方法及系统、装置、介质与流程

文档序号:23500402发布日期:2021-01-01 18:05阅读:148来源:国知局
实体及关系抽取方法及系统、装置、介质与流程

本发明涉及自然语言处理领域,具体地,涉及实体及关系抽取方法及系统、装置、介质。



背景技术:

实体及关系抽取是自然语言处理领域信息抽取的一个重要分支,主要负责从各种非结构化文档中提取出该文档包括的实体及实体之间的关系。其广泛应用于自然语言处理的各个领域中,如知识库构建,基于知识库的智能问答等。

命名实体识别:也称为实体识别、实体分块和实体提取,是信息提取的一个子任务,旨在将文本中的命名实体定位并分类为预先定义的类别,如人员、组织、位置、时间等,具体识别什么样的实体类型,需要根据不同的业务领域或应用场景进行定义,如:

k先生[人名]是a国[国名]第一任官职b[职务]

句子中包含人名“k先生”,国名“a国”,职务“官职b”等实体。

关系抽取:在识别出文本中的相关实体之后,信息抽取任务还需要抽取任意两个实体之间的语义关系,通常是配偶,子女,就业,从属和地理空间上的位置关系等二元关系,一般用spo结构的三元组来表示,即(subject,predication,object),如:

k先生[人名]毕业于学校c[学校名]==>(k先生,毕业于,学校c)

句子中实体“k先生”和实体“学校c”是“毕业于”关系。用三元组表示为(k先生,毕业于,学校c)

传统的关系抽取方法有的基于统计机器学习方法或者pipeline形式的深度学习模型,其将实体检测和识别,关系抽取作为独立的任务进行训练,下游模型的输入依赖于上游模型的输出,不利于利用文本的全局信息且容易造成错误传播。随着多任务联合训练技术的发展,基于文本片段(span)的命名实体和关系抽取联合训练方法成为主流,其具体过程主要包括以下四个步骤:

(1)枚举句子中可能的span,对于句子中每个字符的位置枚举以当前字符为首,最大枚举宽度以内的字符。

(2)对每个span进行纯化,使用前馈神经网络对span进行评分,选择分值高的span参与下游的命名实体和关系抽取任务。

(3)使用图神经网络对span进行消息传播,用选择的每个span作为节点构建完全图,使用图神经网络对span进行传播。

(4)对传播后的每个span进行实体分类。

(5)对传播后的每对span进行关系分类。

(6)计算实体分类和关系分类的加权损失,进行联合优化。

基于span的实体识别和关系抽取联合训练方法能够完整的抽取实体所在span的语义信息,通过span传播也能够融合句子中当前span相关的span的语义信息,抽取更加全局的特征。但是由于该方法需要对句子中每个字进行span枚举,效率相当低下,急需研发一种快速高效的命名实体抽取方法。



技术实现要素:

本发明提供了一种实体及关系抽取方法及系统、装置、介质,目的是提高实体及关系抽取的效率。

为实现上述目的,本发明提供了实体及关系抽取方法,所述方法包括:

将文档输入预训练语言模型,得到文档单词序列的向量表示序列;

将向量表示序列输入卷积神经网络,结合注意力机制编码每个单词的嵌入表示,获得序列嵌入表示;

将序列嵌入表示输入第一编码器,得到实体特征嵌入表示信息;将实体特征嵌入表示信息输入实体分类器中进行实体分类,得到实体分类结果;

将序列嵌入表示输入第二编码器,得到的关系特征嵌入表示信息;

将实体特征嵌入表示信息和关系特征嵌入表示信息拼接得到拼接向量,将拼接向量输入前馈神经网络中得到关系抽取的嵌入表示,将关系抽取的嵌入表示输入到关系分类器中进行关系分类,得到关系分类结果;

利用实体分类损失函数和关系抽取损失函数优化实体分类结果和关系分类结果。

其中,本发明为实体关系联合抽取提供一种基于序列预测的端到端多任务高效联合方法,可以广泛应用于非结构化文本的实体检测及实体识别,实体之间的关系预测。

其中,本发明规避了传统方法span枚举中由于枚举span过多导致的模型性能低下的问题和传统序列预测中无法很好的捕获span信息的问题,提高了实体及关系抽取的效率。

其中,本发明主要内容包括:提供了一种基于ngram一维卷积神经网络结合多层transformer序列预测的端到端实体及关系多任务联合学习方法,通过利用bert学习单词序列的向量表示序列,首先将其输入到一个ngram一维卷积神经网络中,结合注意力机制编码每个单词的嵌入表示,再通过一个实体特征提取transformer编码器中进行实体识别特征的嵌入表示学习,和一个关系特征提取transformer编码器中进行关系抽取特征的嵌入表示学习。然后将上述实体特征的嵌入通过线性变化输入到softmax分类器中进行实体识别,同时将其和关系特征的嵌入表示进行拼接,输入到一个关系抽取的多层感知机中进行特征的融合抽取,供后续的关系分类器使用。最后通过联合优化实体识别和关系抽取的损失函数对问题进行求解。

优选的,本方法中输入文档d={w1,w2,…,wn},文档d中的单词来源于词汇库,wn为文档字符串序列中的每个字符,wi∈wv,i=1,…,n,n表示文档d单词的个数,v表示词汇库的大小,w表示词汇库空间,wv为包含v个单词的词汇库空间。经过预训练语言模型得到文档单词序列的向量表示序列:x={x1,x2,…,xn},xi∈rd,i=1,…,n;xi是一个实数空间的d维向量,表示第i个单词的向量表示,r代表实数空间。

优选的,本方法中对于文档单词序列的向量表示序列x={x1,x2,…,xn},使用一组宽为单词嵌入表示维度d,长度为l={l1,l2,…,lm}的卷积核对文档单词序列的向量表示序列进行一维卷积,其中ls代表各个ngram的长度,s=1,…,m;对于每个长度为l的ngram单词片段:ul,i=[xi,…,xi+l]∈rd×l;1≤i≤n-l,l={l1,l2,…,lm};ul,i代表单词序列向量表示x从位置i开始长度为l的单词片段向量表示;rd×l代表长度为l,嵌入表示维度为d的实数空间;

使用一组数目为单词嵌入表示维度d的卷积核f={f1,f2,…,fk}对ngram文本片段进行卷积,fk为第k个卷积核;

fl,i,j=<ul,i,fl,j>,f∈rm×n×d

其中,fl,i,j代表ngram长度为l,序列中起始位置为i,第j个输出通道的值;fl,j∈rd×l代表一个ngram长度为l、宽为d的卷积核,f是卷积的结果矩阵,f第一维是ngram滑动窗口长度的个数,f第二维是文本序列的长度,f第三维是单词嵌入表示的维度,rm×n×d为m×n×d维的实数空间;

对于卷积的结果,使用注意力机制在每个ngram维度上进行加权求和得到序列单词的最终嵌入表示:

g∈rn×d,f∈rm×n×d,其中l={l1,l2,…,lm},i=1,…,n

fl,i=linear(fl,i,:),αl,i=sigmoid(fl,i)

其中,αl,i代表序列中第i个位置,第l个ngram卷积后的特征表示,fl,i代表序列的第i个位置通过第l个ngram卷积核卷积求得的特征嵌入表示,gi代表求得的序列中第i个位置最终的特征嵌入表示,g为序列的ngram卷积注意力加权最终结果,fl,i,:为序列第i个位置,经过长度为l的ngram卷积输出结果,linear(fl,i,:)为对fl,i,:进行线性变换。

优选的,本方法中将序列嵌入表示输入第一transformer编码器中,得到实体分类的单词嵌入表示:

ge=transformer_encoder(g)

其中,ge代表第一transformer编码器编码后的实体特征嵌入表示信息,g为为序列的ngram卷积注意力加权最终结果。

将ge通过线性变换输入到softmax分类器中进行实体分类:

oe=linear(ge)

pe=softmax(o)

其中,oe∈rn×c代表ge通过线性变换以后得到的嵌入表示,c代表实体bio标记的类别数目,pe∈rn×c代表实体分类的概率分布,n表示文档单词的个数,r代表实数空间。

优选的,本方法中将序列嵌入表示输入第二transformer编码器中,得到实体关系的单词嵌入表示:

gr=transformer_encoder(g)

其中,gr代表第二transformer编码器编码后的关系特征嵌入表示信息,g为序列的ngram卷积注意力加权最终结果。

优选的,本方法中将实体特征嵌入表示信息和关系特征嵌入表示信息拼接得到拼接向量:

gc=cat(ge,gr)

其中,cat代表向量拼接操作,gc∈rn×2×d,gc为实体特征嵌入表示和关系特征嵌入表示的拼接向量;ge代表第一transformer编码器编码后的实体特征嵌入表示信息;gr代表第二transformer编码器编码后的关系特征嵌入表示信息;

将拼接向量输入前馈神经网络中得到关系抽取的嵌入表示,将关系抽取的嵌入表示线性变换后输入到softmax分类器中进行关系分类,对于序列中位置i和位置j的单词其关系抽取的嵌入表示如下:

gcr=cat(gc,i,gc,j,gc,i*gc,j)

gfr=feedforward(gcr)

其中,gcr为序列中第i个位置和第j个位置的关系特征拼接向量表示,gfr为序列中第i个位置和第j个位置的最终关系抽取融合特征表示;gc,i为序列中第i个位置的关系抽取拼接向量,gc,j为序列中第j个位置的关系抽取拼接向量;cat代表向量拼接操作,gc,i*gc,j代表将gc,i和gc,j进行点乘操作,feedforward是一个多层前馈神经网络;

将gfr通过线性变换输入softmax分类器中得到关系分类:

or=linear(gfr)

pr=softmax(or)

其中,or∈rn×n×r是关系抽取特征嵌入表示的线性变换结果,r代表关系的类别,pr∈rn×n×r代表关系分类的概率。

优选的,本方法中所述预训练语言模型为bert预训练语言模型,所述第一编码器和所述第二编码器均为transformer编码器;

利用实体分类损失函数和关系抽取损失函数优化实体分类结果和关系分类结果为:

loss=ner_loss+rel_loss

其中,ner_loss代表实体分类损失,rel_loss代表关系抽取损失。

本发明还提供了一种实体及关系抽取系统,所述系统包括:

预训练语言模型,用于处理输入预训练语言模型的文档,得到文档单词序列的向量表示序列;

卷积神经网络,用于处理输入卷积神经网络的向量表示序列,结合注意力机制编码每个单词的嵌入表示,获得序列嵌入表示;

第一编码器,用于处理输入第一编码器的序列嵌入表示,得到实体特征嵌入表示信息;

实体分类器,用于将输入实体分类器中实体特征嵌入表示信息进行实体分类,得到实体分类结果;

第二编码器,用于处理输入第二编码器的序列嵌入表示,得到的关系特征嵌入表示信息;

拼接单元,用于将实体特征嵌入表示信息和关系特征嵌入表示信息拼接得到拼接向量;

前馈神经网络,用于处理输入前馈神经网络中的拼接向量得到关系抽取的嵌入表示;

关系分类器,用于将输入关系分类器中的关系抽取的嵌入表示进行关系分类,得到关系分类结果;

优化单元,用于利用实体分类损失函数和关系抽取损失函数优化实体分类结果和关系分类结果。

本发明还提供了一种实体及关系抽取装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实体及关系抽取方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述实体及关系抽取方法的步骤。

本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明使用基于transformer和ngramcnn结合的序列预测方法,对实体及关系进行联合抽取,可以达到和基于span枚举的实体及关系联合抽取方法一样的预测效果,并规避了传统方法span枚举中由于枚举span过多导致的模型性能低下的问题和传统序列预测中无法很好的捕获span信息的问题,提高了实体及关系抽取的效率。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;

图1为实体及关系抽取方法原理示意图;

图2为ngramcnn架构示意图;

图3为实体及关系抽取系统的组成示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

实施例一

请参考图1-图2,图1为实体及关系抽取方法原理示意图,图2为ngramcnn架构示意图,本方法具体包括:

单词向量表示学习:

对于输入的文档d={w1,w2,…,wn},文档d单词来源于词汇库,wi∈wv,i=1,…,n,n表示文档单词的个数,v表示词汇库的大小,w表示词汇库空间。然后经过bert预训练语言模型得到文档单词序列的向量表示序列:x={x1,x2,…,xn},xi∈rd,i=1,…,n。xi是一个实数空间的d维向量,表示第i个单词的向量表示,r代表实数空间。

使用cnn网络进行ngram编码:

对于单词嵌入表示矩阵x={x1,x2,…,xn},使用一组宽为单词嵌入表示维度d,长度为l={l1,l2,…,lm}的卷积核对其进行一维卷积,其中ls,s=1,…,m代表各个ngram的长度。对于每个长度为l的ngram单词片段:ul,i=[xi,…,xi+l]∈rd×l;1≤i≤n-l,l={l1,l2,…,lm};

使用一组数目为单词嵌入表示维度d的卷积核f={f1,f2,…,fk},对ngram文本片段进行卷积:

fl,i,j=<ul,i,fl,j>,f∈rm×n×d

其中fl,j∈rd×l代表一个ngram长度为l、宽为d的卷积核,f是卷积的结果矩阵,f第一维是ngram滑动窗口长度的个数,f第二维是文本序列的长度,f第三维是单词嵌入表示的维度。

对于卷积的结果,使用注意力机制,在每个ngram维度上进行加权求和得到序列单词的最终嵌入表示:

g∈rn×d,f∈rm×n×d,其中l={l1,l2,…,lm},i=1,…,n

fl,i=linear(fl,i,:),αl,i=sigmoid(fl,i)

其中,αl,i代表序列中第i个位置,第l个ngram卷积后的特征表示,fl,i代表序列的第i个位置通过第l个ngram卷积核卷积求得的特征嵌入表示,gi代表求得的序列中第i个位置最终的特征嵌入表示。

实体分类:

将卷积得到的序列嵌入表示,输入到第一transformer编码器中,得到实体分类的单词嵌入表示。

ge=transformer_encoder(g)

其中ge代表transformer编码器编码后的实体特征嵌入表示信息。

将ge通过一个线性变换输入到softmax分类器中进行实体分类:

oe=linear(ge)

pe=softmax(o)

其中,o∈rn×c代表ge通过一个线性变换以后得到的嵌入表示,c代表实体bio标记的类别数目,p∈rn×c代表实体分类的概率分布。

关系特征编码:

将卷积得到的序列嵌入表示,输入到第二transformer编码器中,得到实体关系的单词嵌入表示。

gr=transformer_encoder(g)

其中,gr代表transformer编码器编码后的关系特征嵌入表示信息。

成对关系特征抽取:

对于序列中的每个单词计算其与其他位置单词的关系特征,具体地,将实体编码特征和关系编码特征进行拼接:

gc=cat(ge,gr)

其中,cat代表向量拼接操作,gc∈rn×2×d,是实体特征嵌入表示和关系特征嵌入表示的拼接向量。

通过组合输入到一个前馈神经网络中得到关系抽取的嵌入表示,最后将其进行线性变换输入到softmax分类器中进行关系分类。对于序列中位置i和位置j的单词其关系抽取的嵌入表示如下:

gcr=cat(gc,i,gc,j,gc,i*gc,j)

gfr=feedforward(gcr)

其中,cat代表向量拼接操作,gc,i*gc,j代表将gc,i和gc,j进行点乘操作,gc,i-gc,j代表将gc,i和gc,j逐位相减。feedforward是一个多层前馈神经网络。

将gfr通过线性变换输入到一个softmax分类器中得到关系分类:

or=linear(gfr)

pr=softmax(or)

其中,or∈rn×n×r是关系抽取特征嵌入表示的线性变换结果,r代表关系的类别。pr∈rn×n×r代表关系分类的概率。

实体识别和关系抽取损失函数联合优化:

loss=ner_loss+rel_loss

其中ner_loss代表实体识别损失,rel_loss代表关系抽取损失。

实施例二

实施例二中举例对本发明中的实体及关系抽取方法进行详细介绍。

对于句子”k先生出生于地点d,他带领某党在某年某月某日建立了a国。”:

[“k”,”先”,”生”,…,”国”,”。”]通过bert模型获得句子中各个单词的向量表示;

通过ngramcnn编码器抽取句子中以当前单词为首的ngram文本片段的向量表示,如“k先生”的向量表示为[0.3,0.4,0.44,…,0.234];

通过注意力机制获得每个字符为首的各个ngram文本片段的注意力权重,如对于句子第一个位置的字符“k”的ngram文本片段包括:”k”,”k先”,”k先生”,”k先生出”。计算他们的注意力权重分别为0.1,0.2,0.5,0.2.然后通过加权各个文本片段向量计算当前字符“k”为首的文本片段向量表示:

0.1*[0.1,0.6,…,0.4]+0.2*[0.4,0.6,…,0.5]+0.5*[0.3,0.05,…,0.05]+0.2*[0.004,0.055,…,0.35];

经过注意力机制后当前字符”k”的向量表示为[0.034,0.056,…,0.45]。

将ngramcnn抽取的单词序列向量通过实体识别transformer编码器抽取实体识别特征,再通过关系识别transformer编码器抽取关系特征。

将bert输出的词向量,transformer获得的实体特征表示和关系特征表示进行拼接。然后输入到成对关系抽取前馈神经网络中抽取成对字符的关系特征。如,将第一个字符“k”的上述拼接向量表示和第七个字符“d”的拼接向量表示输入到前馈神经网络中进行两者的关系特征抽取。

将实体特征输入实体识别softmax分类器中进行实体分类,将获得的关系抽取特征输入到关系抽取softmax分类器中进行关系分类。得到第一个字符的实体分类标签为“b-人物”,第二个字符“先”的实体分类标签为“i-人物”,第三个字符“生”的实体分类标签为“i-人物”,第一个字符“k”和第七个字符“d”的关系为“出生于”。

实施例三

请参考图3,图3为实体及关系抽取系统的组成示意图,本发明实施例三提供了一种实体及关系抽取系统,所述系统包括:

预训练语言模型,用于处理输入预训练语言模型的文档,得到文档单词序列的向量表示序列;

卷积神经网络,用于处理输入卷积神经网络的向量表示序列,结合注意力机制编码每个单词的嵌入表示,获得序列嵌入表示;

第一编码器,用于处理输入第一编码器的序列嵌入表示,得到实体特征嵌入表示信息;

实体分类器,用于将输入实体分类器中实体特征嵌入表示信息进行实体分类,得到实体分类结果;

第二编码器,用于处理输入第二编码器的序列嵌入表示,得到的关系特征嵌入表示信息;

拼接单元,用于将实体特征嵌入表示信息和关系特征嵌入表示信息拼接得到拼接向量;

前馈神经网络,用于处理输入前馈神经网络中的拼接向量得到关系抽取的嵌入表示;

关系分类器,用于将输入关系分类器中的关系抽取的嵌入表示进行关系分类,得到关系分类结果;

优化单元,用于利用实体分类损失函数和关系抽取损失函数优化实体分类结果和关系分类结果。

实施例四

本发明实施例四提供了本发明还提供了一种实体及关系抽取装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实体及关系抽取方法的步骤。

其中,所述处理器可以是中央处理器(cpu,centralprocessingunit),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor)、专用集成电路(applicationspecificintegratedcircuit)、现成可编程门阵列(fieldprogrammablegatearray)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中实体及关系抽取装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

实施例五

本发明实施例五提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述实体及关系抽取方法的步骤。

所述实体及关系抽取装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1