病历智能分析系统的研究与实现

病历作为医院的宝贵财富,里面蕴含了大量的专业知识,但是由于受到技术的限制,长期得不到有效利用。上海长海医院作为一所大型三甲综合医院,学科实力雄厚,对临床科研的要求也非常高。但是医生还停留在去病案室借阅病历,手工摘抄收集科研数据的阶段,效率十分低下。如何利用最新的人工智能技术,让机器“读懂”病历数据,提高临床科研效率和质量,是目前亟需解决的课题。

对病历文本相关的智能分析主要涉及自然语言处理技术,相关研究开始于20世纪60年代的美国,衍生出包括医学信息抽取、临床问答系统和临床决策支持系统等。对于医学文本信息抽取,目前已经有相对成熟的系统在医院使用,包括MedLEE、Ctakes和GATE等。YongGang Cao等构建了帮助医生查询病人症状有关帮助的AskHERMES问答系统。

我国医学自然语言处理的发展水平还与发达国家有一定差距,主要集中在基于规则和专家系统的方法,而将机器学习、深度学习应用到医学自然语言处理需要更加深入的研究。对此,我们结合国内外最新的研究现状,在上海长海医院率先开展了利用自然语言处理技术构建病历智能分析系统的研究工作。

病历智能分析系统设计

1.功能模块

病历智能分析系统的核心技术是自然语言处理。系统主要涉及句法学、语义学和语用学共三个不同等级的语言学分析,由分词、病历标注、命名实体识别和语义关联抽取共四个模块组成,如图1所示。

图1 病历智能分析系统功能模块设计

2.核心技术

(1)分词

作为病历智能分析的第一步,对中文病历文本进行分词至关重要。病历文本内有大量的医学专业术语和表达,这种特点导致传统中文分词工具对病历文本的分词效果不好。例如药品名“去甲伪麻黄碱”会被划分为“去/甲/伪/麻黄碱”,而不是将其当成一个整体。为了提高对病历文本的分词效果,我们收集了医学专业词汇和常用药品名等,将这些词条整合成词典作为分词工具的补充。我们将词典与开源的“结巴分词”工具相结合来对中文电子病历进行分词处理,构成了一个完全非监督、无需人工标注即可使用的中文病历分词引擎。

(2)病历标注

有监督的机器学习方法能对病历文本中的医学知识和患者的健康信息进行抽取,而进行监督学习的第一步是进行病历文本的人工标注,以使得标注后的数据能够对机器进行有效的训练。我们对两类信息:医学命名实体(包括疾病、疾病诊断、临床症状、检查和治疗等),以及实体间的语义关联(治疗和疾病间的关系、治疗和症状的关系、检查和疾病的关系、检查和症状的关系以及疾病和症状的关系),进行了人工标注。在标注过程中我们采用了BIO的标注体系,即B表示一个命名实体的开始,I表示目标词在命名实体的内部,O表示目标词不属于命名实体。我们随机抽样了来自上海长海医院的3000份出院小结,并召集上海长海医院内的临床实习生对其进行上述标注。在其中300份病历上,我们制定了两名标注者同时对其进行标注,并使用Cohen′s Kappa计算其标注一致性,并获得了0.68的Kappa值。

(3)命名实体识别分析技术

命名实体识别技术指的是将病历中重要的医学实体,如疾病、症状、检查、治疗变量等从病历文本中抽取出来。例如“患者30余年前因反复咳嗽咳痰多次就诊,诊断为慢性支气管炎,平素服用顺尔宁控制症状”这句话中,“咳嗽咳痰”被识别为症状,“慢性支气管炎”被识别为诊断,“顺尔宁”被识别为药物,属于医疗手段。

由于病历文本是由自由文本书写而成,因此将这些医学命名实体进行识别时将病历文本进行结构化是病历智能分析的重要环节。目前命名实体识别的方法主要分为基于词典和规则的方法和基于机器学习的方法。基于词典和规则的方法需要人工编制出很多相关规则和专业的医学词典,而词典和规则的编制过程需要大量的人力,并且这些规则和词典应用到病历文本时受到命名实体上下文的影响很大,因此效果不是很理想;而基于机器学习的方法是将命名实体识别任务作为序列数据的标注问题,主要考虑上下文的信息。

目前公认完成命名实体识别性能较好的机器学习模型是条件随机场(Conditional Random Fields),特征构造过程中常用的特征是上下文特征、字典特征等。我们利用条件随机场来训练命名实体识别模型,并采用了开源的CRF++作为我们依赖的工具。我们使用原始字、分词的结果、以及上下文(窗口大小为5)中的信息作为特征,对CRF模型进行训练。并利用上一章节中所述的3000份标注病历,我们对其进行了5-fold的交叉验证。结果显示命名实体识别的总体F-1评分(Micro-F)达到了0.92,证实了模型能够准确地完成医学命名实体识别的任务。

(4)语义关联抽取技术

对病历文本中抽取出来命名实体之间的语义关联进行分析,也是病历智能分析的重要环节。抽取的关系包括疾病和症状之间的关系、疾病和治疗之间的关系、时间副词的修饰等。在这个步骤中,我们把问题转化成了一个分类问题。即,对于每一对特定距离内(100字以内)的命名实体(相距过远的命名实体我们认为其产生关联的可能性很小)我们使用机器学习模型去判断其是否有关联以及如果有关联其类别是什么。在本工作中,我们尝试了条件随机场(SVM)、逻辑回归、决策树(C4.5)等模型,发现在同等的特征和训练数据下,得到了相似性能。因此,我们最终采用了条件随机场作为模型,并同样对3000份标注病历进行了5-fold的交叉验证,获得了平均0.88的语义关联抽取准确度。将该分类器应用于新的病历上,能够获得的完整解析后的效果,如图2所示。

病历智能分析系统的研究与实现

-----------这是傻大方资讯的优美分界线----------------

图2 命名实体识别和命名实体关系抽取结果示例图

系统应用

1.加速填写病例报告表(CRF)

病例报告表(Case Report Form, CRF)是临床研究数据获取的主要工具,在药物临床实验和临床研究中都有广泛的应用。收集到准确、可靠的临床数据是临床实验的重要环节。在填写病例报告表的过程中要求填写受试者的基本信息、治疗期及随访期记录、试验结束记录等。病例报告表中包含大量的临床变量,包括患者的症状、临床表现、体征、实验室检查等情况。

利用我们构建的病历智能分析系统,用命名实体识别技术能将病例报告表中需要填写的变量在受试者的报告中进行自动抽取,从而加速CRF表中的填写速度,优化临床实验的处理流程。

2.优化临床数据中心(CDR)

作为构建临床数据中心的重要环节,数据的标准化和结构化成为一个棘手的问题。由于不同系统的电子病历系统和医院信息系统的数据标准不同,电子病历中的医学信息在临床数据中心进行流通和利用困难重重。在病历智能分析系统的帮助下,以自由文本书写的病历能进行结构化,结构化后病历文本就可以在不同医院和不同区域间进行交换整合。同时,对电子病历中积压的临床数据进行结构化处理,能够实现对历史电子病历中的诊疗过程的整合,丰富临床数据中心的内容。

3.辅助临床决策支持系统(CDSS)

临床决策支持系统(Clinical Decision Support System, CDSS)是对临床工作的有益补充,能在复杂和变化的临床场景下为医务人员提供及时有效的辅助诊断,有效地提高临床决策的准确率和效率。

临床辅助决策支持系统的数据来源通常是医学书籍、文献、病历等非结构化数据,直接利用这些数据难以抽取出来诊疗过程中的变量和变量之间的关系。利用病历智能分析系统,将这些自由文本进行结构化处理之后能帮助临床辅助决策支持系统,更好地挖掘患者既往病史与医学知识的关系,提供更优质和科学的推荐方案。

本文阐述了病历智能分析系统的模块组成、核心技术及应用场景,解决了部分临床中遇到的问题,得到了临床的普遍好评。目前阶段,电子病历中的主观数据需要人工标注,占全部病历数的10%左右。如何从无标注的数据进行学习,将是未来三到五年需要解决的重要问题。此外,如何像人一样从小样本进行有效学习,以及如何从认知性的任务扩展到决策性任务,同样是需要解决的问题。相信随着人工智能技术的快速发展,特别是深度学习技术的逐渐成熟,自然语言处理技术将在医学大数据挖掘中发挥越来越重要的作用。

原标题:病历智能分析系统的研究与实现