首页> 中国专利> 基于BERT神经网络的中文人物关系抽取构建方法

基于BERT神经网络的中文人物关系抽取构建方法

摘要

本发明涉及一种基于BERT神经网络的中文人物关系抽取方法,用于解决非结构化的中文文本内人物关系难以抽取的技术问题,具体内容包括数据收集模块,对训练数据的获取、清洗、标注;特征获取与关系抽取模块,包括对句子上下文编码、命名实体识别、实体关系的预测;关系存储模块和应用服务模块,利用图数据库存储文本人物关系抽取出的人物实体关系图谱,基于SOA设计核心业务服务API接口,提供数据交互服务,Docker容器封装系统应用,使系统平台具有高可移植性和可扩展性,最终提供文本人物关系知识图谱功能。本发明能够有效地解决目前所面临的人物关系抽取召回率低、关系不准等问题。以达到更好的关系抽取平台服务。

著录项

  • 公开/公告号CN112926325A

    专利类型发明专利

  • 公开/公告日2021-06-08

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN202110186063.0

  • 发明设计人 刘登涛;张建;王谦超;

    申请日2021-02-14

  • 分类号G06F40/295(20200101);G06F40/30(20200101);G06N3/04(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人刘萍

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-06-19 11:19:16

说明书

技术领域

本发明属于计算机自然语言处理领域,是一种基于BERT神经网络的对中文人物关系进行抽取的方法。不同于目前主流的基于传统方法的依存句法分析的方法,本发明方法是一种深度学习的抽取方法,相比于传统中文人物关系抽取,本系统通过基于BERT的深度学习的方法能够在一定程度上缓解基于传统中文人物关系抽取模型的弊端,即对特征的选取是由模型训练完成,在没有人工干预的条件下得到高性能的关系抽取模型。在最终对文本的抽取当中,有着非常高的准确率和召回率。

背景技术

随着大数据时代的到来和信息技术的不断发展,现如今的社会已经进入到了人工智能(Artificial Intelligence,简称AI)时代。各种各样的人工智能应用产品不断的出现,在诸多领域中发挥着各样的重要作用,比如在AI+农业、AI+医疗、AI+自动驾驶、AI+教育等人工智能与传统行业相结合的全新应用场景中大放异彩。而在人工智能领域当中有一个非常重要的子领域--自然语言处理领域(Natural Language Processing,简称NLP),在NLP当中人物关系抽取又作为NLP的重要内容之一有着十分广阔的应用前景。

随着大数据时代的到来,数据规模不断增大,信息过载的问题日益严重,面对领域交叉、海量异构、碎片化的激增的各种文本数据,如何才能快速高效的准确地获取关键信息有着重大意义。从当中抽取关键信息进行分析成为一个研究热点,而信息抽取又需要高质量的语义实体做支撑。根据这一特定问题,这时实体关系抽取就发挥了重要作用,此技术可以从网络中海量的非结构化数据中抽取特定的实体、事件、关系等信息,进而转化成符合人类认知世界的表示形式,形成结构化的数据存储在数据库中,为各类用户提供一种有组织、可查询、可使用的数据知识。从大数据到大知识[3]的过程中,人物关系抽取研究对于智能语义搜索、人物知识图谱构建、问答系统等领域具有重要意义。

(1)智能语义搜索中的应用

随着互联网的发展,如今人们越来越依赖搜索引擎,当大家遇到解决不了的问题或有不懂的信息时都会习惯性的去百度、谷歌、bing、360等搜索引擎搜索一下来获取想要的结果。随着搜索引擎相关技术的不断发展,在信息检索过程中不是简单的关键词匹配,搜索引擎会自动根据语义知识进行联想,搜索并反馈用户真正需要的信息,其能实现数字、字母的精准搜索,而不是模糊匹配,并且数据库增删改可实时同步到搜索引擎中,在搜索引擎为人们提供便利的背后就有实体关系抽取这项技术为其提供了支持。例如,当检索框中输入“猪八戒的师兄用的是什么武器”,面对此类复杂的查询时,搜索引擎会直接返回其猪八戒师兄的姓名(孙悟空)以及其别名,表明搜索引擎返回结果过程中会对用户输入的内容进行语义分析,通过实体关系抽取来读懂用户的问题,提炼出问题主体,然后与知识图谱中对应的节点相链接,对搜索结果进行去重并推送精准的、用户想要的结果。

(2)人物知识图谱构建的应用

人物知识图谱构建技术的第一步就是信息抽取,而人物关系抽取是信息抽取的核心内容之一,其可以通过人物识别和关系抽取得到有效的关系三元组。最终在人与人之间构建知识图谱,以实现跨姓的大知识挖掘和推理服务。例如在家庭人物图谱当中,我们可以轻易的得到与主人公直接相关和简介相关的各种人物及与主人公的关系;在历史人物图谱当中,通过使用历史人物图谱掌握和评价历史人物的方法在历史学习和探究中具有重要的作用;在小说人物图谱当中可以更快的梳理清楚人物关系,以达到对小说更深刻的理解。

所以人物关系抽取研究对于这种系统十分重要,它可以促进此类知识图谱的自动构建。因而研究人物关系抽取算法与其相关理论研究发展具有重要的现实意义。

(3)问答系统中的应用

问答系统在对用户所提问题进行回答前,需要对问题的内容进行分析,抽取人物对之间的语义关系,从而方便系统自动给出合理的答案。例如,在回答“猪八戒的师兄用的是什么武器?”类似问题时,利用人物关系抽取技术来构建人物之间的联系,通过<猪八戒,师兄,孙悟空>,将该问题可以转化为“孙悟空用的是什么武器?”,最后可以通过查询结果自动回答,而不是像传统方法那样,通过信息检索返回大量的网页作为结果集。

综上所述,可以发现实体关系抽取研究广泛应用在智能语义搜索、人物知识图谱构建、问答系统等领域,其促进着自然语言处理和人工智能等技术的发展,推动了学术界的研究进步。

目前中文人物关系抽取的方法大多是基于依存句法分析的方法进行抽取文本当中的人物关系,通过不同语言的语法规则建立起模型一一对应的依存关系以达到抽取人物关系的目的。但是这样的方法需要人为去定义大量的语法规则,而且通过依存句法分析提取到的特征信息十分的原始,在人为的主观因素介入下,需要有二次加工的特征信息的输入,因此会导致累计误差严重,影响模型抽取的精准程度。因此,将深度学习思想应用于人物关系抽取任务中具有重要的研究意义,本系统通过基于BERT的深度学习的方法能够在一定程度上缓解基于依存句法分析的关系抽取模型的弊端,即对特征的选取是由模型训练完成,在没有人工干预的条件下得到高性能的关系抽取模型。在最终对文本的抽取当中,有着非常高的准确率和召回率。

本发明是基于BERT神经网络的中文人物关系抽取方法,方法主要包括文本预处理层,特征抽取层和关系预测层。文本预处理层包括两部分,第一部分是训练预料的获取、人名NER识别和文本mask,第二部分是BERT Embedding,将传入的文本转换成字向量。特征抽取层由BI-LSTM、DropOut、残差映射、Multi-head-Self-Attention抽取构成,特征抽取层用于对已经处理过的原文本进行特征抽取,抽取出句子的更深层的高维语义特征。关系预测层模块是基于softmax定位关系词位置索引和关系字典匹配的方式,关系预测层模块是为了得到传入文本通过特征提取后最终判断出两人物之间的关系词并构成关系三元组。

本发明采用了如下的技术方案及实现步骤:

1.中文人物关系抽取整体流程的技术方案

中文人物关系抽取是信息抽取领域非常重要的一部分,其主要任务就是从非结构化的文本当中抽取出文本里面包含的人物关系,通过抽出出来的人物关系可以进行很多后续的研究。本发明的中文人物关系抽取整体流程图流程框架如图1所示。

其形式化定义为:对于一个包含人物关系的句子S集合{W

得到的每一个人物关系三元组都是此句子S当中的一个实例关系,例如,从句子“王刚和其老婆魏小红、堂侄王小强去饭馆吃饭”中,可以识别出三个人物“王刚”、“魏小红”和“王小强”,并且得到三者之间两两组合之间的关系,得到的三元组共三个,分别表示为<“王刚”,“老婆”,“魏小红”>、<“王刚”,“堂侄”,“王小强”>、<“魏小红”,“unknown”,“王小强”>,其中第三个三元组当中的unknown代表这个三元组中所对应的两个人物在本句当中没有关系。

2.人物关系数据语料的构建:

由于公开的中文人物关系抽取的语料库的十分缺乏,目前还未有比较权威的中文人物关系抽取数据集,本项目选择了使用远程监督的方法来获取训练语料库,先通过互动百科下载了10000个人物关系对(图2),因防止侵犯他人隐私,本文展示的所有数据上的人名均使用虚拟人们替换,然后使用爬虫将每一个人物关系对拼接到百度搜索URL之后进行搜索,将搜索到的文本语料爬取到数据库当中存储下来,将其人工清洗、标注,构建了人物关系语料,最终清洗出30000条包含人物关系的语句,作为本项目中文人物关系抽取实验的数据集,并且将数据集随机打乱之后28000条作为训练集和2000条作为测试集,部分数据集展示如图3所示。

3.中文人物关系抽取模型

本文提出的基于深度学习的BERT+BI-LSTM+Multi-head-Self-Attention+FC中文人物关系抽取模型的结构,在中文人物关系抽取当中,BERT的预训练模型有着至关重要的作用,BERT网络是基于Tansformer网络encoder端模型,即基于Attention机制构建起来的大规模网络,可以有效的解决序列模型带来的长期依赖和无法并行训练效率低等问题,但是仅仅使用BERT网络模型还不能有效地抽取出语料的特征信息,因为尽管BERT网络模型是通过开源语料预训练过的,但是整个网络模型参数并没有针对人物关系领域进行抽取任务的训练,然后还需要后续BI-LSTM+Multi-head-Self-Attention+FC模型部分提取出传入文本高维度的语义等特征。

基于BERT的双向长短期记忆网络模型的主要思想就是在BERT模型上加入BI-LSTM层和Multi-head-Self-Attention层,最后再拼接上非线性映射层和softmax输出层,其结构如图3所示,共包括6层,从上往下依次是:

1、输入层:这一层的作用是对训练语料进行预处理然后输入到模型当中,首先先判断出传入句子当中人物的个数,通过句子当中人物的个数将句子进行复制,其句子的数量达到可以进行人物之间两两组合的个数,然后进行mask操作,将每个句子当中想要判断关系的对应的两个人物的人名进行mask处理,即使用与人名的字数同等个数的“#”替换对应的人名,这里将人名进行mask处理有两个主要原因,第一是进行标记,在一个句子当中出现多个人名,通过mask不同的位置进行标记判断出来的是被mask掉的两个位置的人物之间的关系,第二是在已知人名实体在句子当中位置的基础上,两人物之间的关系与句子的表达形式和语义相关,跟两人物实体的人名分别是什么没有影响,通过将两个位置的人名给mask掉,不仅仅没有丢失传入文本语句的信息,而且还删除掉了不同人名叫法对句子影响的杂质信息。

例如输入句子“王刚和其老婆魏小红、堂侄王小强去饭馆吃饭”,经过文本预处理之后会得到三条输入如表1,然后将三条句子分别传入后续的模型当中,得到每条句子相对应两个人物之间的关系。

表1

2、BERT嵌入层:

在这一层中BERT网络将每个字经过传入语句的加权求和之后映射到低维的向量空间,也就是每个字的字向量,在一定程度上提取出语料中上下文的特征,最终得到传入语句的每个字的字向量W作为接下来BI-LSTM层的输入。

3、BI-LSTM层:

该层的作用是将BERT嵌入层输出的的文本词向量通过构建正反两个LSTM神经网络从正反两个相反的方向提取特征,这样更能有利于解决人物关系抽取中句子长依赖等问题。这一层的主要目的是将BERT网络之后的特征信息接入BI-LSTM网络模型,提取出高维语义特征。

4、Dropout层

在模型训练的过程中,模型的参数太多,而训练样本又不是很多,训练出来的模型很容易产生过拟合的现象,Dropout层在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,例如,将p设置为0.5,会导致每次训练的时候只随机训练全部神经元的50%,这样使得模型不会太依赖某些局部的特征,这样可以使模型泛化性更强,最终可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。

其中第三层BI-LSTM层和第四层Dropout层共进行三次的循环,并且每次循环都加入了残差结构。

5、Multi-head-Self-Attention层:

利用层层叠加的Self-Attention机制对每一个词得到新的考虑了上下文信息的表征

6、非线性映射层和softmax输出层:

该层的主要工作是根据上层模块得到的深度特征向量通过softmax函数分类器输出,预测人物关系的分类,并与人工标注的人物关系分类进行比较。具体操作为将上层模块Attention之后的结果进行两层全连接层进行维度的转换,然后再经过softmax函数将输出的结果进行映射为为0-1之间的实数,并且归一化的和为1。然后取softmax之后的结果当中最大值的位置编号为最后的output输出结果,代表的是两人物所对应关系词的第一个字在对应的语料句子当中的位置索引。

在许多传统的模型当中,大多数都是采用的是预测人物关系的分类的模型,但是使用传统的预先定义好类别再进行分类的方式有很对的缺陷,影响关系抽取的精确性,例如训练集样本各分类数据不均衡问题,如果采用分类的方式,在中文人物关系抽取领域,部分类别的数据很难获取,如一些偏远的亲属关系、上下级关系、同门的数据获取难度远远大于夫妻、父母、兄弟姐妹的数据获取,以至于导致最终爬取的训练预料严重的不均衡,导致模型的训练效果很差。所以在本算法是采用阅读理解的方式,返回的是关系词在句子当中的位置索引,即最终output输出的结果是选择返回两人物关系在传入句子当中位置索引所在位置的方法来得到最终结果的,首先经过softmax函数分类器输出之后的结果为两人物直接关系词的首字所在句子当中的位置索引,然后从句子的当前索引位置开始选择后三个字或者后两个字在已经准备好的关系字典进行遍历,遍历出完整的关系,最终得到当前两个人物的关系三元组。

附图说明:

图1是基于BERT神经网络的中文人物关系抽取整体流程图

图2是中文人物关系对示例

图3是中文人物关系语料示例

图4 BI-LSTM网络图

图5是基于BERT神经网络的中文人物关系抽取模型架构图

图6是部分抽取结果展示图

图7是人物关系抽取可视化过程图

图8是本发明的实施例的系统架构图

图9是网站的展示页面架构组成图

具体实施方式:

基于BERT神经网络的中文人物关系抽取方法。

包含以下步骤:

在文本预处理层,将传入文本根据实体人物个数进行扩充并mask操作。

在BERT层中,在Embedding过程中,首先将给定的由n个字组成的中文句子S={W

在BI-LSTM层中(图4),由于BL-STM网络包含前向和后向两个子LSTM网络,分别向前和向后传递,每个LSTM需要经过公式(1)-(6),其中et是此时刻的输入,ht-1是上一时刻的记忆输出,Wf Wi Wo分别是模型的参数,使用0.5的Dropout层,分别计算出输入门f

f

i

o

C′

C

h

将BI-LSTM层中输出的结果经过公式(7)利用残差的方式继续通入到BI-LSTM层当中,一共经过三次的BI-LSTM。

h

在Multi-head-Self-Attention层,先通过attention的{Q,K,V}矩阵将每组的q(query),k(key),v(value)分别计算出来,因为本论文采用的是Multi-head-Self-Attention有多个head,所以需要用多组参数不一样的{Qi,Ki,Vi}参数矩阵经过公式(8)-(10)分别求出每一个head对应的{qi,ki,vi},然后经过公式(11)-(13)分别求出每个头的attention值yi,然后过公式(14)将归一化的结果乘以矩阵v就得到权重求和的表示Ai,然后将每个head输出的结果Ai经过拼接之后获得此部分的输出A={[A

q

k

k

y

A

在非线性映射层和softmax输出层,经过公式(15)-(16)先将上层的输出A经过两层的全连接层,W和b均为模型的参数,然后做softmax计算得到结果,然后通过argmax找到softmax最大值的位置即得到了最终的预测结果,该层的主要工作是根据上一层得到的深度特征词向量通过softmax函数分类器输出,预测人物关系的分类,并与人工标注的人物关系分类进行比较。

o′=softmax(W

o=numpy.argmax(o′) (16)

在模型初始化部分,针对关系抽取模型,设置模型所有的子层的初始权重为一个随机的期望为0方差为1的正态分布矩阵。对于BERT嵌入层的参数设置,设置BERT的输入最大长度为50,因为通过对3.2章当中整理的训练语句进行分析,其中99.94%的数据文本的长度的字数是小于50个字的,当遇到长度大于50个字的时候会对文本进行截断拆分,将截断的部分分别传入到模型当中进行判断。对于BI-LSTM层的参数设置,设置接受数据层的初始权重设置为50*768即传入句子的长度50维度乘以BERT模型输出的字向量的维度768维度,设置BI-LSTM的隐藏层维度为128,设置所有Dropout层参数为0.5,即以0.5的概率对神经元进行保留。对于Multi-head-Self-Attention层的参数设置,设置多头自注意力机制的head数为12。设置Q,K,V矩阵的维度为32。

对于非线性映射层和softmax输出层的参数设置,前两层的全连接层的输出维度均为512,最后一层的输出维度为51,其代表的是经过softmax计算之后返回的句子索引位置的50个维度和代表unknown关系的1个维度的概率。

在训练过程中一些超参数的设置,首先使用Adam(ε=106,ρ=0.95)作为随机梯度下降(Stochastic Gradient Descent,SGD)的优化算法,即设置初始学习率为1.0,使用梯度的一阶矩和二阶矩动态调整学习率,从而使梯度的下降较为平稳。同时为避免梯度爆炸,将梯度范数剪裁为0.9。设置batch_size的参数为32,即在批量训练的时候,每一个批度的文本数量是32条文本。设置epochs的参数为30,即在训练模型的时候最多将全部的文本循环训练30遍。设置early_stopping的参数为5,即在训练的过程当中通过监视验证准确性在最近一段时间内是否有所改善,来触发提前停止。如果连续5次没有发生过模型效果改善则提前停止模型训练,防止模型过拟合。设置损失函数为categorical_crossentropy,即采用交叉熵损失函数,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,经常使用到为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。在表2中,展示了模型训练过程所有网络结构所设定的超参数值。

表2

最后在字典匹配层,通过得到的位置索引o在传入句子的当前索引位置开始选择后三个字或者后两个字在已经准备好的关系字典进行遍历,遍历出完整的关系,最终得到当前两个人物的关系三元组。部分抽取结果展示见图5。通过测试结果可以看出,该模型可以准确的识别出单条语句当中出现的人物,并能准确分析出不同人物之间两两之间的关系。

知识存储模块如图6所示,利用图数据库提供人物关系抽取结果存储和展示服务,保存文本人物实体与特征实体关系。本系统采用面向服务的设计模式进行平台设计,基于SOA架构将系统核心业务线划分为在一个具体实施例中(图7),网站的展示页面架构组成如图8所示,包括总体展示、平台服务、管理模块、用户门户等模块,并采用RESTFUL规范设计并实现API接口。考虑到平台的可扩展性与支持高并发性,利用Redis进行分布式缓存。利用Docker容器技术,将本系统平台知识服务应用进行封装,方便分布式应用于部署,使得知识服务系统具有高可移植性和高可扩展性。

在一个实施例中,还包括抽取出的人物关系可视化的步骤,所述人物关系可视化的步骤包括在显示终端通过Web应用框架显示,包括:

通过浏览器接收客户端的https请求;

将所述http请求发送给web服务器网管关口;

通过统一资源定位器指定信息位置,并发送给视图函数;

视图函数使用HttpRequest对象,在数据存储层请求数据;

数据存储层调用数据库数据,根据视图函数中需要的对象从数据库中提取相应数据到视图函数中,在视图函数中进行数据处理之后通过模板语言传入表现层,表现层返回http请求到浏览器,展现给用户。

所述人物关系可视化的步骤还包括:对人物关系进行整体展示或者对人物关系进行构造人物关系网进行展示。

终上所述,本发明方法是一种基于BERT神经网络的中文人物关系抽取方法及系统,可以在训练数据中自动学习并提取大量特征,解决了传统中文人物关系抽取方法因为人工特征少而召回率底的缺陷。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号