Python在名医医案数据挖掘平台中的运用

数据收集与清洗

Python 能够使医案在收集数据、保存数据时节省更多人力物力,可操作性更强。TCMISS 平台在运用时界面友好、易学易用,但由于其是一个封闭系统,无法将 Word 格式的电子病历直接导入,需要将病历的内容一一键入到系统当中才能够进行分析,在实际工作过程中会耗费大量时间和精力。而 Python 是个很完整的语言和平台,运用 Python 语言,几分钟之内即可将数千份电子病历转存成为数据库数据格式,因此在基于 Python的名医医案数据挖掘平台中,不需要一一键入病历,而只需要整体进行导入,直接生成数据表,并可以随时保存、下载数据表,同时也能够与Python自带的应用模块及其他平台相连接。

噪音信号和缺省数据处理是数据挖掘中很重要的过程,当缺失比例很小时,可直接对缺失记录进行舍弃或进行手工处理,但在实际数据处理工作中,由于临床工作量庞杂,时间有限,电子病历的录入难免存在缺项漏项,缺失数据往往占有相当的比重,这时如果手工处理非常低效,使用 Python语言构建数据挖掘平台,即使存在个别缺项漏项也不影响其他电子病历的生成,而在所生成的CSV数据表中缺项漏项又很容易识别,利于及时修正、补充。

运用 Python编写程序非常灵活,可根据实际的需要来进行数据清洗。例如许多名老中医由于个人习惯等特殊原因,对于个别药品的写法与现行标准有差异,以蒋益兰教授医案为例,由于门诊量大,时间有限,蒋益兰教授习惯将“肉苁蓉”写为“大云”,因此在录入电子病例时,可出现同一味药物却有两种甚至更多的不同写法,但在 TCMISS平台中,必须严格按照药典录入药物名,更无法识别药物别名,而运用 Python 语言构建数据挖掘平台,通过制作中药别名数据表,再利用Python编入程序,这样的问题即可轻易解决。

运用 Python语言构建数据挖掘平台灵活开放,允许研究者根据实际需要选择病案数据库中的处方生成形式,选择将处方显示为某方加减或直接显示药物。不少名中医在开具处方时往往习惯写明汤头,如某某方加减某某药物,既减少了临床工作量,又能方便学生学习遣方用药的经验,也有利于后期对名中医经验方进行研究和挖掘。本应用平台构建时,处理处方加减问题运用的是 Python 的正则表达式,以“健脾消癌方去白术加沙参10g”为例,在平台前端录入“健脾消癌方去白术加沙参10g”后,后台会将“健脾消癌方”作为一个固定的数列,并利用 Python切割“去白术加沙参10g”,使平台分别执行去掉白术、加沙参10g的药物加减。

Python的字典结构处理药物剂量的优势

运用 Python 的字典结构在中医药数据挖掘中具有天然优势,字典结构的特点使 Python能够呈现药物与克数对应的逻辑关系,同时允许同一药物存在不同剂量,成功解决了R语言、C++、TCMISS等无法将药物与其剂量联系起来的难题。

影响中医疗效的关键因素除辨证论治、方剂配伍、中药药性及药材质量以外,与方药的用量有着密切的关系,也是名中医经验继承的重点、难点所在,正所谓“中医不传之秘在于药量”。因此,科学地阐释方药量效关系及其影响因素,对于提高中医方药的临床疗效、促进名中医经验继承具有重要的意义。目前,关于中医药经验继承方面的研究鲜少涉及中药剂量的分析,导致这一研究短板的主要原因在于其他大部分计算机语言,包括医学中常用的R 言,所运用的数据结构都是列表结构。一般来说,列表就是一些元素的集合,其中每个元素都是独立的,这样的数据结构只能够将所有药物置入集合内,却无法体现药物克数的加减变化。以麻黄汤为例:麻黄 9 g,桂枝 6 g,杏仁6 g,甘草3 g。以数据的角度来看,药品和克数是两组列表,但它们之间又是相关联的,同时其中的每一味中药是唯一的,一副方剂中不可能出现两个相同的药,而剂量则是可以变化的。单纯使用两个列表来保存这组数据,无法记录两组数据之间的关联关系。而Python除了列表结构外,还具有另外一种字典结构,它用于存放具有映射关系的数据。字典的每个“键(key)”都与一个“值(value)”相关联,用放在花括号“{}”中的“键-值”对来表示。Python 还规定了“键”必须是唯一的、不可变的,但“值”则不必,“值”可以取任何数据类型,如数字、字符串,也能进行运算,格式如下所示:

d = {key1:value1,key2:value2}

这一结构能够恰好对应中药处方中的药物,如蛇舌草10 g和半枝莲15 g,药物“蛇舌草”、“半枝莲”相当于“键”,是唯一的,而剂量“10”、“15”作为“值”,是可变的,例如:d= {蛇舌草:10,半枝莲:15}同时,不同字典间还能够进行对比比较、聚类分析及关联规则分析等数据分析工作,例如麻黄汤是一个字典,桂枝汤也是一个字典,可以通过数据分析比较两方中麻黄剂量在各自方剂中的占比等等。

字典结构的存在使 Python 比起其他计算机语言更加适用于中药处方的数据整理,能够为进一步研究药物加减变化规律做好重要的前置工作,例如在研究医案中药物剂量变化的基础上,可以进一步分析治实药、补虚药之间的关系;分析不同归经药物之间的权重关系;分析药物剂量变化的影响因素,如季节气候变化对寒热药物用量的影响等等。一直以来中药处方的加减变化都是学习名中医经验的难点,更是中医继承和发展的关键,凭借 Python的字典结构在中药剂量整理方面的优势,打破中医“秘而不传”之桎梏或许指日可待。

支持更加丰富的数据分析

相比于其他算法,基于 Python语言建立的数据挖掘平台能够进行更加丰富的多方面综合数据分析。TCMISS平台提供的分析方法有证候分析、方证分析、穴位分析等,虽然能够满足常用的分析需求,但随着中医药信息化的不断深入,所需要的分析方法越来越专业化、个性化、复杂化,往往需要借助更多的算法、更多的数据分析平台。Python的科学计算与数据分析扩展库系统而丰富,其中最为经典的是Num Py、Pandas和 Matplotlib,它们分别为 Python提供了快速数组处理、数值运算以及绘图等功能。

Num Py、Pandas扩展库可以完成基本的中医药数据频数统计分析,借助 Github 上托管的 Apriori 算法、K-means 算法源代码完成关联规则与聚类分析,通过Matplotlib将数据统计分析结果以图表的方式呈现出来,因此运用 Python搭建的数据挖掘平台可以快速的进行中医药数据分析,除了连接 Python 自带的扩展库外,也可以运用其他软件进行更复杂多样的数据分析,最终数据库可以是 Excel 表格、CSV 数据、SQL 数据,可以将数据从 Python 搭建的分析平台中导出,根据需要在其他平台进行分析,例如张宾等学者将周仲瑛教授医案整理为Excel表格后,应用R语言进行频数统计分析,处方药物使用 SPSS22.0进行因子分析,采用 IBM SPSS Modeler 18中的Apriori算法进行关联规则分析。同时,可供分析的项目也更加广泛,不仅可以进行中药用药频次的频数统计分析来探索名老中医诊疗相关疾病的核心处方,还可以分析患者基本信息、四诊资料、理化指标、药物的性味归经之间的关系,深入探索名中医临证诊疗策略。

本应用平台相比于 TCMISS 平台,新设了医案中药物的性味归经分析模块。中药性味归经是中医药理论的重要组成部分,是中药防治疾病的主要特色,将名中医医案中所使用药物的性味归经规律作为经验继承的重要内容,不仅有利于深入研究名医的用药心得,还能大力促进现代中医临床中药药性理论研究的发展。根据规范中药的药性、药味、归经后,录入现有的病案资料后进行分析,得出蒋益兰教授治疗肺癌的医案中药物的药性、药味频次、频率。

对接中医药领域其他人工智能技术

人工智能由计算机科学、信息学、语言学、哲学等多学科知识汇集的基础上发展而来,集新思想、新理论和新技术于一体,现广泛应用于机器人、语言识别、军事等各个领域。目前人工智能在中医诊疗技术的应用主要集中在基于文献数据的挖掘、现代中医诊断技术的研究等方面。

Python 强大的功能及其丰富的扩展库,以及它开源、免费、简单、易学等诸多优势,使其成为目前人工智能开发的主流语言。在中医学领域Python 不仅可以运用于名中医医案数据挖掘中,它在其他人工智能技术方面的运用也逐渐兴起,比如疾病诊断、辨证分析、处方用药、文献研究、临床数据采集与分析以及药物管理等等,如:韦昌法等人根据中医数字辨证模型对医案的需求,设计了中医数字辨证配套医案智能采集与分析系统,利用人工智能技术和 Python编程技术实现了医案采集、医案展示、医案检索、数据统计分析及可视化等功能;李钼石等应用Python 开发面向Web的中医慢性疾病数据挖掘应用系统,应用于中医慢病患者的健康状态预测、疾病风险评估等场景;而且有学者在运用Python优化证素辨证心系疾病诊疗系统的研究过程中提出,基于 Python自然语言处理的文本分类研究,在处理在错综复杂的中医古籍、医案、临床数据、指南等资料中进行数据挖掘有着至关重要的作用。Python语言可以参与多种中医药发展所需的人工智能技术的实现,推广应用 Python语言能够连接这些散在的人工智能技术,形成一个综合的信息化、数据化中医药体系,涵盖诊疗、学术、应用等诸多方面,是中医药信息化发展的有力支撑,同时也能在中医药领域与其他领域之间实现高效的数据交互和信息沟通。

本站 [ 羽儂医话 ] 内除注明转载文章,均为本人独立创作,采用「CC BY-NC-ND 3.0」创作共享协议。
原创不易,欢迎保留原文链接转载,原文链接:https://yunong.me/1474.html
THE END
分享
二维码
打赏
< <上一篇
下一篇>>