一种基于最短依存子树的电子病历实体关系抽取方法与流程

文档序号:18552739发布日期:2019-08-30 22:12阅读:208来源:国知局
一种基于最短依存子树的电子病历实体关系抽取方法与流程

本发明属于自然语言处理领域,涉及一种实体关系抽取方法,具体涉及一种基于最短依存子树的电子病历实体关系抽取方法。



背景技术:

随着大数据时代的到来,各领域数据正在急剧增长。尤其对于医疗领域,在临床诊疗中产生了大量电子病历,其中包含大量无结构文本及医疗健康知识。有效地挖掘并利用这些知识对于医疗健康事业发展有重要意义。挖掘电子病历中的知识的有效途径是信息抽取相关的技术,其中概念实体之间的关系抽取是信息抽取的重要组成部分。

针对电子病历的实体关系抽取目前主要有基于机器学习和基于深度学习的方法,基于机器学习的方法首先对候选实体进行特征选择,加入医疗知识作为辅助分析,并将抽取得到的特征转化为特征向量,在向量空间模型中进行有监督学习的分类判别,由此而得到实体对的关系。其缺点是通常需要大量人工标注的训练数据,从训练数据中自动学习关系对应的抽取模式,并且严重依赖词性标注,句法解析等自然语言处理标注提供分类特征。而自然语言处理标注工具往往存在大量错误,这些错误将会在关系抽取系统中不断传播放大,最终影响关系抽取的效果。近年来,随着深度学习的在不同领域的不断突破,很多研究逐渐将深度学习应用于自然语言处理领域,基于深度学习的方法将基本特征向量进行整合之后,编码成高级别特征向量,以充分利用上下文特征,最后将得到的特征向量输入到分类器中,抽取该语句中实体对之间的实体关系。该方法能降低现存电子病历实体关系抽取模型对于手工特征工程质量的依赖性并提高模型的识别性能,但目前在电子病历实体关系抽取领域利用深度学习方法的研究还处于起步阶段,电子病历实体关系抽取也面临很多的难题。不同于其他领域的文本,由于电子病历中有大量并列的药物名称、症状描述及检查项目名称,使得电子病历的句子长度远大于开放领域语句长度,并且不同医疗机构间及不同医生之间的电子病历缺乏统一标注,为后续的命名实体识别及实体关系抽取等任务增加了难度。由于这些特性导致目前的电子病历实体关系抽取研究面临一个问题:句子过长且句子中含有大量噪声词汇(与本次关系抽取任务无关甚至有干扰),使得现有模型不能很好的表示过长语句的语义信息。



技术实现要素:

针对上述现有电子病历实体关系抽取模型的现状和存在的问题,本发明提出一种基于最短依存子树的电子病历实体关系抽取方法,克服现有电子病历实体关系抽取模型由于语句过长而造成的不能很好的表示语句的语义信息的问题。

本发明的技术方案为:首先通过依存句法分析从原始句子中提取基于实体的最短子树来压缩句子长度,然后通过双向长短期记忆(bidirectionallongshort-termmemory,blstm)神经网络对语句进行编码,再通过最大池化层(maxpooling)学习句子的最终语义表示,最终通过softmax分类器分类得到实体关系。

本发明不仅可以删除噪声词汇和压缩语句长度,同时完整地保留了表征实体之间关系的关键单词,使得压缩后的语句语义关系更加明确,因此克服了现有电子病历实体关系抽取模型由于语句过长而造成的不能很好的表示语句的语义信息的问题,提升了模型性能。

附图说明

图1是基于最短依存子树的电子病历实体关系抽取模型系统框架图。

图2是bio标记法标记单词实体类型的示例图。

图3是lstm神经单元的基本结构图。

图4是句子级别的语义表示层结构图。

图5最短依存子树压缩后句子长度分布图。

具体实施方式

下面结合具体实施方式对本发明做进一步的详细说明:

如图1所示,该模型主要由原始输入层,最短子树层(sub-treeparselayer,stplayer),特征抽取层,嵌入层,blstm编码层,句子级别的语义表示层以及输出层共7层组成,其中每一层的详细作用介绍如下。

1.原始输入层:输入原始电子病历语句。

2.最短子树层:利用依存句法分析提取基于实体的最短子树来压缩句子长度,其具体介绍如下:

1)利用基于转移的依存句法分析得到原始输入语句的依存句法树

基于转移的依存句法分析主要目标是根据初始状态特征预测一个转移序列,该转移序列利用依存弧描述了语句中各单词的依存关系,最后根据依存弧来得到一颗目标依存句法树。具体来说,该模型采用nivr等提出的基于栈的依存句法分析方法,基于栈的分析方法一次状态由三元组表示,对于一个给定语句,其中:

是一个栈,用来存储系统中已经处理过的句法树的节点,其初始状态(configuration)为

是一个缓存队列,用来存储输入序列,其初始状态为是整个句子,即

是依存弧的集合,一条依存弧主要包含动作类型和依存关系名称两类信息,其初始状态为

2)输入句子的依存句法树,实体单词的起始和结束位置索引及初始语句;

3)若为空,则退出;

4)根据实体的起始位置,判断依存句法树中是否有该实体,若无,则记录该语句并继续处理下一个语句,若有则转到步骤(5);

5)根据实体的位置索引,分别查找实体在句法树中对应的节点并保存,然后转到步骤(6);

6)以步骤(5)中得到的节点为起点,沿依存弧查找其到根节点的依存路径并保存,然后转到步骤(7);

7)以(6)中得到的一条路径为基础路径查找所有路径的第一个公共节点。具体的,将该基础路径上的最后一个节点初始化为第一个公共节点(即根节点,记作),查询并判断其他所有路径中是否有该节点,若只要有一条路径上没有该节点,则上一个节点就是第一个公共节点,然后转步骤(8);若有,则更新为该基础路径上的前一个节点,继续判断其他路径上是否有该节点,直到找到不存在于某条路径的节点;

8)以步骤(7)中得到的第一个公共节点为根节点,递归的遍历出最短依存子树,最短依存子树中保存的是该节点在原句子中的位置索引,即保留以第一个公共节点为根节点的子树部分(包括根节点),并将最短依存子树作为压缩后的句子主干,将这些子树加入到依存子树集合,然后转到步骤(9);

9)由于实体中可能包含多个单词,所以得到的子树中包含重复单词,需要将重复单词删除,具体的,首先将步骤(8)中得到的位置索引排序,然后逐个对比删除重复索引,然后转到步骤(10);

10)根据步骤(9)的索引找出对应的单词,并将这些单词加入最短依存子树集合。

3.特征抽取层:该层输入是blstm的输入层,其输入为最短子树层的输出,在本层内对文本进行特征抽取,得到3个基本特征,即句子中的所有单词,每个单词的实体类型以及每个单词相对于实体的距离,具体如下:

1)句子中的所有单词

为降低干扰,本专利对原始数据进行了一些预处理,将文本中的大写全部替换为小写,将文本中的数字全部替换为‘dg’,由于blstm网络要求每次的输入序列长度一致,所以本专利将语句全部扩展为文本中最长语句的长度;

2)单词的实体类型

本专利采用与sahu等人一样的bio标记法对所有单词进行标记。如图2所示是对于例句[s1],采用bio标记法的标记结果(该句中头实体和尾实体分别为workup,her和tumor)。其中b-tes表示[workup]的实体类型是检查(test),并且是实体的开始部分。b-pro表示[her]的实体类型是医学问题(problem),其处于实体的开始部分,而i-pro表示[tumor]的实体类型也是医学问题(problem),但是它是实体的中间部分;

3)单词相对于实体的位置

本专利对每个单词相对于两个实体的位置进行编码,实体本身所包含的单词相对距离均为0,而处于实体之前的单词由近到远用负距离表示,处于实体后的单词由近到远用正距离表示。

4.嵌入层:将特征抽取层中抽取的特征映射成低维原始特征向量,具体包括词嵌入、位置嵌入和单词类型嵌入:

1)词嵌入

词嵌入把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。本专利采用gensim工具包中提供的word2vec模型,其中词向量的维度设定为100,窗口大小为10,最小共现次数为3。用表示给定的句子,其中包含个单词,表示句子中第个单词在词嵌入中的位置编号,那么该句子的词向量可以表示为:

2)位置嵌入

本专利采用类似词嵌入的方式来描述位置嵌入,用矩阵来表示每个单词到实体对的距离,其中是每个相对距离映射为实数向量后的维度(该超参数可供用户调整),是固定大小的词典,即相对距离的范围大小;

3)单词类型嵌入

矩阵来表示每个单词的实体类型特征,其中是单词所属类别映射为向量后的维度,是单词所属类别种类数量;

最终得到的特征向量序列表示为,其中

5.blstm编码层:使用blstm网络学习嵌入层中原始特征向量的语义信息,构建高层次特征;

本专利在lstm基础上新增一层隐藏层,该网络反向训练输入变量。最后将两个网络的输出相加,形成双向lstm(blstm)。其中lstm神经单元基本结构如图3所示。用矩阵表示blstm编码层的输出向量,其中表示blstm输出的每个单词向量的维度,表示输出序列长度。

6.句子级别的语义表示层:通过最大池化(maxplooing)学习句子级别的语义信息;

blstm编码层的输出是语句的词级别特征向量,需要将其转换为句子级别的特征向量。如果用全连接层的话,会造成该层输入维度大的缺点,这样的网络很复杂。因此,本专利受卷积神经网络(convolutionalneuralnetworks,cnn)的启发,首先对blstm编码层的输出进行卷积操作,然后通过最大池化技术(maxpooling)得到一个固定长度的向量,该向量就是最终的句子级别的语义信息表示。其池化过程如图4所示;

卷积操作利用长度为的过滤器在隐藏层输出上滑动抽取局部特征。具体的,在图4中是指卷积矩阵和隐藏层向量之间的点乘操作,其计算公式是:

其中是偏差向量,是过滤器在隐藏层输出上滑动后形成的矩阵。最终得到的句子级别的语义向量表示为,其中表示向量维度(),的计算方式如下:

7.输出层:以步骤(6)中的输出作为输入,利用softmax分类器对句子中的实体关系进行分类;

1)将句子级别的语义表示作为全连接网络的输入,得到输出

2)将得到的输出作为softmax分类器的输入,计算条件概率来预测该实体对所属的类别标签。其具体计算过程如下:

其中表示关系类别的总数。为了防止模型过拟合,本专利在所有模型的blstm层均使用了dropout策略。

本专利以美国盐城卫生保健局于2010年组织的电子病历信息抽取挑战赛(i2b2-2010sharedtaskchallenge)中使用的数据为例阐述本发明在电子病历实体关系抽取方面的优势。该数据即定义了医疗问题(problem),治疗手段(treatment)和检查项目(test)3种类型的实体,实验中经过数据清理,实验数据中包括医学问题表明医学问题(medicalproblemindicatesmedicalproblem,pip)、为了观察医学问题而执行检查(testconductedtoinvestigatemedicalproblem,tecp)、检查证实医学问题(testrevealmedicalproblem,terp)、治疗管理医学问题(treatmentadministeredmedicalproblem,trap)、治疗导致医学问题(treatmentcausedmedicalproblems,trcp)和实体对之间没有任何关系(other)共6种关系类型的样本。

这部分利用网格搜索法来寻找最好的参数。具体的,学习率的范围为{0.1,0.01,0.001,0.0001},blstm的范围是,dropout概率范围{0.2,0.3,…,0.7},批处理尺寸(batchsize)范围{30,40,…,200},正则化超参数范围,迭代次数范围{5,6,…,25}。对于其余参数,根据经验分别设置词嵌入维度、位置嵌入维度、实体类型嵌入维度和blstm网络层数为100,10,15和1。具体参数如表1所示。

表1实验参数设置

利用stanfordnlp小组开源的句法分析工具standfordparser抽取实验所用数据的依存句法树,然后得到基于实体的最短依存子树(shortestdependencysubtree,sdst),最终实验数据的句子长度分布如图5所示。可见经过最短依存子树的压缩后,其中长度超过24的句子数量由13093下降到5746,而长度不超过24的句子数由10954上升到18301,从而使得句子的长度得到有效降低。

将本专利提出的基于最短子树的电子病历实体关系抽取模型(blstm-sdst)和一些相关的深度学习模型做对比,其结果如表2所示。相比较于其它3个深度学习模型(blstm-sdp(shortestdependencypath,sdp),blstm及cnn),本专利提出的模型取得了最好的f1值,分别提高了3.55%,1.39%及4.71%。

表2不同模型的结果对比

附图详细说明:

图1为基于最短依存子树的电子病历实体关系抽取模型系统框架图,该模型包括7层,即原始输入层,最短子树层,特征抽取层,嵌入层,blstm编码层,句子级别的语义表示层以及输出层。

图2为bio标记法标记单词实体类型的示例图,该句中头实体和尾实体分别为workup,her和tumor,其中b-tes表示[workup]的实体类型是检查(test),并且是实体的开始部分。b-pro表示[her]的实体类型是医学问题(problem),其处于实体的开始部分,而i-pro表示[tumor]的实体类型也是医学问题(problem),但是它是实体的中间部分。

图3为lstm神经单元的基本结构图,主要涉及到遗忘门、更新门以及输出门3个组成部分。

图4为是句子级别的语义表示层结构图,即对blstm编码层的输出进行卷积及最大池化操作,最终的句子级别的语义信息表示。

图5最短依存子树压缩后句子长度分布图,经过最短依存子树的压缩后,其中长度超过24的句子数量由13093下降到5746,而长度不超过24的句子数由10954上升到18301,从而使得句子的长度得到有效降低。

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