技术领域
[0001] 本
发明属于
自然语言处理技术领域,尤指一种基于卷积循环神经网络的电子病历实体关系抽取方法。
背景技术
[0002] 随着医疗信息化的大
力推进,对于医疗数据的结构化信息提取变得尤为重要。电子病历作为医疗领域中一种主要数据来源,从中提取出结构化信息是实现医疗信息化的一个重要途径,且有助于医疗知识图谱的构建与电子病历的二次研究使用。实体关系抽取作为电子病历结构化信息抽取的核心任务之一,其任务是从给定的电子病历文本中自动地识别出给定的实体对间存在怎样的语义关系。
[0003] 传统的电子病历实体关系抽取方法主要是基于规则的模板匹配法与基于特征的统计学习方法。其中,基于规则的方法首先根据相应领域的文本语料,人工总结归纳出相应的规则模板,然后通过模板匹配的方法进行实体关系抽取。而基于特征的统计学习方法则首先根据经验,人工提取出各种词法与句法特征,然后将特征转换为向量表示,最后通过计算
特征向量之间的相似度来进行实体关系抽取。虽然这些方法在某些情况下可以取得较好的抽取结果,但严重依赖于手工制作的规则模板与特征的
质量,泛化能力差,且需要消耗大量的人力以设计合适模板或特征。近年来,神经网络因其具有强大的特征学习能力,且无需专
门的手工工程与语义工程,故在自然语言处理领域广泛使用并取得了较大的进展。
[0004] 通过对现有的
专利及相关技术的检索发现,现有的基于神经网络的电子病历实体关系抽取方法有:
[0005] (1)黄亦谦.电子病历实体关系抽取方法及装置,CN106446526A[P].2016.[0006] 提出了一种电子病历实体关系抽取的方法及装置。首先通过
卷积神经网络与词向量化表示,获取电子病历自然语句映射后的矩阵。然后将测试的电子病历自然语句输入到已训练的模型中进行关系预测。
[0007] (2)李智,杨金山,李健.基于BLSTM和注意力机制的电子病历实体关系抽取方法,CN108536754A[P].2018.
[0008] 提出了一种基于双向LSTM与注意力机制的电子病历实体抽取方法。首先利用词本身、词到实体对的相对距离与词类型标签作为输入特征,并将其映射为向量表示。然后利用双向LSTM网络将基本特征向量编码为上层向量,并引入注意力机制以捕获表征实体关系的重要文本。
[0009] 虽然现存的基于神经网络的电子病历关系抽取方法可以一定程度上避免对手工特征的依赖,但却存在神经网络无法很好表征语句内部特征的问题。对于关系抽取任务,卷积神经网络与循环神经网络有其各自的优势,其中卷积神经网络主要用于提取文本局部短语特征,而循环神经网络可以学习到文本的长期依赖性,能够更好的表征文本的语义信息。电子病历因其领域的特殊性,存在语句长度分布不均、关系样本不均衡以及语句中包含多实体等现象,故需采用一种模型以捕捉更多的语句内部特征。基于此,本发明采用一种基于卷积循环神经网络ConvLSTM的关系抽取
框架,以同时捕获到语句的局部上下文特征与全局语义特征。除此之外,为提升模型的抽取性能,引入了基于两级注意力机制,以捕捉到与其语义关系密切相关的文本内容。
发明内容
[0010] 本发明的目的是为了解决因电子病历语句长度分布不均、关系样本类不均衡以及语句中包含多个实体等现象导致的抽取效果不佳的问题,同时避免对任何外部资源特征的依赖。本发明提出了一种基于卷积循环神经网络的电子病历实体关系抽取方法。该方法采用卷积循环神经网络ConvLSTM同时捕获到文本的局部上下文特征与全局语义特征,并利用两级注意力机制以捕获到与其语义关系密切相关的文本内容。
[0011] 基于卷积循环神经网络的电子病历实体关系抽取方法,包括以下步骤:
[0012] S1、利用数据构造器将电子病历自然语句进行重新构造,将电子病历自然语句由原本的一维序列转变为多维层次序列X,所述数据构造器的定义是:采用一个固定大小的滑动窗口来切分句子以构造具有相关性的多维层次序列X;
[0013] S2、采用向量表示技术,将多维层次序列X向量化,得到输入特征向量X*,即:将电子病历自然语句中的每个词映射为一个由词向量与
位置向量拼接而成的低维向量;
[0014] S3、采用卷积循环神经网络ConvLSTM从输入特征向量X*中直接学习到文本语句的局部上下文信息与全局语义信息,得到上层句子向量H;
[0015] S4、采用两级注意力机制,从上层句子向量H中获取到有助于正确关系预测的高级别句子向量rs;
[0016] S5、根据获取到的高级别句子向量rs进行关系判定,得到预测标签。
[0017] 可选地,所述步骤S1的具体方法为:令数据构造器的滑动窗口值为ω,滑动步长为Δ,对包含n个词的句子S={x1,x2,…,xn},重新构造后获得多维层次序列X:
[0018]
[0020] 可选地,所述步骤S2的具体方法为:
[0021] S21、词向量:将每个词xi转换成一个低维实值向量 每个词的词向量由词嵌入矩阵 中的一个向量编码表示,其中dw是词向量的维度,V是固定大小的输入词表;
[0022] S22、位置向量:将每个词距实体1(或实体2)的距离映射为位置特征空间 上一p个随机初始化的位置向量,其中d代表位置向量的维度,对于任意单词xi,具有两个位置向量
[0023] S23 、将词向量与位置向 量进行拼接 ,获得 输入单词特征向 量其中wi∈Rd,d=dw+2dp,(·)T表示矩阵向量的转置;
[0024] 对于输入的多维层次序列X ,经向量表示后,获得输入特征向量k表示序列片段的数量。
[0025] 可选地,所述步骤S3的具体方法为:所述ConvLSTM网络通过卷积操作(*)获取局部信息,利用输入门it、遗忘门ft和输出门ot控制信息流,信息流包括当前输入状态 先前隐藏状态ht-1和先前候选状态ct-1,t代表第t个序列片段;输入门it的计算方式为:
[0026]
[0027] 其中σ(·)代表sigmoid函数,表示Hadamard乘积,Wxi、Whi、Wci为输入门it中需要学习的权重矩阵,bi表示输入门it中的偏置向量;
[0028] 同样地,遗忘门ft与输出门ot的计算方式分别为:
[0029]
[0030]
[0031] 其中Wxf、Whf、Wcf为遗忘门ft中需要学习的权重矩阵,bh表示遗忘门ft中的偏置向量,Wxo、Who、Wco为输出门ot中需要学习的权重矩阵,bo表示输出门ot中的偏置向量;
[0032] 之后可获得当前时刻的候选状态ct,具体计算方式为:
[0033]
[0034] tanh(·)代表双曲正切函数,Wxc、Whc为当前候选状态ct中需要学习的权重矩阵,bc表示当前候选状态ct中的偏置向量;
[0035] 最后,通过将非线性变换后的当前候选状态ct与输出门ot进行Hadamard乘积操作,得到当前时刻的隐藏状态输出ht:
[0036]
[0037] 经过ConvLSTM网络后,得到上层句子向量H={h1,h2,h3,...,hk}。
[0038] 可选地,所述步骤S4的具体方法为:对于步骤S3中ConvLSTM层的输出的上层句子向量H={h1,h2,h3,...,hk},在每一个隐藏状态输出ht(第t个序列片段的向量表示)内部做单词向量的线性加权,获得新的向量表示
[0039]
[0040]
[0041] Wtα表示模型参数向量,αt表示第t个序列片段中每个词所对应的权重向量;
[0042] 经过一级注意力操作后得到新的句子向量表示
[0043] 将序列片段 与语义关系r进行匹配:
[0044]
[0045]
[0046] 其中A是一个加权对
角矩阵,et用于表示第t个序列片段和关系r的匹配程度,βt表示第t个序列片段所对应的权重,通过对每个序列片段进行加权汇总,得到最终的高级别句子向量rs:
[0047]
[0048] 可选地,所述步骤S5的具体方法为:采用由m个
节点组成的全连接层以从高级别句子向量rs中获取分类器,m对应关系类型的数量,之后应用softmax分类器以获得每个关系类的条件概率,并获得预测关系
[0049] P(y|L,θ)=softmax(Wlrs+bl)
[0050]
[0051] 其中θ表示所提出模型的所有参数,Wl和bl是全连接层所对应的权重矩阵和偏置向量;
[0052] 使用真实关系和预测关系的交叉熵作为目标函数:
[0053]
[0054] 其中,第一项是经验
风险,第二项是正则化项;ti∈{0,1}表示第i类关系的真实标签;yi是预测为第i类关系的概率;λ是L2正则化的超参数,用于调
整经验风险和正则化之间的关系以平衡经验风险与模型复杂度。
[0055] 与
现有技术相比,本发明的优点和效果为:
[0056] 1、本发明不依赖于任何人工抽取的外部特征,避免了研究人员在特征提取上消耗的时间与精力;
[0057] 2、通过数据重构,可以解决样本分布不均导致的少数类关系抽取效果差的问题;
[0058] 3、采用
单层的ConvLSTM网络可以直接学习到文本序列的局部上下文信息与全局语义信息,可以替代CNN+RNN的双层网络模型,从而减少网络深度;
[0059] 4、采用两级注意力机制可以解决文本信息分散导致的特征提取不佳问题。
[0060] 通过实验证明,相较于现有的实体关系抽取技术,本发明提出的方法可以明显提升模型的预测抽取性能。
附图说明
[0061] 图1为本发明中数据构造器结构示意图;
[0062] 图2为本发明中实体关系抽取框架示意图。
具体实施方式
[0063] 下面将结合附图
实施例,对本发明的技术方案进行清楚、完整地描述,以便本领域的技术人员能够更好地理解本发明。
[0064] 本发明提出的基于卷积循环神经网络的电子病历实体关系抽取方法,包括以下步骤:
[0065] S1、采用数据构造器进行语句重构,获取多维层次序列:
[0066] 首先,从电子病历文档中抽取出包含两个及以上实体的句子,每两个实体构造一个关系预测实例;
[0067] 在图像领域,有许多优秀的神经网络模型,但由于输入数据形式不同的限制,这些模型很难用于自然语言处理领域以发挥其独特的优势;本发明提出构建数据构造器的思想,以解除输入数据形式不同的限制,如附图1所示;
[0068] 在实体关系抽取任务中,为反映单词和上下文的相关性,这里所使用的数据构造器采用一个固定大小的滑动窗口切分句子以构造具有相关性的层次序列;这种操作可以还原人们在书写句子时只关注当前单词之前的几个词的习惯,并能够有助于神经网络更好地学习句子的语义表示;对于包含n个词的句子S={x1,x2,…,xn},通过一个值为ω的滑动窗口对句子进行重新划分,滑动步长为Δ,故可得到递进的多维层次序列X:
[0069]
[0070] X中每一个行向量代表一个序列片段;
[0071] S2、特征向量化,得到输入特征向量:
[0072] (1)词向量,我们将每个词xi转换成一个低维实值向量 每个词的词向量由词嵌入矩阵 中的一个向量编码表示,其中dw是词向量的维度,V是固定大小的输入词表;
[0073] (2)位置向量,利用单词位置特征来以捕获单词与目标实体的接近度信息;对于给定的由n个词组成的句子S={x1,x2,…,xn},单词xi到目标实体ej的距离 为:
[0074]
[0075] 其中pi与 分别表示单词xi与实体ej在句子S中的所处位置;
[0076] 之后,将每个相对位置映射为位置特征空间 上一个随机初始化的位置向量,其中dp代表位置向量的维度,对于任意单词xi,得到两个位置向量
[0077] 最后,将词向量与位置向量进行拼接形成最终的单词输入特征向量其中wi∈Rd,d=dw+2dp;对于输入的多维层次序列X,经向量
表示后,获得为输入特征向量 k表示序列片段的数量;
[0078] S3、采用ConvLSTM神经网络进行序列建模,获取上层句子向量:
[0079] 在电子病历中,一个语句通常包含多个实体,且不同关系的样本数量不均衡,本发明采用ConvLSTM网络同时捕捉序列的局部上下文特征与全局语义特征以解决这些问题;ConvLSTM是LSTM的变体,它不仅具有LSTM的时序建模能力,还能像CNN一样捕捉序列的局部特征;其利用输入到状态和状态到状态转换中的卷积操作以获取序列的局部连续信息,并利用与LSTM相同的自适应选通机制,通过输入门it、遗忘门ft和输出门ot控制信息流,以解决远程依赖的问题;信息流包括当前输入状态 先前隐藏状态ht-1和先前候选状态ct-1,t代表第t个序列片段;
[0080] 输入门it的计算方式为:
[0081]
[0082] 其中σ(·)代表sigmoid函数,表示Hadamard乘积,Wxi、Whi、Wci为输入门it中需要学习的权重矩阵,bi表示输入门it中的偏置向量;
[0083] 同样地,遗忘门ft与输出门ot的计算方式分别为:
[0084]
[0085]
[0086] 其中Wxf、Whf、Wcf为遗忘门ft中需要学习的权重矩阵, 表示遗忘门ft中的偏置向量,Wxo、 Wco为输出门ot中需要学习的权重矩阵,bo表示输出门ot中的偏置向量;
[0087] 之后可获得当前时刻的候选状态ct,具体计算方式为:
[0088]
[0089] tanh(·)代表双曲正切函数,Wxc、 为当前候选状态ct中需要学习的权重矩阵,bc表示当前候选状态ct中的偏置向量;
[0090] 最后,通过将非线性变换后的当前候选状态ct与输出门ot进行Hadamard乘积操作,得到当前时刻的隐藏状态输出ht:
[0091]
[0092] 经过ConvLSTM网络后,得到上层句子向量H={h1,h2,h3,...,hk};
[0093] S4、采用两级注意力机制捕获表征实体关系的重要文本内容,获得高级别句子向量:
[0094] 在一个句子中,确定其存在怎样的语义关系的通常不是一个词或所有词,而是某些词;为捕捉到这些对确定语义关系贡献较大的词,本发明提出采用两级注意力机制以捕捉序列中细微的线索,从而实现更准确的关系抽取,并利用该方法解决少数类关系抽取性能欠佳的问题;需要注意的是,该步的输入H(ConvLSTM网络的输出)是一个三维张量(TIME,ROW,COLUMN),TIME用于
指定重构后的序列片段,ROW表示某一序列段中的单词,COLUMN是特定单词的向量表示;我们在TIME和ROW两个维度上采用注意力机制,首先对每个序列片段内部对每一个词进行线性加权,得到最佳的序列片段向量表示,然后在序列片段间采用与语义关系匹配的注意力机制,以汇总所有的序列片段信息;这里,权重代表了当前输出对每个词或序列片段的依赖性,其中“1”表示完全依赖,“0”表示完全独立;对于第t个序列片段ht,经序列片段内部单词的线性加权后,ht被重新表示为
[0095]
[0096]
[0097] 这里,Wtα表示模型参数向量,αt表示第t个序列片段中每个词所对应的权重向量;
[0098] 经过一级注意力操作后得到新的句子向量表示 针对同一句话对应多实例的情况,不同实例所需关注的文本内容是不同的,而所需重点关注的内容又与其所对应的关系密切相关,因此我们通过将序列片段与关系类型进行匹配,从而突显出具体序列片段与其语义关系的相关性,具体计算过程如下:
[0099]
[0100]
[0101] 其中A是一个加权对角矩阵,et用于表示第t个序列片段和关系r的匹配程度,βt表示第t个序列片段所对应的权重,通过对每个序列片段进行加权汇总,得到最终的高级别句子向量rs:
[0102]
[0103] S5、利用网络输出的高级别句子向量进行关系判定,得到预测标签:
[0104] 为了从高级别的句子向量表示中获取分类器,使用由m个节点组成的全连接层,m对应关系类型的数量,之后应用softmax分类器以获得每个关系类的条件概率,并获得预测关系
[0105] P(y|L,θ)=softmax(Wlrs+bl) (12)
[0106]
[0107] 其中θ表示所提出模型的所有参数,Wl和bl分别是全连接层对应的权重矩阵和偏置向量;
[0108] 使用真实关系和预测关系的交叉熵作为目标函数:
[0109]
[0110] 这里,第一项是经验风险,第二项是正则化项,ti∈{0,1}表示第i类关系的真实标签(one-hot编码表示),yi是预测为第i类关系的概率,λ是L2正则化的超参数,用于调整经验风险和正则化之间的关系以平衡经验风险与模型复杂度。