APP下载

自由文本电子病历信息抽取综述

2021-04-20崔博文王建民

计算机应用 2021年4期
关键词:病历命名实体

崔博文,金 涛,王建民

(清华大学软件学院,北京 100084)

0 引言

信息抽取是电子病历后结构化的核心步骤。后结构化是指将以自由文本方式录入的电子病历进行结构化分析,提取出电子病历中的非结构化信息,并将其转换为结构化信息的过程。后结构化的分析过程往往会利用医学本体(Ontology)的相关知识,使用自然语言处理(Natural Language Processing,NLP)领域的先进技术,并且需要严格遵循专业医学术语以及病历格式的相关规范。

后结构化过程中的信息抽取可以帮助抽取出自由文本电子病历中的关键信息,如疾病、检查、症状、治疗、疾病诊断分类等。在将这些信息按照专业的医学逻辑进行组织分类之后,最终得到的结构化信息具有非常重要的作用。一方面,结构化的病历信息可以方便病人和医生更加直观地获取自己关心的内容;另一方面,结构化的电子病历还有利于计算机的识别存储,并为后续的数据挖掘、知识库和知识图谱构建及病历语义检索等信息分析处理工作奠定基础[1]。

自由文本病历后结构化不仅仅包括信息抽取这一个阶段,而是一个比较复杂的过程,经过相关领域多年的研究改进,常规的电子病历后结构化流程如图1所示。

图1 自由文本电子病历后结构化的常规流程Fig.1 General process of post-structuration of free-text electronic medical records

其中,预处理包括了对病历文本进行的各种初步处理,以便于后续信息提取工作的开展,根据信息抽取方法和所用数据集的不同,预处理过程可能有很大区别。模板填充是在信息抽取完成之后的最终步骤,一般采用树状结构的结构化病历模板,该步骤中最常使用的数据存储语言是可扩展标记语言(eXtensible Markup Language,XML)。将信息抽取环节抽取到的结构化信息填充到病历模板中的对应位置,从而形成最终的结构化电子病历。而介于文本划分和模板填充之间的信息抽取环节是整个后结构化过程的核心步骤,也是近年来相关成果的主要研究方向。

概念(医疗问题、检查、治疗等实体)的识别、医疗问题的修饰和概念间关系的抽取是电子病历信息抽取研究的三个核心任务。这三个核心任务均围绕医疗问题这个中心展开,分别对应了电子病历后结构化过程中的三个关键步骤:命名实体识别、实体修饰识别和实体关系抽取。

本文将针对自由文本电子病历信息抽取的这三个主要任务,分析近十几年来国内外自由文本病历信息抽取领域的相关文献成果,将其中的核心思路、方法进行总结与横向对比,分析出其中的创新点和不足之处,进而提出接下来可能的研究方向和发展趋势。涉及到的文献主要来自于BIBM(international conference on BioInformatics and BioMedicine)和EMNLP(conference on Empirical Methods in Natural Language Processing)等国际知名学术会议,以及JAMIA(Journal of the American Medical Informatics Association)和JBI(Journal of Biomedical Informatics)等著名医学信息学期刊。

1 电子病历的命名实体识别

1.1 电子病历命名实体识别

命名实体识别(Named Entity Recognition,NER)是自然语言处理的基础任务之一,也是信息抽取重要的子任务,目的是定位非结构化自由文本中的命名实体,并将其分类为预先定义好的类别。命名实体识别可以作为信息抽取过程中的后续任务(如实体关系抽取等)的铺垫,具有非常重要的地位。

命名实体识别需要在识别实体边界的同时,对定位出的实体类别进行标注。英文文本的实体识别往往以单词为最小单位,而中文文本命名实体识别则常以单个汉字为最小单位,形式及单词含义上的特点使得中文实体边界的识别难度相对更高。

对于中文电子病历,命名实体识别任务的识别目标主要包括以下几类实体:实验室检验、影像检查、手术(治疗手段)、疾病、症状、药物、解剖部位等。

1.2 电子病历命名实体识别常用数据集

从最早的研究到目前国内外的最新研究成果,超过半数的研究采用的数据集是从各种不同的医疗机构或者医疗数据资源平台收集的电子病历文本,这些病历文本会在经过人工标注之后作为研究进行的语料基础。除此之外,也有一些较为专业权威的数据集具有相对较多的使用量。

在命名实体识别研究的早期,专业的病历文本数据集尚未出现,但具有一定相关性的生物医学语料库GENETAG[2]和GENIA[3]已经得到了广泛的使用,所以在本世纪初期的很多研究是在这两个数据集上展开的。

在2010 年前后,出现了I2B2(Informatics for Integrating Biology and the Bedside)系列评测任务数据集[4],如I2B2 2006、I2B2 2010、I2B2 2014 等,该系列数据集是比较专业的用于自然语言处理的临床记录数据集,在命名实体识别的相关研究中得到了广泛的使用。

NCBI-Disease[5]是专门用于疾病实体识别的数据集,在近几年的国外研究中经常被使用。国内针对中文病历文本的相关研究展开较晚,前期大多使用取自医院并进行自标注的病历文本。

从2017 年开始,全国知识图谱与语义计算大会(China Conference on Knowledge graph and Semantic computing,CCKS)每年都会举办与中文电子病历相关的NLP评测任务比赛,并推出了专门用于命名实体识别的电子病历数据集,使得近两年来国内的研究取得了明显进展。

1.3 电子病历命名实体识别评价指标

电子病历的命名实体识别需要同时确定实体边界和实体类别,因此,只有当实体边界以及实体类别的识别均正确时,才可以认为命名实体识别的结果是正确的。

电子病历命名实体识别常用的评价指标是准确率(Precision)、召回率(Recall)和F1值。针对命名实体识别任务的特点,用于计算以上三种评价指标数值的TP(True Positive)、FP(False Positive)以及FN(False Negative)也应当重新进行定义。例如:定义TP 为识别完全正确,定义FP 为实体识别正确但类别或边界判定出现错误,定义FN为应该被识别但实际没有被识别。

对于电子病历的实体修饰识别和实体关系抽取,常用的评价指标也是准确率、召回率和F1值,后文中不再赘述。

1.4 电子病历命名实体识别研究及方法

电子病历命名实体识别方法的发展整体上经历了基于规则与词典的方法,以条件随机场(Conditional Random Field,CRF)CRF 为代表的统计机器学习和以循环神经网络(Recurrent Neural Network,RNN)、BERT(Bidirectional Encoder Representations from Transformers)为代表的深度学习三个阶段。

基于规则与词典的方法在20 世纪末期和21 世纪初期的早期研究中使用较多。基于词典和规则的方法往往依赖于人工制定的规则模板,即需要命名实体相关领域的专家将专业领域内的各类专业名词、术语等进行收集、整理,从而构建出可以作为识别依据的专业词典,而对于词典中缺少的专有名词,主要的处理方法则是制定相应的规则。这类命名实体识别方法的主要思路是通过对文本结构特点、语言特点以及上下文特点进行分析与研究,来进一步构建符合这些特点的规则模型,之后再将需要识别的文本与构建出来的规则进行匹配,从而实现命名实体的识别。基于词典和规则的方法主要通过专业领域词典、知识库和文本规则的构建来实现。因此,对最终的识别效果起到最为关键作用的,是词典的专业性、完备性,以及构建出的规则的质量。早期医疗领域的多种代表性实体识别工具都是采用基于词典的方法实现的,其中MedLEE(Medical Language Extraction and Encoding)于1994年由Friedman 等[6]研发,利用词汇及语法的规则及医疗实体词典对疾病名称和修饰成分进行识别;而IBM 的MedKAT(Medical Knowledge Analysis Tool)[7]和Mayo Clinic 的cTAKES(clinical Text Analysis and Knowledge Extraction System)[8]则只利用了词典进行实体识别。

随着机器学习领域的发展,各种机器学习算法开始应用于命名实体识别任务。统计机器学习算法利用计算机自动对数据进行分析,并根据获取到的内在规律,得到能够应用于实际研究工作当中的模型。由于仅仅使用词典或规则无法很好地处理复杂的语句内容,且基于规则与词典的方法只适用于特定类型实体的识别,泛化能力不足,因此基于词典和规则方法目前已经不再是主流,而往往作为机器学习方法的补充。与基于词典和规则的方法相同,基于统计机器学习和深度学习的方法也离不开大规模专业标注语料库的支持,为了更好地完成模型的训练,需要对语料库中的数据进行分词处理以及词性标注。除此之外,还需要结合词典和规则,构建特征模板并用于文本的匹配[9]。

在各种统计机器学习方法中,使用较早且比较广泛的是基于支持向量机(Support Vector Machine,SVM)的多分类模型,基于SVM 分类的方法能够充分利用医疗问题的上下文信息,综合使用病历文本中的上下文、句法、标题等多种特征,从而在效果上优于传统的基于规则和词典的方法。

基于隐马尔可夫模型(Hidden Markov Model,HMM)的方法也是21 世纪初期医疗领域命名实体识别的常用方法之一。Zhou 等[10]将一个SVM 分类器和两个HMM 分类器进行了组合,发现不同的分类器在数据集上的结果不同且可以相互补充,从而在GENETAG 数据集上的F1 值达到了0.83;de Bruijn等[11]利用HMM 在I2B2 2010 数据集上取得了0.85 的F1 值。然而,由于HMM 只依赖于每一个状态和它对应的观察对象,这与序列标注问题需要考虑序列长度和单词上下文的特性并不相符,更适用于对实时性有要求或文本较短的命名实体识别,因此在后续研究中被逐渐淘汰。

基于最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)的方法在2010 年前后得到了比HMM 更为广泛的使用,Finkel 等[12]、Saha 等[13]的研究成果都利用了基于MEMM 的方法。与HMM 相比,MEMM 能够捕捉到相邻状态之间的依赖关系,并且考虑到了整体输入序列,因此表达能力更强。

基于CRF 的方法经常被用来与基于SVM 的方法进行比较,在以Li等[14]、Jiang等[15]为代表的对比研究中,多数都得出了基于CRF 的方法效果优于基于SVM 的方法的结论;同时,CRF模型在实践和理论上均优于HMM,因为CRF没有严格的独立性假设条件,可以灵活地容纳上下文信息;而相对于MEMM,还克服了其标记偏置的缺点,能够求得全局的最优解,不过,这也导致了CRF 模型复杂度较高,训练时间较长。由于CRF精度上的优越性,业界知名的I2B2在2010年初次发起针对自由文本病历实体识别的评测任务时,当时的主流思路就是使用CRF 来构建分类器,例如Jonnalagadda 等[16]、Jiang等[15]使用CRF分别在I2B2 2010数据集上取得了0.82和0.84的F1 值。而在基于长短期记忆(Long Short-Term Memory,LSTM)网络的方法流行起来之前,SVM 与CRF 结合的方法一直是重要的研究方向。

结构化支持向量机(Structural SVM,SSVM)是对SVM 模型的改进,通过修改SVM 的约束条件以及目标和核函数,对SVM进行了拓展,使其可以预测结构化问题。Lei等[17]使用了基于SSVM 的方法,取得了不错的效果。此外,曲春燕[18]尝试了SSVM 与CRF 的组合,这种方法作为SVM+CRF 方法的改进版本,利用结构化SVM实现了判别能力的提升。

随着深度学习的逐渐流行,研究者发现RNN 十分适合用来解决序列标注问题,电子病历命名实体识别研究进入了新的阶段。

在各种RNN 模型中,首先得到广泛使用的是LSTM。LSTM是典型的序列标注模型,由于梯度消失和梯度爆炸等问题,传统RNN 对于长期依赖无法很好地进行处理,而基于LSTM的方法可以更好地捕捉到文本中较长距离的依赖关系,非常适合用于对文本数据进行建模,且在大数据量的情况下效果优于CRF。LSTM 模型应用于医疗领域命名实体识别在2015 年后开始流行,但由于无法编码从后到前的信息,很快便被基于双向长短期记忆(Bi-directional LSTM,BiLSTM)网络的方法取代。在那之前,LSTM+CRF 是曾经比较流行的模型之一,如Ling 等[19]在LSTM+CRF 的基础上使用了字符级别的卷积神经网络(Convolutional Neural Network,CNN)和LSTM 来做embedding;Cai 等[20]的研究则加入了注意力(Attention)机制,在CCKS2018 提供的中文数据集中取得了0.80的F1值。

基于BiLSTM 的方法在LSTM 模型的基础上进行了改进,可以更好地捕捉双向的语义依赖,因而成为了近几年医疗领域命名实体识别应用最广泛的方法之一,如李剑风[21]、Li等[22]都利用基于BiLSTM 的方法取得了较好的效果。为了更有效地提高模型效果,目前最先进的方法往往会将BiLSTM与其他模型,如CRF 等进行结合。BiLSTM+CRF 是目前最流行的序列标注模型之一,主要思路是将前向LSTM 和后向LSTM 的输出拼接为新的向量作为后层条件随机场的输入,从而弥补了CRF 需要人工提取序列特征的缺点和BiLSTM 无法学习标注的上下文信息的缺点,实现了精度上的显著提高。许多研究[23-29]均使用BiLSTM+CRF 取得了较好的结果。在此基础上,还出现了许多改进版本,如Multitask-BiLSTM-CRF[30]、Attention-BiLSTM-CRF[31]、CNN-BiLSTM-CRF[32]等。其中,Ji等[33]利用两个BiLSTM-CRF 模型与一个CNN 模型配合训练,在CCKS2019中文医疗命名实体识别比赛中夺得冠军。

以BERT 为代表的预训练模型也是近几年的主流方法之一。这类方法的计算复杂度较高,但对于长距离依赖的捕捉能力比RNN 更强,在各种NLP 任务中经常被用来生成词向量,例如Yu 等[34]利用BERT-BiLSTM-CRF 模型在I2B2 2010 数据集上取得了0.871 的F1 值,超过了之前的主流方法。由于BERT 的强大能力,很多研究者认为BERT 可以完全替代各种RNN 模型,例如Mao 等[35]仅仅使用BERT-CRF 就在MEDDOCAN(MEDical DOCument ANonymization track)评测任务中取得了0.937 5的F1值。

2 电子病历的实体修饰识别

2.1 电子病历实体修饰识别

修饰识别(Assertion Detection)是自由文本电子病历信息抽取过程特有的任务,指在给定病历文本中的疾病、症状等特定类别实体的情况下,从文本中识别出这些实体的修饰成分的过程。

修饰识别任务能够用于判断疾病、症状等医学实体与患者的关系,即实体是否在患者身上发生以及实体如何在患者身上发生。早期的许多修饰识别研究专注于前者,即只判断修饰成分表达的含义为肯定或否定。I2B2 2010评测[5]提出了6 种修饰成分类型:present(目前患有的)、absent(未患有的)、possible(可能发生的)、conditional(特定条件下发生的)、family(非患者本人的)、hypothetically(未来可能发生的)。现在常用的修饰识别标签大多在此基础上进行调整,比如Zhang 等[36]提出的7种修饰成分类型,详见表1所示。

表1 常用修饰成分类型Tab.1 Typical assertion types

这些修饰成分在患者病情的分析过程中起到了十分关键的作用。因此,为了确保信息抽取结果尽可能准确,自由文本电子病历的修饰识别任务是非常重要的。

2.2 电子病历实体修饰识别常用数据集

目前,I2B2 系列评测数据是电子病历实体修饰识别最常用的数据集。MIMIC(Medical Information Mart for Intensive Care)[37]作为知名的医疗数据集,也在2019 年推出了新的放射报告数据集MIMIC-CXR(Medical Information Mart for Intensive Care,Chest X-Ray)[38]。除此之外,多数相关研究都选择了在自标注的电子病历文本上进行实验。

2.3 电子病历实体修饰识别研究及方法

电子病历实体修饰识别的研究经历了基于规则的方法、以SVM为代表的统计机器学习和RNN深度学习三个阶段。

基于规则的方法是早期最流行的方法之一,尤其是基于正则表达式规则的方法,在很长一段时间内都是修饰识别领域的主流方法,这些方法对于标签类别较少的情况识别效果较好,Chapman 等[39]、Harkema 等[40]都提出了基于正则表达式规则的经典方法,在各类自标注的病历文本上取得了较好的效果。

但是,这类方法往往只能有效区分修饰成分的含义为肯定或否定,随着修饰成分类别的逐渐增多,基于规则的方法对于后来越来越复杂的标签类别并不能实现非常理想的分类效果,因此,在I2B2 提出的6 种修饰成分类型得到推广之后,这类方法的使用往往只限于标签较少的情况。例如Mehrabi等[41]只利用规则来识别肯定和否定,在采集自印第安纳大学的电子病历数据集中取得了高达0.96 的F1 值;而Sohn 等[42]在I2B2 2010 评测数据集中使用基于规则的方法,最终的F1值为0.84,远低于当时流行的机器学习方法。

在各种统计机器学习方法中,最常用的是基于SVM 的多分类方法,这种方法在I2B2 2010 评测任务中大放异彩,成为使用最为广泛的模型之一。以SVM 为代表的机器学习方法相对于基于规则的传统方法,能够充分利用病历文本的上下文信息,而特征的选取对于这类方法的效果有着非常重要的影响。Grouin 等[43]、Jiang 等[15]、de Bruijn 等[11]采用SVM 分类器分别在I2B2 2010 数据集上取得了0.93、0.93、0.94 的F1值。

基于各种RNN 模型的深度学习方法是目前比较流行的方法,比较常见的包括BiLSTM、门控循环单元(Gated Recurrent Unit,GRU)等。这些方法往往首先利用先进的RNN模型获取各种级别的表征,之后再进行分类。同时,这些方法经常会将RNN 与其他模型进行结合,如Zhang 等[36]将CNN 与GRU 进行结合,利用CNN 获取字符级别的表征,利用GRU 获取句子级别的表征,并结合Attention 机制,实现了较高的精度;Liventsev 等[44]利用加入了Attention 的LSTM 在MIMICCXR数据集中取得了0.95的F1值。

3 电子病历的实体关系抽取

3.1 电子病历实体关系抽取

实体关系抽取(Entity Relation Extraction)是命名实体识别的后续任务,指按照预先定义的模板确定抽取任务及要求,然后对文本中实体间的关系信息进行识别和抽取。

在自然语言处理问题中,电子病历中的一些专业概念,如药品、治疗方法、症状等实体,相互之间存在着语义关系,这种关系与实体以及其对应的上下文有关[45]。

实体关系抽取的主要任务目标不仅仅是抽取文本中的实体关系,更重要的是判断实体间关系的类型。电子病历的信息抽取主要关注治疗、医疗问题(包括疾病、症状等)和检查之间的关系,常用的关系定义来源于I2B2 2010 评测[5]提供的8种实体关系类型,详见表2 所示。在此基础上对问题进行细分则能够得到更加复杂的实体关系类型。

表2 I2B2定义的8种实体关系类型Tab.2 Eight types of entity relations defined by I2B2

抽取这几类实体间的关系具有非常重要的作用。一方面,可以基于这些关系构造能够清晰表现患者健康状况的病历摘要;另一方面,可以利用这些关系挖掘潜在的药物之间的关联;进一步地,还可以将抽取出的实体关系信息围绕着医疗问题这个中心进行结构化组织,从而形成囊括了疾病、治疗和检查等常见医疗概念的系统表示[46]。

3.2 电子病历实体关系抽取常用数据集

I2B2 系列评测数据在国外的相关研究中占据了重要地位,其中,使用最广泛的是2010年的评测数据集。

THYME(Temporal Histories of Your Medical Event)是专注医疗领域关系抽取的THYME 项目推出的医疗关系抽取标注数据集,使用了来自梅奥医学中心的数据。

与命名实体识别类似,国内大多数电子病历实体关系抽取的研究采用的是经过人工标注的采集自不同医院的自由文本电子病历。

除此之外,2019 年阿里云天池实验室公开了中文糖尿病标注数据集,该数据集来源于中文糖尿病领域的权威期刊,涵盖了近7 年来糖尿病领域最广泛的研究内容和热点,包括实体标注和关系标注。虽然由于推出时间较短等原因,暂时未得到广泛使用,但仍是具有一定权威性的中文关系标注开源数据集。

3.3 电子病历实体关系抽取研究及方法

电子病历实体关系抽取的方法比较多样,早期的共现(Co-occurrence)分析[47]基于“实体与其关联实体往往更加容易同时出现”的假设,能够一定程度上判断出关系的存在。机器学习得到广泛应用之后,基于SVM 的多分类模型迅速成为主流方法,如Nikfarjam 等[48]在SVM 的基础上,加入了基于图的参考机制和规则的使用,在I2B2 2012评测任务中取得了较高的排名;而Kim 等[49]利用parse tree 结构和实体类型后缀提高了SVM在关系抽取任务上的效果。

除此之外,很多其他统计机器学习方法也曾取得了比较好的效果,如de Bruijn 等[11]利用基于MEMM 的多个分类器分别抽取不同类型的实体间关系;Lv 等[50]在CRF 的基础上,利用自编码器对输入特征进行优化,在I2B2 2010评测数据集上取得了0.8 的F1 值。与命名实体识别类似,基于机器学习方法的实体关系抽取往往也离不开各种专业医疗词典及规则的辅助。由于自由文本病历大多比较简短,在进行实体关系的抽取时,不容易获取到足够的上下文特征,这时就需要从相关的词典等外部资源中获取一部分所需的关系信息。

进入深度学习时代,基于CNN 的方法被用来解决关系抽取问题。Sahu 等[51]利用卷积神经网络来减少对人工特征工程的依赖,并在I2B2 2010评测任务中取得了0.711 6的F1值。后续的很多工作在CNN 模型的基础上进行改进,成为常见的思路之一。由于Attention 机制的引入在最近几年成为一种流行趋势。Zhang 等[52]以ResNet 为基础,在多个残差块后加入Attention 机制,在自标注的中文电子病历上F1 值达到了0.778。

基于RNN 的方法是目前的主流方法,如Dligach 等[53]将不同类型的标注序列分别输入CNN 和LSTM,并将二者的输出结果进行融合,得到的集成分类器在THYME 数据集上取得了较好的效果;Christopoulou 等[54]利用添加了Attention 机制的BiLSTM 和Transformer 分别进行句子内部和句子之间的实体关系抽取,利用多任务模型在N2C2(National NLP Clinical Challenges)评测任务中取得了较高的排名;Song 等[55]将图循环网络(Graph Recurrent Network,GRN)与BiLSTM 相结合,从而提高了BiLSTM 模型的效果;Xue等[56]在BERT的基础上利用Attention 机制实现了命名实体识别和实体关系抽取的多任务处理。

4 讨论分析

4.1 中文电子病历语料库等资源的缺乏

自由文本电子病历信息抽取的核心环节——命名实体识别、实体修饰识别和实体关系抽取的相关研究,在过去的十多年间取得了长足的进步。

在国外,像I2B2、THYME这类专业的用于命名实体识别、实体修饰识别或实体关系抽取的数据集和语料库早已出现,并且得到了不断的改良和广泛的应用。

而在国内,不但相关领域的研究开始得比较晚,而且在很长一段时间内,都缺少专业且全面的病历文本语料库。

在2017 年之前,国内的命名实体识别研究一般都会选择取自不同医院的电子病历文本,并根据需要进行自标注。来源以及标注方法的不同使得命名实体识别方法的优劣无法很好地根据模型在这些自标注病历文本上的效果来判断。CCKS 中文电子病历命名实体识别评测任务比赛的出现缓解了这一僵局,CCKS推出的专门用于命名实体识别的电子病历数据集,使得近两年来国内的相关研究取得了显著进展。

与命名实体识别领域的研究类似,国内的中文电子病历实体修饰识别和实体关系抽取研究也一直只能依靠自标注的病历文本展开,并且目前尚未出现比较权威且得到广泛使用的数据集。

随着深度学习的发展,利用神经网络等方法进行命名实体识别、实体修饰识别和实体关系抽取对数据的要求也变得更高。人工对数据进行标注能够确保正确率,但需要耗费大量时间和人力。这使得国内相关研究所使用的自标注数据集往往规模较小。

现有的深度学习方法绝大多数是基于完整标注数据的监督学习。中文医疗领域语料库资源的不完善对于相关研究的开展有着显著的影响。虽然可以通过先在其他大规模数据集上预训练,再在小规模病历数据集上微调的方法,在一定程度上改善这个问题,但为了更好地解决这个问题,主流的方法是将病历文本与现有的医学领域知识图谱进行对齐,利用远程监督自动标注大规模训练数据。比如,在实体关系抽取任务的远程监督中,包含了两个在知识图谱中被标记为某种关系的实体的句子,也被视为表达了这种关系,因此可以用作这种关系的训练样例。这种方法的缺陷是容易产生过多错误标注。近年来,远程监督的错误率已经得到了明显降低,但仍无法完全保证标注质量。

此外,由于现有中文分词工具,如中国科学院的汉语词法分析系统 ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)[57]等,在实际应用中具有一定的限制,可能无法正确地识别用于实验的语料中的一些实体名称和信息;而且实体关系抽取中的特征选择,很大程度上依赖于各种自然语言处理工具,如词性标注(Part-Of-Speech tagging,POS)等,但中文的语义结构相对来说比较复杂,在处理过程中出现各种错误是不可避免的。

另一方面,当前流行的各种深度学习模型都需要将词向量作为模型的输入,而针对中文电子病历的词向量训练模型及词向量表非常缺乏且大多不够成熟,这也一定程度上阻碍了研究的发展。

4.2 流行的改进思路和最新的尝试

通过对现有研究成果的总结可以看出,目前基于深度学习的方法已经在这三个研究领域成为主流。

具体来说,在自由文本电子病历的命名实体识别领域,基于双向LSTM 与CRF 的组合序列标注模型和BERT 等transformer 模型在近两年的最新成果中占据了主要地位,这是由于LSTM 能够更好地获取到较长距离的依赖关系及词语在句子中的前后顺序关系,而双向LSTM 则在此基础上增加了获取双向语义依赖的能力,从而使得该模型能够充分地对上下文信息进行建模;同样,BERT 的流行也主要源于其极强的长距离依赖捕捉能力。

病历文本实体修饰识别的相关研究相对较少,目前流行的方法多为基于BiLSTM或GRU等RNN模型的混合方法。

而在近几年的自由文本电子病历的实体关系抽取研究成果中,则出现了多种不同的思路:基于CNN 的方法、基于BiLSTM 的方法、基于BERT 的方法等都实现了比较不错的效果。

在这些方法的基础上,很多最新的研究成果将关注点放在了如何优化现有方法上。目前比较流行的优化思路包括以下几种:

通过改进模型,使其能够通过同一输入得到多个输出,同时实现多种具有相关性的目标的多任务模型。多任务模型能够在提高效率的同时,利用不同任务部分的相互补充,使得多种任务的最终效果都得到提升。这些任务往往在模型实现和数据来源上具有一定的相似性。

由于命名实体识别与实体关系抽取具有一定的关联,即后者需要依据前者识别出的实体进行关系的抽取,所以传统的思路大多是将二者按序进行的流水线方法。这种方式有很多缺点:1)命名实体识别部分的错误会影响到后续的实体关系抽取,导致最后的结果错误率更高;2)在整个过程中大量信息会丢失,影响最后的关系抽取效果;3)对第一步识别出来的实体两两配对后再进行关系分类,没有关系的实体对会造成信息的冗余,从而提升错误率。

联合学习是一种多任务方法,在电子病历信息抽取过程中,联合学习能够利用实体和关系之间紧密的交互信息,通过命名实体识别和关系分类共享参数的联合模型,直接得到实体关系三元组,同时完成命名实体识别和实体对分类的任务,从而很好地解决了传统方法存在的问题[58-59],如Liu等[60]利用self-attention 学习句子内部的关系,提高了BiLSTM 的联合抽取效果。现有的方法大多只考虑了每个词属于一个三元组的情况,而且模型相对来说比较复杂,在数据量较少的情况下效果不够理想,因此还有很大的提升空间。

在BERT 等预训练模型流行起来之后,在BERT 基础上进行改良,并利用多任务模型完成实体识别和关系抽取的方法开始出现,如Xue 等[56]利用动态距离Attention 机制增强了共享参数部分的特征表达能力,Eberts 等[61]则利用负采样、局部化上下文表征等手段提高了BERT 模型在联合抽取任务上的效果。

同样,命名实体识别与实体修饰识别具有较强的关联性,也有研究将二者结合起来,利用多任务模型同时完成这两项任务,如Bhatia 等[62]对常见的双解码器多任务模型进行了改良,让两个任务共享解码器,只对修饰识别任务的输出层进行特殊处理,最终使用I2B2 2010 数据集在实体识别、修饰识别任务中分别取得了0.855和0.905的F1值。

另一种流行的思路是引入Attention 机制。Attention 机制能够从较长的序列中学习到每一个元素的重要程度,并依靠重要程度对序列中的元素进行合并。这种机制的引入使得模型能够选择性地关注输入序列中更具有价值的部分。事实证明,Attention 机制的引入对于部分命名实体识别、实体修饰识别和实体关系抽取模型具有一定的优化效果。

除了上述这些已经经过多次实践检验的有效改进手段之外,还有一些相关领域的最新尝试暂时没有有效地应用在中文电子病历的实体识别、修饰识别和关系抽取任务中。

比如小样本学习,这种方法的目标是在样本有限的情况下尽可能地提升分类效果。Han 等[63]首次尝试将小样本学习引入到关系抽取任务中,利用度量学习、元学习、参数预测、原型网络等小样本学习方法分别进行尝试,并在之后利用海量无监督数据对BERT 进行了预训练,从而为小样本学习模型提供有效的语义特征,最终实现了较为理想的效果。

利用关系之间的依赖关系来辅助进行信息抽取,但这种关系很难从数据集中学习到。引入关系路径等作为先验信息和利用ranking loss 建立关系依赖是目前比较常见的思路,但仍有很大研究空间。

除此之外,利用图神经网络来进行关系推理是最近的热门研究方向之一,但在电子病历信息抽取的研究中暂时还没有得到推广,在未来一段时间内可能成为一个比较有潜力的发展趋势。

4.3 仍存在的其他不足和缺陷

虽然现有的电子病历信息抽取方法已经取得了大量优秀的成果,也诞生了许多崭新的研究思路,但目前仍存在着一些不足和缺陷没有得到解决。

首先,现有的方法往往只针对某种类型的封闭式数据集。即使是在电子病历信息抽取这一个具体的领域,由于病历文本在不同地区、不同医院没有统一的书写规范,所以采集自不同医院的病历数据具有较大的差异性,导致在某个数据集上完成训练并实现较高精度的模型,经常会在用其他数据集进行测试时无法取得令人满意的效果。这不仅对模型的普适性提出了较高要求,同时也离不开相关标准规定的出台和落实,是一个目前难以完全解决的问题。

此外,深度学习相较于早期基于规则和词典的方法,更容易消除歧义,但也存在着一定的不足,比如在命名实体识别任务中,深度学习模型往往在边界的界定上不够准确。引入词典信息是目前比较常规的解决方法,即先利用词典进行分词,然后对分词序列进行标注,然而这种简单的方法容易由于误差传递而导致最终的效果更差。针对这个问题,有研究提出可以为每个字符保存所有可能匹配的单词[64],但缺点是储存信息太多导致速度过慢。如何在引入词典信息以提升精度的同时保证运行的效率,应当成为下一阶段的研究重点之一。

5 结语

自由文本电子病历信息抽取技术的发展,一方面能够方便医院对历史病历记录和现在乃至未来的结构化病历记录进行系统性地管理,从而在需要时提高病历信息查询、统计、分析,各科室协同合作以及决策实施和调控的效率;另一方面也完善了医疗领域的各种知识库,为后续的研究,如医疗领域知识图谱的完善、临床路径的建设等提供更加专业且便于使用的数据来源。

本文针对自由文本电子病历信息抽取最重要的三个部分——命名实体识别、实体修饰识别和实体关系抽取分别调研了多篇严格挑选的国内外有创新性的论文,并对这些论文的主要方法、使用的外部资源、数据集、模型效果等进行了对比总结。

自由文本电子病历命名实体识别的几个典型方法包括传统的基于词典和规则的方法、统计机器学习模型CRF 和深度学习模型LSTM。基于词典和人工制定规则的方法可以实现很高的精确度,但由于词典大小有限,使得召回率较低,从而造成整体的精度受限。CRF 模型融合了MEMM 和HMM 的优点,能够对隐含状态进行建模,并学习状态序列的特征,充分地利用丰富的内部和上下文特征信息,但具有需要人工提取序列特征的缺点。LSTM及BiLSTM能够学习到输入序列之间的依赖关系。在训练过程中,LSTM能够根据目标实体自动提取输入序列的特征,但无法学习到输出状态序列(标注)之间的关系。因此,使用LSTM 的优点在于可以不必进行繁琐的特征工程,而缺点是无法学习到标注的上下文信息。而目前流行的BiLSTM-CRF模型则能够将两者的优点结合起来。

自由文本电子病历实体修饰识别的流行方法多为基于各种RNN 模型的混合方法,这些方法在面对细致的修饰分类时,相较于基于规则的传统方法,更能够取得比较理想的效果。

自由文本电子病历实体关系抽取的典型方法为深度学习模型LSTM 和CNN。CNN 模型相对于LSTM,无法很好地获取非连续词之间的依赖关系,但对特征的提取更加充分,所以二者结合的CNN-LSTM 模型很好地结合了两者的优点,成为了比较流行的方法之一。

目前,将现有模型进行结合,以及加入其他先进的自然语言处理模型(如BERT)在一段时间内仍将是研究的重点。针对标注数据代价较高的问题,可以利用远程监督来得到较为准确的训练数据,从而使得现有模型的效果得到提升,但存在着误差传递会导致最终的关系抽取任务准确率不够高的问题。另一方面,电子病历命名实体识别作为修饰识别和关系抽取的前置任务,与这两个任务具有很强的关联性和互补性,在现有研究成果中,这三项任务的主流方法均存在着一定的相似性。因此,将实体识别和修饰识别或关系抽取结合起来,进行端到端的联合抽取,虽然现阶段有着模型过于复杂的缺点,但随着深度学习模型的不断发展,在解决了数据资源不足问题之后,预计能够取得较好的效果。除此之外,小样本学习、图神经网络等研究方向尚在初步发展的阶段,具有很大的发展潜力。

中文电子病历的信息抽取研究起步较晚,各种语料库和工具资源相对短缺,病历文本的格式缺乏统一的标准,并且由于中文和英文的语言特点差异,实际使用时的处理方法也不尽相同。以上这些因素在一定程度上限制了中文电子病历相关研究的开展。因此,除了尝试各种新的模型思路,改善这些实际存在的问题也是当务之急。在良好的规范与充足的资源的辅助下,自由文本中文电子病历信息抽取这一研究领域将会得到进一步的发展。

致谢:感谢百度-清华大学软件学院AI 医疗科研合作项目对本文提供支持。

猜你喜欢

病历命名实体
我国第三艘航空母舰下水命名“福建舰”
电子病历评级的分析与总结
知识图谱的候选实体搜索与排序①
命名——助力有机化学的学习
从盐渎到盐城——盐城命名记
“病例”和“病历”
实体书店步入复兴期?
有一种男人以“暖”命名
2017实体经济领军者
临床表现为心悸的预激综合征B型心电图1例