基于大语言模型的中医医案命名实体抽取研究
2024-03-08李盼飞杨小康白逸晨李海燕
李盼飞 ,杨小康 ,白逸晨 ,李海燕
1.中国中医科学院中医药信息研究所,北京 100700;2.北京中医药大学中药学院,北京 100029
医案是中医记录和解析诊疗过程形成的临证文本,是中医著作的一种类型。医案是医家诊疗过程的真实记录,蕴含医家的思维过程及诊疗经验,是中医学术传承的重要载体之一。中医在几千年传承中积累的海量医案在当代中医学术传承创新中具有独特地位,是挖掘、总结中医诊疗思想与实践经验的重要知识来源,特别是人工智能、大数据技术更赋予了大规模、群体性医案更高的研究价值。大语言模型是一种由包含数百亿及以上参数的深度神经网络构建的语言模型[1],其展现出强大的对世界知识的掌握和对语言的理解能力,在自然语言处理任务中表现出色,可用来进行命名实体识别与抽取、问答、文本分类等任务。
本文通过中医医案与信息学的交叉研究,深入分析医案结构要素,构建医案信息模型,尝试通过大语言模型进行医案实体的自动化抽取,为医案结构化研究及大规模医案科学数据的抽取作出重要探索。
1 中医医案在人工智能时代的巨大价值
中医医案具有大数据属性,结合当前的人工智能、大数据技术,将突破传统的医案研究方法,开辟新的研究范式,从大规模医案中进行数据挖掘、知识挖掘、智能化赋能等研究,将进一步挖掘医案中的科学价值。借助当前计算机技术可以上升到历时性、群体性医案的研究,以某一病种、某一流派、某一理论、某一方药等为视角,从大量医案中获取有助于中医研究的成果[2-5]。中医医案包含了大量理法方药的综合信息,是一个蕴含庞杂信息、尚未完全开发的“大数据仓库”,运用数据挖掘技术与医案结合,可以进行用药规律、方证规律、证候相关性、证型分析、治则治法分析、证型预测等研究。运用知识挖掘方法与技术,可以从医案中构建丰富的语料库、知识库[6],服务于中医智能化发展。除显性知识外,医案中还蕴藏了大量隐性知识,这是中医传承中的关键信息,如潜藏于医案中的学术思想、诊断技巧、用药偏好,甚至是医德医风和治学作风等,借助人工智能技术将隐性知识显性化,这是基于医案的“道”“术”活态传承的核心内容[7],也是今后的研究热点。
此外,中医医案在当前人工智能时代的最大价值乃基于人工智能的临床辅助决策研究提供重要数据来源。医案中蕴含丰富的诊疗思维、诊断方法、诊疗过程、方证规律、方药数据等为辅助决策的建模提供了可靠的理论框架与数据支撑。如基于医案进行案例推理的辅助决策研究[8],基于医案构建知识图谱形成以知识驱动的辅助决策研究[9-10],基于医案结合大语言模型形成以数据驱动的辅助决策等。中医临床辅助决策是中医人工智能研究的核心任务之一,随着人工智能技术的飞速发展,基于海量医案的智能化研究必将中医医案研究推向新的高度。
中医医案研究也存在很多困境,医案是大量非结构文本,文本结构不规范,命名实体种类繁多,术语灵活多变,为抽取医案科学数据造成很大障碍。当前兴起的大语言模型在自然语言处理中表现优秀,为中医医案的命名实体抽取带来了极大便利,也为中医医案结构化研究带来可能。
2 中医医案格式演变及结构要素分析
2.1 中医医案格式演变概述
医案格式是指医案的书写形式,主要包括医案结构和医案要素[11]。医案结构是医案的组织形式,医案要素通过一定的组织形式联结形成医案。医案要素是指构成医案存在的基本单元,功能属性相近的要素组合成一个结构,众多结构联结形成医案。溯源医案的格式演变,可以更好地分析出医案的结构与要素。
《史记·扁鹊仓公列传》记载了西汉名医淳于意的25则“诊籍”,这是现存最早而且较为完整的医案[12]。诊籍中包括了患者姓名、身份、病史、症状、脉象、发病经过、诊断、病机分析、治疗、疗效和预后等内容,其中2则还有复诊记载[13-14],这些是最初的医案结构与要素。
北宋钱乙的《小儿药证直诀》载医案23则,基本遵循了一定的书写体例,反映了当时医案书写具有相对固定和较为完整的格式。北宋许叔微《伤寒九十论》是我国第一部医案专著,该书每个医案之后附有按语,这是医案结构发展的一大创新。
明代韩懋在其《韩氏医通·六法兼施章》中提出,医案书写应“六法兼施”,后来吴崑在《脉语·脉案格式》中提出“七书一引”格式,明末清初喻昌《寓意草》一书专门列出《与门人定议病式》一节,也提出了较为规范的医案格式。可见韩懋、吴崑、喻昌等试图提出医案的规范格式,基本囊括了古代医案所具备的结构与要素。3位医家对格式细目的划分已经体现出现今医案研究中知识元的形式,这在医案理论研究中具有重要意义。
晚清民国以来,西医传入,一些开明的医家主动接受西医,并将西医病名、西医诊断等内容纳入到医案中。1927年何廉臣为编纂《全国名医验案类编》,化繁为简,提出“新定医案程式”:一病者,二病名,三原因,四证候,五诊断,六疗法,七处方,八效果[15],其中已经收录了西医病名。张锡纯《医学衷中参西录》中的医案中已经记录了西医诊断。
建国后,以医院为核心的诊疗模式促进了传统医案的功能逐渐转变为医案和病历(或病案)2种形式并行,二者在形式上相似,但又有区别。病历常具有法律效力,医案侧重呈现辨证思路,常有按语点评,具有重要学术价值。从信息学角度来看,病历是临床记录的资料,属于数据范畴,而医案是诊疗记录的升华,具有知识的特点[16]。
2.2 中医医案结构要素分析
从医案的格式源流来看,医案的结构与要素是在发展的长河中逐步丰富与完善起来。历代医家也试图为医案统一格式做出努力,但由于医家所处时代环境、学识修养、个人偏好、书写用途等各异,迄今为止,医案的格式、内容、体裁、风格等仍有较大差异。这在客观上造成了医案文本的不规范与不标准,这也是医案现代化研究的最大障碍。尽管如此,在灵活多变的格式和内容中,医案仍具有相对稳定的结构与要素,这由医案本身的功能属性所决定。
医案的主要功能是记录临床诊疗思维过程,总结分析得失,因此,医案的基本结构与要素应包括患者情况、疾病情况、治疗情况、诊次、疗效等内容。经过深入分析古今医案的格式演变,并结合当前大量主流医案的结构,本研究认为标准、完整的医案应该具备8个结构:患者基本信息、病史、诊次、疾病表现、诊断分析、治疗方案、结局转归、按语点评。各个结构部分是由功能属性相近的要素组成,如疾病表现应包括:症状体征、舌象、脉象、理化检查等要素。见表1。
表1 中医医案结构与要素
3 基于大语言模型的中医医案命名实体抽取
3.1 中医医案信息模型构建
下游任务主要通过提示词与大语言模型对话进行医案实体抽取,需要在医案结构与要素分析的基础上构建医案的信息模型,进而研制出符合大语言模型对话逻辑的提示词。根据医案中的诊次信息,可将医案分为单诊次医案和多诊次医案。单诊次医案只记录1个诊次信息,信息模型相对简单;多诊次医案至少包含2个诊次,随着诊次的增多医案结构复杂程度也相应增加,信息模型也变得复杂,多诊次信息模型是在单诊次基础上重点体现出多诊次的结构特点。中医医案单诊次、多诊次信息模型见图1、图2。
图1 中医医案单诊次信息模型
图2 中医医案多诊次信息模型
3.2 医案实体抽取提示词设计
根据上文构建的医案信息模型,分别设计单诊次、多诊次2套对话提示词,经过多个大语言模型和反复对话测试,最终确定了适合各自任务的提示词。提示词主要包括执行任务说明、任务输出格式举例,用括号对提示词进行补充等。单诊次、多诊次实体抽取提示词见图3、图4。
图3 中医医案命名单诊次实体抽取提示词
图4 中医医案命名多诊次实体抽取提示词
3.3 调用大语言模型API进行医案实体抽取
医案实体抽取前,分别测试了当前几款主流大语言模型,如ChatGPT3.5、ERNIE-Bot 4.0(文心一言4.0)、ChatGLM2-6B(智谱清言)、Spark Desk(讯飞星火)、Baichuan2-13B(百川大模型)、Llama2-70B,结果显示:Llama2-70B无法很好理解提示词,最终影响结果输出;讯飞星火处理单诊次表现良好,但无法很好执行多诊次抽取任务;智谱清言和百川大模型处理单诊次表现良好,对于多诊次任务处理很不稳定,有些多诊次抽取良好,有些无法处理;文心一言4.0和ChatGPT3.5在分别在单诊次、多诊次医案实体抽取中表现优秀(以上测试结果截至2023年12月31日)。考虑到医疗数据安全等因素,最终选择调用文心一言API进行医案批量化实体抽取。
抽取前,首先对所收集的医案PDF文件进行OCR处理,对于OCR出现的文字错误进行改正,对于排版错乱、书口(或天头、地脚)与正文无关文字的窜入进行排版和删除,校对无误后存为Word文档;其次,根据医案中出现的复诊、二诊、第二诊、再诊等能体现出多诊次信息将医案分别区分为单诊次、多诊次医案;最后为了批量化处理中机器能够识别出每份医案的界限,将每份医案之间使用隔离符分隔。
抽取时将提示词编入代码,调用文心一言API进行自动、批量化抽取。抽取后的医案实体输出为TXT文件,为保证抽取质量,将抽取结果与原文进行人工校对,抽取遗漏的内容则补充,过度抽取则删除,大语言模型自行补充的内容也删除,确认无误后保存。
大语言模型抽取单诊次医案实体结果示例如下:
姓名:项某某
性别:女
年龄:47岁
职业:未提及
住址:未提及
症状体征:胃脘疼痛,每遇寒或饮冷而发,发则疼痛牵及背部,绵绵不已,甚或吐酸泛漾,大便溏泄
舌象:苔白
脉象:脉迟
理化检查:未提及
中医病名:胃脘痛
西医病名:未提及
病机:寒邪内侵,胃阳不足
证型:脾胃虚寒证
治则治法:温中散寒,止痛和胃,扶脾止泄
方剂名称:乌头赤石脂丸
加味药物(含剂量):制川乌9 g,炒白术15 g,川椒9 g,高良姜9 g,干姜12 g,制附子9 g,炙甘草9 g,党参15 g,煅瓦楞子30 g,赤石脂30 g
煎服方法:上药各研细末,和匀再研极细。每日服2次,每次1.5 g开水吞服
其他治法:曾温灸中脘而得缓解
禁忌:未提及
结局转归:服药后胃痛明显减轻,少发,大便亦成形,后再续服1料而痊愈
既往史:未提及
现病史:胃脘疼痛,每遇寒或饮冷而发,发则疼痛牵及背部,绵绵不已,甚或吐酸泛漾,大便溏泄。曾温灸中脘而得缓解
按语点评(医案中的原文):《金匮要略》谓:“心痛彻背,背痛彻心,乌头赤石脂丸主之。”本方以该丸加参、术、甘草、瓦楞子以温中、散寒、止痛、和胃、扶脾、止泄。煅瓦楞子治脘痛泛酸颇有功效。本例丸方,经随访,服药后胃痛明显减轻,少发,大便亦成形,后再续服1料而痊愈
大语言模型抽取多诊次医案实体结果示例如下:
姓名:康某
性别:男
年龄:65岁
职业:未提及
住址:未提及
诊次:初诊
症状体征:胃脘痛,每于夜间饥饿时痛剧,不能入睡,吞酸灼热,手足心热,便秘
舌象:舌尖赤苔白少津
脉象:脉滑
理化检查:经某医院X线透视及内镜检查诊断为十二指肠球部溃疡
中医病名:胃痛
西医病名:十二指肠溃疡
病机:胃腑实热
证型:未提及
治则治法:通腑泄热
方剂名称:小承气汤
药物(含剂量):大黄15 g,厚朴15 g,枳实15 g,黄芩15 g,黄连10 g,吴茱萸5 g
煎服方法:水煎,日1剂,分2次服
其他治法:未提及
禁忌:未提及
诊次:二诊
症状体征:大便通、日行1次、稍稀,胃脘未痛,吞酸灼热大减
舌象:未提及
脉象:未提及
理化检查:未提及
中医病名:胃痛
西医病名:十二指肠溃疡
病机:胃腑实热(同初诊)
证型:未提及
治则治法:继续通腑泄热
方剂名称:小承气汤(同初诊)
药物(含剂量):大黄7.5 g,厚朴15 g,枳实15 g,黄芩15 g,黄连10 g,吴茱萸5g
煎服方法:水煎,日1剂,分2次服(同初诊)
其他治法:未提及
禁忌:未提及
诊次:三诊
症状体征:大便畅通、日行1次,诸症消失
舌象:未提及
脉象:未提及
理化检查:X线复查溃疡消失大半
中医病名:胃痛
西医病名:十二指肠溃疡
病机:胃腑实热(同初诊)
证型:未提及
治则治法:未提及
方剂名称:未提及
药物(含剂量):未提及
煎服方法:未提及
其他治法:未提及
禁忌:未提及
结局转归:后经X线复查溃疡消失大半,半年后复检已全部消除而愈
既往史:未提及
现病史:未提及
按语点评(医案中的原文):本案辨证当属中医“胃痛”一证。患者表现为吞酸灼热、手足心热便秘、脉滑、舌尖赤苔白少津等一派热象,可知属胃腑实热,一般喜用制酸之剂乃治标之方,非治本之图也。必须用大黄以泻热,方用小承气汤泻热通便,为有的放矢之举,故奏效甚速。治疗此类疾病张琪教授常用小承气汤,或半夏泻心汤加大黄下夺其热,热除则痛止
本研究最终以Excel2021文件作为医案实体数据集的储存形式。数据集构建时,将TXT文件中的半结构化的实体信息通过代码自动化转换为Excel文件,主要检查是否存在串行或遗漏,审核无误后保存,以供后续深入研究。
4 基于大语言模型的中医医案文本结构化工具开发与应用
以上实体抽取过程涉及大量编程工作,为便于医学相关研究人员掌握大语言模型对医案的实体抽取,本研究基于以上操作流程,设计和开发了基于大语言模型的中医医案文本结构化工具,见图5。
图5 基于大语言模型的中医医案文本结构化工具
目前该工具1.0版本分为登录及用户管理模块、大语言模型常用配置模块、任务管理模块和项目管理模块。登录及用户管理模块主要用于用户的系统登录、用户管理、密码修改、安全配置、退出登录等功能;大语言模型常用配置模块主要实现根据抽取任务的不同配置不同的提示词,择优调用大语言模型API,及API的分配与管理;任务管理模块用于医案实体抽取过程的执行与管理,主要实现抽取任务的新建、待结构化文本的上传、抽取任务的执行、抽取结果的校正、结构化文本的输出(TXT文本和Excel文件可供选择)等功能;项目管理模块主要实现对多人参与的结构化文本任务进行管理,由负责人建立项目,分配给子管理人员进行各自任务管理与处理,子管理人员还可再分配给下级人员进行任务处理。
该工具为中医医案相关研究人员实现了基于大语言模型中医医案命名实体的自动化抽取,降低了非计算机人员调用大语言模型接口的门槛,加快了医案结构化处理的过程。该工具还可根据医案文本特点、提取实体的种类与特点,选择适用的大语言模型和提示词,灵活服务于医案结构化处理。
5 结语
本研究在回顾中医医案格式演变过程、分析医案结构要素、构建医案信息模型的基础上,设计了基于大语言模型医案实体抽取的提示词,成功探索出基于大语言模型的医案命名实体的自动化抽取过程,最终开发出医案文本的结构化工具,为中医医案结构化研究、大规模中医医案科学数据的抽取探索了可行路径,为基于中医医案的人工智能研究奠定数据基础。