面向精准交互的智能预问诊模型研究
2023-10-09王培培
余 骞 王培培 刘 炜,3*
1(广州科技贸易职业学院信息工程学院 广东 广州 511442)
2(郑州大学互联网医疗与健康服务河南省协同创新中心 河南 郑州 450052)
3(郑州大学软件学院 河南 郑州 450002)
0 引 言
2018年4月,国务院办公厅发布《关于促进“互联网+医疗健康”发展的意见》,对互联网医院提出多项鼓励政策;2018年8月,国家卫健委和中医药管理局联合制定《互联网诊疗管理办法(试行)》《互联网医院管理办法(试行)》《远程医疗服务管理规范(试行)》三大指导性文件,进一步明确了互联网远程医疗在实际运行中的操作规范和办法。2020年5月,国家卫健委印发《关于进一步完善预约诊疗制度加强智慧医院建设》的通知,要求加强智慧医院建设,推动互联网诊疗与互联网医院发展,加快建立线上线下一体化的医疗服务新模式。至此,基于互联网的在线诊疗服务进入快速发展阶段。
然而,作为互联网诊疗重要参与方的患者,存在医学专业知识严重不足、对自身病情缺乏全面了解、在线自主选择医生时无从下手等诸多问题,这在很大程度上影响了患者的就医体验,制约了互联网诊疗的推广实施。
本文基于对以上问题的深度分析及对某三甲医院互联网诊疗现状的充分调研,从“优化互联网诊疗流程,提升以用户为中心的个性化主动医疗服务体验”的角度出发,通过在互联网诊疗中增设基于分词和权值相似度算法实现的智能预问诊模块,创新性地改进和提升互联网诊疗的方式及效率。
1 研究现状
围绕智能预问诊模块及与其相关的中文分词和相似度算法,研究者们从不同视角进行了探究,研究方向主要基于以下三大层面:
1) 智能预问诊方向。穆雨涵[1]以智能预问诊的发展为视角,阐述了智能预问诊在导诊过程的具体应用;王若佳等[2]从机器学习的角度出发,为问诊后的智能分诊提供了研究方向;张崇宇[3]提出了基于知识图谱构建与自动问答的系统解决方案,完成了医疗辅助问诊服务;薛芹等[4]提供了以“微信公众号”为载体的智能问诊模型搭建;Nie等[5]从6家互联网医院的建设和运营模式出发,阐释了互联网诊疗的多元理念;陈志豪等[6]基于注意力机制和字嵌入的多尺度卷积神经网络建模方法,分析问答对语义关系,实现中文医疗问答的匹配,奠定预问诊的底层结构基础;孔鸣等[7]以人工智能为导向,分析了其在诊疗中的辅助作用;刘建华[8]以广东省第二人民医院互联网医院为实例,强调了AI问诊系统在互联网问诊前的应用。
2) 中文分词方向。成于思等[9]提出统计与词典相结合的分词方法,完善词典构建流程;Fu等[10]通过中医术语词库的构建及标注,实现了对中文古籍分词;Zhao等[11]提出条件随机场分割模型,描述影响分词的字符特征和条件熵特征,实现汉语分词;Li等[12]利用胶囊滑动窗口提取特征,构建胶囊的中文分词模型,开发了中医古文分词器。
3) 相似度计算方向。纪明宇等[13]研究金融领域中智能客服的句子相似度,构建词性纠正模型,减少中文歧义词及分词错误;徐鑫鑫等[14]利用训练好的词和句向量构建特征权重系数,提出基于联合词句的文本相似度算法。
以上不同视角的研究及案例并未将基于医学专业词典的智能预问诊与在线诊疗结合,亦未区分专业词汇的权值问题。本文将使用扩充的中文医学专业词典,利用基于分词和权值的相似度算法改进智能预问诊模型,验证改进算法对智能预问诊效果的提升,同时将预问诊模型与互联网诊疗实际场景融合,研究智能预问诊的现实意义。
2 智能预问诊模型
智能预问诊模型以国家诊疗指南为内核,模拟临床医生诊疗思维,在患者挂号后,医生接诊前,利用互联网、自然语言处理和人工智能等相关技术,通过智能引导式问诊,帮助医生规范、全面采集患者的症状、体征、病史等疾病信息,结合中文医疗对话问答对库为患者提供诊疗意见和建议,实现诊疗流程的优化配置。
本研究汇集整理了近八万条医疗咨询问答对,建立疾病诊断的知识图谱,当用户输入关键字、自然语言短语或者句子时,智能预问诊模型通过对中文医疗对话问答对库自动精准搜索,进行相关答疑与多轮交互,引导式地采集患病信息。如询问患者的既往病史和过敏史等,询问结束后,选择最佳解决方案反馈给患者,匹配就诊科室和专业医生,并按照病历书写规范完成一份预问诊报告,及时传输至互联网医院平台。
本文基于现实的互联网诊疗场景,依托中文医疗对话库匹配模块、用户自然语言处理模块和问题输入输出模块等,植入智能预问诊模型,实现智能语义匹配,使智能预问诊融合到互联网在线诊疗的整个过程中,具体框架如图1所示。
图1 模型框架
智能预问诊模型形成了“诊前患者自检-诊中快速诊断-诊后随时跟进”三位一体的互联网诊疗模式,其基本实现过程为:
1) 患者选择科室并将个人信息录入健康档案。
2) 患者通过聊天界面发送所咨询的文本信息,对于患者在预问诊过程中使用的通俗语,如患病时间、诱因、症状位置等信息,利用自然语言处理技术去理解,将其翻译为标准的医学语言。
3) 对文本信息进行分词处理。
4) 在问答对库中寻找相匹配的答案作为回复。
5) 患者根据预问诊的情况,可选择远程问诊,与医生进行在线音视频问诊。
6) 在患者进入视频房间之前,医生查看该患者的智能预问诊过程,了解基本情况,通过视频面对面问诊,明确诊断结果,开具电子处方、住院证等。
具体流程如图2所示。
图2 模型问诊流程
智能预问诊模型的交互方式以及对患者问诊语言处理的反馈正确度决定了模型的准确性及核心价值。因此,本文提出的基于分词和权值的相似度算法,用于处理患者提问文本和中文医疗问答对库中文本的相似度,将最相关问答对反馈给患者。
3 基于分词和权值的相似度计算
在英文文本中,单词之间有空格作为分界,而在中文文本中,词是最小的独立成分,词语之间没有界限符。目前,常用的求两文本之间的相似度算法是基于字符的字段匹配[15],该算法在求取英文文本单词相似度上表现突出,但在中文场景下表现一般。因此,本文提出改进的基于分词和权值的相似度算法,主要解决在中文环境中,求取文本之间相似度的问题。主要流程可概括为三大步骤,即:
1) 导入自定义医学专业词典完成词典扩充。
2) 分词并完成词汇的加权。
3) 利用基于分词和权值的相似度算法,求得文本之间的相似度,有针对性地对外反馈。
3.1 自定义医学专业词典扩充
实际场景中,由于中文医疗词汇的特殊性,词与词之间没有明显的分隔符,精准分词的前提是需要有一个合适的词典,词典的完备性一直是制约分词器分词准确的关键,所以首先进行词典的扩充。
本文所采用的“盘古分词器”支持自定义词库,因此,词典扩充主要通过Dictionary Manager组件向自定义医学专业词典中导入常见的医疗专业名词,如医生常用专业术语、药品名、常见的疾病名称等来完成。
其具体做法是:将医疗专业名词调研和统计后形成数据集,而后利用算法提取数据集中词频高的短语进行自定义词典导入,这一过程的难点是对数据集中高词频短语的提取。
本文采用了关联范数估计式(Association Norm Estimation)(以下简称“AE式”)来帮助判断专业词汇,进而完成高词频短语的提取,其基本表达式为:
(1)
式中:f(x)、f(y)、f(z)分别指x、y、z在数据集中出现的频率。若x由n个汉字组成,y是x的前n-1个汉字,z是x的后n-1个汉字,则x=x1x2…xn-1xn,y=x1x2…xn-1,z=x2x3…xn-1xn,其中,xi(i=1,2,…,n)指的是第i个汉字。
如果AE(x)的值越大,那么文本x是一个词或者一个词的一部分的概率就越大,而当AE(x)很大时,字符串x不一定是一个完整的词,还需要依次扩充字符串。
实验证明,AE式适用于识别三个字及三个字以上的词汇,通过使用滑动窗口,利用右边缘法来确定该词边界,可以有效地识别出医疗专业词汇。
3.2 分词并加权
利用“盘古分词器”对用户的提问文本进行分词并计算词汇的权值。
词汇的权值表示该词汇占某个文本的比重,权值越大,表示对文本语义的贡献率就越大,正常情况下,在文本中每个词语的贡献率均等。但是,由于中文语义的特殊性以及医疗专业词汇和普通词汇对相似度计算所带来的不同贡献,相似度的准确性会受到一定影响。
因此,为更好地找出患者提问的相似文本,提高相似度的准确性,本文主要基于普通词汇和医疗专业词汇进行加权的操作。
1) 普通词汇加权。依据:根据主题重心词通常在后半部分的特定,选取自然语言同义词处理技术中重心后移规律匹配法。
操作:假设某一文本由N个词汇组成,各个词的权值ω(k)由词k在文本中的位置确定,如式(2)所示,首词为1,以此类推。
(2)
式中:k表示该词在文本中所处的位置。文本中,所有词汇的权值之和如式(3)所示。
(3)
2) 医疗专业词汇加权。依据:由于一个文本中,所有的词汇的权值之和为1,若提高专业词汇的权值,必定要减小无意义词汇的权值。
操作:因“盘古分词器”包含词名、词性和词频信息,若判定词汇来源于扩充后的词典,则增大医疗专业词汇的词频,提高专业词汇的权值。同时,去掉“的”“了”信号词、疑问词、标点符号、连词、助词等无意义的停用词及一些词频过小词的权值,并将其自身所带权值转至医疗专业词汇上。
3.3 基于分词和权值计算相似度算法
相似度亦称匹配度,指两个文本可转换的程度,相似度越高,表明两个文本越易相互替换[15]。计算相似度的数学模型可用集合来表示,如图3所示。
图3 文本集合
假设:A为待匹配文本词集合,B为匹配文本词集合,C为两文本相同词的集合,匹配度即为C占A和B全部的比重,C越大,则相似度越高。
A与B的相似度如式(4)所示。
(4)
式中:Sim(A,B)表示文本A和文本B的相似度。C占A的比重为x,C占B的比重为y,换言之,x为C在A中所有词的权值之和,y为C在B中所有词的权值之和。x、y如式(5)所示。
(5)
由式(4)和式(5)推导匹配度公式如式(6)所示。
(6)
式中:x、y不为0。当x或y为0时,无交集,相似度为0。
算法流程如图4所示。
图4 算法流程
主要关键步骤如下:
1) 词典扩充:获取自定义医学词典,实现词典扩充。
2) 智能分词:使用基于asp.net的“盘古分词器”对患者提问文本进行自动分词,过滤无意义的停用词。
3) 提取关键词:利用智能分词模块提供的分词结果,提取关键词,将结果存入关键词列表。
4) 索引相关问答对:根据关键词模糊查询医疗对话的问题及答案,获取最相关问答对。
Step1建立临时表。包括编号和相关问答对两个字段,用于存放按关键词检索返回的结果。
Step2索引问答对。用关键词模糊查询医疗对话数据库,并将结果存入Step1中建立的临时表。
5) 计算相似度:计算患者提问文本与相关问答对中提问文本之间的相似度,选取相似度最大的问答对,将结果返回给患者。具体方法如下:
Step1分词。用带自定义医学专业词典的“盘古分词器”对患者提问文本和相关问答对进行分词。
Step2加权。对文本中的词加权处理。
Step3求相似度。利用相似度公式,求得患者提问文本和每一条相关问答对之间的相似度,选取相似度最大的问答对,将对应答案返回给患者。
4 实验评估
4.1 数据集与实验环境
4.1.1数据集
本文研究过程进行了大量的实验,这些实验的数据集来源于Toyhom发布的Chinese medical dialogue data中文医疗对话库,其提供近80万例问答对。具体如表1所示。
表1 中文医疗对话数据集
4.1.2实验环境
实验所涉及的前置操作主要包括:对数据进行预处理,清洗有噪声数据,分析并处理数据格式。基本环境为:语言环境:C#语言;框架结构:asp.net框架;数据库:SQL Server 2008数据库。
4.2 实验目的及方法步骤
4.2.1实验目的
本文研究内容所涉及实验的目的主要有三项,第一,验证词典扩充后的“盘古分词器”分词效果是否高于未扩增词典的分词器(以下简称“实验1”);第二,验证本文提出的基于分词和权值的相似度算法的准确性(以下简称“实验2”);第三,对基于分词和权值的相似度算法的优劣进行评判,验证智能预问诊模型的准确性(以下简称“实验3”)。
4.2.2实验方法
1) 实验1操作方法及步骤。准确率(p):分词结果中,切分正确的词语数量与所有词语数量的比值,如式(7)所示。
(7)
召回率(r):分词结果中,切分正确的词语的总数量与文本中所有标准词语数量的比值,如式(8)所示。
(8)
方法:利用是否加入自定义医学专业词典的盘古分词系统对中文医疗对话数据集文本进行分词,计算分词结果的准确率和召回率。
具体步骤如下:
Step1初始化词典dict.dct,导入自定义医学专业词汇。
Step2输入患者提问文本,进行结构化处理。
Step3调用“盘古分词器”对文本进行分词,查询词典,反馈查询结果,若有未登录词,存入自定义词典。
Step4保存分词结果。
操作流程如图5所示。
图5 分词流程
2) 实验2操作方法及步骤。
方法:利用文献[15]与本文的方法求取文本之间的相似度。
具体步骤如下:
Step1选取数据集中的问答对。
Step2利用基于自定义医学专业词典的“盘古分词器”对问答对进行智能分词。
Step3利用分词和权值计算词语对文本的语义贡献率,将其作为权值。
Step4用两种算法分别计算相似度。
Step5比较计算结果。
实验流程如图6所示。
图6 求相似度流程示意图
3) 实验3操作方法及步骤。评价指标:该实验采用召回率、正确率和F-测度值三项指标进行验证判断。召回率r反映了被正确判定为正例数占总正例数的比率;正确率p反映了被正确判定为正例数占被判定为正例数的比率;F-测度值f综合了召回率和正确率的结果,用于综合反映整体指标。具体如式(9)所示。
(9)
式中:a表示被正确判定为正例的个数;b表示被错误判定为正例的个数;c表示将正例排除在外的个数。
方法:首先,利用本文算法选取最优Threshold值,Threshold值作为是否正确判定正例的标准。然后,在最优Threshold值下,分别将文献[13]和文献[15]与本文方法在数据集上进行实验,计算各评价指标的结果。最后,在现有的互联网医院系统上,利用中文医疗对话数据集对智能预问诊模型的问答功能进行测试,主要测试模块回答患者问题的流畅度及能否正确识别的问题。
具体步骤如下:
Step1读取患者输入的提问文本。
Step2对Step1中文本分词,提取关键词。
Step3用Step2中关键词模糊查询问答对所在的数据库,将结果存入临时表Table中。
Step4利用本文算法选取最优Threshold值。
Step5在最优Threshold值下,用3种算法分别求取Step1文本与Step3临时表Table中每条记录的相似度,计算召回率、正确率和F-测度值。
Step6利用中文医疗数据集,验证问答模型回复的准确性和及时性。
实验算法及模型的准确性验证流程如图7所示。
图7 准确性验证流程示意图
4.3 实验结果及分析
4.3.1实验1
实验结果:如表2所示,词典中加入自定义的医学专业词后,准确率和召回率分别提高了2.6百分点和1.3百分点。
表2 分词对比实验结果(%)
实验结果表明词典扩充后能够在一定程度上提高中文词语切分的准确率。但需要注意的是,由于词的定义不统一,汉语的分词还未形成一个公认的标准,词的具体判定问题还未完全解决,可能对分词的结果有一定的影响。
4.3.2实验2
通过对实验数据结果的分析,本文方法求取的相似度能更好地反映文本匹配的相关度,但不同情况,相似度表现形式及效果不同,如表3所示。
对于语义相似的文本,本文方法较文献[15]提高了5.72百分点,提高幅度一般,因此需要对计算机理解文本语义的逻辑进行进一步研究;对于医疗关键词不同的文本,文献[15]算法是按相同字求取的,而本文方法按词语的权值求得,相似度明显降低;对于一般的文本,本文方法的效果提升明显。
4.3.3实验3
本文算法的准确度取决于Threshold值,为了得到最优的Threshold值,利用本文算法在不同Threshold值下求取数据集中文本相似度,并计算召回率、正确率和F-测度值,变化趋势如图8所示。
图8 不同Threshold值下的评价指标值
根据图8实验结果可知:随着Threshold值增大,召回率呈下降趋势,正确率呈上升趋势,F-测度值呈先上升后下降趋势。由于F-测度值可综合反映整体指标,因此,当F-测度值最大时,可得最优Threshold值为0.23。
当Threshold值为0.23时,利用本文方法和文献[13]和文献[15]方法求得的召回率、正确率和F-测度值的结果如表4所示。
表4 中文医疗对话数据集的评价指标对比(%)
由表4可知,本文方法得到的召回率、正确率和F-测度值均比文献[13]和文献[15]方法高,本文方法在计算中文文本相似度上的准确率更高,能更好地实现中文文本最相关问答对的匹配。该算法利用分词缩短了匹配字段的长度,减少了循环空间,节省了算法时间。
从图9可知,智能预问诊模型能根据患者所咨询的问题来处理问题,并反馈大致符合患者要求的答案,总体符合预期。但值得注意和需要进一步研究的是如何降低准确率对问答对库的依赖。
图9 智能问答
5 结 语
现阶段的智能预问诊在互联网诊疗过程中充当着先头兵的角色,智能预问诊所采集用户信息的优劣直接影响后续诊疗效果,而关键在于对所采集信息处理算法的设计和优化。本文提出基于分词和权值的相似度算法,通过添加智能分词、自动匹配最大相关问答对,实现了智能预问诊模型的搭建及与互联网现实诊疗场景的有机融合,为智能预问诊模型搭建提供了一种新方法、新思路。
本文搭建的智能预问诊模型,在用户交互的准确率上有待进一步提高。一方面,由于诊疗的专业性和复杂性,自然语言技术虽然有一定发展,但在医疗领域还有很大的进步空间,基于文本相似度算法实现的导诊或预问诊,还无法做到像医生一样用经验和专业医学知识解决患者的问题;另一方面,由于诊疗过程用户提问问题的不确定性和庞大性,用于用户问题应答的标准问答对库还未建设完毕,这是一个动态累积的过程,需要结合诊疗活动同步开展。因此,下一步应重点研究医疗领域的自然语言处理以及标准问答对库的建设,从而使互联网诊疗的过程更快捷、更高效、更准确。