本发明涉及自然语言处理领域,特别涉及一种自动构建数据集的实体关系抽取方法。
背景技术:
:实体、关系概括了文本主要内容,能够直观展现数据之间的联系,为智能问答、检索系统等下游任务提供基础数据;目前,除了论文等形式规范的文档提供了几个关键词外,大部分文档都没有提供能够反映其内容的、直观的数据结构;传统依靠人工阅读文本,抽取文档实体、关系的方法在多源、海量文档数据的今天越来越不能满足实际应用的需求;因此,如何高效、准确的抽取实体、关系是当前急需解决的一个问题;目前,抽取实体、关系的方法层出不穷,总结起来主要分为基于规则的方法和机器学习的方法两大类。1)基于规则的方法,需要构建一定数量的规则模板集合,由领域的相关语言学家建模、指定匹配模式。在字符、单词特征以及词法分析、句法依存分析等语言学知识的基础上,获取高质量的语法模式匹配模板,挖掘文本中现存的关系模式。这种手工编制规则的方法在早期能有效的应用到专业领域,但由于语言规则的复杂多样性,需要消耗大量的人力来编写规则。2)机器学习的方法中,实体关系抽取方法大多是从语言特征来考虑,如何提取词性标注、语法解析树等特征,需要预先构建一定的样本数据,再将样本输入到模型训练。构建特征会依赖于自然语言处理工具的技术水平,工具产生的误差会在实体关系抽取过程中传播和积累,对后续操作影响较大。同时,样本数据的产生也需要消耗大量的人力。技术实现要素:数据对各领域来说都是十分重要的资源,由于数据的匮乏限制了各领域研究工作的进展,传统人工标注的方式需消耗大量的人力资源,针对这些问题,本发明基于哈工大ltp工具和bert模型,提出一种抽取文本中实体关系的技术解决方案。该方案主要解决以下两方面的问题,一方面,可对文本内容实现自动化解析,有效解决训练与测试数据集生成难的问题;另一方面,通过对bert模型的优化调整,解决以往实体关系的抽取需依赖大量资源计算的问题,仅通过对bert模型的微调,就能高效抽取文本中的实体关系,从而直观地呈现多源异构数据之间的本质联系。本发明采用的技术方案如下:一种自动构建数据集的实体关系抽取方法,包括以下过程:步骤1、进行语料的收集与预处理;步骤2、定义三元组字典表,并构建同义词表;步骤3、利用ltp工具生成训练数据集、测试数据集;步骤4、根据训练数据集训练网络模型;步骤5、通过训练好的网络模型对测试数据集进行实体、关系预测;步骤6、对预测结果进行优化得到三元组数据集。进一步的,所述预处理包括:对收集的文档数据进行清理以及对文本内容进行语句划分,不同类型的文本采用不同的切分方式实现。进一步的,所述步骤2的具体过程为:根据预处理后的预料,定理实体类别与类别关系,形成三元组字典表。进一步的,所述采用ltp工具根据标注信息、名词、动词的词性,名词作为实体,动词作为关系或属性,并对实体关系、属性类型不明确的数据进行纠正,对于不合理的数据进行清理,形成训练数据集和测试数据集。进一步的,所述步骤4包括:基于bert模型进行模型搭建,先搭配关系分类模型,根据关系分类模型预测出来的关系,搭建实体抽取模型;所述关系分类模型与实体抽取模型的输入是(1,n,768)维度的向量,bert模型的输出采用句子级别,bert模型输出的特征信息经过一个全连接层与sigmoid激活函数;将训练数据分别输入两个模型中完成训练。进一步的,所述激活函数为:进一步的,所述模型的损失函数为:其中yk表示one-hot编码的标签,输出层包含k个神经元对于k个类别,φ(lk)表示使用sigmoid函数激活输出层对应的神经元。进一步的,所述步骤5的具体过程为:基于步骤4中训练好的网络模型,在测试数据集上进行实体预测、关系预测,基于bert的实体和关系网络模型将输入文本拆分成文本text-a和关系text-b两个参数进行多种关系的预测以及实体位置的标注。进一步的,所述步骤6的预测结果优化方法为:对预测处的实体关系是否存在同义词、近义词或者指代相同的实体或关系判别,采用余弦相似度进行判别,若余弦相似度高于阈值,则认为是统一类型的词,反之则不是,通过计算余弦相似度,清理语义相同的实体关系,形成最终的三元组数据集;所述余弦相似度计算方式为:其中,x、y分别表示两个词的向量集合,xi代表x中第i个词语的向量表示,yi代表词语y中第i个词语的向量表示。与现有技术相比,采用上述技术方案的有益效果为:本发明的方案可对文本内容实现自动化解析,有效解决训练与测试数据集生成难的问题;本方案通过对bert模型的优化调整,解决以往实体关系的抽取需依赖大量资源计算的问题,仅通过对bert模型的微调,就能高效抽取文本中的实体关系,从而直观地呈现多源异构数据之间的本质联系。附图说明图1是本发明的自动构建数据集的实体关系抽取方法流程图。图2是本发明一实施例中构建的网络模型示意图。图3是本发明一实施例中构建训练和测试数据集流程图。图4是本发明一实施例中网络模型输入向量示意图。图5是本发明一实施例中实体和关系示意图。具体实施方式下面结合附图对本发明做进一步描述。如图1所示,本发明提出了一种自动构建数据集的实体关系抽取方法,包括以下过程:步骤1、进行语料的收集与预处理;步骤2、定义三元组字典表,并构建同义词表;步骤3、利用ltp工具生成训练数据集、测试数据集;步骤4、根据训练数据集训练网络模型;步骤5、通过训练好的网络模型对测试数据集进行实体、关系预测;步骤6、对预测结果进行优化得到三元组数据集。具体的,步骤1中,主要收集爬虫数据和不可公开的文档数据,对收集的多源异构数据进行清理,最后对文本内容进行准确的语句划分,针对不同类型的文本可采用不同的切分方式实现,比如利用正则表达式切分、利用标点符号切分等。步骤2的具体过程为:根据预处理后的预料,定理实体类别与类别关系,形成三元组字典表,主要包括定义实体、关系类别、数据类型等信息。步骤3中,ltp融合了基于词典匹配和基于统计机器学习的分词算法,可以方便地对语料进行词性标注、词性类别标注、边界等信息标注,因此,采用ltp工具根据标注信息、名词、动词的词性,名词作为实体,动词作为关系或属性,初步形成训练数据集和测试数据集。由于通过ltp工具构建出的数据集存在不规范、不合理的数据,该部分需对其进行清理。对于实体关系、属性类型不明确的数据进行纠正,对于不合理的数据进行清理,同时不断优化实体类别和关系类别字典表,最终形成高质量的数据集。步骤4中,一个句子可能会包含多个关系或者实体,所以对于实体关系的抽取过程是多标签分类任务。为更有效地提取文本中的实体关系信息,本发明采用实体、关系网络模型分离的方式,先构建关系网络模型,再构建实体网络模型。主要目标是让关系网络模型尽可能多的抽取出所有关系分类,实体网络模型才能更好的抽取出相关实体。近年来bert模型以其自身的优势,在nlp领域得到广泛应用,因此本文要构建的关系和实体网络模型皆基于bert模型。基于bert模型构建关系和实体网络模型的十分方便,只需定义如下参数即可:transformer、self-attention、隐单元、循环次数等,其中本文采用12层transformer,12层self-attention,768个隐单元,循环次数为3,具体模型如图2所示。所述关系分类模型与实体抽取模型的输入是(1,n,768)维度的向量,bert模型的输出采用句子级别,bert模型输出的特征信息经过一个全连接层与sigmoid激活函数。对于训练阶段,主要是对训练数据集进行处理,从而形成网络模型的权重和偏置等参数,并进行保存,供后续在测试数据集上进行验证。两种网络模型的训练过程为:1)于句子开头和结尾分别插入cls和sep,2)将每个字转换成768维的向量,3)产生segmentids,4)产生positional向量。三种向量均为(1,n,768),可进行元素相加,得到一个(1,n,768)的合成表示,即bert的编码输入,将编码后的信息输入到定义好的网络模型中,并行执行实体、关系的网络模型训练,网络模型和各种权重参数、偏置信息的保存等。其中,激活函数为:仅有该模型还不能有效地抽取出有用的特征信息,尽管bert模型是基于开源语料预训练过的,但各领域文本组成具有复杂、多样性,使整个bert模型预训练阶段较难涉及到完整的领域数据。本发明通过对提出的模型训练微调,不断优化模型,由于是多标签分类任务,采用与之匹配的损失函数:其中yk表示one-hot编码的标签,输出层包含k个神经元对于k个类别,表示使用sigmoid函数激活输出层对应的神经元。步骤5的具体过程为:基于步骤4中训练好的网络模型,在测试数据集上进行实体预测、关系预测。基于bert的实体和关系网络模型将输入文本自动拆分成两个参数text-a和text-b,text-a是句子内容,text-b可以是具体的关系,从而进行多种关系的预测以及实体位置的标注。步骤6中的预测结果优化方法为:对预测处的实体关系是否存在同义词、近义词或者指代相同的实体或关系判别,采用余弦相似度进行判别,若余弦相似度高于阈值,则认为是统一类型的词,反之则不是,通过计算余弦相似度,清理语义相同的实体关系,形成最终的三元组数据集;所述余弦相似度计算方式为:其中,x、y分别表示两个词的向量集合,xi代表x中第i个词语的向量表示,yi代表词语y中第i个词语的向量表示。在本方案中,还针对ltp和bert模型进行了优化:针对文本数据集匮乏的情况,我们采用ltp分词工具自动完成数据集的构建,有效解决以往只能靠人工大量标注的问题。bert模型的自监督任务中,有个mlm任务,即在网络训练的时候随机从输入序列中掩盖掉一部分单词,然后通过上下文输入到bert模型中来预测被掩盖的单词。但mlm开始是针对英文的nlp训练方法,在中文领域,mlm任务会将中文词语进行分割,割裂上下文语义信息。2019年google发布bert的最新版本,将文本中的掩盖粒度从单词升为词语,尽可能保证句子语义不被分割。遗憾的是这个最新版本仍没有针对中文版的。“pre-trainingwithwholewordmaskingforchinesebert“一文中指出,可采用ltp分词工具先对句子进行分词,然后再以词为粒度进行掩盖,进行自监督训练。所以为更好提高中文语义理解,本发明采用先结合ltp工具进行分词,再结合2019年bert最新版本提供的词粒度的掩盖能力以及开放的源代码,重新执行bert的预训练过程,从而形成支持中文的词粒度级别的bert模型,本文采用的实体和关系网络模型皆是基于该bert模型。本发明还给出了原始文本数据以政策法规领域文本为主的实施例,收集网络爬虫数据和不可公开的文本数据共计15982份,具体如下:1)自动构建训练和测试数据集,如图3所示。首先利用正则表达式对所有文档进行准确的切分,形成法条。正则表达式如:第([一二三四五六七八九十百千万零1234567890\\s])*[编章节条])([\\s\\s]*?)(?=(第([一二三四五六七八九十百千万零1234567890\\])*[章节条]))。其次定义实体类别(表1)和类别关系(表2)。最后根据ltp工具标注语料信息,并对数据进行清理形成数据集。例:现役军人/n和/c预备役人员/n,/wp必须/d遵守/v宪法/n和/c法律/n,履行/v公民/n的/u义务/n,/wp同时/d享有/v公民/n的/u权利/n;/wp由于/c服兵役/v而/c产生/v的/u权利/n和/c义务/n,/wp由/c本法/n和/c其他/r相关/r法律法规/n规定/v;产生的数据集如:{现役军人,遵守,宪法},{现役军人,遵守,法律}……。表1实体类别表2关系类别2)根据训练集训练网络模型,将法条和单个关系分别作为bert模型text-a和text-b,将法条中所有存在的关系尽可能多地预测出来。具体如下例所述:例:“兵役分为现役和预备役,{兵役,分为,现役},{兵役,分为,预备役}”,将其转化为以下两个句子:“兵役分为现役和预备役,{兵役,分为,现役}”和“兵役分为现役和预备役,{兵役,分为,预备役}”。根据每个法条和对应的三元组,在法条中进行序列标注;例:“兵役分为现役和预备役,{兵役,分为,现役}”被标记为“clsb-subi-sub00b-obji-obj0000sep现役”。对训练数据集中每个法条进行tokenization处理,分为basictokenizer和wordpiecetokenizer,并进行向量化处理,包括掩码向量mark、片段序列segmentids、位置编码positionalemcoding,具体如图4所示,主要包含以下具体步骤:1)于句子开头和结尾分别插入cls和sep,2)将每个字转换成768维的向量,3)产生segmentids,4)产生positional向量。三种向量均为(1,n,768),可进行元素相加,得到一个(1,n,768)的合成表示,即bert的编码输入。编码后的信息输入到定义好的网络模型中,并行执行实体、关系的网络模型训练,网络模型和各种权重参数、偏置信息的保存等。3)计算余弦相似度,形成实体关系的三元组数据集,直观呈现数据间的联系,结果如表3、图5所示:表3实体关系案例在本实施例中,采用精确率与召回率对模型的性能进行测评,将测试集中样本分为以下几种:预测正确的阳样本tp,预测错误的阳样本fp,预测正确的阴样本tn,预测错误的阴样本fn,精确率p和召回率r如下式所示:在实体关系抽取领域,一般采用比较f1的大小,。其计算方式如下:本发明比较了不同网络模型的精确率p、召回率r和f1的值,如表4所示,从表4可以看出,改进的bert模型取得较好的效果。表4不同模型对比网络模型prf1rnn0.570520.54lstm0.630.580.60cnn0.670.620.64bert0.720.680.70本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。当前第1页1 2 3 
技术特征:1.一种自动构建数据集的实体关系抽取方法,其特征在于,包括以下过程:
步骤1、进行语料的收集与预处理;
步骤2、定义三元组字典表,并构建同义词表;
步骤3、利用ltp工具生成训练数据集、测试数据集;
步骤4、根据训练数据集训练网络模型;
步骤5、通过训练好的网络模型对测试数据集进行实体、关系预测;
步骤6、对预测结果进行优化得到三元组数据集。
2.根据权利要求1所述的自动构建数据集的实体关系抽取方法,其特征在于,所述预处理包括:对收集的文档数据进行清理以及对文本内容进行语句划分,不同类型的文本采用不同的切分方式实现。
3.根据权利要求2所述的自动构建数据集的实体关系抽取方法,其特征在于,所述步骤2的具体过程为:根据预处理后的预料,定理实体类别与类别关系,形成三元组字典表。
4.根据权利要求3所述的自动构建数据集的实体关系抽取方法,其特征在于,步骤3中,采用ltp工具根据标注信息、名词、动词的词性,名词作为实体,动词作为关系或属性,并对实体关系、属性类型不明确的数据进行纠正,对于不合理的数据进行清理,形成训练数据集和测试数据集。
5.根据权利要求4所述的自动构建数据集的实体关系抽取方法,其特征在于,所述步骤4包括:基于bert模型进行模型搭建,先搭配关系分类模型,根据关系分类模型预测出来的关系,搭建实体抽取模型;所述关系分类模型与实体抽取模型的输入是(1,n,768)维度的向量,bert模型的输出采用句子级别,bert模型输出的特征信息经过一个全连接层与sigmoid激活函数;将训练数据分别输入两个模型中完成训练。
6.根据权利要求5所述的自动构建数据集的实体关系抽取方法,其特征在于,所述激活函数为:
7.根据权利要求5所述的自动构建数据集的实体关系抽取方法,其特征在于,所述模型的损失函数为:
其中yk表示one-hot编码的标签,输出层包含k个神经元对于k个类别,φ(lk)表示使用sigmoid函数激活输出层对应的神经元。
8.根据权利要求1所述的自动构建数据集的实体关系抽取方法,其特征在于,所述步骤5的具体过程为:基于步骤4中训练好的网络模型,在测试数据集上进行实体预测、关系预测,基于bert的实体和关系网络模型将输入文本拆分成文本text-a和关系text-b两个参数进行多种关系的预测以及实体位置的标注。
9.根据权利要求1所述的自动构建数据集的实体关系抽取方法,其特征在于,所述步骤6的预测结果优化方法为:对预测处的实体关系是否存在同义词、近义词或者指代相同的实体或关系判别,采用余弦相似度进行判别,若余弦相似度高于阈值,则认为是统一类型的词,反之则不是,通过计算余弦相似度,清理语义相同的实体关系,形成最终的三元组数据集;所述余弦相似度计算方式为:
其中,x、y分别表示两个词的向量集合,xi代表x中第i个词语的向量表示,yi代表词语y中第i个词语的向量表示。
技术总结本发明提供了一种自动构建数据集的实体关系抽取方法,包括以下过程:步骤1、进行语料的收集与预处理;步骤2、定义三元组字典表,并构建同义词表;步骤3、利用LTP工具生成训练数据集、测试数据集;步骤4、根据训练数据集训练网络模型;步骤5、通过训练好的网络模型对测试数据集进行实体、关系预测;步骤6、对预测结果进行优化得到三元组数据集。采用本发明的方案可对文本内容实现自动化解析,有效解决训练与测试数据集生成难的问题;本方案通过对bert模型的优化调整,解决以往实体关系的抽取需依赖大量资源计算的问题,仅通过对bert模型的微调,就能高效抽取文本中的实体关系,从而直观地呈现多源异构数据之间的本质联系。
技术研发人员:房冬丽;魏超;李俊;衡宇峰;黄元稳
受保护的技术使用者:中国电子科技集团公司第三十研究所
技术研发日:2020.12.09
技术公布日:2021.03.12