Python 疾病诊断归一化

    在电子病历(EMR,Electronic Medical Record,也叫计算机化的病案系统或称基于计算机的病人记录CPR,Computer-Based Patient Record)中,同一疾病诊断的表示方式多种多样,这给后续的计算机识别某个疾病诊断造成了一定的困难。所以,归一化成了在许多医学NLP过程中的必须过程。

  • 疾病诊断归一化的通俗理解

    把多样化的、非标准的疾病诊断名称转化为标准、统一的疾病诊断术语。本文以ICD-10作为疾病诊断标准的术语体系。

  • 模型选择
  1. 疾病诊断特点:

a短文本;

b词汇长短差距大;

c数字、字母、特殊符号的含义的特异性;

d错字、错音的影响;

f标准词汇表表示范围的局限性。

  1. 模型:

模型一:textCNN

这是我选择的第一个模型,参数设置是常规思路(不细讲),效果比较差,f值60%左右。

思路:

    训练数据筛选+清洗之后,得到的训练集维度20w,标签不到1w,平均每10-50个训练数据对应一个标签(根据词汇长度确定),因为词汇短的诊断实在是没有多少数据。最后在5w测试集上进行测试,结果一言难尽。

问题原因:

    由于疾病的长短差距过大,导致训练数据特征的学习情况差距过大,很多数据特征由于训练数据较少而没有学习到,导致最后的分类结果不理想。

推荐指数:

不推荐

模型二:mac_bert

    参数设置是常规思路(不细讲),训练集应用的公共的医学训练数据(数据在github上有很多大佬分享),效果一般,通过调整参数,f值在75-85%之间。

思路:

    数据没有训练过程,因为训练数据实在是太麻烦了,需要花费大量时间和人力去搜集有意义的语料,所以我偷懒了,直接应用大佬训练好的东西。测试数据也是那5w条数据,通过调整参数得出的结果是有浮动的。

问题原因:

    由于公共的训练语料总是不能和你的业务上的需求一一对应,只有部分交集是你需要的东西,但是只是一部分。很多情况下,疾病诊断最需要的训练语料就是EMR,但是据我所知公共的训练集大都来源于百科、文献、文件等公开的数据,而EMR这个类型数据可及性太差了,所以导致训练效果也是差强人意。

推荐指数:

三颗星

模型三:注意力+BiLSTM+CRF

一言难尽,论文里的效果杠杠硬,我的效果比较抽象,f值85%左右。看模型设置的建议参考论文《An Attention-Based BiLSTM-CRF Model for Chinese Clinic Named Entity Recognition》

问题原因:

感觉NER和归一化还是不能完全共用一套模型的,只能借鉴一部分。

推荐指数:

四颗星

模型四:注意力 + BiLSTM + CRF + 规则框架

    你大爷还是你大爷,神魔东西都不如写死好使,上规则之后,效率提到95%左右,我感觉我又可以了。没有什么结果不是一个规则不能解决的,如果有,再来一个。

(规则设置框架很考究,咱们下期见)

推荐指数:

五颗星

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

医学小达人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值