APP下载

中文电子病历命名实体识别方法研究*

2020-11-18马欢欢

医学信息学杂志 2020年4期
关键词:命名病历实体

马欢欢

(曲阜师范大学软件学院 曲阜 273100)

孔繁之 高建强

(济宁医学院医学信息工程学院 日照 276826)

1 引言

1.1 相关概念

命名实体识别(Named Entity Recognition, NER)是自然语言处理领域一个重要的研究方向,在1995年正式提出[1],是信息抽取、信息检索、机器翻译、问答系统等多种自然语言处理技术必不可少的组成部分[2],其任务是识别出待处理文本中3大类(实体类、时间类和数字类)、7小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。电子病历(Electronic Medical Records, EMR)是医务人员在医疗活动过程中使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式[3]。中文电子病历命名实体识别可自动化地提取出疾病、症状、治疗等具有语义特征的实体,有助于医学研究者构建临床决策系统,为患者提供更高效、便捷的个性化医疗服务。

1.2 命名实体识别方法

传统命名实体识别方法有基于规则和基于机器学习两类。基于规则的识别方法[4]依靠领域专家构造领域词典,对于没有出现在词典中的实体则设计一定规则进行识别。基于机器学习的识别算法主要包括:隐马尔可夫模型(Hidden Markov Model, HMM)[5]、条件随机场(Conditional Random Field, CRF)模型等,其中Lafferty等[6]提出的CRF解决了标注偏置问题,在一段时间内成为处理命名实体识别最常用的方法。自2006年Hinton等提出深度学习后,其在语音、图像领域的成功应用使得越来越多的深度学习技术被迁移到自然语言处理中,相关深度学习模型表现出很好的性能。一些学者将识别问题看作多分类问题,Roberts[7]等在医疗文本的研究中采用支持向量机(Support Vector Machine, SVM)模型达到分类效果。一些学者将识别问题视为序列标注问题,Finkel[8]等采用CRF建立自动标注模型,考虑的特征主要包括词特征、前后缀、词性序列和词形态。Lample[9]等提出长短时记忆网络(Long Short Term Memory, LSTM)+CRF模型,具有超过CRF的识别性能,最大优点在于无需特征工程,使用向量就能达到很好的效果。Huang[10]等提出双向长短时记忆网络(Bi-directional Long Short Term Memory, BiLSTM) -CRF模型的命名实体识别,以解决LSTM模型带来的前后序列特征相关性问题。

1.3 卷积神经网络优势

卷积神经网络(Convolutional Neural Network, CNN)最大优点是能够简化特征提取过程,直接通过模型训练,从图像中提取出较好的特征[11]。可以实现“端到端”学习,通过局部连接、权重共享和降采样3大特点完成对输入数据的特征学习和特征表示[12]。CNN可以有效降低网络复杂度,减少训练参数数目,使模型对平移、扭曲、缩放一定程度上不变形,具有强鲁棒性和容错能力,且易于训练和优化[13]。如今在自然语言处理任务中也常见到卷积神经网络应用[14]。Chiu[15]等采用卷积神经网络抽取字符级特征来进行通用命名实体识别,在公开的英文命名实体识别数据集上取得较好效果。本文在现有研究基础上将命名实体识别作为序列标注任务,针对命名实体识别方法存在的边界划分不准确、实体识别率不高等问题,从中文电子病历行文方式出发,将BiLSTM-CRF作为基准模型,采用字向量进行分布式表示,引入CNN提取空间语义信息,以达到精确识别效果。

2 模型结构

2.1 CNN-BiLSTM-CRF模型

本研究模型框架主要由3个部分组成,即CNN、BiLSTM、CRF模块。首先对病历文本进行分句和分字处理,由预先训练的字向量将输入的句子转换为字向量序列,然后通过CNN模块对每个字的字向量进行卷积和池化操作,以提取文本序列的空间特征信息,之后输入BiLSTM模块学习上下文特征信息,最后通过CRF模块将BiLSTM的输出解码为一个最优预测标记序列。模型框架,见图1。

图1 CNN-BiLSTM-CRF模型

2.2 词向量

Word2vec使用的算法是Bengio等在2001年提出的神经网络语言模型(Neural Network Language Model, NNLM),后来Milolvo[16]团队对这一算法做了改进。利用Word2vec模型训练出来的词向量能很好地包含词语特征,甚至能通过训练好的词向量来计算词语之间的相似度。Word2vec网络模型分为两种,一种是CBOW,另一种是Skip-gram,模型框架,见图2、图3。其中CBOW模型是从原始语句推测出目标字词,Skip-gram则相反。本研究采用中文维基百科数据集,使用Skip-gram预先训练维度为100的字向量。

图2 CBOW模型

图3 Skip-gram模型

2.3 卷积神经网络

CNN模块主要由输入层、卷积层、池化层和输出层组成,其结构,见图4。通过分布式表示之后的字向量填充占位符来解决句子长短不一的问题。等长的字向量组成字向量矩阵,首先使用卷积操作处理字向量矩阵,生成多通道特征图,对特征图采用最大池化操作进行下采样得到与卷积核对应的整句话特征,最后输出层输出句子的最终特征表示。卷积层使用K个大小为s的卷积核在向量序列上以步长1进行滑动来提取局部特征。

图4 CNN模型

2.4 双向长短时记忆网络

循环神经网络(Recurrent Neural Networks, RNN)是一种能够对时序数据进行精准建模的网络。虽然理论上RNN能够捕获长距离依赖性,在实践中却由于梯度消失或爆炸而失败。LSTM[17]是RNN的变种,主要应对梯度消失问题。LSTM模型有3个乘法控制单元:输入门(it)用来决定在细胞状态(ct)中存储哪些新信息;遗忘门(ft)决定将哪些信息从ct中丢弃;输出门(ot)决定哪些信息作为输出。LSTM单元在t时刻更新的公式如下:

it=σ(Wiht-1+Uixt+bi)

(1)

ft=σ(Wfht-1+Ufxt+bf)

(2)

(3)

(4)

ot=σ(Woht-1+Uoxt+b0)

(5)

ht=ot⊙tanh(ct)

(6)

2.5 条件随机场

CRF[19]是一种用于标注和切分有序数据的条件概率模型,结合最大熵模型和隐马尔可夫模型特点的全局归一化,在考虑连续标签之间依赖关系的情况下找到最佳输出序列。可以将命名实体识别任务转化成序列标注任务。对于给定的观察序列X=(x1,x2,...,xn),xi表示第i个字的输入向量。标记序列y的概念可以定义为:

(7)

其中tj(yi-1,yi,X,i)为概率转移方程,表示输入序列X在其标注为yi-1和yi之间的转移概率。sk(yi,X,i)为状态函数,表示对于序列X其i位置的标记为yi的概率,λj,μk分别对应相应函数的权重。

3 实验及结果分析

3.1 实验环境、数据集及评价标准

本研究实验环境为inter@Corei5CPU@3.30GHz*4,操作系统选用Ubuntu16.04,模型框架为Keras,Keras是以TensorFlow为底层的高级的深度学习链接库,编程语言为Python。实验数据集是由山东省某三甲医院神经内科提供的2010-2017年3 127份癫痫患者电子病历。采用准确率(Precision,P)、召回率(Recall,R)和F1值(F1-score,F1)3个指标作为模型的衡量标准。其中准确率是指正确识别的实体数占总识别实体数的比例,召回率是指正确识别的实体数占总实体数的比例,而F1值是准确率和召回率的调和平均值。各项指标具体公式如下:

(8)

(9)

(10)

其中M代表识别出的实体个数,N代表测试集中总实体个数,n代表正确识别的实体数。

3.2 实验设计与分析

3.2.1 数据预处理 对收集的3 127份癫痫患者电子病历,在结合癫痫发病原理和相关文献[20]的基础上制定相应标注规范。首先将数据中实体类型分为3类,即疾病、症状、治疗。为清楚表示语料中待识别的命名实体,采用BIO标记方式来标记实体,其中B表示实体的开始,I表示实体的中间位置,O表示不属于预分类的实体。然后分别进行数据去敏清洗及分句处理,利用jieba分词加载外部用户词典,在领域专家的指导下对病历文本进行自动化标注,完成语料库构建,分配模型训练集、验证集和测试集,分配比例分别是6∶2∶2。

3.2.2 实验参数设置 本研究所有词向量的维度设置为100,在训练过程中优化器采用Adam,学习率设置为0.1,为减轻过拟合,在CNN模块使用Relu作为非线性激活函数,同时在CNN的输入、BiLSTM的输入和输出中使用Dropout,取值为0.5。

3.2.3 实验结果分析 为验证本研究模型结构的有效性,设计3组对比实验,分别与LSTM、BiLSTM、BiLSTM-CRF模型进行对比。实验结果,见表1。可以发现BiLSTM模型较LSTM模型F1值提高5.01%。LSTM模型的神经元信息只能从前向后传递,当前时刻的输入信息仅能利用之前时刻的信息,且命名实体识别的标签之间具有强烈的依赖关系,而BiLSTM则既能利用当前又能利用之后时刻的信息,说明BiLSTM模型在中文电子病历文本命名实体识别任务中具有良好的适应性。另外BiLSTM-CRF模型较BiLSTM模型F1值提高5.74%。由于BiLSTM模型的输出是对于句子中每个单词对应的标签类别的最高预测分数值,但最高分数值往往存在漂移现象,即B-Dis后面最高分数值会出现I-Tre,非常不合理。而CRF能够从训练数据中学习标注序列的一些约束,可以为BiLSTM模块输出的最终预测标签添加一些约束来确保合理有效,即B-Dis后面会出现I-Dis。本研究提出在BiLSTM-CRF基础上添加CNN模块,较BiLSTM-CRF准确率提高1.15%,召回率提高1.19%,F1值提高1.47%,说明CNN提取的病历文本特征可作为上下文特征的补充,通过卷积和池化操作能够进一步提升模型识别效果。

表1 模型验证对比实验结果(%)

4 结语

本研究充分考虑中文电子病历的语言特性,结合词嵌入技术将文字映射成高维向量,通过CNN模块对每个字向量进行卷积和池化操作,以提取文本序列的空间特征信息,之后输入BiLSTM模块学习上下文特征信息,最后通过CRF模块将BiLSTM输出解码出一个最优预测标记序列。本研究提出的CNN-BiLSTM-CRF模型与LSTM、BiLSTM、BiLSTM-CRF模型进行实验对比,F1值为89.16%,相较于其他模型达到较好的识别效果,对医学领域的实体识别研究具有一定参考价值。由于本研究模型识别的数据来源于3 127份电子病历,医学实体种类较少,未涉及电子病历中出现的疾病诊断分类、检查措施、身体部位等,故下一步工作需要进一步丰富模型的识别种类,充分挖掘中文电子病历中的医疗信息,在特征选择多样性方面进一步研究。另外可以尝试训练字词联合的向量表示,挖掘字词之间更加紧密的联系。

猜你喜欢

命名病历实体
强迫症病历簿
命名——助力有机化学的学习
“大数的认识”的诊断病历
前海自贸区:金融服务实体
有一种男人以“暖”命名
为一条河命名——在白河源
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
为何要公开全部病历?