一种人工智能领域文档关键信息抽取方法

文档序号:26007567发布日期:2021-07-23 21:26阅读:94来源:国知局
一种人工智能领域文档关键信息抽取方法

本发明属于人工智能自然语言处理技术领域,具体涉及一种人工智能领域文档关键信息抽取方法。



背景技术:

人工智能科学领域海量的无结构化文本文档蕴含着丰富的知识,若能将其进行结构化,可以极大地丰富人们获取相关知识的途径,降低人们获取相关知识的难度。然而,传统的人工主导的结构化方式消耗大量的人力资源且效率低下,并不是解决该问题的最优选择。相反地,使用机器进行关键信息抽取并实现知识结构化是一种非常高效且经济的方法。

目前,越来越多的基于深度学习的关键信息抽取方法被提出,但仍存在一定的不足之处仍存在。基于序列标注的关键信息抽取方法更适用于文本跨度短的场合,但是面对文本跨度长的subject和object时很难得到一个完整的结果。基于机器阅读理解的信息抽取模型hbt虽然能够缓解以上问题,但直接应用却效果差。此外,人工智能等自然科学领域的知识文本中存在着多种多样的知识类型,通过穷举法覆盖定义这些关系类型是不现实的,虽然开放信息抽取形式能够解决这一问题,但是已有的研究集中在对一句话的内容进行开放信息抽取,而且大部分方法是通过人类专家预先定义的规则进行句法分析实现的。实际应用中,相关文本内容中知识的表达方式非常多变,需要从整段的角度进行抽取,这使得定义出涵盖面广、扩展性强的规则十分困难,而通过机器学习的方式抽取却又面临着学习难度大、标注数据少带来的模型泛化能力不足的问题。



技术实现要素:

本发明的主要目的在于克服现有技术的缺点与不足,提出一种人工智能领域文档关键信息抽取方法,将信息抽取作为一种机器阅读理解任务来求解,预测文本中各个关键信息的起点和终点位置,解决了序列标注模型应对长跨度知识文本时性能效果大幅度下降的问题。

为了达到上述目的,本发明采用以下技术方案:

一种人工智能领域文档关键信息抽取方法,包括以下步骤:

s1、收集人工智能领域文档数据,再利用收集的数据进行关键信息抽取数据标注;

s2、对预训练模型roberta,在人工智能领域无结构化文本中进行进一步预训练;

s3、构建信息抽取模型;

s4、利用进一步预训练得到的roberta模型进行信息抽取模型骨干网络参数初始化;

s5、利用已标注数据进行训练,训练过程中对标注数据进行随机替换和数据增强,并利用平方交叉熵损失来计算反向传播的误差;

s6、利用训练得到的信息抽取模型在人工智能领域无结构化文本中进行信息抽取得到结果三元组,并对结果三元组进行整合。

进一步的,所述步骤s1具体包括:

s11、收集来源于人工智能领域相关的科学出版物、文献以及网络科普知识的无结构化文本段落,并限制文本段落长度在510个字符内;

s12、对要抽取出的关键信息三元组类型进行定义,具体为:

采用普通关系定义法定义5种三元组类型:

实体-描述-描述内容、实体-提出者-提出者名、实体-包含-包含内容、实体-应用-应用内容以及实体-别称-别称名;

采用伪关系定义法定义4种三元组类型:

实体属性-伪关系1-实体、实体属性-伪关系2-描述内容、实体属性-伪关系3-应用内容以及实体属性-伪关系4-包含内容;

s13、对已经定义出的三元组类型进行标注,具体为:

在开源文本标注工具brat中打开待标注文本,用鼠标光标选中待标注文本中的某一段字符作为某一三元组起点实体subject,然后在弹出的选择窗口中点击选择该subject的实体类别,然后用同样的方式选中该三元组的终点实体object并选择其类别,最终通过用鼠标选中该三元组中subject并拖拽至object的方法使得二者产生关系连线,此时在弹出的选择窗口中选择关系连线的类别即完成了一个三元组的标注;重复本步骤直至完成所有待标注文本中所有三元组的标注。

进一步的,所述roberta模型具体包括三个特征维度为756的embedding层、十二个特征维度为756的transformer层以及一个输入通道数为756,输出通道数为所有训练文本数据中字符种类总数的全连接层;

所述三个embedding层分别为tokenembedding层、positionembedding层以及segmentembedding层;

所述三个embedding层分别将输入模型的文本数据映射为一个形状为输入到模型的文本段数量×512×756的特征向量,将这三个输出的特征向量加和得到的一个形状为输入到模型的文本段数量×512×756的特征向量作为三个embedding层整体的输出,并作为roberta模型的十二个transformer层的输入;roberta模型的十二个transformer层输出为一个形状为输入到模型的文本段数量×512×756的特征向量,并作为全连接层的输入,全连接层的输出为模型对于输入文本段中每个被预设标记符号替换的词中每个字符为字典中每一个字符的概率预测结果,所述字典是所有输入的训练文本段数据的所有字符的集合。

进一步的,所述步骤s2具体为:

对预训练模型roberta,首先用jieba分词工具对训练文本进行分词,然后使用预训练的roberta模型参数初始化待训练的roberta模型参数;然后在每次迭代中基于jieba分词工具的分词结果,采用一预设标记随机替换分词结果中的部分词,并将处理结果输入到预训练模型roberta中,之后用预训练模型roberta预测被标记替换的词。

进一步的,所述构建信息抽取模型具体为:

基于roberta模型,在roberta模型第10层transformer层后加入subject预测模块,在subject预测模块后加入特征融合模块,在特征融合模块后加入predicate-object预测模块;

所述subject预测模块具体包括一个输入通道数为756,输出通道数为2的全连接层以及与该全连接层相连的relu层、dropout层以及sigmoid激活函数层;

所述特征融合模块具体包括一个输入和输出通道数分别为1512和756的全连接层以及与之相连的relu层、dropout层和roberta最后两层transformer;

所述predicate-object预测模块具体包括一个输入通道数为756,输出通道数为2×predicate类别总数的全连接层和与全连接层相连的relu层、dropout层以及sigmoid激活函数层。

进一步的,所述subject预测模块输入是信息抽取模型第10层transformer层输出的形状为输入到模型的文本段数量×512×756的特征向量,输出是对应于原输入信息抽取模型的512个字符位置上,每个字符位置为subject的起点的概率预测结果和每个字符位置为subject的终点的概率预测结果;

所述特征融合模块将subject的特征语义融合输入到信息抽取模型的文本段在roberta模型第10层transformer输出的特征向量中,得到融合subject特征的特征向量,其输入是roberta模型第10层transformer输出的形状为输入到模型的文本段数量×512×756的特征向量以及形状均为输入到模型的文本段数量×1的选中的subject起点位置标注值和选中的subject终点位置标注值;所述选中的subject是从这一批输入到模型的训练文本数据里面每个样本的所有标注subject中动态地在迭代时随机挑选一个获得;

训练时,特征融合模块首先根据输入的subject起点和终点位置选出roberta第10层transformer输出的特征向量中相应位置的向量,得到两个输入到模型的文本段数量×756的向量,将这两个向量分别复制512份得到两个形状为输入到模型的文本段数量×512×756的向量,将这两个向量在特征维度拼接得到一个形状为输入到模型的文本段数量×512×1512的向量,并将结果输入到特征融合模块的全连接层网络中得到形状为输入到模型的文本段数量×512×756的输出向量,将输出向量与第10层transformer输出的特征向量相加后经过特征融合模块的两层transformer后得到特征融合模块的输出;

所述predicate-object预测模块的输入是所述特征融合模块输出的融合subject特征的特征向量,输出是选中的subject对应的object的各类别概率、选中的subject与object之间的predicate各类别概率以及该object的起点字符位置和终点字符位置在输入到信息抽取模型的文本段各个字符位置中的概率。

进一步的,所述步骤s4中进行骨干网络参数初始化具体为:

利用训练得到的roberta模型的各个embedding层初始化信息抽取模型的相应的各个embedding层,利用训练得到的roberta模型的各个transformer层初始化信息抽取模型相应的各个transformer层;

所述subject预测模块、特征融合模块以及predicate-object预测模块中的全连接层初始参数为在均值为0,方差为2÷该层输入通道数的正态分布中随机采样得到。

进一步的,所述步骤s5具体包括:

s51、对于输入信息抽取模型之前的标注数据,对其进行随机替换和数据增强来提升模型的泛化性能、减轻过拟合;

s52、在训练时利用平方二分类交叉熵损失进行训练,具体为:

在进行二分类交叉熵损失计算之前先对sigmoid激活函数层输出的subject预测概率结果和predicate-object预测概率结果分别取平方;

通过平方二分类交叉熵损失同时计算出subject预测结果对应的误差ls和predicate-object预测结果对应的误差lpo,最终反向传播的误差为:

loss=k1×ls+k2×lpo

其中,k1和k2根据实际情况选取;

s53、训练过程中进行微调训练,一开始采用学习率1e-6,之后逐步增大到5e-5,最后逐步减小学习率。

进一步的,所述步骤s51中,随机替换具体为:

在训练过程每次迭代中,将数据输入到信息抽取模型前,按一定概率随机将一个实体替换为另一个实体、按一定概率随机将一个实体属性替换为另一个实体属性、按一定概率随机将应用内容替换为另一个应用内容、按一定概率随机将包含内容替换为另一个包含内容以及按一定概率随机将提出者替换为另一个提出者;

所述数据增强具体为:

在训练过程每次迭代中,将数据输入到信息抽取模型之前,随机替换、增加、删除描述内容里面的一个词。

进一步的,所述步骤s6具体包括:

s61、首先将文本输入到信息抽取模型中,得到文本序列中每个位置上subject的起点和终点的预测概率结果;

取所有预测起点概率大于0.5的位置为subject起点位置,取所有预测终点位置概率大于0.5的位置为subject预测终点位置;

对于每个subject的起点位置预测结果,找到比其文本中位置靠后的最近的一个subject的终点位置预测结果与其进行配对,根据每一对起点和终点位置来取出文本中相应位置的内容作为subject预测结果;

s62、对于预测得到的n个配对的subject起点位置和终点位置,将其组合成batch,得到一个n×2的向量;

同时对于每一对subject取出其对应文本对应的第10层transformer输出特征向量得到扩充后的第10层transformer输出特征向量,其形状为n×512×756;

根据每一个subject的起点和终点位置,分别取出扩充后的第10层transformer输出特征向量相应位置的内容,分别得到n×756的起点向量和n×756的终点向量,将其分别通过复制512份得到n×512×756和n×512×756的向量,将这两个向量在特征维度进行拼接得到一个n×512×1512的特征向量,将该特征向量通过特征融合模块的全连接层后得到一个n×512×756的特征向量,将得到的特征向量与扩充后的第10层transformer得到的特征向量相加后经过特征融合模块的两层transformer后得到融合subject特征的特征向量;

s63、将步骤s62得到的融合subject特征的特征向量输入到predicate-object预测模块得到的predicate预测结果;

取所有类别起点预测概率大于0.5的位置为该类别起点位置,取所有类别终点预测概率大于0.5的位置为该类别终点位置;

对于每个predicate类别的起点位置预测结果,找到比其文本中位置靠后的最近的一个同predicate类别终点位置预测结果与其进行配对,根据每一对predicate起点和终点位置来取出相应文本中相应位置的内容作为其object结果;

s64、对于抽取出的subject-predicate-object三元组,若其以实体属性作为subject,则先找到该实体属性对应的某一个实体作为object的三元组,即实体属性-伪关系1-实体,再找到该实体属性对应的所有不是实体作为object的三元组,即实体属性-伪关系2-描述内容、实体属性-伪关系3-应用内容、实体属性-伪关系4-包含内容,然后将这些三元组去掉伪关系后用共同的实体属性作为predicate合并为新三元组,即实体-实体属性-内容,最终实现开放信息抽取;

若抽取出的三元组不以实体属性作为subject,则直接将抽取出的三元组作为结果。

本发明与现有技术相比,具有如下优点和有益效果:

1、本发明将信息抽取作为一种机器阅读理解任务来求解,预测文本中各个关键信息的起点和终点位置,解决了序列标注模型应对长跨度知识文本时性能效果大幅度下降的问题;利用本方法可以抽取无限多种关系类型,将封闭、开放两种信息抽取方法合并到同一个框架中,提高了信息抽取的准确率。

2、本发明发挥预训练模型的优势,在有标注样本不丰富的情况下仍表现出较强的泛化性能,并且能应对整段文本和多变的知识表达形式。

3、本发明基于hbt模型进行改进,在恰当的位置设置subject预测模块和特征融合模块,使得模型在保留适当的特征共享提高性能的同时兼顾解决subject和object悬殊的跨度差异造成消极影响的问题,从而提高了信息抽取模型的整体性能。

4、本发明应用平方二分类交叉熵损失对模型进行优化,起到了在线困难样本挖掘的效果,使得模型对起点终点的正确选则更加关注,又缓解了大量负样本带来的正负样本不平衡干扰,扩大正样本分类边界,从而提高了模型的整体性能;通过对于实体、实体属性、应用内容、包含内容、别称、提出者进行随机同类内的互换以及通过对于描述内容进行随机操作,提高了模型的泛化能力。

附图说明

图1是本发明的整体流程图;

图2是本发明的信息抽取模型训练步骤的流程图;

图3是本发明的信息抽取模型的subject预测模块图;

图4是本发明的信息抽取模型的特征融合模块图;

图5是本发明的信息抽取模型的predicate-object预测模块图;

图6是本发明的信息抽取模型推理流程图;

图7是本发明的伪关系知识整合合并方法图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1所示,本发明,一种人工智能领域文档关键信息抽取方法,包括以下步骤:

s1、收集人工智能领域文档数据,再利用收集的数据进行关键信息抽取数据标注,具体包括:

s11、收集来源于人工智能领域相关的科学出版物、文献以及网络科普知识的无结构化文本段落,并限制文本段落长度在510个字符内;

s12、对要抽取出的关键信息三元组类型进行定义,具体为:

采用普通关系定义发定义5种三元组类型:

实体-描述-描述内容、实体-提出者-提出者名、实体-包含-包含内容、实体-应用-应用内容以及实体-别称-别称名;

采用伪关系定义法定义4种三元组类型:

实体属性-伪关系1-实体、实体属性-伪关系2-描述内容、实体属性-伪关系3-应用内容以及实体属性-伪关系4-包含内容。

s13、对已经定义出的三元组类型进行标注,具体为:

在开源文本标注工具brat中打开待标注文本,用鼠标光标选中待标注文本中的某一段字符作为某一三元组起点实体subject,然后在弹出的选择窗口中点击选择该subject的实体类别,然后用同样的方式选中该三元组的终点实体object并选择其类别,最终通过用鼠标选中该三元组中subject并拖拽至object的方法使得二者产生关系连线,此时在弹出的选择窗口中选择关系连线的类别即完成了一个三元组的标注;重复本步骤直至完成所有待标注文本中所有三元组的标注。

s2、对预训练模型roberta,在人工智能领域无结构化文本中通过自监督的方式进一步预训练,具体为:

对预训练模型roberta,首先用jieba分词工具对训练文本进行分词,然后使用预训练的roberta模型参数初始化待训练的roberta模型参数;然后在每次迭代中基于jieba分词工具的分词结果,采用一预设标记随机替换分词结果中的部分词,并将处理结果输入到预训练模型roberta中,之后用预训练模型roberta预测被标记替换的词;在本实施例中,采用的预设标记为:[mask];

所述roberta模型具体包括三个特征维度为756的embedding层、十二个特征维度为756的transformer层以及一个输入通道数为756,输出通道数为所有训练文本数据中字符种类总数的全连接层;

所述三个embedding层分别为tokenembedding层、positionembedding层以及segmentembedding层;

所述三个embedding层分别将输入模型的文本数据映射为一个形状为输入到模型的文本段数量×512×756的特征向量,将这三个输出的特征向量加和得到的一个形状为输入到模型的文本段数量×512×756的特征向量作为三个embedding层整体的输出,并作为roberta模型的十二个transformer层的输入;roberta模型的十二个transformer层输出为一个形状为输入到模型的文本段数量×512×756的特征向量,并作为全连接层的输入,全连接层的输出为模型对于输入文本段中每个被预设标记替换的词中每个字符为字典中每一个字符的概率预测结果,所述字典是所有输入的训练文本段数据的所有字符的集合;本实施例中,采用的预设标记为:[mask]。

s3、构建信息抽取模型,具体为:

基于roberta模型,在roberta模型第10层transformer层后加入subject预测模块,在subject预测模块后加入特征融合模块,在特征融合模块后加入predicate-object预测模块;

如图3所示,所述subject预测模块具体包括一个输入通道数为756,输出通道数为2的全连接层以及与该全连接层相连的relu层、dropout层以及sigmoid激活函数层;

如图4所示,所述特征融合模块具体包括一个输入和输出通道数分别为1512和756的全连接层以及与之相连的relu层、dropout层和roberta最后两层transformer;

如图5所示,所述predicate-object预测模块具体包括一个输入通道数为756,输出通道数为2×predicate类别总数的全连接层和与全连接层相连的relu层、dropout层以及sigmoid激活函数层。

在本实施例中,所述subject模块利用第10层transformer层输出的特征向量以并行预测输入文本段落内所有subject的起点和终点的概率,其输入是信息抽取模型第10层transformer层输出的形状为:输入到模型的文本段数量×512×756的特征向量,输出是对应于原输入信息抽取模型的512个字符位置上,每个字符位置为subject的起点的概率预测结果和每个字符位置为subject的终点的概率预测结果;

所述特征融合模块将subject的特征语义融合输入到信息抽取模型的文本段在roberta模型第10层transformer输出的特征向量中,得到融合subject特征的特征向量,其输入是roberta模型第10层transformer输出的形状为输入到模型的文本段数量×512×756的特征向量以及形状均为输入到模型的文本段数量×1的选中的subject起点位置标注值和选中的subject终点位置标注值;所述选中的subject是从一个batch里面每个样本的所有标注subject里面动态地在迭代时随机挑选一个获得;

训练时,如图2所示,特征融合模块首先根据输入的subject起点和终点位置选出roberta第10层transformer输出的特征向量中相应位置的向量,得到两个输入到模型的文本段数量×756的向量,将这两个向量分别复制512份得到两个形状为输入到模型的文本段数量×512×756的向量,将这两个向量在特征维度拼接得到一个形状为输入到模型的文本段数量×512×1512的向量,并将结果输入到特征融合模块的全连接层网络中得到形状为输入到模型的文本段数量×512×756的输出向量,将输出向量与第10层transformer输出的特征向量相加后经过特征融合模块的两层transformer后得到特征融合模块的输出;

所述predicate-object预测模块的输入是所述特征融合模块输出的融合subject特征的特征向量,其输出是选中的subject对应的object的各类别概率、选中的subject与object之间的predicate各类别概率以及该object的起点字符位置和终点字符位置在输入到本信息抽取模型的文本段各个字符位置中的概率。

s4、利用进一步预训练得到的roberta模型进行骨干网络参数初始化,具体为:

利用训练得到的roberta模型的各个embedding层初始化信息抽取模型的相应的各个embedding层,利用训练得到的roberta模型的各个transformer层初始化信息抽取模型相应的各个transformer层;

所述subject预测模块、特征融合模块以及predicate-object预测模块中的全连接层初始参数为在均值为0,方差为2÷该层输入通道数的正态分布中随机采样得到。

s5、利用已标注数据进行训练,训练过程中对标注数据进行随机替换和数据增强来模型的泛化性能、减轻过拟合,并利用平方交叉熵损失来计算反向传播的误差,具体为:

s51、对于输入信息抽取模型之前的标注数据,对其进行随机替换和数据增强来提升模型的泛化性能、减轻过拟合;

s52、在训练时利用平方二分类交叉熵损失进行训练,具体为:

在进行二分类交叉熵损失计算之前先对sigmoid激活函数层输出的subject预测概率结果和predicate-object预测概率结果分别取平方;

通过平方二分类交叉熵损失同时计算出subject预测结果对应的误差ls和predicate-object预测结果对应的误差lpo,最终反向传播的误差为:

loss=k1×ls+k2×lpo

其中,k1和k2根据实际情况选取,本实施例中k1和k2取1;

s53、训练过程中进行微调训练,一开始采用学习率1e-6,之后逐步增大到5e-5,最后逐步减小学习率。

在本实施例中,所述随机替换具体为:

在训练过程每次迭代中,将数据输入到信息抽取模型之前,按一定概率随机将一个实体替换为另一个实体、按一定概率随机将一个实体属性替换为另一个实体属性、按一定概率随机将应用内容替换为另一个应用内容、按一定概率随机将包含内容替换为另一个包含内容、按一定概率随机将提出者替换为另一个提出者;

所述数据增强具体为:

在训练过程每次迭代中,将数据输入到模型之前,随机替换、增加、删除描述内容里面的一个词。

s6、利用训练得到的信息抽取模型在人工智能领域无结构化文本中进行信息抽取得到结果三元组,并对结果三元组进行整合,如图6所示,具体为:

s61、首先将文本输入到信息抽取模型中,得到文本序列中每个位置上subject的起点和终点的预测概率结果;

取所有预测起点概率大于0.5的位置为subject起点位置,取所有预测终点位置概率大于0.5的位置为subject预测终点位置;

对于每个subject的起点位置预测结果,找到比其文本中位置靠后的最近的一个subject的终点位置预测结果与其进行配对,根据每一对起点和终点位置来取出文本中相应位置的内容作为subject预测结果;

s62、对于预测得到的n个配对的subject起点位置和终点位置,将其组合成batch,得到一个n×2的向量;

同时对于每一对subject取出其对应文本对应的第10层transformer输出特征向量得到扩充后的第10层transformer输出特征向量,其形状为n×512×756;

根据每一个subject的起点和终点位置,分别取出扩充后的第10层transformer输出特征向量相应位置的内容,分别得到n×756的起点向量和n×756的终点向量,将其分别通过复制512份得到n×512×756和n×512×756的向量,将其在特征维度进行拼接得到一个n×512×1512的特征向量,将该特征向量通过特征融合模块的全连接层后得到一个n×512×756的特征向量,将其与扩充后的第10层transformer得到的特征向量相加后经过特征融合模块的两层transformer后得到融合subject特征的特征向量;

s63、将步骤s62得到的融合subject特征的特征向量输入到predicate-object预测模块得到的predicate预测结果;

取所有类别起点预测概率大于0.5的位置为该类别起点位置,取所有类别终点预测概率大于0.5的位置为该类别终点位置;

对于每个predicate类别的起点位置预测结果,找到比其文本中位置靠后的最近的一个同predicate类别终点位置预测结果与其进行配对,根据每一对predicate起点和终点位置来取出相应文本中相应位置的内容作为其object结果;

s64、对于抽取出的subject-predicate-object三元组,如图7所示,若其以实体属性作为subject,则先找到该实体属性对应的某一个实体作为object的三元组,即实体属性-伪关系1-实体,再找到该实体属性对应的所有不是实体作为object的三元组,即实体属性-伪关系2-描述内容、实体属性-伪关系3-应用内容、实体属性-伪关系4-包含内容,然后将这些三元组去掉伪关系后用共同的实体属性作为predicate合并为新三元组:实体-实体属性-内容,达到开放信息抽取的目的;

若抽取出的三元组不以实体属性作为subject,则直接将抽取出的三元组作为结果。

还需要说明的是,在本说明书中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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