武学鸿 杨 峰
(1中南大学计算机学院 长沙 410083 2湖南科创信息技术股份有限公司 长沙 410205) (中南大学计算机学院 长沙 410083)
李建华 徐 倩
(湖南科创信息技术股份有限公司 长沙 410205) (中南大学湘雅医学院 长沙 410003)
中文电子病历的命名实体识别研究最初主要是基于词典和规则的方法[1-4],形成了医疗领域3个代表性通用工具,即MedLEE、MedKA和cTAKES[5]。目前最常用的是基于机器学习的研究方法[6-10]。Wang Y、Yu Z和Chen L等[11]通过基于规则和条件随机场的算法对病历数据进行实体识别。Lei J、Tang B和 Lu X等[9]对比分析条件随机场、支持向量机、最大熵和结构支持向量机等不同算法在中文电子病历命名实体识别中的效果。于楠、王普和翁壮等[12]提出基于多特征融合的中文电子病历命名实体识别方法,多特征融合的条件随机场模型在仅选取基本特征、上下文窗口为7时识别效果最好。中文命名实体识别研究方法常将词向量、字向量或者二者的简单结合作为分类模型的输入特征[13-14]。本文构建医学语料库来训练医学专业词向量,同时设计词属性推理模型,以词语中的每个字作为输入得到词语的词属性向量,将其作为词语的内部特征,最后将二者结合作为模型的输入特征,见图1。
图1 融合词向量及词属性推理的中文电子病历命名实体识别方法
首先构建丰富的医学语料库,通过收集及预处理获取语料库内容,见表1。
表1 医学语料库
2.2.1 相似词分析法 采用skip-gram方法依次将语料分割为单个词、初始化向量、二次抽样、使用词典查找方法和正则表达式来修正、训练并保存skip-gram隐含层节点参数,从而生成医学专业领域词向量。采用欧式距离的倒数表示词语之间的相似度,欧式距离越小则词语之间语义越相关。假设有两个词语A、B,向量分别为a(x11,x12,…,x1n),b(x21,x22,…,x2n),则A与B的欧氏距离dab的计算公式为:
公式1
A、B之间的相似度simAB计算公式为:
公式2
本文列举了部分典型词语,分别计算其在通用领域和专业领域词向量空间模型中排名前3的最相似词,见表2、表3。对比表2及表3,如“发烧”,在前者中最相似词分别是“发热”“燃烧”“发光”,而在后者中则是“发热”“感冒”“高热”;又如“拍片”在前者中最相似词分别是“拍电影”“拍视频”“照相”,而在后者中则是“CT”“造影”“B超”。基于常识分析来看,医学领域词向量模型中推荐的相似词更加准确。
表2 基于通用领域词向量空间中最相似词
表3 基于医学领域词向量空间中最相似词
2.2.2 类比推理法 除相似词分析外,类比推理也是一种评价词向量空间模型的有效方法。该方法给出一对有语义联系的词语对A与B,然后给定一个词语C,可以计算得到与C有同类语义联系的词语D,见表4。从表4中结果可以看出两种词向量空间模型对词语的语义特征提取存在差别。如“紧张”一词,参考“升高-降低”词语对的反义性,专业领域词向量模型推理出为“松软”,而通用领域词向量模型推理结果为“放松”。
表4 类比推理结果
2.2.3 结果分析 综上所述专业领域词向量中词语的语义特征比通用领域词向量更接近词语在医疗语境的含义。
词属性推理机制是指根据词语中的每个字推理出其属性分类信息,再与词语向量结合形成融合后的文本特征输入到分类模型中去。词属性推理机制本质上属于分类任务,为了尽可能地提取到词语中单个字与多个字的信息,使用多卷积核的卷积神经网络模型来实现词属性推理模型,见图2。
图2 词属性推理模型结构设计
词语的字向量输入词属性推理模型后,经过卷积层的输出为:
c1=conv(f1,X,‘valid’)+b1
公式3
c2=conv(f2,X,‘valid’)+b2
公式4
式中conv表示二维的卷积操作运算,f1、f2表示两个不同大小的卷积核,X表示输入词语的字向量(x1,x2……xi),“valid”是本文选择的卷积操作处理边界问题的一种方式,b1、b2分别表示两个卷积层的偏置量。将c1、c2进行连接操作后输入到下一层的全连接层中:
c=concat(c1,c2)
公式5
m=c×w1+b3
公式6
式中concat操作表示将两个卷积层结果连接起来。式中w1是全连接层1的权重矩阵,b3是偏置量。
m′=m×Bernoulli(p)
公式7
n=m′×w2+b4
公式8
以上公式中Bernoulli函数是为了生成概率向量,也就是随机生成一个只包含0、1的向量,其中p表示生成过程中的概率。将全连接层1的输出结果与概率向量相乘,相当于随机丢弃了其中占比为p的信息,这种做法也被称为dorpout处理。w2是全连接层2的权重矩阵,b4是偏置量。模型最后一层对全连接层2的输出结果进行softmax操作,结果作为模型的最终输出,计算公式如下:
公式9
为了分析词向量以及词属性推理机制对实验结果的影响,设计3个基于BiLSTM-CRF[15]的扩展模型:模型CEMRNER使用通用领域词向量,模型CEMNER_WA使用通用领域词向量并结合词属性推理机制,模型CEMRNER_DW_WA使用专业领域词向量并结合词属性推理机制。3个模型都基于tensorflow框架开发实现。
实验数据来自于临床电子病历,采用eHost工具对1 000份电子病历标注并审核确认,标注的实体类别有:疾病、症状、药品、部位、治疗以及检查。每份电子病历的标注结果都会输出对应的xml文件。Annotations标签为根标签,其属性textSource记录了病历文件名称,每个实体信息由annotation以及classMention两个标签描述,其中annotation标签中的span子标签描述该实体在病历中的位置,spannedText为实体内容,classMention标签中的metionClass子标签指明了当前实体类别。标注完成后,将实验数据按照8:1:1的比例随机划分出训练集、验证集以及测试集。
对比分析模型CEMRNER与CEMRNER_DW在测试集上F1值可知,结合词属性推理机制的模型CEMRNER_WA较没有引入词属性推理机制的模型CEMRNER在总体水平上有所提升,F1值由0.85提升到0.88,从各实体类别来看整体识别效果更好。对比分析模型CEMRNER_WA与CEMRNER_DW_WA在测试集上的表现可知,使用领域词向量的模型表现更优,总体F1值从0.88上升到0.90。针对每类实体识别结果,CEMRNER_DW_WA都表现出1%~2%的提升。
本文介绍了融合词向量及词属性推理的中文电子病历实体识别方法,以BiLSTM-CRF为基准模型分别实现3个对比模型。实验结果表明词属性推理机制的引入可以提升模型实体识别效果,同时也证明了专业领域词向量比通用领域词向量在医疗命名实体识别任务中表现更好。