基于Transformer模型的实体关系抽取方法和系统
文献发布时间:2023-06-19 13:45:04
技术领域
本发明涉及信息抽取技术领域,具体地,涉及一种基于Transformer模型的实体关系抽取方法和系统。
背景技术
随着大数据时代的到来,海量的非结构化文本越来越多地出现在互联网。人们希望能够通过计算机来自动获取这些文本中的结构化的信息。实体关系抽取通常分为两个部分:命名实体识别以及关系抽取。命名实体识别的目标是在文本当中识别出对应的命名实体;关系抽取目标是从文本当中提取特定的关系。在文本数据激增的今天,实体关系抽取成为了知识图谱构建的关键步骤,许多研究人员此领域进行了探索。
专利文献CN112183023A(申请号:CN202011045802.6)公开了一种多关系抽取方法和终端,该方法包括:将待处理句子中的每个词进行向量变换后输入Transformer模型的解码器进行编码,得到编码向量;将预设句子中的每个词进行向量变换,得到预设向量;将所述编码向量与所述预设向量同时输入所述Transformer模型的解码器进行解码,得到输出数据集;所述输出数据集由多个按序排列的子数据集组成,每个所述子数据集由5个按序排列的输出数据组成;依次基于每个所述子数据集中按序先后排列的5个输出数据确定所有的关系及其实体对。
传统的实体关系抽取通常采用管道的方法,也就是先进行实体抽取再进行关系分类。这种方法虽然灵活,但是存在着误差传播的问题,并且不能很好地利用两个子任务之间的联系。近几年,基于联合实体关系抽取的模型受到越来越多的关注,可以在一个模型中同时完成两个子任务,成为了目前的主要研究方向。但是现有的方法存在着三个显著问题:首先,现有的方法通常将实体关系抽取转换成分类问题,将关系用一个没有含义的分类类别编号来表示,从而忽略了关系中的重要语义信息。其次,关系抽取通常被分解成两个子任务来进行,也就是先进行实体抽取再进行关系抽取,或者先提取文本中的关系,再提取文本中的实体,导致了模型冗余和误差传播。最后,部分模型不能很好地利用两个子任务之间的关系,将两个任务分开进行,忽略了这两个子任务之间的联系。因此,能够更好地对文本进行处理并进行结构化信息的提取,成为了需要解决的问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于Transformer模型的实体关系抽取方法和系统。
根据本发明提供的基于Transformer模型的实体关系抽取方法,包括:
步骤S1:对非结构化文本进行数据处理,得到实体以及对应关系;
步骤S2:根据关系类型,将关系抽取转换成填空的形式;
步骤S3:基于span级别的Transformer结构,构建联合抽取模型,在编码器进行实体抽取,在非自回归解码器进行关系抽取;
步骤S4:在解码器输入关系模板,基于前馈神经网络的复制机制,输出具有对应关系的实体对;
步骤S5:通过两阶段排序策略和负采样机制训练模型,并对联合抽取模型效果的进行测试,并依据测试结果调整联合抽取模型。
优选的,所述步骤S1包括:
步骤S101:对文本进行分句处理,去除重复的句子;
步骤S102:统计文本中出现的关系或者实体的类别,并进行类别映射ID的字典构建;
步骤S103:对头实体和尾实体开始与结束的位置进行标记,获取对应的实体名称以及类别;
步骤S104:对头实体和尾实体的关系进行映射,获取对应的关系类别。
优选的,所述步骤S2包括:
步骤S201:将关系转换成预设形式的模板,所述模板包含关系细粒度的语义信息;
步骤S202:将标记插入到开始和结束的位置,将关系抽取转换成填空的形式,从而进行头实体和尾实体的提取;
步骤S203:将关系模板进行多次复制,实现对头实体、关系、尾实体的抽取。
优选的,所述步骤S3包括:
步骤S301:将分句后的文本进行WordPiece分词处理,得到目标分词,并将标记插入到句子的开始位置;
步骤S302:对头实体和尾实体的位置进行更新,获取分词之后的位置;
步骤S303:将分词后的句子输入到Transformer的编码器端,获取对应的向量表示;
步骤S304:编码器的输出经过两个前馈神经网络,获取到的一个结果用于命名实体识别,另一个结果用于Transformer的解码器进行关系抽取。
优选的,所述步骤S4包括:
步骤S401:载入编码器的输出,作为注意力机制计算的依据;
步骤S402:将关系模板分词后,输入到Transformer的解码器;
步骤S403:通过Transformer解码器的向量表示,基于复制机制进行头实体和尾实体提取;
步骤S404:将输入解码器的关系和输出的实体对进行组合,完成包括头实体、关系和尾实体的三元组的获取与构建。
优选的,所述步骤S5包括:
步骤S501:依据实体对在原文中的位置,对实体对进行两阶段排序;
步骤S502:采用负采样机制,若关系出现在对应的原文中,则把它选为解码器输入;若不在原文中,则以预设概率选为解码器输入;
步骤S503:利用测试数据对模型效果进行测试,统计模型的准确率、召回率和F1指标,并加以保存;
步骤S504:修改包括模型学习率、迭代次数的超参数,重复试验后最终确定超参数;
步骤S505:对模型结果进行分析,验证模型的有效性。
根据本发明提供的基于Transformer模型的实体关系抽取系统,包括:
模块M1:对非结构化文本进行数据处理,得到实体以及对应关系;
模块M2:根据关系类型,将关系抽取转换成填空的形式;
模块M3:基于span级别的Transformer结构,构建联合抽取模型,在编码器进行实体抽取,在非自回归解码器进行关系抽取;
模块M4:在解码器输入关系模板,基于前馈神经网络的复制机制,输出具有对应关系的实体对;
模块M5:通过两阶段排序策略和负采样机制训练模型,并对联合抽取模型效果的进行测试,并依据测试结果调整联合抽取模型。
优选的,所述模块M1包括:
模块M101:对文本进行分句处理,去除重复的句子;
模块M102:统计文本中出现的关系或者实体的类别,并进行类别映射ID的字典构建;
模块M103:对头实体和尾实体开始与结束的位置进行标记,获取对应的实体名称以及类别;
模块M104:对头实体和尾实体的关系进行映射,获取对应的关系类别;
所述模块M2包括:
模块M201:将关系转换成预设形式的模板,所述模板包含关系细粒度的语义信息;
模块M202:将标记插入到开始和结束的位置,将关系抽取转换成填空的形式,从而进行头实体和尾实体的提取;
模块M203:将关系模板进行多次复制,实现对头实体、关系、尾实体的抽取。
优选的,所述模块M3包括:
模块M301:将分句后的文本进行WordPiece分词处理,得到目标分词,并将标记插入到句子的开始位置;
模块M302:对头实体和尾实体的位置进行更新,获取分词之后的位置;
模块M303:将分词后的句子输入到Transformer的编码器端,获取对应的向量表示;
模块M304:编码器的输出经过两个前馈神经网络,获取到的一个结果用于命名实体识别,另一个结果用于Transformer的解码器进行关系抽取;
所述模块M4包括:
模块M401:载入编码器的输出,作为注意力机制计算的依据;
模块M402:将关系模板分词后,输入到Transformer的解码器;
模块M403:通过Transformer解码器的向量表示,基于复制机制进行头实体和尾实体提取;
模块M404:将输入解码器的关系和输出的实体对进行组合,完成包括头实体、关系和尾实体的三元组的获取与构建。
优选的,所述模块M5包括:
模块M501:依据实体对在原文中的位置,对实体对进行两阶段排序;
模块M502:采用负采样机制,若关系出现在对应的原文中,则把它选为解码器输入;若不在原文中,则以预设概率选为解码器输入;
模块M503:利用测试数据对模型效果进行测试,统计模型的准确率、召回率和F1指标,并加以保存;
模块M504:修改包括模型学习率、迭代次数的超参数,重复试验后最终确定超参数;
模块M505:对模型结果进行分析,验证模型的有效性。
与现有技术相比,本发明具有如下的有益效果:
通过本发明可以实现在非结构化文本中进行特定关系的抽取,并识别出对应的实体,从而利用文本中有价值的信息。本发明采用基于填空形式的实体关系抽取模型,解决了现有方法不能理解关系的语义信息、任务拆解导致的误差传播和不能很好建立两个子任务之间联系的问题。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的算法流程图;
图2为基于填空形式的实体关系抽取的具体实例图;
图3为基于Transformer结构的实体关系抽取框架图;
图4为基于Transformer的编码器结构流程图;
图5为基于Transformer的解码器结构流程图;
图6为实体排序策略流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
本发明通过设计了一种基于Transformer结构的填空形式的实体关系抽取的新模型,能够从非结构化的文本中有效地进行信息提取。涉及处理数据、包含关系语义信息的关系模板的设计、基于span级别的非自回归Transformer模型结构的构建、通过复制机制进行三元组的抽取、模型效果的测试和调整等。具体地,如图1,包括如下步骤:
步骤S1:处理数据,从非结构化文本中获取实体以及对应的关系,也就是(头实体,关系,尾实体)三元组的形式。
步骤S2:设计关系模板,根据不同的关系类型,设计了具有特定形式,并且包含了细粒度语义信息的关系模板。
步骤S3:设计模型结构,基于span级别的Transformer的结构实现了一个联合抽取模型,在编码器部分实现了实体抽取,在解码器部分实现了关系抽取。
步骤S4:抽取三元组,在解码器输入特定的关系模板,通过复制机制,输出具有特定关系的实体对,完成三元组的提取。
步骤S5:采用了两阶段排序策略和负采样机制训练模型,并对模型效果的进行测试,并依据测试结果调整模型。
所述步骤S1包括:处理数据,通过对文本的分句和去重,获取对应的包含10051条训练数据,2424条验证数据,2050条测试数据的ACE05数据集;包含1861条训练数据,275条验证数据,551条测试数据的SciERC数据集。并对数据进行进一步的处理,从而实现从非结构化文本中获取实体以及对应的关系,也就是(头实体,关系,尾实体)三元组的形式;。
步骤S101:对文本进行分句处理,去除重复的句子。
步骤S102:统计文本中出现的关系或者实体的类别,并进行类别映射字典的构建,关键字为类别名称,键值为对应的类别ID。在本发明中,在ACE05和SciERC数据集两个通用的实体关系抽取的数据集上面进行验证,ACE05数据集来源于新闻以及线上论坛。SciERC数据集来源于人工智能论文的摘要。两者的统计数据如表一所示。
表一停用词、标点、缩略词的处理
步骤S103:对头实体和尾实体开始与结束的位置进行标记,获取对应的实体名称以及类别,并记录它们之间的关系,将结果保存。
所述步骤S2包括:关系模板的设计,根据不同的关系类型,设计了具有特定形式,并且包含了细粒度语义信息的关系模板。具体步骤如下:
步骤S201:将关系转换成特定形式的模板,从而可以包含关系细粒度的语义信息,如图2所示。
步骤S202:将[MASK]标记插入到开始和结束的位置,进而将关系抽取转换成填空的形式,从文本中进行头实体和尾实体的提取。如果预测结果为实体对,输入的关系可以和预测的结果组成三元组。如果预测输出[CLS],代表该关系在原句中不存在对应的实体对。
步骤S203:将一个关系模板复制多次,不同关系模板用[SEP]和句子的id进行区分。多个模板的复制可以实现一个句子中所有三元组的抽取。
所述步骤S3包括:设计了一个基于span级别的Transformer的结构,如图3。作为一个联合抽取模型,在编码器部分实现了实体抽取,在解码器部分实现了关系抽取。并且采用了非自回归解码器,在解码器端不采用原始Transformer中的因果掩码。
步骤S301:将分句好的文本进行WordPiece分词处理,得到目标分词。并将[CLS]标记插入到句子的开始位置。
步骤S302:再对句子进行分词之后,由于每个词被分为子词,需要重新定位对应头实体和尾实体的位置。从而需要对头实体和尾实体的位置进行更新,实现在句子中的正确定位。
步骤S303:将分词之后的句子输入到Transformer的编码器端,获取对应的向量表示,其中[CLS]向量表示包含了整个句子的信息,如图4和图5。
步骤S304:编码器的输出通过span级别的向量表示,经过两个前馈神经网络,获取到的一个结果用于命名实体识别,另一个结果用于Transformer的解码器进行关系抽取。
所述步骤S4包括:进行三元组的抽取,在解码器输入特定的关系模板,通过复制机制,从原文中复制对应的头实体和尾实体,预测具有特定关系的实体对,完成三元组的构建。
步骤S401:载入上一步编码器的隐藏层输出,利用所有可能的span向量表示作为交叉注意力机制的输入,计算对应的自注意力分数。
步骤S402:对关系模板进行WordPiece的分词处理,输入到Transformer的解码器。
步骤S403:通过Transformer解码器的[MASK]向量表示,通过前馈神经网络,计算[MASK]向量和编码器每一个span的分数,从原文本中进行头实体和尾实体的复制。
步骤S404:如果预测结果不为[CLS],则将输入解码器的关系和输出的实体对进行组合,完成三元组的获取与构建。如果输出为[CLS],证明没有对应的三元组存在。
所述步骤S5包括:采用了两阶段排序策略和负采样机制训练模型。在测试阶段,将测试数据集输入到模型中,进行模型效果的测试,并依据测试结果调整模型的超参数。并对预测结果进行分析和可视化的处理,得到一个F1分值尽可能高的实体关系抽取的模型,并将模型参数进行保存,以备后续使用。具体步骤如下。
步骤S501:在训练的过程当中采用两阶段的实体排序策略,如图6所示。实体排序主要考虑实体在原文中的位置,在第一阶段,先进行头实体在原文中的位置的排序;如果头实体在原文中位置相同,也就是具有相同的头实体,需要对尾实体再进行位置排序。
步骤S502:考虑到在训练时候,迭代所有关系是非常耗时的,因此采用负采样的策略是必要的。在训练过程中,如果关系出现在原文中,就将它转换成关系模板,输入到解码器中;如果关系未出现在原文中,则以一定概率选择它作为解码器的输入。在测试阶段,因为无法提前预知所有的关系,所以需要迭代所有可能的关系模板,将它们作为解码器的输入。
步骤S503:利用测试数据对模型效果进行测试,统计模型的准确率,召回率和F1指标,并加以保存,结果如表二所示。
表二实体关系抽取结果
步骤S504:修改模型的学习率,迭代次数等超参数,重复上面的步骤,进行最终超参数的确定。实验中对预测为[CLS]的类别进行重加权的参数结果如表三所示。
表三重加权对实验结果的影响
步骤S505:对联合抽取模型进行分析,验证实体抽取以及关系抽取的有效性,以及他们之间的相互联系,如表四所示。
表四实体抽取和关系抽取的相互促进
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
- 基于Transformer模型的实体关系抽取方法和系统
- 一种基于改进Transformer模型的飞行器故障诊断方法和系统