时间:2024-12-22
杨荣根,王 博,龚乐君
(1.金陵科技学院智能科学与控制工程学院,江苏 南京 211169) (2.南京邮电大学江苏省大数据安全与智能处理重点实验室,江苏 南京 210023)
电子病历(electronic medical record,EMR)被称为计算机化的病案系统或基于计算机的病人记录(computer-based patient record,CPR). 它是用电子设备(计算机、健康卡等)保存、管理、传输和重现的数字化的病人医疗记录,取代手写纸张病历. 它的内容包括纸张病历的所有信息. 美国国立医学研究所将其定义为:EMR是基于一个特定系统的电子化病人记录,该系统提供用户访问完整准确的数据、警示、提示和临床决策支持系统的能力. 相较于传统的纸质病历,电子病历具有内容全面充分、书写标准规范、检索使用便利、存储更加简易,以及辅助临床诊断治疗等诸多优势. 同时电子病历对远程医疗有着积极的促进作用,电子病历可以为远程医疗提供快速、便捷、准确的病人资料,实现关键医疗信息的共享等优势. 因此,电子病历已经成为医疗卫生业的发展趋势,同时也成为了医院信息化的核心[1-2].
对医学命名实体的识别是实体关系抽取等任务的前提[3]. 医学命名实体识别的研究方法包括基于规则和统计的方法[4]、基于机器学习的方法,以及不依赖手工设计特征的深度学习方法[5]. 其中,李莹[6]利用条件随机场模型实现了基于语法语义的分析方式,从而实现了对医学问题和医学实体的识别和抽取. 栗伟[7]通过将基于CRF的实体抽取模型,并基于规则进行病历实体识别结果的优化. Lei等[8]研究支持向量机(support vector machine,SVM)、最大熵(maximum entropy,ME)模型、条件随机场(conditional random field,CRF)、结构化支持向量机(structured SVM,SSVM)等机器学习方法,组合字袋、词袋、词性等不同的特征进行组合特征抽取电子病历中的医疗问题、医疗过程、用药等实体. 张晓斌[9]提出了一种卷积神经网络(convolution neural network,CNN)和长短期记忆(long short-term memory,LSTM)网络结合的实体关系抽取方法,在实体抽取上取得了较高的F1值. 杨红梅[10]使用双向长短时记忆(bidirectional LSTM,Bi-LSTM)网络对肝癌病历进行的医学实体抽取. 曹春萍[11]提出一种集成卷积核神经网络(ensemble convolution neural network,ECNN)模型与双向长短期记忆网络和条件随机场结合的模型,该模型对临床病历文本中复合实体识别有较好的效果.
病历实体类型多样,数量众多,不断有未登录新词出现,因此ICD-10标准疾病库也不能涵盖所有疾病名称. 在疾病名称中,存在大量的嵌套、别名、缩略词等现象,没有严格可循的构词规律[12]. 这使得病历文本的抽取成为一项挑战性的工作,吸引了许多研究者投入这一领域. 另一方面,由于病历文本的隐私性以及专业性,尤其是真实病历获取十分困难,这也是病历实体抽取的难点之一. 本文从冠心病真实门诊病历出发,运用CRF及Bi-LSTM-CRF模型,对冠心病病历中的疾病实体进行识别和抽取.
图1 CRF概率模型图Fig.1 CRF probability model diagram
条件随机场是给定随机变量X条件下,随机变量Y的马尔科夫随机场. 而其中用于序列标注的主要是线性链条件随机场. 如图1所示.
设输入的观察序列O={O1,O2,…,On},预测序列R={R1,R2,…,Rn},
P(Ri|O,R1,…,Ri-1,Ri+1,…,Rn).
(1)
当i=1,2,…,n(在i=1和n时只考虑单边)时,P(R|O)为线性链条件随机场. 当观察变量O取值为o的条件下,预测变量R取值为r的条件概率具有如下形式:
图2 LSTM细胞结构图Fig.2 LSTM cell structure diagram
(2)
式中,Z(o)为归一化因子,保证了所有可能的状态序列的概率和为1,即:
(3)
式中,tk和sl是特征函数,λk和μl是对应的权值[13-14].
长短期记忆网络(long short-term memory,LSTM)是一种解决序列标注中出现的长依赖问题的RNN模型. 它与一般的RNN结构上并没有本质的区别,只是使用了不同结构的隐藏单元结构,在LSTM中存在一个被称为Cell的结构. 它包含1个细胞状态和3个门,即输入门、忘记门、输出门,并通过这3个门来控制细胞状态[15],如图2所示. 其中,输入门决定保留当前输入的多少信息,忘记门决定保留上一个隐层传来的多少信息,输出门决定将输出多少的信息. 图2中xt为输入序列,it和ot分别为保留下来的输入、输出序列,ht为细胞的输出序列,Ct为细胞的状态,ft为激活函数. 每个门通过sigmoid层和pointwise层的操作来对输入到门的信息进行选择和删除[16].
图3 Bi-LSTM-CRF模型Fig.3 Bi-LSTM-CRF model
Bi-LSTM则是对LSTM进行了一定程度上的优化. Bi-LSTM通过向前和向后处理每个序列,分别捕获过去和未来信息的两个单独的隐藏状态,将两个隐藏状态连接起来以形成最终输出,以此来更加有效地利用上下文信息,进而输出给定输入句子的最佳标记链.
本文使用句子作为神经网络的输入. 将每句内容转化为词向量,并对于句子中的每个单词进行了单词嵌入. 另外,本文将这些单词在给定句子中的单词序列中嵌入到双向LSTM网络中,其中计算每个单词的前向和后向表示. 最后,将两个矢量连接并馈送到CRF层,以联合解码最佳标签序列并获得每个字的预测,如图3所示[17]. 其中自前向后循环神经网络层的更新公式为:
(4)
自后向前循环神经网络层的更新公式为:
(5)
两层循环神经网络层叠加后输入隐藏层:
(6)
本文从河南省某医院获取了108份冠心病真实门诊病历作为研究数据,病历文本共计43 736字符. 其中大部分病历数据内容按照类型可分为5个组成部分.
(1)就诊历史:包括患者过去几年中身体出现的症状,采取的措施,曾被诊断为哪些疾病,是否经过治疗,在哪些地方经受过何种治疗,治疗效果如何等信息的记录.
(2)本次就诊原因:记录了患者来院就诊之前的身体状况和出现的症状,以及症状的发作频次和发作程度. 多为患者自述.
(3)具体检查诊断结果:该部分记录了患者就诊后详细的检查情况,并记录了医生对患者的诊断结果. 部分病历还记录了具体的治疗措施和方法.
(4)入院症状:详细记录了患者的发病症状和身体情况,包括饮食状况,睡眠状况,意识状况和二便状况.
(5)病史:该部分记录了患者的先前所患的疾病,包括:疾病名称,患病时间和程度,治疗或处理的手段,目前的状况.
其中小部分病历缺少就诊历史或者病史. 同时对于病历中每个部分的具体内容记录上也存在缺失. 本文使用了序列标注中常用的BIO标注法,在这种标注下,实体可能被切割成几个部分,也可能单独出现,如:“冠心病 B”“慢性 B 胃炎 I”或者是“不 B 稳定型 I心绞痛I”. 并在实验过程中通过算法来准确界定实体的边界,从而将实体准确地识别出来.
表1 特征集Table 1 Feature template set
本文的主要任务是在病历文本中尽可能识别和抽取出医学命名实体. 因此本文使用精确率、召回率和F1值作为评测指标,同时在测评过程中使用了十字交叉验证法(10-fold cross-validation). 该种测试方法优点在于可以评估模型是否存在过拟合问题,同时评估模型的泛化能力.
本文针对CRF模型选取了不同的特征组成不同的特征集,进行训练和测试,并把测试结果与标准数据答案集进行匹配比较,分析评价性能. 本文实验中,将词特征、转移特征作为基本特征,用Baseline来表示. 词性特征、上下文关键特征,构词特征作为备选组合特征,并通过选取不同特征模板组合来分析不同特征对实验结果的影响. 本文选取的特征组合如表1所示,X1、X2、X3、X4分别表示词性特征、上文关键词特征(窗口为[-3,0]),构词特征,下文关键词特征(窗口为[0,3]). 其中上下文关键词特征的窗口距离为3.
表2 测试结果Table 2 Test results
图4 不同特征模板性能比较Fig.4 Performance comparison of different feature templates
表3 不同模型性能比较Table 3 Comparison of performance of different models
通过表2可以看出,Baseline特征集在精确率指标最高,召回率和F1值低. 随着特征的不断加入,精确率变化整体呈下降趋势,召回率和F1值皆有所提高. 其中结合词性特征、上文关键词特征、构词特征、下文关键词特征的M6特征集召回率值和F1值最高. 因此可以得出结合词性特征、上文关键词特征、构词特征、下文关键词特征的特征集在不同特征集的比较上抽取性能最高. 不同特征集实体识别性能如图4所示.
Bi-LSTM-CRF模型不依赖于手工设计特征集,因此不存在不同特征集之间的比较,表3展示了CRF模型和Bi-LSTM-CRF模型实验结果的比较. 从表3中可以明显看出手工设计特征集的CRF模型无论是在精确率、召回率还是F1值上都要优于Bi-LSTM-CRF模型. 其中,CRF模型比较于Bi-LSTM-CRF模型在精确率上高13.57%,召回率上高8.52%,F1值上高10.63%,指标差距较为明显. 不同模型之间的识别性能如图5所示.
根据上述实验,本文基于CRF模型研发了实体识别系统,如图6所示.
图5 不同模型性能比较Fig.5 Comparison of different model performance
本文所使用的数据为河南省某医院冠心病真实门诊病历. 门诊病历相较于住院病历在内容上更加精炼,每份病历的内容较短,结构组成单一,每份病历的结构内容大体相似. 疾病实体具有个数少、重复率高的特点,因此疾病实体的特征十分明显. 通过选择不同特征集之间的实验结果的对比,认为词性组合在实体构成上存在规律,并且通过加入语义特征和构词特征,可以在略微损失精确率的情况下得到更高的召回率和F1值. 同时本文进一步比较了CRF模型和Bi-LSTM-CRF模型的性能. 其中,栗伟[7]使用基于规则的CRF,针对测试集获得了F1值为89%,杨红梅[10]使用Bi-LSTM针对测试集获得了F1值80%左右. 本文所使用的测试数据集中,CRF针对测试集的F1值为87.63%,Bi-LSTM-CRF的F1值为77.00%,CRF模型性能要高于Bi-LSTM-CRF模型. 根据实验结果显示,本文认为在真实领域门诊病历中,由于特征十分显著,手工设计特征集的CRF模型相比于运用深度学习的Bi-LSTM-CRF模型具有更好的性能.
从真实病历出发,选取了108份冠心病真实门诊病历文本作为数据. 分别使用CRF和Bi-LSTM-CRF模型,对这些病历进行了疾病命名实体的抽取. 经过训练和测试评估之后,发现CRF模型更适用于真实门诊病历文本实体抽取. 通过使用CRF模型对该类病历文本中的疾病实体实现了较好的抽取,为后续的实体间关系的抽取和病历文本的知识发现打下了坚实的基础.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!