一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于TextCNN模型的临床儿童咳嗽智能预诊断系统的制作方法

2022-03-16 16:14:05 来源:中国专利 TAG:

一种基于textcnn模型的临床儿童咳嗽智能预诊断系统
技术领域
1.本发明属于医学人工智能领域,尤其是涉及一种基于textcnn模型的临床儿童咳嗽智能预诊断系统。


背景技术:

2.咳嗽是导致儿童就诊最常见的症状,长期咳嗽可引起诸多并发症。引起咳嗽的病因众多,受限于医生经验水平的差异,临床咳嗽诊断存在误诊、不充分或多余的检查等问题。
3.公开机号为cn105339486a的中国专利文献公开了一种用于从患者收集样本以便诊断的系统和方法。样本收集和分析系统集中样本中源自患者咳嗽、喷嚏或者呼吸的颗粒,用于诊断患者呼吸道感染或者其它小疾病。样本收集和分析系统具有预先收集组件、与样本储器流体连通的收集器,所述预先收集组件和收集器组合执行功能:有效捕获由主体排出的空气体积,将排出的空气朝向样本储器引导,并且从排出的空气将所需粒径分离到样本储器中。
4.公开号为cn107242857a的中国专利文献公开了一种基于深度学习的智能中医综合诊疗系统,包括:望诊采集子系统、闻诊采集子系统、问诊采集子系统、脉诊采集子系统,以及综合分析子系统。其中,望诊采集子系统采集患者的面部、舌体等局部图像信息;闻诊采集子系统对患者语音、呼吸、咳嗽等声音信息进行采集;问诊采集子系统采用交互问答方式获取患者症状信息;脉诊采集子系统采集患者的脉搏信号;综合分析子系统采用深度学习相关理论和技术对以上子系统得到的信息数据进行综合分析,得到诊断结果并给出建议处方。该发明实现了中医望、闻、问、切四方面的结合,借助深度学习理论得到全面详实的诊断结果,为患者就诊提供了便利。
5.然而现有的技术中,只聚焦于诊断阶段,且依赖密集的特征工程,而对尚未展开检验检查的预诊阶段,并没有针对性的方法辅助基层医生通过问诊信息进行疾病预判和检查检验推荐。在实际诊疗中,收集患者的咳嗽、喷嚏或者呼吸的颗粒并进行辅助诊断需要依赖一定的设备,在临床操作中并不十分方便,大多数的咳嗽患儿也并不一定通过中医进行问诊,因此现有的技术在推广层面缺乏普适性。然而,对绝大多数患者来说,问诊是就诊过程必经也是首要的一步,直接影响到医生的后续判断及决策。基于病患问诊信息和优秀医生的诊疗经验进行智能预诊断辅助可以在就诊初始阶段即对基层医生的工作产生正向帮助。因此,亟需设计一种的儿童咳嗽预诊断技术解决方案。


技术实现要素:

6.本发明提供了一种基于textcnn模型的临床儿童咳嗽智能预诊断系统,可以对咳嗽的儿童提供疾病预诊断和检查检验推荐,提高诊断精确度。
7.一种基于textcnn模型的临床儿童咳嗽智能预诊断系统,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,
所述计算机存储器中存有训练好的语言表示模型、基于textcnn的疾病预诊断模型以及多标签任务学习的检验检查推荐模型;
8.所述计算机处理器执行所述计算机程序时实现以下步骤:
9.将临床儿童的问诊信息输入语言表示模型,得到语言特征表示向量;
10.将语言特征表示向量输入到疾病预诊断模型,得到疾病的诊断结果;
11.将语言特征表示向量和疾病的诊断结果输入到检验检查推荐模型中,得到推荐的检验检查项目。
12.进一步地,所述的语言表示模型基于采用word2vec中的skip-gram模型。
13.进一步地,采用大量医疗文献数据对语言表示模型进行训练,获取医学词汇在特征空间的语义表示向量;skip-gram模型的训练目标是:最大化训练集中文本序列[w1,w2,w3,...,w
t
]的给定单词w
t
作为中心词时,固定大小窗口内的上下文单词w
t j
的概率p(w
t j
|w
t
),skip-gram模型的目标函数表示为:
[0014][0015]
式中,c为上下文窗口大小。
[0016]
进一步地,采用负采样算法选择性地更新训练样本的小部分权重,加速梯度下降过程;
[0017]
在负采样中,对于给定的词w,假设c表示它的上下文,那么词w是正例,其他词是负例,基于负采样的skip-gram算法使用一元模型分布来选择负采样词,达到减少计算开销的目的;一个单词被选作负样本的概率跟它出现的频次有关,出现频次越高的单词越容易被选作负样本词;每个上下文词的概率计算公式如下:
[0018][0019]
其中,f(wi)表示单词w出现的词频,分母代表所有单词的权重和;
[0020]
基于负采样的skip-gram模型的另一目标函数为找到使所有观测值来自数据的概率最大化的参数:
[0021][0022]
p
pos
=p(d=1|c,w;θ)
[0023]
p
neg
=p(d=0|c,w;θ)
[0024]
式中,d表示上下文词集合,d

表示非上下文词的集合,w和c表示d中的单词,p
pos
表示w和c作为上下文词出现的概率,p
neg
表示w和c不作为非上下文词出现的概率。目标函数的意义为最大化窗口中上下文词的概率。
[0025]
进一步地,所述疾病预诊断模型采用textcnn模型,将病例记录的文本进行one hot编码后输入到训练好的语言表示模型中,经过word2vec词嵌入得到句子的语言特征表示向量,该向量将作为textcnn模型卷积层的输入。textcnn模型的网络结构如下:
[0026]
卷积层中将kernel_size设置为(3,4,5),为了避免词向量信息丢失,卷积核宽度
设置与词向量维度相同,每个kernel_size有128个输出channel;网络初始化阶段采用glorot_normal正态分布初始化方法,并在textcnn网络中加入batch normalization网络重新调整数据分布后再进行池化的方法提高模型训练时的稳定性,生成3个长度为128的特征向量,再将其合并变为384维的向量后进行dropout。
[0027]
疾病预诊断模型中,softmax函数的计算公式如下:
[0028][0029]
损失函数采用交叉熵,计算公式如下:
[0030][0031]
其中,t
ki
是样本k属于类别i的概率,y
ki
是模型对样本k预测属于类别i的概率。
[0032]
在训练疾病预诊断模型时,提取病人的病历记录,包括年龄、主诉症状、现病史、既往史、家族史、过敏史、用药情况7种属性;
[0033]
对不同属性的文本去除停用词与特殊符号后进行自然语言式的拼接:对每条病例记录,将属性名与属性值拼接,并将不同属性拼接成一个短文本,作为病人信息的综合文本描述,将这个综合文本输入语言表示模型,得到语言特征表示向量,再对疾病预诊断模型进行训练。
[0034]
进一步地,所述的检查推荐模型也采用textcnn模型,损失函数采用二元交叉熵损失,将预测出的每个检验检查推荐类别平均概率误差作为模型整体的误差,通过bp算法对参数进行更新。
[0035]
与现有技术相比,本发明具有以下有益效果:
[0036]
1、将辅助诊断服务前置,从源头上提高诊断准确率、降低医疗成本,基于问诊信息和临床电子病历数据提供儿童咳嗽疾病预诊断和检查检验推荐服务。
[0037]
2、通过建立预训练语言表示模型强化对医疗文本数据的语义理解,该预训练语言模型可通过迁移学习被快速应用于下游的ai任务中。3、应用方便、普适性及可操作性强,无需借助任何设备,可快速推广应用于基层医院,对基层医生的辅助诊疗具有显著意义。
附图说明
[0038]
图1为本发明临床儿童咳嗽智能预诊断系统的框架图;
[0039]
图2为本发明实施例中skip-gram模型的结构图;
[0040]
图3为本发明实施例中textcnn模型的结构图;
[0041]
图4为本发明方法与现有算法进行疾病预诊断top1结果precision对比图;
[0042]
图5为本发明方法与现有算法进行疾病预诊断top1结果recall对比图;
[0043]
图6为本发明方法与现有算法进行疾病预诊断top1结果f1-score对比图。
具体实施方式
[0044]
下面结合附图和实施例对本发明做进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
[0045]
一种基于textcnn模型的临床儿童咳嗽智能预诊断系统,包括计算机存储器、计算机处理器以及存储在计算机存储器中并可在计算机处理器上执行的计算机程序,计算机存储器中存有训练好的语言表示模型、基于textcnn的疾病预诊断模型以及多标签任务学习的检验检查推荐模型。如图1所示,计算机处理器执行所述计算机程序时实现以下步骤:
[0046]
将临床儿童的问诊信息输入语言表示模型,得到语言特征表示向量;
[0047]
将语言特征表示向量输入到疾病预诊断模型,得到疾病的诊断结果;
[0048]
将语言特征表示向量和疾病的诊断结果输入到检验检查推荐模型中,得到推荐的检验检查项目。
[0049]
本发明中,语言表示模型基于word2vec,目的是为了生成对医学语义理解更精准的语言特征表示向量,从而提高文本预测的准确率。此外,预训练的语言表示模型通过从使用大量语料训练出的模型中提取参数权重的方式,迁移到其他神经网络模型中,实现知识转移的目标,使得下游任务模型可以基于这些参数进行微调,大大加速了下游任务的模型的收敛速度。本发明利用大量医疗文献据进行预训练,生成医用的语言表示模型,该模型会被用于下游任务(疾病预诊断和检查检验推荐)中对文本数据进行词嵌入,生成对医学语言上下文敏感的语言特征表示。
[0050]
具体的,语言表示模型基于采用word2vec中的skip-gram模型,通过中心词预测上下文词的方式,更有效的从上下文中学习信息。
[0051]
如图2所示,skip-gram模型的训练目标是:最大化训练集中文本序列[w1,w2,w3,...,w
t
]的给定单词w
t
作为中心词时,固定大小窗口内的上下文单词w
t j
的概率p(w
t j
|w
t
),因此,skip-gram模型的目标函数表示为:
[0052][0053]
式中,c为上下文窗口大小。
[0054]
本发明采用负采样算法选择性地更新训练样本的小部分权重,加速梯度下降过程。在负采样中,对于给定的词w,假设c表示它的上下文,那么词w是正例,其他词是负例,基于负采样的skip-gram算法使用一元模型分布来选择负采样词,达到减少计算开销的目的;一个单词被选作负样本的概率跟它出现的频次有关,出现频次越高的单词越容易被选作负样本词;每个上下文词的概率计算公式如下:
[0055][0056]
其中,f(wi)表示单词w出现的词频,分母代表所有单词的权重和。
[0057]
基于负采样的skip-gram模型的另一目标函数为找到使所有观测值来自数据的概率最大化的参数:
[0058][0059]
p
pos
=p(d=1|c,w;θ)
[0060]
p
neg
=p(d=0|c,w;θ)
[0061]
基于负采样的skip-gram算法通过对(w,c)∈d'负样本集合进行采样达到减少计
算开销的目的。
[0062]
本发明将textcnn模型应用于预问诊疾病类型预测任务,并将该任务训练好的模型迁移至检验检查任务中进行微调。
[0063]
具体的,疾病预诊断模型采用textcnn模型,如图3所示,其网络结构如下:
[0064]
卷积层中将kernel_size设置为(3,4,5),为了避免词向量信息丢失,卷积核宽度设置与词向量维度相同,每个kernel_size有128个输出channel;网络初始化阶段采用glorot_normal正态分布初始化方法,并在textcnn网络中加入batch normalization网络重新调整数据分布后再进行池化的方法提高模型训练时的稳定性,生成3个长度为128的特征向量,再将其合并变为384维的向量后进行dropout。
[0065]
网络采用了1-max池化,即为从每个滑动窗口产生的特征向量中筛选出一个最大的特征,然后将这些特征拼接起来构成向量表示。对于输出层,我们采用全连接结构和softmax,softmax函数的计算公式如下:
[0066][0067]
损失函数采用交叉熵,计算公式如下:
[0068][0069]
其中,t
ki
是样本k属于类别i的概率,y
ki
是模型对样本k预测属于类别i的概率。
[0070]
检查检验推荐和疾病预诊断类似,本质上是一个分类问题,但不同的是,检查检验推荐是一个多标签分类任务,预测生成一个向量,向量的每个维度对应各项检查的结果。该数值是二元的(0表示不推荐,1表示推荐),而疾病预诊断需要生成的是模型预测为各疾病的概率分布。
[0071]
在样本训练阶段,根据病人的主诉、现病史、既往史、过敏史等基本信息和医生诊断的疾病类型来推荐相应的检查检验项目。对测试数据来说,由于预诊断阶段还没有产生确切的疾病诊断,因此我们采用疾病预诊断模型预测出的概率最大的疾病作为疾病类型,结合病人的问诊信息进行检查检验推荐。
[0072]
为了让模型更准确学习到疾病特征,本发明在ehr数据提取的特征基础上加入了疾病预测结果描述文本,从而使模型学习到疾病与检验检查类别对应关系的特征。
[0073]
模型训练时,仍然采用textcnn模型,但不同的是,损失函数采用binary cross entropy loss,将预测出的每个检验检查推荐类别平均概率误差作为模型整体的误差,通过bp算法对参数进行更新。
[0074]
为了验证本发明的效果,对临床儿童咳嗽智能预诊断系统进行测试。
[0075]
抽取了浙江大学医学院附属儿童医院的呼吸科门诊ehr真实数据。按icd-10疾病诊断码进行过滤,在2019年08月到2020年11月之间,浙江大学医学院附属儿童医院共有107840名患者被诊断为咳嗽类疾病,总就诊记录数181229条。2936例因为信息缺失无法满足我们的训练任务而被排除,剩余的178293条记录,我们按7:3的比例进行划分,133719条用于疾病预诊断的样本训练,44574条用于测试集。
[0076]
统计了儿童咳嗽的常见疾病,咨询院内呼吸内科专家后按症状的相似性重新进行
了划分,合并了一些细分类,最终形成12种疾病类型作为预测目标,经过自然数字编码,编码后的类别记为0-11。
[0077]
为了更好地进行疾病类型预测,提取了病人的病历文书记录,包括年龄、主诉症状、病史、过敏史等7种属性。对不同的属性的文本去除停用词与特殊符号后进行自然语言式的拼接:对每条病例记录,我们将属性名与属性值(文本)拼接,并将不同属性拼接成一个短文本,作为病人信息的综合文本描述,基于这个综合文本进行学习。
[0078]
疾病预诊断任务与检验检查推荐任务的评价指标均基于混淆矩阵,由于疾病的预诊断是一个多分类任务,计算评价指标时对每个类别单独计算。用a表示本身属于某类别且被正确分到该类别的实例数目,b表示本身不属于某类别但被误分到该类别的实例数目,c表示本身属于某类别但被误分到其他类别的实例数目,d表示本身不属于某类别的实例数目,具体如下表1所示。
[0079]
表1
[0080][0081][0082]
准确率、精确率、召回率、f1值计算公式如下所示:
[0083]
精确率:
[0084]
召回率:
[0085]
f1值:
[0086]
对每类疾病,分别统计每个类别在逻辑回归(lr)、梯度下降算法(gdbt)、han模型和textcnn模型下的precision、recall和f1-score值。然后使用准确率、宏平均、和加权平均来评估算法对测试数据集的整体效果。准确率、宏平均和加权平均的计算公式如下:
[0087]
准确率(accuracy):
[0088][0089]
宏平均(macro average):
[0090][0091]
加权平均(weighted average):
[0092][0093]
wi=c
support
/c
total
[0094]
其中,c
tp
表示真值为某类疾病且预诊断也判定为该类疾病的实例数目,c
tn
表示真值不属于12类疾病中的任何一类且预诊断也判定为其他疾病的实例数目。c
total
表示测试集
中的实例总数。n表示级别类别总数,fsi表示每个类别的f1-score值。wi表示每个类别的权重,由每个类别的实例数量c
support
除以测试集总数c
total
得到。
[0095]
lr和gbdt属于机器学习方法,han和textcnn属于深度学习算法。利用儿童电子病历数据训练模型,根据患者主诉信息预测患者在12类呼吸科疾病下的可能性。把数据分成10折进行交叉验证,测得的关于12个疾病类的预测数据如图4~图6所示。图中,横坐标对应的疾病类型分别为auri(急性上呼吸道感染),bronchitis(支气管炎),asthma(哮喘),pharyngitis(咽炎),pneumonia(肺炎),rhinitis(鼻炎),tonsillitis(扁桃体炎),laryngitis(喉炎),nasosinusitis(鼻窦炎),flu(流行性感冒),fbao(气道异物阻塞),others(其他疾病)。由于疾病预诊断输出的是一个12维的疾病概率向量,向量的每个维度表示根据病人主诉信息预诊断为某疾病的概率,概率最大的分量即为top1结果。图4-图6展示的就是四种算法在12个疾病类上预测的top 1返回结果的准确率、召回率和f1值统计情况。由上图可知,通过四种算法训练出的模型表现与模型特征提取能力基本成正比,逻辑回归、gbdt这两种机器学习模型预测能力较弱,在一些疾病类别上,如咽炎(pharyngitis)、扁桃体炎(tonsillitis)和流行性感冒(flu)甚至低于0.1。相比之下,深度学习方法的预测效果明显更优,本发明的模型(textcnn)比han的预测能力更强。
[0096]
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献