基于全局注意力意图识别的人机交互导诊方法与系统转让专利

申请号 : CN202110150350.6

文献号 : CN112507696B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李树涛马子瑜孙斌

申请人 : 湖南大学

摘要 :

本发明公开了一种基于全局注意力意图识别的人机交互导诊方法与系统,本发明包括获取患者的病情描述,进行自然语言理解获得标准的医学术语并更新当前的对话状态,将当前的对话状态输入预设的对话策略模型获得对话动作,对话动作包含系统意图和处理结果,系统意图为否定、确认、询问、告知或结束交互;处理结果为处理得到的症状、疾病或科室,在系统意图为否定、确认、询问选择继续迭代执行;否则执行告知或结束交互。本发明能够解决现有的智能导诊系统相关技术存在的缺陷与问题,即为了解决如何分析患者口语病情描述的相关疾病信息,挖掘患者病情描述之外的疾病信息,实现自然的人机交互,提高智能导诊系统在实际应用中的效果。

权利要求 :

1.一种基于全局注意力意图识别的人机交互导诊方法,其特征在于,包括:S1)获取患者当前对话中的病情描述;

S2)针对所述病情描述进行自然语言理解获得标准的医学术语;

S3)将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,所述对话策略模型被训练建立了当前的对话状态、对话动作at之间的映射关系,所述对话动作at包含系统意图和处理结果,所述系统意图为否定、确认、询问、告知或结束交互;所述处理结果为处理得到的症状、疾病或科室;

S4)如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将处理结果映射成自然语言文本并输出,跳转执行步骤S1);如果对话动作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理结果映射成自然语言文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出;

步骤S2)包括通过全局注意力意图识别模型提取所述病情描述中跟医学相关的词语与表达, 将提取出来的跟医学相关的词语与表达归一化为标准的医学术语,所述全局注意力意图识别模型包括词汇索引表、全局相关词向量字典、双向长短时记忆神经网络以及条件随机场,所述全局注意力意图识别模型被训练建立了病情描述、病情描述中跟医学相关的词语与表达之间的映射关系,所述全局注意力意图识别模型提取所述病情描述中跟医学相关的词语与表达的步骤包括:S2.1)基于词汇索引表将病情描述转换为计算机能够处理的结构化数组;S2.2)通过全局相关词向量字典将结构化数组转换成包含词组意义的词向量;

S2.3)使用双向长短时记忆神经网络提取词向量的语义特征,得到语义特征向量;S2.4)通过条件随机场对语义特征向量解码,得到病情描述中跟医学相关的词语与表达。

2.根据权利要求1所述的基于全局注意力意图识别的人机交互导诊方法,其特征在于,所述对话状态St包括用户意图、系统意图、对话历史、用户描述症状以及系统问询症状,步骤S3)中将标准的医学术语更新当前的对话状态St的步骤包括:从标准的医学术语中提取用户意图、用户描述症状,将提取得到的用户意图、用户描述症状以及标准的医学术语以本身赋值给当前的对话状态St的用户意图、系统意图以及对话历史;步骤S4)中根据对话动作at更新当前的对话状态St的步骤包括:将对话动作at的系统意图赋值给当前的对话状态St的系统意图,将对话动作at的处理结果赋值给当前的对话状态St的系统问询症状。

3.根据权利要求1所述的基于全局注意力意图识别的人机交互导诊方法,其特征在于,步骤S2)之前还包括训练全局注意力意图识别模型的步骤:S2‑1)获取真实医患对话数据集;

S2‑2)对真实医患对话数据集进行清洗、采用BIO标签进行标注,形成语料库;

S2‑3)建立空的文本索引表,提取语料库中的语料,将语料转换成词的组合,若词的组合不在文本索引表中,则将文本索引表的最大序号加1、将该词的组合加入文本索引表中的新的最大序号位置;建立空的标签索引表,提取语料库中的语料,将语料转换成序列标签,若序列标签不在标签索引表中,则将标签索引表的最大序号加1、将该序列标签加入标签索引表中的新的最大序号位置,最终得到由文本索引表和标签索引表构成的标签索引表;基于词汇索引表将语料库中的病情描述转换为计算机能够处理的结构化数组;

S2‑4)通过标签索引表将语料库中的句子转换为句子序列Sp={Wp1,Wp2,…,Wpi},其中Sp表示语料库中第p个句子,Wp1~Wpi表示该句子序列的第1~i个字,且针对任意句子中的字Wpi的处理步骤包括:对字Wpi所在的句子序列Sp={Wp1,Wp2,…,Wpi}进行词嵌入和特征提取,得到该句子序列的目标语料词向量集合Hp={ Hp1,Hp2,…,Hpi},Hp1~Hpi分别表示第1~i个字的目标语料词向量,从而获得字Wpi对应的目标语料词向量Hpi;检索语料库得到包含字Wpi的句子序列集合Spi={ Spi1,Spi2,…,Spik},其中Spi1~Spik表示句子序列集合Spi中第1~k个句子,针对句子Spi1~Spik分别进行词嵌入和特征提取并提取其中字Wpi对应的相关语料词向量Ωpi1~Ωpik,得到相关语料词向量Ωpi1~Ωpik构成字Wpi对应的相关语料词向量集合Ωpi={Ωpi1,Ωpi2,…,Ωpik},其中Ωpi1~Ωpik表示第1~k个相关语料词向量;将字Wpi对应的目标语料词向量Hpi、相关语料词向量集合Ωpi进行相关词向量融合,得到字Wpi的全局相关词向G G

量Hpi;最终将所有字Wpi的全局相关词向量Hpi构成的全局相关词向量字典;

S2‑5)基于全局相关词向量字典,通过双向长短时记忆神经网络提取文本语义特征,再通过条件随机场进行对语义特征向量解码,从而完成对双向长短时记忆神经网络、条件随机场的训练。

4.根据权利要求1所述的基于全局注意力意图识别的人机交互导诊方法,其特征在于,所述将提取出来的跟医学相关的词语与表达归一化为标准的医学术语具体是指将医学相关的词语与表达对应的词向量输入预先完成训练的TextCNN分类模型,所述TextCNN分类模型包括三个尺寸不同卷积层、最大池化以及拼接操作层以及全连接层,所述TextCNN分类模型将提取出来的跟医学相关的词语与表达归一化为标准的医学术语的步骤包括:通过三个尺寸不同卷积核将词向量转换为六个特征图,接着通过最大池化以及拼接操作将其转换成一维特征向量,最后通过全连接层得到标准的医学术语。

5.根据权利要求2所述的基于全局注意力意图识别的人机交互导诊方法,其特征在于,所述对话策略模型为包含输入层、2个神经网络隐含层和输出层的神经网络,步骤S4)之前还包括训练对话策略模型的步骤:

S4‑1)基于真实医患对话数据集,通过人工标注的方式获取每段真实医患对话中标准的医学术语以及患者年龄性别,获取基于标准的医学术语获取每段真实医患对话对应的用户描述症状、用户描述症状、医生问询症状、症状对应疾病以及所属科室,构建用户目标,所述用户目标包括该段对话下的用户描述症状、医生问询症状、症状对应疾病、患者年龄性别以及所属科室;

S4‑2)将对话过程中用户采取的行为分为否定、确认、询问、告知、结束交互五种作为对话动作at中系统意图,医生问询症状、症状对应疾病或所属科室作为对话动作at中的处理结果,从而确定各组对话中的对话动作at;通过每一组对话训练对话策略模型以建立对话状态St和奖励rt两者、及其选择的某一个对话动作at的函数Q的映射关系,且每训练一步根据对话动作at中系统意图和处理结果的正确性分别调整生成下一步的奖励rt+1,其中函数Q的函数表达式为:

Q(st,at)=rt+γmaxQ(st+1,at+1)上式中,Q(st,at)表示在对话状态st下选择对话动作at的函数Q的值,rt为奖励,γ为衰减率系数,Q(st+1,at+1)为下一步在对话状态s t+1下选择对话动作a t+1的函数Q的值;且训练对话策略模型时采用的损失函数为:

2

L=1/2 [rt +maxQ(st+1,at+1)‑ Q(st,at)]上式中,L表示损失函数。

6.根据权利要求1所述的基于全局注意力意图识别的人机交互导诊方法,其特征在于,步骤S4)中根据对话动作at选择模板将处理结果映射成自然语言文本并输出的步骤包括:根据对话动作at中的系统意图选择匹配的句子模板,根据对话动作at中的处理结果选择匹配的词汇模板,将选择的词汇模板填入句子模板中的槽位得到自然语言文本并输出。

7.一种基于全局注意力意图识别的人机交互导诊系统,其特征在于,包括:病情获取程序单元,用于获取患者当前对话中的病情描述;

语言理解程序单元,用于针对所述病情描述进行自然语言理解获得标准的医学术语;

对话跟踪程序单元,用于将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,所述对话策略模型被训练建立了当前的对话状态、对话动作at之间的映射关系,所述对话动作at包含系统意图和处理结果,所述系统意图为否定、确认、询问、告知或结束交互;所述处理结果为处理得到的症状、疾病或科室;

动作处理程序单元,用于基于对话动作at进行处理:如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将处理结果映射成自然语言文本并输出,跳转执行病情获取程序单元继续交互;如果对话动作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理结果映射成自然语言文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出;

所述语言理解程序单元包括通过全局注意力意图识别模型提取所述病情描述中跟医学相关的词语与表达, 将提取出来的跟医学相关的词语与表达归一化为标准的医学术语,所述全局注意力意图识别模型包括词汇索引表、全局相关词向量字典、双向长短时记忆神经网络以及条件随机场,所述全局注意力意图识别模型被训练建立了病情描述、病情描述中跟医学相关的词语与表达之间的映射关系,所述全局注意力意图识别模型提取所述病情描述中跟医学相关的词语与表达的步骤包括:S2.1)基于词汇索引表将病情描述转换为计算机能够处理的结构化数组;S2.2)通过全局相关词向量字典将结构化数组转换成包含词组意义的词向量;S2.3)使用双向长短时记忆神经网络提取词向量的语义特征,得到语义特征向量;S2.4)通过条件随机场对语义特征向量解码,得到病情描述中跟医学相关的词语与表达。

8.一种基于全局注意力意图识别的人机交互导诊系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~6中任意一项所述基于全局注意力意图识别的人机交互导诊方法的步骤,或者所述存储器中存储有被编程或配置以执行权利要求1~6中任意一项所述基于全局注意力意图识别的人机交互导诊方法的计算机程序。

9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~6中任意一项所述基于全局注意力意图识别的人机交互导诊方法的计算机程序。

说明书 :

基于全局注意力意图识别的人机交互导诊方法与系统

技术领域

[0001] 本发明涉及自然语言理解和对话系统,具体涉及一种基于全局注意力意图识别的人机交互导诊方法与系统。

背景技术

[0002] 传统的人工医疗导诊繁杂低效一直是大多数医院的痛点,仅仅依靠医护人员的辅助导诊缺乏一定的高效性。与此同时,近年来人们对健康关注度显著提升,医院人流高峰出
现频次越来越高,医疗导诊人力资源明显不足。随着医疗信息化的发展,导诊机器人已经渐
渐走进人们的视野,利用机器人进行智能医疗导诊能有效地对医院患者进行合理分流,同
时能让患者享受到智慧医疗的全新体验,然而现有的机器人智能导诊系统无论在推荐的准
确性还是在使用的便利性上都难以满足病人实际的要求,急需新型的、更加准确的、普适性
更强的智能导诊系统来支持病患挂号。
[0003] 现有的智能导诊系统技术方案主要有以下两种方法:1、通过搜索问答库中和患者描述相似度最高的问题,返回所对应的诊断结果。这类方法的主要问题是并未真正分析挖
掘患者描述中出现的疾病信息,文本的相似度并不能完全反映患者病情的相似度,匹配准
确度欠佳,此外没有考虑挖掘患者描述之外的疾病信息,缺乏自然的交互。2、通过患者点选
与病情相关的症状和患病部位等信息,叠加专家预先标注的信息标签对应疾病打分,最终
返回一个可能患病的概率排序。这类方法的问题是,人工打分存在极大的不稳定性和主观
性,而且在需要标注的疾病数量大的时候要耗费大量的人力和时间成本,另外,对于可选症
状外的信息,导诊系统无法分析利用。

发明内容

[0004] 本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于全局注意力意图识别的人机交互导诊方法与系统,本发明能够解决现有的智能导诊系统相关技术存在
的缺陷与问题,即为了解决如何分析患者口语病情描述的相关疾病信息,挖掘患者病情描
述之外的疾病信息,实现自然的人机交互,提高智能导诊系统在实际应用中的效果。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:
[0006] 一种基于全局注意力意图识别的人机交互导诊方法,包括:
[0007] S1)获取患者当前对话中的病情描述;
[0008] S2)针对所述病情描述进行自然语言理解获得标准的医学术语;
[0009] S3)将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,所述对话策略模型被训练建立了当前的对话状态、对话动作at
之间的映射关系,所述对话动作at包含系统意图和处理结果,所述系统意图为否定、确认、
询问、告知或结束交互;所述处理结果为处理得到的症状、疾病或科室;
[0010] S4)如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将处理结果映射成自然语言文本并输出,跳转执行
步骤S1);如果对话动作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理
结果映射成自然语言文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出。
[0011] 可选地,所述对话状态St包括用户意图、系统意图、对话历史、用户描述症状以及系统问询症状,步骤S3)中将标准的医学术语更新当前的对话状态St的步骤包括:从标准的
医学术语中提取用户意图、用户描述症状,将提取得到的用户意图、用户描述症状以及标准
的医学术语以本身赋值给当前的对话状态St的用户意图、系统意图以及对话历史;步骤S4)
中根据对话动作at更新当前的对话状态St的步骤包括:将对话动作at的系统意图赋值给当
前的对话状态St的系统意图,将对话动作at的处理结果赋值给当前的对话状态St的系统问
询症状。
[0012] 可选地,步骤S2)包括通过全局注意力意图识别模型提取所述病情描述中跟医学相关的词语与表达, 将提取出来的跟医学相关的词语与表达归一化为标准的医学术语,所
述全局注意力意图识别模型包括词汇索引表、全局相关词向量字典、双向长短时记忆神经
网络以及条件随机场,所述全局注意力意图识别模型被训练建立了病情描述、病情描述中
跟医学相关的词语与表达之间的映射关系,所述全局注意力意图识别模型提取所述病情描
述中跟医学相关的词语与表达的步骤包括:
[0013] S2.1)基于词汇索引表将病情描述转换为计算机能够处理的结构化数组;
[0014] S2.2)通过全局相关词向量字典将结构化数组转换成包含词组意义的词向量;
[0015] S2.3)使用双向长短时记忆神经网络提取词向量的语义特征,得到语义特征向量;
[0016] S2.4)通过条件随机场对语义特征向量解码,得到病情描述中跟医学相关的词语与表达。
[0017] 可选地,步骤S2)之前还包括训练全局注意力意图识别模型的步骤:
[0018] S2‑1)获取真实医患对话数据集;
[0019] S2‑2)对真实医患对话数据集进行清洗、采用BIO标签进行标注,形成语料库;
[0020] S2‑3)建立空的文本索引表,提取语料库中的语料,将语料转换成词的组合,若词的组合不在文本索引表中,则将文本索引表的最大序号加1、将该词的组合加入文本索引表
中的新的最大序号位置;建立空的标签索引表,提取语料库中的语料,将语料转换成序列标
签,若序列标签不在标签索引表中,则将标签索引表的最大序号加1、将该序列标签加入标
签索引表中的新的最大序号位置,最终得到由文本索引表和标签索引表构成的标签索引
表;基于词汇索引表将语料库中的病情描述转换为计算机能够处理的结构化数组;
[0021] S2‑4)通过标签索引表将语料库中的句子转换为句子序列Sp={Wp1,Wp2,…,Wpi},其中Sp表示语料库中第p个句子,Wp1~Wpi表示该句子序列的第1~i个字,且针对任意句子中的
字Wpi的处理步骤包括:对字Wpi所在的句子序列Sp={Wp1,Wp2,…,Wpi}进行词嵌入和特征提取,
得到该句子序列的目标语料词向量集合Hp={ Hp1,Hp2,…,Hpi},Hp1~Hpi分别表示第1~i个字
的目标语料词向量,从而获得字Wpi对应的目标语料词向量Hpi;检索语料库得到包含字Wpi的
句子序列集合Spi={ Spi1,Spi2,…, Spik},其中Spi1~Spik表示句子序列集合Spi中第1~k个句
子,针对句子Spi1~Spik分别进行词嵌入和特征提取并提取其中字Wpi对应的相关语料词向量
Ωpi1~Ωpik,得到相关语料词向量Ωpi1~Ωpik构成字Wpi对应的相关语料词向量集合Ωpi=
{Ωpi1,Ωpi2,…,Ωpik},其中Ωpi1~Ωpik表示第1~k个相关语料词向量;将字Wpi对应的目标
语料词向量Hpi、相关语料词向量集合Ωpi进行相关词向量融合,得到字Wpi的全局相关词向
G G
量Hpi;最终将所有字Wpi的全局相关词向量Hpi构成的全局相关词向量字典;
[0022] S2‑5)基于全局相关词向量字典,通过双向长短时记忆神经网络提取文本语义特征,再通过条件随机场进行对语义特征向量解码,从而完成对双向长短时记忆神经网络、条
件随机场的训练。
[0023] 可选地,所述将提取出来的跟医学相关的词语与表达归一化为标准的医学术语具体是指将医学相关的词语与表达对应的词向量输入预先完成训练的TextCNN分类模型,所
述TextCNN分类模型包括三个尺寸不同卷积层、最大池化以及拼接操作层以及全连接层,所
述TextCNN分类模型将提取出来的跟医学相关的词语与表达归一化为标准的医学术语的步
骤包括:通过三个尺寸不同卷积核将词向量转换为六个特征图,接着通过最大池化以及拼
接操作将其转换成一维特征向量,最后通过全连接层得到标准的医学术语。
[0024] 可选地,所述对话策略模型为包含输入层、2个神经网络隐含层和输出层的神经网络,步骤S4)之前还包括训练对话策略模型的步骤:
[0025] S4‑1)基于真实医患对话数据集,通过人工标注的方式获取每段真实医患对话中标准的医学术语以及患者年龄性别,获取基于标准的医学术语获取每段真实医患对话对应
的用户描述症状、用户描述症状、医生问询症状、症状对应疾病以及所属科室,构建用户目
标,所述用户目标包括该段对话下的用户描述症状、医生问询症状、症状对应疾病、患者年
龄性别以及所属科室;
[0026] S4‑2)将对话过程中用户采取的行为分为否定、确认、询问、告知、结束交互五种作为对话动作at中系统意图,医生问询症状、症状对应疾病或所属科室作为对话动作at中的处
理结果,从而确定各组对话中的对话动作at;通过每一组对话训练对话策略模型以建立对
话状态St和奖励rt两者、及其选择的某一个对话动作at的函数Q的映射关系,且每训练一步
根据对话动作at中系统意图和处理结果的正确性分别调整生成下一步的奖励rt+1,其中函
数Q的函数表达式为:
[0027] Q(st,at)=rt+γmaxQ(st+1,at+1)
[0028] 上式中,Q(st,at)表示在对话状态st下选择对话动作at的函数Q的值,rt为奖励,γ为衰减率系数,Q(st+1,at+1)为下一步在对话状态s t+1下选择对话动作a t+1的函数Q的值;且
训练对话策略模型时采用的损失函数为:
[0029] L=1/2 [rt + maxQ(st+1,at+1)‑ Q(st,at)]2
[0030] 上式中,L表示损失函数。
[0031] 可选地,步骤S4)中根据对话动作at选择模板将处理结果映射成自然语言文本并输出的步骤包括:根据对话动作at中的系统意图选择匹配的句子模板,根据对话动作at中的
处理结果选择匹配的词汇模板,将选择的词汇模板填入句子模板中的槽位得到自然语言文
本并输出。
[0032] 此外,本发明还提供一种基于全局注意力意图识别的人机交互导诊系统,包括:
[0033] 病情获取程序单元,用于获取患者当前对话中的病情描述;
[0034] 语言理解程序单元,用于针对所述病情描述进行自然语言理解获得标准的医学术语;
[0035] 对话跟踪程序单元,用于将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,所述对话策略模型被训练建立了当前
的对话状态、对话动作at之间的映射关系,所述对话动作at包含系统意图和处理结果,所述
系统意图为否定、确认、询问、告知或结束交互;所述处理结果为处理得到的症状、疾病或科
室;
[0036] 动作处理程序单元,用于基于对话动作at进行处理:如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将
处理结果映射成自然语言文本并输出,跳转执行病情获取程序单元继续交互;如果对话动
作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理结果映射成自然语言
文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出。
[0037] 此外,本发明还提供一种基于全局注意力意图识别的人机交互导诊系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于全局注意力意图
识别的人机交互导诊方法的步骤,或者所述存储器中存储有被编程或配置以执行所述基于
全局注意力意图识别的人机交互导诊方法的计算机程序。
[0038] 此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于全局注意力意图识别的人机交互导诊方法的计算机程序。
[0039] 和现有技术相比,本发明具有下述优点:本发明能够解决现有的智能导诊系统相关技术存在的缺陷与问题,即为了解决如何分析患者口语病情描述的相关疾病信息,挖掘
患者病情描述之外的疾病信息,实现自然的人机交互,提高智能导诊系统在实际应用中的
效果。

附图说明

[0040] 图1为本发明实施例方法的基本流程示意图。
[0041] 图2为本发明实施例中训练全局注意力意图识别模型的流程图。
[0042] 图3为本发明实施例中基于全局注意力机制训练全局相关词向量字典的原理图。
[0043] 图4为本发明实施例中训练全局注意力意图识别模型的原理图。
[0044] 图5为本发明实施例中TextCNN分类模型的结构及处理过程示意图。
[0045] 图6为本发明实施例中对话策略模型及其训练原理示意图。
[0046] 图7为本发明实施例中采用常见的医患问题进行测试的实验效果示意图。
[0047] 图8为本发明实施例中人机交互导诊系统的结构示意图。

具体实施方式

[0048] 如图1所示,本实施例基于全局注意力意图识别的人机交互导诊方法包括:
[0049] S1)获取患者当前对话中的病情描述;
[0050] S2)针对病情描述进行自然语言理解获得标准的医学术语;
[0051] S3)将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,对话策略模型被训练建立了当前的对话状态、对话动作at之间
的映射关系,对话动作at包含系统意图和处理结果,系统意图为否定、确认、询问、告知或结
束交互;处理结果为处理得到的症状、疾病或科室;
[0052] S4)如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将处理结果映射成自然语言文本并输出,跳转执行
步骤S1);如果对话动作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理
结果映射成自然语言文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出。
[0053] 本实施例中,对话状态St包括用户意图、系统意图、对话历史、用户描述症状以及系统问询症状,步骤S3)中将标准的医学术语更新当前的对话状态St的步骤包括:从标准的
医学术语中提取用户意图、用户描述症状,将提取得到的用户意图、用户描述症状以及标准
的医学术语以本身赋值给当前的对话状态St的用户意图、系统意图以及对话历史;步骤S4)
中根据对话动作at更新当前的对话状态St的步骤包括:将对话动作at的系统意图赋值给当
前的对话状态St的系统意图,将对话动作at的处理结果赋值给当前的对话状态St的系统问
询症状。
[0054] 本实施例中,步骤S1)获取患者当前对话中的病情描述是指:通过语音识别将患者的口语化病情描述转换为文本,从而得到患者当前对话中的病情描述。
[0055] 步骤S2)针对病情描述进行自然语言理解获得标准的医学术语的方式可根据需要采用现有的各类自然语言理解方法。作为一种可选的实施方式,本实施例中,步骤S2)包括
通过全局注意力意图识别模型提取病情描述中跟医学相关的词语与表达, 将提取出来的
跟医学相关的词语与表达归一化为标准的医学术语,全局注意力意图识别模型包括词汇索
引表、全局相关词向量字典、双向长短时记忆神经网络以及条件随机场,全局注意力意图识
别模型被训练建立了病情描述、病情描述中跟医学相关的词语与表达之间的映射关系,全
局注意力意图识别模型提取病情描述中跟医学相关的词语与表达的步骤包括:
[0056] S2.1)基于词汇索引表将病情描述转换为计算机能够处理的结构化数组;
[0057] S2.2)通过全局相关词向量字典将结构化数组转换成包含词组意义的词向量;
[0058] S2.3)使用双向长短时记忆神经网络提取词向量的语义特征,得到语义特征向量;
[0059] S2.4)通过条件随机场对语义特征向量解码,得到病情描述中跟医学相关的词语与表达。
[0060] 如图2和图4所示,本实施例步骤S2)之前还包括训练全局注意力意图识别模型的步骤:
[0061] S2‑1)获取真实医患对话数据集;
[0062] 本实施例中,通过网络爬虫的方式获取每段医患对话的对话内容、所属科室,所提疾病、所提症状、当前网页URL、对话总结,再将其转换成统一的Json数据格式保存至文件
夹。详细过程如下:(1)统计医患对话网页URL,设置网页爬取的位置和请求的HTTP请求头
(header)参数,初始化URL队列,使用get/post的方式向目标站点提交请求,即发送一个请
求;(2)获取响应内容,若正常响应,会得到一个响应,即得到对话内容、所属科室,所提疾
病、所提症状、当前网页URL、对话总结等HTML格式内容,若响应失败(404、502等错误)则进
入下一个URL,返回(1);(3)使用Xpath工具正则表达式对HTML格式数据进行解析,将其保存
至Excel表格中;(4)重复(1)‑(3),直到待爬取URL队列为空;(5)通过程序将每段医患对话
从Excel格式转换成统一的Json格式,并将其保存至文件夹。
[0063] S2‑2)对真实医患对话数据集进行清洗、采用BIO标签进行标注,形成语料库;
[0064] 人工清洗每段医患对话中的手势信息、表情信息、自动回复信息、特殊字符、图片信息、无用信息等。由专业人员标注每段对话中有关医学的词语与表达,即交互过程中出现
的症状以及患者的性别年龄,其中采用BIO标签对序列中有关的医疗实体进行标注,B表示
医疗实体短语的开头,I表示医疗实体短语的中间,O表示不是医疗实体短语。如患者描述
“我现在感觉有点发烧,头也有点晕,请问我要去挂哪个科 (男,36岁)”的序列标签为“OO
OOOOOBIOBIIIIOOOOOOOOOOOOOOOOO”,年龄标签为“青年”,性别标签为“男”,症状标签为“发
热、头晕”,症状类型标签为“1,1”,其中症状类型标签集合{1,2,‑1},1表示患者存在该症
状,2表示患者不确定是否存在该症状,‑1表示患者不存在该症状。一般而言,一段对话的标
注可由2名专业人员同时标注,若标注一致,则通过,若不一致,则由第3名专业人员重新标
注,第3名专业人员的标注结果与其他2名标注者的标注结果对比,决出最后的结果。
[0065] S2‑3)建立空的文本索引表,提取语料库中的语料,将语料转换成词的组合,若词的组合不在文本索引表中,则将文本索引表的最大序号加1、将该词的组合加入文本索引表
中的新的最大序号位置;建立空的标签索引表,提取语料库中的语料,将语料转换成序列标
签,若序列标签不在标签索引表中,则将标签索引表的最大序号加1、将该序列标签加入标
签索引表中的新的最大序号位置,最终得到由文本索引表和标签索引表构成的标签索引
表;基于词汇索引表将语料库中的病情描述转换为计算机能够处理的结构化数组;
[0066] 如患者描述“我现在感觉有点发烧,头也有点晕,请问我要去挂哪个科 ”的转换结果为[1,12,24,13,14,16,18,64,68,22,87,88,16,18,89,22,56,57,1,90,91,98],在词
汇索引表中,序号1表示字符“我”,同理依次得到上述字符的序号表示。
[0067] S2‑4)基于全局注意力机制训练全局相关词向量字典:如图3所示,通过标签索引表将语料库中的句子转换为句子序列Sp={Wp1,Wp2,…,Wpi},其中Sp表示语料库中第p个句子,
Wp1~Wpi表示该句子序列的第1~i个字,且针对任意句子中的字Wpi的处理步骤包括:对字Wpi
所在的句子序列Sp={Wp1,Wp2,…,Wpi}进行词嵌入和特征提取,得到该句子序列的目标语料
词向量集合Hp={ Hp1,Hp2,…,Hpi},Hp1~Hpi分别表示第1~i个字的目标语料词向量,从而获
得字Wpi对应的目标语料词向量Hpi;检索语料库得到包含字Wpi的句子序列集合Spi={ Spi1,
Spi2,…, Spik},其中Spi1~Spik表示句子序列集合Spi中第1~k个句子,针对句子Spi1~Spik分
别进行词嵌入和特征提取并提取其中字Wpi对应的相关语料词向量Ωpi1~Ωpik,得到相关语
料词向量Ωpi1~Ωpik构成字Wpi对应的相关语料词向量集合Ωpi={Ωpi1,Ωpi2,…,Ωpik},其
中Ωpi1~Ωpik表示第1~k个相关语料词向量;将字Wpi对应的目标语料词向量Hpi、相关语料
G
词向量集合Ωpi进行相关词向量融合,得到字Wpi的全局相关词向量Hpi;最终将所有字Wpi的
G
全局相关词向量Hpi构成的全局相关词向量字典。
[0068] 本实施例中,定义词向量的维度为128维。
[0069] 本实施例中,将字Wpi对应的目标语料词向量𝐻𝑝𝑖、相关语料词向量集合Ωpi进行相关词向量融合为特征级融合,其函数表达式为:
[0070] αpij=VT tanh(W'pi Hpi+WΩpi Ωpij )
[0071] HGpi=∑ (j=1) kαpijΩpij
[0072] 上式中,αpij为第j个相关语料所对应的权重,VT, W'pi, WΩpi为进行相关词向量融G
合所采用融合网络的网络参数,Ωpij为第j个相关语料词向量,H pi为字Wpi的全局相关词向
量,k为所有相关语料词向量的数量。
[0073] 参见图3,通过以上步骤训练各个字的全局相关词向量,得到全局相关词向量字典。其中训练一个全局相关词向量,更新一次全局相关词向量字典。
[0074] S2‑5)基于全局相关词向量字典,通过双向长短时记忆神经网络(Bi‑LSTM)提取文本语义特征,再通过条件随机场(CRF)进行对语义特征向量解码,从而完成对双向长短时记
忆神经网络、条件随机场的训练。
[0075] 其中,双向长短时记忆神经网络提取文本语义特征向量ht的函数表达式如下:
[0076] ft=σ(Wf[ht‑1,xt ]+bf )
[0077] it=σ(Wi [ht‑1,xt ]+bi )
[0078] (ct) ̃=tanh (Wc [ht‑1, xt]+bo)
[0079] ct = ft⊙ct‑1 + it⊙(ct) ̃
[0080] ot=σ(Wo [ht‑1, xt]+ bo )
[0081] ht = ot⊙tanh(ct)
[0082] 其中,it,ft, ot分别表示双向长短时记忆神经网络(Bi‑LSTM)中输入门、遗忘门以及输出门的输出,bi,bf, bo分别表示双向长短时记忆神经网络(Bi‑LSTM)中输入门、遗忘门
以及输出门的偏置,Wi,Wf, Wo, Wc分别表示双向长短时记忆神经网络(Bi‑LSTM)中输入门、
遗忘门、输出门以及记忆门的权重,⊙表示元素的乘积,xt为在t时刻的输入,σ为激活函数,
ct表示双向长短时记忆神经网络(Bi‑LSTM)中的记忆门,(ct) ̃表示记忆门的估计输出,ht为
在t时刻的文本语义特征向量,ht‑1为在t‑1时刻的文本语义特征向量。双向长短时记忆神经
网络(Bi‑LSTM)的输出是n个文本语义特征向量, n表示表示输入序列的长度。
[0083] 其中,条件随机场的输入是n个文本语义特征向量,表示为X,条件随机场对语义特征向量解码向量进行解码的函数表达式如下:
[0084] s(X,y ̃)=∑i=1n(Ty(i‑1),yi+Pi,yi)
[0085] y=argmax xy s̃ (X,y ̃)
[0086] 上式中, s(X,y ̃)表示输入序列与预测标签 y的得分,n表示表示输入序列的长度,Ty(i‑1),yi表示从标签y(i‑1)到标签yi的转移得分,Pi,yi表示从输入i到标签yi的转移得分,
xy s̃ (X,y ̃)表示输入序列的得分列表。
[0087] 在训练阶段,全局注意力意图识别模型的输入为训练集中的患者描述,得到模型学习之后的全局相关词向量字典和更新之后的长短时记忆神经网络、条件随机场;在测试
以及应用阶段,全局注意力意图识别模型的输入为测试集的患者描述,与训练阶段不同的
是,模型不需要更新全局相关词向量字典。在此基础上,针对病情描述执行步骤S2.1)~
S2.4),即可获得病情描述中跟医学相关的词语与表达。全局注意力意图识别模型的处理流
程如下:首先基于词汇索引表将患者描述的文本数据转换为计算机能够处理的结构化数
组,接着通过全局相关词向量字典将结构化数组转换成包含词组意义的词向量,然后使用
双向长短时记忆神经网络提取词向量的语义特征,得到语义特征向量,最用通过条件随机
场对语义特征向量解码,得到用户描述中跟医学相关的词语与表达。
[0088] 本实施例中,将提取出来的跟医学相关的词语与表达归一化为标准的医学术语具体是指将医学相关的词语与表达对应的词向量输入预先完成训练的TextCNN分类模型,如
图5所示,TextCNN分类模型包括三个尺寸不同卷积层、最大池化以及拼接操作层以及全连
接层,TextCNN分类模型将提取出来的跟医学相关的词语与表达归一化为标准的医学术语
的步骤包括:通过三个尺寸不同卷积核将词向量转换为六个特征图,接着通过最大池化以
及拼接操作将其转换成一维特征向量,最后通过全连接层得到标准的医学术语。本实施例
中,统计真实医患对话数据集中出现的口语化医学描述,经由医学专业人员将其转换成标
准化医学术语,基于此构建标准化医学术语表,并将其作为TextCNN分类模型的训练语料;
接着将标准化医学术语作为TextCNN分类模型的标签,将真实医患对话数据集口语化医学
描述作为TextCNN分类模型的输入,通过训练语料更新模型参数,实现口语化医学描述到标
准化医学术语的映射。参见图5,作为一种可选的实施方式,本实施例中TextCNN分类模型的
卷积核尺寸为(2,3,4),每个卷积核尺寸的数目为2个。
[0089] 参见图6,对话策略模型为包含输入层、2个神经网络隐含层和输出层的神经网络,步骤S4)之前还包括训练对话策略模型的步骤:
[0090] S4‑1)基于真实医患对话数据集,通过人工标注的方式获取每段真实医患对话中标准的医学术语以及患者年龄性别,获取基于标准的医学术语获取每段真实医患对话对应
的用户描述症状、用户描述症状、医生问询症状、症状对应疾病以及所属科室,构建用户目
标,用户目标包括该段对话下的用户描述症状、医生问询症状、症状对应疾病、患者年龄性
别以及所属科室;
[0091] S4‑2)将对话过程中用户采取的行为分为否定、确认、询问、告知、结束交互五种作为对话动作at中系统意图,医生问询症状、症状对应疾病或所属科室作为对话动作at中的处
理结果,从而确定各组对话中的对话动作at;通过每一组对话训练对话策略模型以建立对
话状态St和奖励rt两者、及其选择的某一个对话动作at的函数Q的映射关系,且每训练一步
根据对话动作at中系统意图和处理结果的正确性分别调整生成下一步的奖励rt+1,其中函
数Q的函数表达式为:
[0092] Q(st,at)=rt+γmaxQ(st+1,at+1)
[0093] 上式中,Q(st,at)表示在对话状态st下选择对话动作at的函数Q的值,rt为奖励,γ为衰减率系数,Q(st+1,at+1)为下一步在对话状态s t+1下选择对话动作a t+1的函数Q的值;且
训练对话策略模型时采用的损失函数为:
[0094] L=1/2 [rt + maxQ(st+1,at+1)‑ Q(st,at)]2
[0095] 上式中,L表示损失函数。
[0096] 构建用户模拟器时,模拟真实环境下患者在交互过程中采取的动作,在对话过程中,对于系统请求的症状,用户将采取以下三种行为之一:confirm(如果有这个症状)、deny
(如果没有这个症状)和not sure(如果症状没有在用户目标中提到)。如果系统通知了正确
的疾病,对话将被用户成功终止。否则,当系统做出错误诊断或对话轮到达最大对话轮数
时,对话会话将被识别为失败。因此,将对话过程中用户采取的行为分为否定、确认、询问、
告知、结束交互五种作为对话动作at中系统意图。
[0097] 作为一种可选的实施方式,本实施例中每训练一步根据对话动作at中系统意图和处理结果的正确性分别调整生成下一步的奖励rt+1是指:如果选择对的对话动作at,奖励
rt+1加1,如果选择错的对话动作at,奖励rt+1减1;如果处理结果输出正确的科室,奖励rt+1加
44,如果处理结果输出错误的科室,奖励rt+1减44,如果对话轮数超出对话最大轮数,则认为
对话失败,奖励rt+1减22,使得不论是训练还是实际交互,都会在多轮对话后结束以实现对
话的收敛。毫无疑问,奖励rt+1的这些增或减的量可根据需要设定为指定值,例如将第一指
定值表示1,第二指定值表示44,第三指定值表示22;此外,对和错对应奖励rt+1的增或减的
量既可以相同,也可以选择不同。
[0098] 本实施例中,步骤S4)中根据对话动作at选择模板将处理结果映射成自然语言文本并输出的步骤包括:根据对话动作at中的系统意图选择匹配的句子模板,根据对话动作at
中的处理结果选择匹配的词汇模板,将选择的词汇模板填入句子模板中的槽位得到自然语
言文本并输出。其中,句子模板和词汇模板的构建方法如下:句子模板包括若干个含有系统
槽位变量的句子,词汇模板则是句子模板中变量对应的所有可能的值。在医院导诊背景下,
记录医生问询的方式,去除句子中包含的系统槽位信息,基于此人工制定相应句子模板。基
于标准化医学术语表,构建词汇模板。构建句子模板和词汇模板之后,即可生成预定义的业
务规则集,然后得到对话动作at后,即可通过预定义的业务规则集,选取相应的句子模板,
生成用于回复用户的自然语言文本。
[0099] 为了获得本实施例基于全局注意力意图识别的人机交互导诊方法的有效性,下文将针对该意图识别模型进行对比分析。本实验数据来自中文医疗对话数据集,该数据集由
复旦大学和百度医疗标注完成,一共包含4种疾病,162个症状,2067段医患对话,87005条语
句。对比方法采用CNNs‑Bi‑LSTM‑CRF(Ma, Xuezhe and Eduard H. Hovy. “End‑to‑end 
Sequence Labeling via Bi‑directional LSTM‑CNNs‑CRF.” ArXiv abs/1603.01354 
(2016): n. pag.)。采用准确率(Precision)、召回率(Recall)和F1分数(F1‑Score)指标衡
量意图识别效果。计算方法如下:
[0100] Precision =TP/(TP+FP)
[0101] Recall =TP/(TP+FN)
[0102] F1= (2×Precision)/( Precision + Recall)
[0103] 其中,Precision表示准确率,TP表示被正确分类的正例,FP表示本来是负例结果被错分的正例,FN表示本来是正例结果被错分的负例,Recall表示召回率,F1表示F1分数。
表1列出了本实施例方法与CNNs‑Bi‑LSTM‑CRF方法在中文医疗对话数据集下的识别结果:
[0104] 表1:模型对比结果。
[0105]
[0106] 由表1可知,本实施例基于全局注意力意图识别的人机交互导诊方法在3个指标上均高于CNNs‑Bi‑LSTM‑CRF方法,说明本实施例基于全局注意力意图识别的人机交互导诊方
法更加有效。为了验证人机自然交互智能导诊系统的有效性,采用常见的医患问题对本发
明实施例的系统进行测试,实验效果如图7所示。结合图7可以看到,本实施例基于全局注意
力意图识别的人机交互导诊方法能够有效的挖掘患者病情描述之外的疾病信息,实现了自
然的人机交互。综上所述,本实施例基于全局注意力意图识别的人机交互导诊方法利用真
实医患对话数据集,基于全局注意力机制,构建全局相关词向量字典,建立意图识别模型,
有效的分析处理了患者非标准化、口语化的病情描述。其中,本发明实施例通过强化学习技
术,学习专业医生经验,构建对话策略模型,挖掘患者病情描述之外的疾病信息,实现了患
者与系统之间的自然交互。由此,本发明解决了如何分析患者口语病情描述的相关疾病信
息,如何挖掘患者病情描述之外的疾病信息等技术问题,具有很好的应用价值。
[0107] 如图8所示,本实施例还提供一种基于全局注意力意图识别的人机交互导诊系统,包括:
[0108] 病情获取程序单元,用于获取患者当前对话中的病情描述;
[0109] 语言理解程序单元,用于针对病情描述进行自然语言理解获得标准的医学术语;
[0110] 对话跟踪程序单元,用于将标准的医学术语更新当前的对话状态St,将当前的对话状态St输入预设的对话策略模型获得对话动作at,对话策略模型被训练建立了当前的对
话状态、对话动作at之间的映射关系,对话动作at包含系统意图和处理结果,系统意图为否
定、确认、询问、告知或结束交互;处理结果为处理得到的症状、疾病或科室;
[0111] 动作处理程序单元,用于基于对话动作at进行处理:如果对话动作at的系统意图为否定、确认或询问,则根据对话动作at更新当前的对话状态St,根据对话动作at选择模板将
处理结果映射成自然语言文本并输出,跳转执行病情获取程序单元继续交互;如果对话动
作at的系统意图为告知,则根据对话动作at选择模板将为科室的处理结果映射成自然语言
文本并输出;如果对话动作at的系统意图为结束交互,则结束并退出。
[0112] 此外,本实施例还提供一种基于全局注意力意图识别的人机交互导诊系统,包括相互连接的微处理器和存储器,微处理器被编程或配置以执行前述基于全局注意力意图识
别的人机交互导诊方法的步骤,或者存储器中存储有被编程或配置以执行前述基于全局注
意力意图识别的人机交互导诊方法的计算机程序。
[0113] 此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于全局注意力意图识别的人机交互导诊方法的计算机程序。
[0114] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机
可读存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程
图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个
方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其
他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读
存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流
程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算
机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤
以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在
流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0115] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。