一种基于深度学习的中文电子病历概念抽取方法
技术领域
本发明涉及一种基于深度学习对中文电子病历进行概念抽取的方法。
背景技术
电子病历(Electronic Medical Record,EMR)是指医务人员在医疗活动过程中,使用医疗信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并且该活动记录可以实现传输和重现,并利用信息化手段进行存储和管理。随着电子病历的不断普及,大量的医疗数据以电子病历的形式被不断地积累下来。其中,相当大部分的数据依然以叙述性文本的形式存在,如何抽取电子病历中的医学概念,将非结构性文本结构化,已成为电子病历发展过程中亟待解决的问题。
概念抽取是指从自由文本中抽取出某一特定领域的概念,并将其结构化存储,从而将非结构化文本转化为结构化文本。传统的中文电子病历概念抽取方法主要分为两种:基于规则和基于统计。基于规则的方法倾向于在已有的符号处理系统和规则体系下,根据人工构造的词法、句法和语义规则,对输入语句进行匹配分析,从而实现概念抽取。然而规则的撰写人工成本高,且其效率严重依赖规则的质量,单纯基于规则的方法已不能取得很好的识别效果。基于统计的方法利用统计方法和概率学知识,将统计模型应用到概念抽取中,利用已收集的标注语料学习特征并训练模型参数,进而用训练好的统计模型来进行概念抽取。其中,基于条件随机场的统计模型已代表了学术界的最前沿水平。但此类方法的缺陷在于识别效果严重依赖训练数据、模型开销随特征的增多而无限制增长、开放领域下召回率显著下降、可移植性较差。
近年来,随着深度学习在图像识别和语音识别等领域取得的巨大成功,其在自然语言处理(NLP)上的应用也是逐渐增多。深度学习通过学习一种深层非线性网络结构,实现复杂函数逼近,学习出更高级的特征,从而提升分类或预测的准确性,减少了对手工特征制定的依赖。然而同语音和图像识别相比,深度学习在自然语言处理领域并没有取得突破性成果。在国外研究中,Collobert等(A Neural Probabilistic Language Model,2003,Journal of Machine Learning Research,1137-1155)在word embedding的基础上,采用多层卷积神经网络结构来解决包括NER在内的四种标注任务;斯坦福大学的Manning等(Parsing Natural Scenes and Natural Language with Recursive Neural Networks,2011,Proceedings of the 28th International Conference on Machine Learning)也利用深层神经网络进行了一系列NLP任务的研究,研究均达到了the-state-of-the-art,但没有取得突破性进展。目前,在中文的概念抽取领域,鲜有深度学习成功应用的范例。Chen等(Using Deep Belief Nets for Chinese Named Entity Categorization,2010,Proceedings of the 2010 Named Entities Workshop,102-109)在ACE2004的语料集上,采用深度信念网络进行命名实体分类,其结果与SVM,ANN等相比并没有体现出深度结构的优势,且多层的RBM相对于单层的RBM分类效果也没有显著提升。
现有的神经网络语言模型,将目标词上下文各词的语义组合作为输入值,输入到深度神经网络中进行参数训练,以实现对于上下文和目标词之间关系的建模。而这种输入值的定义方法,对于标记语料来说,忽略了实体本身的标记特征、词性特征等语言学特征。在训练中,未加入这些重要特征,会使得模型对于实体本身特性得不到充分的训练,从而影响了最终模型的健壮性。Collobert等在文献(Natural language processing(almost)from scratch,2011,The Journal of Machine Learning Research,2493-2537)中也提到,在命名实体识别等序列标注任务中,神经网络方法与传统的基于特征工程的机器学习方法仍然有一些差距。神经网络模型若配合少量人工的先验知识,就可以达到以往通过人工精心设计特征才能达到的性能。
发明内容:
本发明针对传统概念抽取方法过于依赖手工制定特征,已有的基于深度学习的概念抽取方法缺乏重要的先验知识,准确率并未取得突破性进展等问题,提出一种基于深度学习的中文电子病历概念抽取方法,将深度学习方法和少量的实体特征相结合。
为实现上述目的,本发明采用如下的技术方案:
一种基于深度学习的中文电子病历概念抽取方法包括以下步骤:
步骤一:获取上下文特征
采用词的独热表示(one-hot representation)对上下文所有词进行表示,利用滑动窗口的方法获取上下文特征,作为固定维度的输入向量;
步骤二:获取上下文分布式特征
将步骤一获得的上下文特征作为输入向量,输入到多层稀疏自动编码器的深层结构中,对输入数据进行自监督式(self-supervised)的特征学习,获得更高级,更抽象的上下文分布式特征;
步骤三:合并特征
将标记实体本身的标记特征、词性特征与步骤二得到的上下文分布式特征合并为整体特征;
步骤四:将整体特征输入到深度信念网络中进行参数训练;
步骤五:用训练好的深度信念网络模型对测试样本进行概念抽取。
作为优选,步骤二中多层稀疏自动编码器由单层稀疏自动编码器堆叠而成,在具体训练过程中,对每一层的稀疏自动编码器采用梯度下降的方式进行训练,当单层输出与输入误差小于给定阀值后,停止训练,此时去掉自动编码器的解码层,保留其编码层,固定编码层的参数,并将当前编码结果作为下一个自动编码器的输入;由此逐层训练,经过多层的编码变换后,获得上下文的分布式特征。
作为优选,步骤四中的深度信念网络是由多个受限玻尔兹曼机(RestrictedBoltzmann Machine,RBM)堆叠而成,并在输出层构造了一个多节点的罗杰斯特回归(Logistic Regres-sion)分类网络;将整体向量传入输入层,训练第一层的RBM;接着固定第一层RBM参数,将第一层RBM的输出作为第二层RBM的输入,训练第二层RBM;类似地固定前两层RBM的参数,完成第三层RBM的训练;将最后一层RBM的输出值作为顶端分类器的输入值。RBM不同层间节点的权值由对比散度(Contrastive Divergence,CD)算法获得;最后利用反向传播算法,比对训练样本的标记特征进行残差计算,然后有监督地微调,对整个深层架构的性能进行优化调整。整个模型中,靠近输入端的RBM训练依靠前一层的输出自监督进行;而靠近输出端分类层的训练,是依靠与原始数据对应的标记结果,有监督地梯度下降过程。
作为优选,步骤五采用BILOU标准准则进行中文电子病历的概念抽取,其中,U表示当前字符就是一个实体,B表示当前字符是一个实体的开始字符,I表示当前字符是一个实体的中间字符,L表示当前字符是一个实体的结尾字符,O表示当前字符在实体名称外部;有两种情况下字符或者字符串被检测为一个实体:一种是当字符di的标记是U时,di就是一个实体指称;另外一种是如果相邻的若干个字符di,di+1...di+j的标记能够组成BI*L,其中I*表示0个或者若干个I,那么di,di+1...di+j组成的字符串是一个实体。
本发明在多层稀疏自动编码器的深层架构训练出的上下文分布式特征中,加入了本身具有高级概念意义的实体特征——标记特征和词性特征,将合并后的整体特征输入到深度信念网络中进行模型训练。比对样本的标记特征进行残差计算,通过有监督地微调,对整个深层架构的性能进行优化调整。测试阶段,将测试样本输入深度信念网络之中,利用深度学习中逐层训练的思路,在对输入特征进行维度放缩后,输入到顶层分类器中,计算出分类概率,得到最终的分类结果。本发明的方法充分利用了深度学习对特征进行深层优化的特点,同时加入了实体特征作为先验知识,在减少了对于人工特征依赖的同时,可提高分类和预测的准确性。
附图说明
图1为本发明一个实施例的基于深度学习的中文电子病历概念抽取方法的流程图;
图2a为本发明一个实施例多层稀疏自动编码器的模型结构图;
图2b为本发明一个实施例深度信念网络的模型结构图;
图3为本发明一个实施例基于深度学习中文电子病历概念抽取训练流程图;
图4为发明一个实施例基于深度学习中文电子病历概念抽取训练的简单示例。
具体实施方式
下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
鉴于以上所述的包括传统概念抽取方法过于依赖手工制定特征,基于深度学习的概念抽取方法缺乏重要的先验知识,准确率并未取得突破性进展等问题,本发明提出了一种基于深度学习的中文电子病历概念抽取方法。下面结合图1,说明根据本发明一个实施例的基于深度学习的中文电子病历概念抽取方法示例。
图1示出了根据本发明一个实施例的基于深度学习的中文电子病历概念抽取方法的详细框图。如图1所示,根据本发明一个实施例的中文电子病历概念抽取方法包括上下文分布式特征获取装置、整体特征获取装置以及深度信念网络训练装置,它们的功能如下:上下文分布式特征获取装置通过将构建的上下文特征输入到多层稀疏自动编码器中,实现具有更高级表达含义的上下文分布式特征的获取,多层稀疏自动编码器的模型结构图如图2a所示;整体特征获取装置将标记实体本身的标记特征、词性特征与上一个步骤得到的上下文分布式特征合并为整体特征;深度信念网络训练装置将整体特征输入到深度信念网络中进行参数训练,最后利用训练好的深度信念网络模型进行中文电子病历的概念抽取,深度信念网络的模型结构图如图2b所示。
本发明实施例的一种基于深度学习的中文电子病历概念抽取方法,包括以下步骤:
步骤一:获取上下文特征
采用词的独热表示(one-hot representation)对上下文所有词进行表示,利用滑动窗口的方法获取上下文特征,作为固定维度的输入向量;
步骤二:获取上下文分布式特征
将步骤一获得的上下文特征作为输入向量,输入到多层稀疏自动编码器的深层结构中,对输入数据进行自监督式(self-supervised)的特征学习,获得更高级,更抽象的上下文分布式特征;
步骤三:合并特征
将标记实体本身的标记特征、词性特征与步骤二得到的上下文分布式特征合并为整体特征;
步骤四:将整体特征输入到深度信念网络中进行参数训练;
步骤五:用训练好的深度信念网络模型对测试样本进行概念抽取。
作为优选,步骤一中首先采用词的独热表示(one-hot representation)对上下文所有词进行表示,即在高维向量中只有一个维度描述了词的语义,作为词的唯一编码,设E={w
1,w
2,...,w
n}为上下文所有词构成的集合,每一个词对应着一个向量的表示方法,如d
i={β
1,β
2,...,β
n},其中
对于每一个词的向量,都只有一个值为1,其余值为0。所有词的独热表示组成了训练语料的字向量集合,存于词典D中。
下面采用滑动窗口的方式构造输入向量:指定窗口值w(其中w>2且为奇数),取当前目标词d
i前后各
个字作为当前目标词的上下文,从字向量词典D中找到窗口中所有字的独热表示,将其首尾相连,这样将就截获了维度固定为1*wn的上下文特征作为输入向量。黄昌宁,赵海在文献(中文分词十年回顾,2007,中文信息学报,21(3):8–19)中通过大量实验表明窗口为5个字可以覆盖真实文本中99%以上的情况。因此本发明也设定w=5。
步骤二中的多层稀疏自动编码器是基于栈式自动编码器(Stack Auto-encoder)的神经网络,将多个稀疏自动编码器堆叠形成深层结构。这样的结构在编码层具有强大的特征表达能力,可输出更好地表征原始数据的潜在特征。
首先构造单层的稀疏自动编码器,稀疏自动编码器是一种无监督学习的网络结构,在前向计算和反向传播时与传统神经网络一致,唯一的区别在于这种网络尝试让模型的输出值等于输入值。直观来看,这种做法并不存在实际意义,但从另一个角度来说,经过编码器和解码器的转换之后,隐藏单元的输出正好是输入特征的另一种表达方式。加入了稀疏性的限制之后,一方面保留了具有识别可区别性的特征,另一方面去除了通用存在的特征,这样的特征对于分类效果的改进更加明显。
多层稀疏自动编码器由单层稀疏自动编码器堆叠而成,在具体训练过程中,对每一层的稀疏自动编码器采用梯度下降的方式进行训练,当单层输出与输入误差小于给定阀值后,停止训练。此时去掉自动编码器的解码层,保留其编码层,固定编码层的参数,并将当前编码结果作为下一个自动编码器的输入。由此逐层训练,经过多层的编码变换后,获得上下文的分布式特征,存于词典D1中。
步骤三将标记实体本身的标记特征、词性特征与步骤二得到的上下文分布式特征合并为整体特征,存于词典D2中。
步骤四中的深度信念网络是由多个受限玻尔兹曼机(Restricted BoltzmannMachine,RBM)堆叠而成,并在输出层构造了一个多节点的罗杰斯特回归(LogisticRegression)分类网络。将整体向量传入输入层,训练第一层的RBM;接着固定第一层RBM参数,将第一层RBM的输出作为第二层RBM的输入,训练第二层RBM;类似地固定前两层RBM的参数,利用第二层RBM的输出完成第三层RBM的训练,将最后一层RBM的输出值作为顶端分类器的输入值。RBM不同层间节点的权值由对比散度(Contrastive Divergence,CD)算法获得。最后利用反向传播算法,比对训练样本的标记特征进行残差计算,然后有监督地微调,对整个深层架构的性能进行优化调整。整个模型中,靠近输入端的RBM训练依靠前一层的输出自监督进行;而靠近输出端分类层的训练,是依靠与原始数据对应的标记结果,有监督地梯度下降过程。
步骤五在进行概念抽取时,采用BILOU的标注准则。除此之外,还有BIO,BILO等方式的标注准则,标记表示的意义与BILOU准则相同。Ratinov L,Roth D在论文(DesignChallenges and Misconceptions in Named Entity Recognition,2009,Proceedings ofthe Thirteenth Conference on Computational Natural Language Learning,147–155.)在MUC-7 and CoNLL03的英文语料上,比较了BIO标注准则和BILOU标注准则,结果显示BILOU标准准则的结果略优于BIO标准准则。所以本发明采用BILOU标准准则进行中文电子病历的概念抽取。BILOU的标注准则中,U表示当前字符就是一个实体,B表示当前字符是一个实体的开始字符,I表示当前字符是一个实体的中间字符,L表示当前字符是一个实体的结尾字符,O表示当前字符在实体名称外部。有两种情况下字符或者字符串被检测为一个实体:一种是当字符di的标记是U时,di就是一个实体指称;另外一种是如果相邻的若干个字符di,di+1...di+j的标记能够组成BI*L,其中I*表示0个或者若干个I,那么di,di+1...di+j组成的字符串是一个实体。
在输出阶段,深度信念网络的分类器输出节点数目应与不同标记结果的个数保持一致。例如,在只考虑器官和症状的识别场景下,至少需要10-tags标注集作为深层结构的输出标记,如下表1所示
表1 10-tags标注集名称及对应的含义
图3示出了根据本发明一个实施例基于深度学习中文电子病历概念抽取训练流程图,下面根据该流程给出本发明实施例的一个简单举例,如图4所示。假设训练目的为抽取中文电子病历中关于身体部位的描述,如“心肝脾肺肾”等,语料里有一句待训练语句为“患者头痛三日”,因为滑动窗口设为5,所以“患”、“者”、“痛”、“三”为目标词“头”的上下文。在词典中查得上下文各字对应的独热表示,分别为…10000…,…01000…,…00010…,…00001…。将其收尾相接,组成上下文特征为…10000…01000…00010…00001…。将获取的上下文特征输入到多层稀疏自动编码器中,得到上下文的分布式表示0.232 0.123 0.2831.714 0.689…。合并实体特征和上下文分布式特征为整体特征,假设“头”对应的实体特征的属性值为1 2,则整体特征为0.232 0.123 0.283 1,714 0.689…1 2。将整体特征输入到深度信念网络中进行参数训练,比对样本的标记特征进行残差计算,然后有监督地微调,对整个深层架构的性能进行优化调整。模型训练好后,将测试样本“未出现头晕症状”对应的上下文特征输入到模型中,可得到输出结果‘OOOUOOO’,即“头”为一个概念实体。上面已经参考附图对根据本发明实施例的基于深度学习的中文电子病历概念抽取方法进行了详细描述。如前所述,本发明将深度学习技术溶入概念抽取中,同时将实体特征作为先验知识加入到了深层结构学习出的上下文分布式特征中,利用整体特征进行深度信念网络的模型训练。相对于现有的概念抽取技术,本发明可以大大减少对手工特征的依赖,利用深度学习的深层结构学习出具有高级概念意义的特征,从而可提高分类和预测的准确性。
但是,需要明确,本发明并不局限于上文所描述并在图中示出的特定配置和处理。并且,为了简明起见,这里省略对已知方法技术的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神之后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。