一种粗细粒度结合的层次化ICD编码方法和系统

文档序号:33821982发布日期:2023-04-19 19:53阅读:135来源:国知局
一种粗细粒度结合的层次化ICD编码方法和系统

本发明涉及icd编码,特别涉及一种粗细粒度结合的层次化icd编码方法和系统。


背景技术:

1、国际疾病分类(icd)是一套编码系统,它根据疾病的某些特征对疾病进行分类,并用编码方法表示。把疾病进行编码,可以方便的表示患者就诊期间的诊断和流程。该编码可用于临床研究和医疗保健,如流行病学研究和服务账单。

2、人工进行icd编码时,要求编码人员阅读繁杂冗长的电子病历并进行标注,导致有很多错误标记。因此,越来越多的研究开始关注使用机器学习的方法进行自动icd编码。自动icd编码之所以困难,有两个原因:电子病历文本长度很长,其中有大量无用的噪声信息,因此很难提取特征。例如,在mimic iii数据集中,平均文本超过1500个单词,而这些单词中绝大部分信息是无用的;icd代码数量繁多,并且存在严重的长尾问题,大量常见病占据了医学文本,而绝大多数罕见病很少出现在数据集中。

3、现有的技术方案根据输入语料的不同可以大致分为两种:(1):将icd编码看作多标签分类问题,把电子病历文本作为输入语料,使用传统机器学习方法或深度学习方法,训练n个二分类器得到结果。这其中就包括传统的机器学习方法(如svm、lr等方法),以及深度学习方法,例如rnn和cnn。基于cnn的深度学习模型使用单个或者多个固定大小的卷积滤波器来捕获电子病历文本中与icd代码相关的文本片段,但是存在难以选择最佳窗口等问题。另一类深度学习模型基于rnn来处理电子病历文本的依赖,但是由于信息传输能力有限和梯度消失等问题导致对于长文档来说,rnn的表达能力有限。而由于电子病历中的疾病存在严重的长尾分布,导致罕见疾病的分类器因为训练样本不够而导致泛化能力不强。(2):使用医生诊断作为输入语料,将icd编码问题视作多分类问题或序列生成问题,使用传统的机器学习或者深度学习方法构造多分类器或编码解码器。一些工作使用传统机器学习的分类器,k临近算法,贝叶斯独立分类器构建n分类器。但是由于长尾分布,导致罕见病的准确率不高。一些工作认为该任务是一个序列生成问题,即从医生诊断生成icd代码,使用seq2seq模型,使用bi-gru作为编码器和解码器,结合attention机制进行icd代码生成。序列生成在粗粒度生成时表现优秀,但是随着粒度进一步细分会导致更多的错误,而且医生诊断文本中的信息不如电子病历文本完整,在医生诊断中使用缩写词和同义词等情况下,也会对使用单一医生诊断的模型产生影响。


技术实现思路

1、针对现有技术中icd编码的层次化信息利用不足以及细粒度icd编码时容易出现错分导致icd编码精度较低的问题,本发明提出一种粗细粒度结合的层次化icd编码方法和系统,通过使用电子病历文本和医生诊断两种语料进行层次化icd编码,提高icd编码精度。

2、为了实现上述目的,本发明提供以下技术方案:

3、1一种粗细粒度结合的层次化icd编码方法,包括以下步骤:

4、s1:输入电子病历文本和对应的疾病标准名称;

5、s2:获取电子病历文本中的医生诊断,再对电子病历文本、医生诊断和疾病标准名称进行预处理;

6、s3:粗粒度筛选:对预处理的医生诊断进行第一词向量构建,并将第一词向量进行第一编码和第一解码,得到icd编码的前三位,获取对应的icd编码和疾病标准名称,作为候选项;

7、s4:细粒度筛选:将经过预处理的电子病历文本和s3输出候选项中疾病标准名称转换为对应的第二词向量序列并进行第二编码,再对第二编码结果进行相似度评分;

8、s5:将相似度评分最高的icd编码作为输出结果。

9、优选地,所述s2中,预处理步骤为:使用jieba分词脚本对电子病历文本、医生诊断和疾病标准名称进行分词、去除停用词和去除无用噪声。

10、优选地,所述s3包括:

11、s3-1:构建第一词向量,将经过预处理的医生诊断转化为词向量序列e=ed1,ed2,…,edn],edn表示医生诊断文本d的第n个第一词向量;

12、s3-2:将词向量序列e输入第一编码器进行编码,得到特征向量;

13、s3-3:将编码器输出的特征向量输入第一解码器进行解码,输出icd编码的前三位;

14、s3-4:获取icd编码的前三位之后,把对应的所有icd编码和对应的疾病标准名称抽取出来作为候选项。

15、优选地,所述s3-2中,第一编码器由6个相同的编码层构成,每一个编码层包括两个子层:自注意力层和位置感知前馈网络层。

16、优选地,所述s3-3中,第一解码器包括自注意力层和位置感知前馈网络层和第三子层,第三子层对第一编码器的输出执行多头关注,输出icd编码的前三位。

17、优选地,使用交叉熵损失函数来更新解码器,更新方式如下:

18、

19、公式(1)中,loss表示交叉熵损失函数;t表示解码的步数总量;表示正确预测对应的词的概率。

20、优选地,所述s4包括:

21、s4-1:构建第二词向量,将经过预处理的电子病历文本和s3中候选项中疾病标准名称步骤转换为对应的第二词向量序列和表示第m个电子病历第二词向量,w表示电子病历;表示第n个疾病标准名称第二词向量,icd表示疾病标准名称;

22、s4-2:对第二词向量序列e使用第二编码器进行编码,输出编码结果;

23、s4-3:使用多跳注意力机制网络从编码结果中获取电子病历文本和疾病标准名称的特征向量;

24、s4-4:对电子病历文本和疾病标准名称的特征向量进行相似度评分。

25、优选地,所述s4-2中,第二编码器的编码过程为:

26、

27、

28、

29、

30、

31、

32、公式(2)中,是电子病历文本前向传播lstm的输出;表示lstm前向传播;表示电子病历文本对应的词向量序列;表示是电子病历文本后向传播的lstm输出;表示lstm后向传播;表示疾病标准名称前向传播lstm的输出;表示疾病标准名称后向传播lstm的输出;表示电子病历文本第i步的编码结果;⊕表示向量的加操作;表示疾病标准名称第i步的编码结果。

33、优选地,所述s4-3中,相似度评分的计算公式为:

34、

35、

36、公式(3)中,sim(r,icd)表示电子病历文本和疾病标准名称的特征向量的相似度评分;r代表电子病历文本;icd代表疾病标准名称;k表示跳注意力网络的跳数;表示电子病历文本经过多跳注意力网络后的特征向量输出;表示疾病标准名称经过多头自注意网络输出的特征向量;

37、loss表示损失函数;m表示超参数,用于将正确的icd编码和不正确的编码隔离开;icd+表示电子病历文本对应正确的icd代码对应的疾病标准名称在经过多跳注意力网络后的特征向量输出;icd-表示电子病历文本对应不正确的icd代码对应的疾病标准名称在经过多跳注意力网络后的特征向量输出。

38、本发明还提供一种粗细粒度结合的层次化icd编码系统,包括:

39、数据预处理模块,用于从电子病历文本获取医生诊断,并对电子病历文本、医生诊断和疾病标准名称进行预处理;

40、icd编码粗分模块,用于对预处理后的医生诊断进行第一词向量序列构建,并进行编码和解码,得到icd编码的前三位,之后将属于该大类下的icd编码和对应的疾病标准名称抽取出来作为候选项;

41、icd编码细分模块,用于对预处理后的电子病历文本和疾病标准名称进行第二词向量序列的构建,再将第二词向量序列输入多跳注意力网络后进行相似度评分,选取分数最高的作为icd编码结果。

42、综上所述,由于采用了上述技术方案,与现有技术相比,本发明至少具有以下有益效果:

43、本发明通过使用有丰富信息的医生诊断作为粗分类的输入文本,进行icd代码粗粒度分类,可以得到很高的准确率,同时也能排除到大部分完全不相似的icd代码,也可以在一定程度上缓解长尾问题;

44、再使用多跳注意力网络关注到同一大类下相似疾病的不同部分,并加强其中权重,能够在最后多次相似度打分中得到更高的分数,实现icd细粒度编码的精确匹配机制,进一步提高了icd自动编码的准确性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1