APP下载

基于综合性临床诊断数据分析系统的医院导诊应用*

2021-01-15

医学信息学杂志 2020年12期
关键词:疾病诊断分词实体

张 立

(苏州大学附属常熟医院(常熟市第一人民医院) 常熟 215500)

1 引言

互联网改变了医疗服务生态系统,包括医疗咨询、门诊、治疗和康复以及在线购买药物[1]。目前医疗信息系统具有一定诊断功能,可实现导诊与初步诊断。然而大多数医疗信息系统是基于专家系统,这样的系统需要多个专家,总结不同症状需要大量时间、精力和人力,成本较高,不适合广泛应用,且个性化程度不高[2]。本文以数据挖掘和机器学习技术为核心,以提供人性化、综合化、信息化、自动化医疗咨询为目标,对医疗导诊服务进行研究。由于缺乏医学知识和经验,大多数人在生病时会用错误的医学术语描述其症状[3]。本文提出的医疗导诊模型利用卷积神经网络(Convolutional Neural Network,CNN)和自然语言处理 (Natural Language Processing,NLP)等深度学习技术对原始、噪声较大的数据进行特征构建和转换,目前的模型涵盖500种不同类型的疾病,其准确率接近70%。同时针对分词工具在医学用词领域应用效果不佳的问题,采用基于互信息的新词发现法进行文本分词。

2 相关研究

医疗导诊的基础是医疗信息平台,通过对症状与病情的识别匹配最优解决方案。早在1966年Ledley和Lusted等[4]就提出机器诊断思想。1972年Willcox等[5]尝试用计算机和贝叶斯理论来识别细菌性疾病。2001年Saeys等[6]提出将特征选择技术应用于生物信息识别应用系统。虽然特征选择技术在生物信息学领域应用广泛,但在生物医学领域应用才刚刚起步。由于医学样本具有维数大、长度短的特点(如医学文本信息),有必要根据医学数据特点对特征选择技术进行改进和优化。2010年Abeel等[7]研究一种用于癌症诊断中生化特征识别的特征选择算法,采用支持向量机分类算法将综合特征选择技术应用于疾病诊断。近年来文本分类技术在医学领域相关研究逐渐成熟。在心脏疾病和神经系统疾病相关诊断方面,Ahmed将人工蜂群算法和改进的全贝叶斯网络分类器相结合,采用这种组合技术进行混合估计,最终使得心脏病预测准确率接近100%[8]。Patil 应用Jelinek-Mercer平滑法和贝叶斯模型对心脏病进行预测和诊断[9]。目前在线医疗导诊服务几乎是人工辅助的,患者等待时间不确定。为提高导诊精度与满意度,基于智能文本信号处理的机器学习算法被应用到医学导诊系统。虽然一定程度上提高导诊沟通满意度,但仍存在不足。Lin等设计基于TF-IDF算法的智能医疗导诊系统,由用户界面、自然语言症状、医疗导诊计算3个模块组成,主要是基于关键字检索与匹配[10]。近年来自动化导诊疾病诊断平台的应用引起越来越多关注。2015年百度医生应用的语音导诊功能上线,这是一种基于语音智能识别技术的全新方法,用于解决百度APP医疗导诊功能应用的实际问题,是我国首个在移动医疗场景下开发的基于自然语言的智能导诊技术。

3 疾病导诊模型

3.1 问题描述

《中国医生/患者数字化生活 2017》报告显示21% 的医生已开展线上执业,借助数字化渠道提供个人专业知识,在互联网产生大量有价值的数据。可以建立基于数据挖掘的疾病诊断导诊模型,帮助用户在入院前获得人工智能导诊诊断服务[11]。本文提出人工智能导诊疾病诊断框架。首先通过命名实体识别(Named Entity Recognition,NER)对患者自然语言进行特征提取,实现疾病标注,同时利用词嵌入技术将用户疾病查询数据转换为矩阵表达式。然后通过训练CNN训练出人工智能疾病导诊模型,最终实现对新用户疾病查询的智能引导。人工智能导诊疾病诊断模型中,将疾病诊断抽象化问题看作一个分类问题,利用CNN模型来解决该问题,同时在网络上对海量医学知识进行深入挖掘,获得人工智能导诊疾病诊断模型,取得较好成果。人工智能导诊疾病诊断研究框架,见图1。

图1 人工智能导诊疾病诊断研究框架

3.2 医学命名实体识别

3.2.1 医学命名实体 在语言使用中命名实体被定义为具有独立含义的文本字符串,通常在句子中作为一个整体使用[12]。NER是对文本中具有特定意义的实体识别,如开放领域中的命名实体,主要包括人、地、组织和机构名称。命名实体在不同细分领域有不同分类[13]。在生物医学领域被认可的实体已经扩展到技术术语,如基因和蛋白质名称[14]。一般来说医学领域命名实体分为4类:疾病、症状、检查和治疗。

3.2.2 人工智能导诊疾病诊断 本文所研究的人工智能导诊疾病诊断主要是识别症状范畴中的命名实体。NER是一种模式识别任务,即从给定的句子中识别实体边界和类型信息。典型方法是将边界和类型信息组合成一系列标签,然后将NER任务转化为待预测句子中每个词的标签。典型标记方法以B_C和I_C形式生成标签,其中B和I是位置标签,C是类别标签,B是实体的开始,I是实体的延续。不属于任何实体的内容通常标记为O。NER包括两类方法:一类是基于分类的方法,另一类是基于注释序列化的方法。由于基于注释序列化的方法在许多方面优于基于分类的方法,本文采用基于注释序列化的方法,即使用条件随机场(Conditional Random Field,CRF)模型对医学领域中命名实体之间的症状类别进行识别。对于两个随机变量X和Y,X是要标记的观测序列,Y是标记序列,给定观测序列X被Y标记的条件概率为P(Y | X)。假定图G=(V, E)是无向图,其中V是顶点集,E是边集。李雪等[12]指出CRF模型对歧义词和未登录词有较好的处理能力,可以取得最好的分词效果,本文在CRF模型中加入特定词典特征来使用领域词典,实现疾病标注,同时利用词嵌入技术将用户疾病查询数据转换为矩阵表达式,获得带有疾病标签的医疗问答数据。医疗问答数据一般包括两部分:一部分是症状描述,有助于医生诊断疾病;另一部分则有助于理解与某种疾病相关知识。本文要求的数据是前者,即症状查询和疾病标签。用症状来筛选查询语句,采用CRF模型对整个数据进行描述。对于表述症状查询语句的筛选方法,首先采用CRF模型对待筛选的查询语句进行症状自评。如果对于一个句子可以识别到两个或更多的症状就认为这句话是症状查询语句。利用上述规则对查询数据集进行筛选,共筛选出查询数据507 411条。疾病分布与总体数据分布大致相同。对于筛选出的训练数据,提取其特征并使其适应CNN的输入。输入一个症状查询语句后,首先进行分词以消除虚词,在预先训练好的嵌入向量集中找到该词对应的嵌入向量作为输入矩阵的一行。特别是如果输入词是症状命名实体或其中一部分,则向量中每个维度的值乘以2, 以加强症状在文本中的特征化作用。得到输入矩阵后将其作为CNN的输入,将其疾病标签作为分类类别对CNN进行训练。

4 仿真实验与分析

4.1 数据来源

对大量真实数据集进行仿真分析,对所提出的在线医疗导诊方法有效性进行实证评估。本文所使用的数据都是来自网络的公开数据,通过网络爬虫获取,涉及医生问答和疾病症状的数据都是从国内几大医学信息网站上获取。医疗文本数据,见表1。对于疾病和症状信息数据集,提取疾病和症状名称,以疾病与症状之间的相关性作为知识库,有利于提高模型的泛化能力。对于问答数据集,提取内容包括用户属性、查询的标题和内容以及医生答案。

表1 医疗文本数据

4.2 实验设计与分析

由于导诊系统要处理的对象是中文文本,需进行分词。然而医学领域相关数据具有专业性,患者提出的一些问题包含网络用语,分词结果欠佳。因此采用基于互信息的新词提取方法,提取分词工具无法识别的部分新词。在分词过程中这些无法识别的词学习特征字典,更准确地实现后续分词和数据处理。词嵌入是将词嵌入到向量空间,即使用向量来表示词[15]。与向量空间模型(Vector Space Model,VSM)相比,词嵌入使用许多向量来训练词组,无需监督学习,该向量表达式具有丰富的语义信息。因此这个词被表达为一个相对低维的向量,同时这个向量具有一定抽象语义。对于意义非常相似的两个词来说,字符相似度很小,例如 “腹泻”和“肠胃”,但其向量表达非常接近,在向量空间相似度非常高。应用Skip-Gram模型[1]即Word2Vector中的词嵌入训练工具,对医学问答文本中的词嵌入进行训练。对于得到的嵌入词,可以利用余弦相似度来计算相似度。实验前首先对数据特点进行分析,确定人工智能导诊疾病诊断范围,然后对数据进行标注,生成训练数据集,使用验证方法验证模型有效性,同时采用人工评估方法对模型性能进行评估。对于数据集1中的7 022条疾病数据,使用疾病名称来匹配数据。如果有匹配的疾病,将此查询与疾病关联起来。前10个匹配疾病及其匹配次数,见表2。疾病匹配次数统计及对应百分比,见图2。据统计疾病数据中前500名的匹配率累计为92.5%。由于分类次数过多会导致训练偏差过大、出现错误,因此根据统计数据结果将所有分类限制在500个类别。

表2 前10个匹配疾病

图2 统计数据

作为一个多分类问题,本文利用10倍交叉验证的评估方法对模型进行评估。此外鉴于医学问题特殊性,采用抽样方法,邀请医学领域专家对结果进行评估。10倍交叉验证法将训练数据平均分为10份。每次迭代都将9份作为模型训练的训练数据,另一份作为测试数据来测量计算模型精度。交叉验证重复10次,且每个数据验证1次,得到模型精度。验证结果表明本文提出的模型对于疾病诊断任务准确率为71.7%。从结果可以看出如果只返回1个疾病名,且作为最终答案,结果并不理想。实验结果显示系统精度随返回答案数量的变化而变化;如果标准答案在系统返回的答案中,则认为系统答案正确。为评估诊断模型诊断能力,从其他数据资源中随机抽取100个症状查询数据,利用该诊断模型生成结果,与医生标注结果进行比较。不同模式下导诊精度,见表3。可以看出本文提出的模型具有较高导诊精度,适用于在线导诊服务。

表3 不同模式下导诊精度

5 结语

本文介绍了一种新的医疗导诊框架,该框架首先通过命名实体识别对患者描述的疾病进行自然语言查询注释,然后采用词嵌入法将用户疾病查询数据转换为矩阵表达式,最后利用人工智能导诊模型获得导诊结果。通过对真实数据集的评估验证了本文方法有效性。下一步将导诊模型集成到医疗在线服务平台,以提供便捷的在线服务与高精度的诊疗结果。

猜你喜欢

疾病诊断分词实体
分词在英语教学中的妙用
超高频超声在浅表器官疾病诊断中的应用
消化内镜在胃肠道疾病诊断和随访中的作用
前海自贸区:金融服务实体
结巴分词在词云中的应用
结巴分词在词云中的应用
中国医保支付改革的探索与反思:以按疾病诊断组(DRGs)支付为案例
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”