基于自然语言处理的临床合理用药知识图谱构建
随着科学的进步与时代的发展,知识的爆炸式增长对医师工作提出了严峻挑战。药物的多样性和患者不同的病理特点使药物治疗复杂化,多种因素都会对用药种类和剂量产生影响,单靠医师的个人判断力往往不够。传统合理用药系统中药学知识库主要依靠专业人员手工构建,人力成本较高,但知识库准确度不高,无法满足院内电子处方审核的要求[1-3]。
药品说明书是药品说明的重要来源之一,也是医师、药师、护士对患者治疗用药时的科学依据。由于药品说明书是由没有计算机背景知识领域内专家制定编写的,其文本都是无结构的自然语言形式的自有文本,因此增加了机器理解的难度。药品说明书中的医疗实体识别和关系抽取是一个复杂的问题,尤其是药物的用法、用量、适应症和相互作用[4-5]。知识图谱由于包含了丰富的语义信息,故可以将海量知识以更直观的方式展示在用户面前。目前已有一些学者对基于国内外药品说明书所有药物实体关系(包含给药途径、重复用药、药物相互作用、适应症、不良反应、禁忌症、老年用药、儿童用药、妊娠用药等)构建的“药物-诊断-临床”诊疗数据形成的知识图谱进行了研究[6-7]。如上海曙光医院构建的中医药知识图谱[8]、本体医疗知识库 SNOMED-CT[9],IBM Watson Health等应用近2年也开始进入人们视线。现有技术中虽然已有药品知识图谱的构建方法,但大量知识图谱都是依靠人工或正则表达式规则提取结构化数据构建。人工方法提取的结构化知识虽然比较精确,但是人力消耗大、花费时间较多,并且人工长时间操作因容易引起疲劳而造成误差;基于正则表达式规则的方法依靠机器,虽然比较节省时间,但是正则方法只适合简单的规则,针对中文的复杂情况,正则表达式的误差会比较高。
目前医学实体的抽取方法主要有基于医学词典及规则的方法[10]、基于医学数据源的统计学[11]和机器学习方法与深度学习方法3类[12-13]。机器学习方法以及深度学习方法通过使用统计学和机器学习方法,结合医学数据源的特点训练模型,进行实体识别。目前传统机器学习方法有隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场模型(Conditional Random Field,CRF)、支持向量机模型(Support Vector Machine,SVM)等,深度学习方法有BiLSTM、BiLSTM-CRF、BERT等[14-15]。在医学领域,命名实体识别的痛点在于数据质量的良莠不齐以及人工标注的专业性要求高。目前有关于如何降低对数据标注依赖的研究,其原理主要是利用海量未标注数据持续提升模型性能,从小样本中进行学习,自我探索逐步学习新知识,形成一个交互学习过程,但效果都不理想。
综上所述,药品说明书中的医疗实体和关系抽取是一个复杂的问题,尤其是药品的用法、用量、适应症和相互作用。随着人工智能技术的发展,知识图谱、医学命名实体识别、图像识别等方法已成为人工智能医学领域应用的基础技术。药品说明书由于其格式不一、种类繁多,如何采用智能化手段结构化药品说明书,自动抽取说明书中的药学实体和关系构建合理的用药知识图谱,并基于知识图谱提供临床用药决策支持成为了关键问题[16]。
1材料与方法
1.1 材料来源
本文构建药品知识库的数据来源于我国国家食品药品监督管理总局、美国食品药品监督管理总局(Food and Drug Administration,FDA)及江苏省人民医院(以下简称“我院”)的院内药品库。借助python语言,开发爬虫程序,进行药品说明书的抓取,解析之后存储到本地数据库中。从国家食品药品监督管理总局获取了21 000条药品数据,从美国食品药品监督管理总局获取了18 645条药品数据,从我院院内药品库获取了1 827条数据。
1.2 方法
基于机器学习算法,由药学专家总结归纳出完整的药品实体和关系,构建基于药品说明书的合理用药知识图谱,提高合理用药知识图谱构建自动化程度和精度,保障患者用药安全。
具体流程见图1。
图1基于深度学习构建药品知识库的流程
利用互联网搜寻可靠、权威的医疗数据来源,按照疾病所属用药利用多线程技术分段爬取全部数据,保证涵盖全部药品大类内容,并在数据爬取过程中分析包括药物间相互作用、适应症、禁忌症、用法、用量等数据结构。
按照药理学分类对爬取的说明书进行分类整理,并随机抽取包含抗高血压类、抗生素类、抗肿瘤类等500份药品说明书用于人工标注。