应用

技术

物联网世界 >> 物联网新闻 >> 物联网热点新闻
企业注册个人注册登录

谈谈人工智能与数据治理:我们的系统为谁而建?(下)

2019-04-08 09:32 e医疗

导读:在真实的场景下,NLP后的数据业务应用,由于准确率的问题还是需采取“人工智能+人工审核”的方式来做到双重保险。

AI+大健康;AI+医疗;人工智能,NLP


【编者按】在真实的场景下,NLP后的数据业务应用,由于准确率的问题还是需采取“人工智能+人工审核”的方式来做到双重保险。

本文发于e医疗,作者:孙立峰;经亿欧大健康编辑,供行业人士参考。


自然语言处理(Natural Language Processing,NLP),是指人与计算机之间,通过“说人话式”语言进行有效通信的各种技术和方法。由于语言的复杂性,处理的过程会涉及“理解”,因此NLP被认为距离人工智能最近的任务,也被称为“人工智能的皇冠”。

毕竟我们“人说人话”有时候都很难,更别说计算机了。

从临床科研平台信息化建设的发展历程看,要想解决数据的完整性,就要通过ETL对多源多模态的数据进行整合,也即整合不同厂商的DB,而且有些因为更换系统原厂商已经不再为医院提供服务。一家医院可能主流的数据库ORACLE、SQLSERVER、MYSQL、DB2都有在用,市面上还有后关系型数据库Caché。更换系统后,解决数据完整性的问题,需要对历史数据、生产数据全面整合。这也是为什么医疗公司的程序员们越来越吃香,被数据治理AI公司招揽得越来越多,到甲方工作的也越来越多——需求摆在那里,甲方给的待遇也越来越高了。

数据完整性的解决,也是为数据仓库生成高质量后结构化数据的过程,NLP就是在这个过程中发挥作用,通过拆解语义元素分词(区分鱼和虾),命名实体识别(确定这条是鱼,那支是虾),句法分析,语法分析,解决数据结构化问题;然后通过术语网络,将数据标准化、归一化,解决数据标准化(鱼是鱼、虾是虾)问题。通过医学知识图谱的关联和推理,解决基于医学知识的推断问题,构建患者画像,在科研应用、辅助诊疗、真实世界研究等方面才能深度应用。

数据的结构化是怎样炼成的

(1)分词

对于机器学习来说分词本质上是一个分类问题,例如:武汉市长江大桥,机器可以理解为:武汉_市长_江_大桥,武汉市_长江_大桥等等,机器会判断一个字在一句句子中是作为词的起始字(B),词的中间字(I),词的结尾字(E),还是一个单字词(S),这样就需要对文本进行标注,通过机器学习算法预测某些上下文的时候,判断某个字作为BIES四个类别中哪一个概率最高,最后通过BIES的识别完成分词。

(2)词性与关联识别

一句检查报告的放射学表现:右侧胫骨髁间突骨端边缘见骨质增生变尖,关节在位、关节间隙未见狭窄,未见骨质破坏及异常软组织影。

我们要知道“右侧”是方位,“胫骨髁间突”是身体结构,“骨端”、“边缘”是局部位置,“增生”、“变尖”是描述;我们要知道“右侧+胫骨髁间突”是身体结构方位的限定,“骨质+增生”是身体结构的变化。

命名实体识别(NER)就是从文中识别出命名性指称项,属于什么实体类别:疾病、检查、治疗、指标、症状、身体部位……

命名实体关联提取(NERE)就是对上一步得到的命名实体进行处理,把存在关系的部分用关系类别(包括:限定关系、修订关系、因果关系……)将他们联系起来,然后进行语义依存分析。

术语标准化与知识图谱

标准的应用是很难的一件事情,比如ICD-10。最早是病案科(室)专业的编码员去编码,随着电子病历的推广,有些医院前移到临床医生填写、编码员审核,有些公司CIS系统还开发了俗名诊断与ICD编码的映射关联。

如医生可能写:二型糖尿病、II型糖尿病、2型糖尿病、非胰岛素依赖糖尿病,系统都自动关联到E11.952这个ICD编码,但这各对照工作费事费力也会存在遗漏与偏差。这就需要术语标准化将数据归一化。

同时我们还想知道糖尿病是内分泌疾病,糖尿病是代谢性疾病,糖尿病是胰岛功能紊乱,这就需要构建强大的术语网络建立知识图谱。

术语集如疾病库和临床发现库基于SNOMED-CT、MedDRA、ICD-10、ICD-9-CM-3、RadLex、CMeSH,如药品和检验库,基于CFDA药物信息和LOINC,同时还需要储备大量的术语资源库,将各术语库内部关联,根据分类、逻辑以及临床习惯分类,如影像与疾病库的关联、检验库与疾病库的关联等等。

利用自然语言处理、术语标准化、医学知识图谱三大核心技术,解决医学数据完整性、医疗数据标准化、医学与算法融合的三大医疗数据利用的核心问题。这样,高质量的数据就可以深度应用。

如智能检索。基于自然语言处理引擎结构化和标准化以后的后台数据进行搜索,因此能处理同一概念不同表述形式、否认、指代等关系,以及对某一报告中数值型变量进行搜索,这些功能通过常规搜索方案是完全无法实现的。

例如“先天性心脏病”的搜索,同上面“非胰岛素依赖糖尿病”的例子一样,除了能检索到使用“先心病”、“先天心脏畸形”、“先天性心脏异常”等不规范书写诊断进行表述的患者,也能搜索所有属于“先天性心脏病”的子概念,例如“室间隔缺损”、“完全性大动脉转位”、“双心室”等,极大的强化了查全率。

再以上面讲的ICD编码为例,理想的ICD自动化编码,至少需要从病案首页、出院小结、病理报告和手术记录四种文本源中寻找编码依据,并按照符合ICD_10的标准编码规范逻辑进行诊断信息编码。因此,一个NLP自动化编码不但需要对文本信息抽取,还需要对知识和逻辑进行管理,最终整合产生输出。

有多少人工,就有多少智能

上面说了百度NLP在鉴黄语言的应用,百度和腾讯都有AI开放平台,开放的技术引擎有:OCR(在医疗应用的如身份证OCR、手写病历OCR等)、人脸识别(身份验证、医保刷脸支付等)、图片识别、自然语言处理等。

为什么BAT免费开放NLP技术引擎,还会涌出这么多专注于NLP的医疗公司呢?这就是一般NLP和医学NLP的区别。医学语言的沟通本身除了涉及大量的医学术语、缩略语、简称,还涉及医学知识和逻辑,因此很多时候医生书写的内容,不是专业人士可能几乎看不懂,更不用说计算机了。

为了实现利用NLP进行信息抽取,需要在常规NLP流程的每一个步骤进行针对医学的调整。需要处理医学的词、医学的句子、医学的词与词之间的关系,让计算机沿着医学逻辑推理信息;需要针对全科室病历、专科病历、专病病历、检查报告、病理报告等不同类型文本均衡抽样,在金标准数据集的基础上进行医学语料训练,各种算法针对不同业务场景进行分词。

决定NLP算法性能的是医学文本标注的“质”与“量”。“量”由不同的样本解决,同时因为每个人对文本的理解不同,其存在最大的问题就是同一份文本标注的不一致,所以需要一套标准的分层标注流程——分段→分词→实体分类标注→简单关联标注→复杂关联标注→检查修改→最终标注审核——来解决“质”的问题。

当然,“量”也需要有“质”的“量”。

病历不同于一般的自由文本,其中的挑战就是文中没有实际指出但隐含的概念,另外中国语言博大精深,临床叙事中呈现的信息是无结构的、无语法的。所以文本标注体系复杂,非常依赖医学专业支持,标注成本极高。一份病历的标注就需要兼职(医学院即将毕业的大学生)、专职(医生)多人去完成。

广为流传的故事,当年旧金山挖金子的没赚到钱,卖水的赚了大钱。而一个叫布瑞南的商人,因为要卖锹,去吆喝金子,最后他的锹卖出去了,金矿也被开采出来了。所以在如雨后春笋般成立的人工智能公司(“挖金矿”)的背后,催生了一批靠做标注生存的小公司(“卖水”),当然也有公司兼做标注和医院联合做科研。只是现在的医疗AI市场,还处于“叫好不叫座”阶段,有时还要“羊毛出在狗身上,猪来买单”。

在和医院交流的时候,被问到最多的一个问题还是自然语言处理准确率的问题:99%的准确率,那1%是否还需要人为100%再去校验一次?

由于技术限制,自由文本机器提取的数据肯定存在误差。是要“准”还是要“全”,要根据实践来平衡——如是临床研究数据采集,答案肯定是“是”,因为临床数据的录入原则上是要接受双重或多重核查机制的,要的是“准”;如果是智能检索,系统需要的是缩小人工检索符合标准的范围和数量,需要的是“全”。用机器一次性解决问题的方案目前还不存在。

也就是说,在真实的场景下,NLP后的数据业务应用,由于准确率的问题还是需采取“人工智能+人工审核”的方式来做到双重保险。