人机对话系统优化方法及人机对话系统与流程

文档序号:19738238发布日期:2020-01-18 04:48阅读:235来源:国知局
人机对话系统优化方法及人机对话系统与流程
本申请涉及人工智能
技术领域
,尤其涉及一种人机对话系统优化方法及人机对话系统。
背景技术
:在使用对话系统或产品聊天的过程中,用户往往不知道该如何提问,该问什么。当系统不能正确回答用户的问题时,用户需要思考其他问题和系统对话。如果系统多次不能正确回答用户的问题时,用户就会停止探索系统的能力边界,影响用户体验,同时也会影响系统收集用户问题实现主动学习的能力。技术实现要素:本申请实施例提供一种人机对话系统优化方法及人机对话系统,用于至少解决上述技术问题之一。第一方面,本申请实施例提供一种人机对话系统优化方法,应用于人机对话系统,所述方法包括:初始化所述人机对话系统中的多个子主题的主题推荐度值;获取用户的多个历史问题;确定所述多个历史问题与所述多个子主题之间的匹配度;根据所述匹配度更新所述多个子主题的主题推荐度值;其中,所述匹配度越高,对应的主题推荐度值越低。第二方面,本申请实施例提供一种人机对话系统,包括:初始化模块,用于初始化所述人机对话系统中的多个子主题的主题推荐度值;历史问题获取模块,用于获取用户的多个历史问题;匹配度确定模块,用于确定所述多个历史问题与所述多个子主题之间的匹配度;推荐度值更新模块,用于根据所述匹配度更新所述多个子主题的主题推荐度值;其中,所述匹配度越高,对应的主题推荐度值越低。第三方面,本申请实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本申请上述任一项人机对话系统优化方法。第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请上述任一项人机对话系统优化方法。第五方面,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项人机对话系统优化方法。本申请实施例的有益效果在于:根据用户的历史问题确定用户已知的问题,并结合系统所具备的主题,确定主题的推荐度值用于找到合适的引导话题,实现引导的话题既能拓展用户已知能力域,增强用户对系统的了解,又能被系统准确回答。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请的人机对话系统优化方法的一实施例的流程图;图2为本申请的人机对话系统优化方法的另一实施例的流程图;图3为本申请的人机对话系统中的技能的结构示意图;图4为本申请的人机对话系统的一实施例的原理框图;图5为本申请的电子设备的一实施例的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如图1所示,本申请的实施例提供一种人机对话系统优化方法,应用于人机对话系统,所述方法包括:s10、初始化所述人机对话系统中的多个子主题的主题推荐度值;s20、获取用户的多个历史问题;s30、确定所述多个历史问题与所述多个子主题之间的匹配度;s40、根据所述匹配度更新所述多个子主题的主题推荐度值;其中,所述匹配度越高,对应的主题推荐度值越低。本申请实施例根据用户的历史问题确定用户已知的问题,并结合系统所具备的主题,确定主题的推荐度值用于找到合适的引导话题,实现引导的话题既能拓展用户已知能力域,增强用户对系统的了解,又能被系统准确回答。在一些实施例中,人机对话系统优化方法还包括:初始化所述多个子主题中的每一个子主题的多个知识点的知识点推荐度值;根据所述多个历史问题与所述每一个子主题的多个知识点之间的相似度值,更新所述每一个子主题的多个知识点的知识点推荐度值;其中,所述相似度值越大,对应的知识点推荐度值越小。本实施例中不仅确定了每一个子主题的主题推荐度值,还确定出了每一个子主题中的每一个知识点的推荐度值,从而能够使得基于本申请的方法优化后的人机对话系统能够在知识点层面为用户进行更加精准的推荐,以及话题的拓展,有助于用户更加全面的了解当前对话系统的能力域及对话边界。在一些实施例中,确定所述多个历史问题与所述多个子主题之间的匹配度包括:针对所述每一个子主题执行以下步骤以确定所述每一个子主题与所述多个历史问题之间的匹配度:确定所述多个历史问题中的每一个历史问题与当前子主题的多个知识点之间的多个相似度值,以根据所述多个相似度值确定当前历史问题是否命中所述当前子主题;根据命中所述当前子主题的历史问题的数量确定匹配问题数;根据所述匹配问题数确定对应所述当前子主题的匹配度;示例性地,将所述匹配问题数与所述多个历史问题的数量之间的比值确定为所述当前子主题的匹配度。在一些实施例中,所述多个历史问题为距离当前时刻预设时间内(预设时间可以是几天或者几个小时或者等,本申请对此不作限定)用户所提问的问题;本申请的人机对话系统优化方法还包括:当所述多个历史问题均未命中所述当前子主题时,增大所述当前子主题的主题推荐度值,同时增大所述当前子主题中的多个知识点的知识点推荐度值。本申请实施例实现了对人机对话系统中的子主题及知识点的动态更新,并且由于是基于距离当前时刻预设时间内的多个历史问题进行的主题推荐度值和知识点推荐度值的更新,所以使得更新后的人机对话系统的对话系统能够更加贴合用户近期的使用状态。例如,对某一用户来说,当使用某一具备人机对话系统的智能终端时,一个星期之前曾经提出过关于话题a的问题,从而人机对话系统认为该用户已经掌握或者了解到了本系统具备该话题a的能力域,从而降低了主动推荐该话题a的推荐度值。但是近期用户提问中不再涉及关于该话题a的提问,这时可能是由于遗忘了本人机对话系统具备该话题a的能力域,因此适当的将该话题a的推荐度值(包括对应知识点的推荐度值)提高,有助于让用户再次了解到该话题a。从而使得用户能够对于如此反复的了解到本人机对话系统具备该话题a的能力域,最终实现对本人机对话系统的能力域范围的全面而熟悉的掌握。在一些实施例中,根据所述多个相似度值确定当前历史问题是否命中所述当前子主题包括:判断所述多个相似度值的平均值是否大于设定阈值;如果是,则判定所述当前历史问题命中所述当前子主题;如果否,则判定所述当前历史问题未命中所述当前子主题。本申请实施例中通过将多个相似度值的平均值与设定阈值进行比较,可以避免个别知识点与当前历史问题相近似就判定匹配度高,从而得出低的推荐度的情况发生。因为,当前子主题中的其它知识点可能与当前历史问题的相似度很小(即,与当前历史问题相关度非常弱),这种情况下直接将该子主题打一个较低的推荐度分数,显然是不合适的。在一些实施例中,确定所述多个历史问题中的每一个历史问题与当前子主题的多个知识点之间的多个相似度值包括:选择所述当前子主题的多个知识点中的两两之间的相似度值最小的两个知识点作为第一知识点和第二知识点;分别确定所述多个历史问题中的每一个历史问题与所述第一知识点和第二知识点之间的第一相似度值和第二相似度值;当所述第一相似度值和第二相似度值的平均值大于设定阈值时,判定所述当前历史问题命中所述当前子主题。本申请实施例中所选用的第一知识点和第二知识点是当前子主题中的多个知识点中的两个极端情况,因此仅需计算当前历史问题与两个知识点之间的相似度值并进行比较就能够确定是否命中当前子主题,极大的减少了所需的计算量。在一些实施例中,当所述第一相似度值和第二相似度值的平均值不大于设定阈值时,进一步确定所述多个历史问题中的每一个历史问题与所述多个知识点中的剩余知识点之间的相似度值,以完整确定对应于所述多个知识点中的每一个知识点的多个相似度值。在一些实施例中,本申请还提供一种人机对话方法。如图2所示,该人机对话方法包括以下步骤:首先,用户第一次对话随机生成引导话题。初始化主题和知识点可推荐度。假设系统能力域包括m个主题,则每个主题的可引导概率为均匀分布,1/m。每个主题包括n个知识点,那么每个知识点的可引导概率也是均匀分布,为1/n。第二步,对用户的问题q进行主题分类,根据语义相似度计算问题q与每个主题下知识点的语义相似度,确定相似度最大且大于某个阈值的知识点k。则知识点k对应的主题即为问题q对应的主题。第三步,将分类的问题映射到主题上,知识点k对应的主题即为问题q对应的主题。第四步,更新主题和知识点的可推荐度。主题可引导概率为1-s/t,s为某主题被问题q映射的次数,t为所有的问题数。知识点可引导概率为1-sim(q,k),其中sim(q,k)为问题q和知识点k的语义相似度。如果某个主题和知识点在某段时间内没有被问到,那么主题和知识点的可引导概率增加一个小数θ。第五步,根据可引导概率选择topn个主题,从topn个主题中选1个知识点。根据预定义模板生成引导话术。预定义模板可以参考下面的例子,包括三个片段,第一个片段有1个槽位{机器人名},用户可以自定义机器人名。第二个片段有3个槽位{技能名},系统可以配置引导几个技能,默认是3个。第三个片段是典型问法,包括一个槽位{知识点的反问形式},首先从片段2中选一个技能,然后从技能中根据知识点的可引导概率选择一个知识点,将该知识点转换成问句形式。例如:<你好,我是{机器人名}><我知道很多关于{技能1名称},{技能2名称},{技能3名称}的知识><你可以这样问我{技能1/2/3中某个知识点的问题形式}>示例性地,根据人机对话系统配置的技能<s1,s2....sn>,每个技能si会有若干主题,主题包括子主题,子主题包括若干知识点。如图3所示为本申请的人机对话系统的技能结构示意图,基于该示意图进行系统能力域建模。示例性地,用户历史问题集合为u<q1,q2,...qn>,比较qi与系统配置的技能中知识点的语义相似度,当相似度大于某个阈值时,qi的主题可以确定,对应的技能也可以确定。遍历集合u,将每个qi映射到每个技能中。然后做个归一化得到每个技能被推荐的概率。其中,某个阈值可以通过语义匹配算法计算得到相似度,例如,可以通过深度学习模型将句子表示为句向量,然后计算两个句子的余弦距离。阈值具体值可以根据系统处理的场景确定,一般可以设为0.8,本申请对此不作限定。以某个u<q1,q2,...qn>为例,u中有c1个问题落到了技能s1;u中有c2个问题落到了技能s2;u中有c3个问题落到了技能s3;u中有c4个问题落到了技能s4;θi=1-ci/sum(ci)。类似的可以计算某个技能si中主题ti,子主题sti的推荐度,可参见下表:技能主题子主题匹配问题数可推荐度s1t1st1c1θ1s2t1st2c2θ2s3t1st2c3θ3s4t1st3c4θ4示例性地,本申请中人机对话方法及系统可以适用于任何种类的iot智能设备,例如,包括但并不限于故事机、智能音箱等。技能s1、s2、s3、s4可以是闲聊、百科。主题t1可以是闲聊技能中的心情的主题,或者是百科技能中的历史主题。示例性地,当用户首次进入对话时,根据每个技能的可推荐度θi,先选中某几个话题,然后根据主题ti的可推荐度,子主题的可推荐度,主题和子主题,最后推荐选中的子主题的某个知识点作为引导话题推荐给用户。本申请要解决的推荐是为了引导用户探索对话系统边界,会推荐同类问题。如果一段时间内用户问过了某类问题,例如“十万个为什么”,那么在接下来的一段时间内,系统会认为用户已经知道对话系统可以回答“十万个为什么”的问题。那么“十万个为什么”类的问题推荐度会衰减。如果过了一段时间,用户都没问“十万个为什么”类问题,那么可能是用户忘记了对话系统可以回答“十万个为什么”类问题,那么这个时候要加强“十万个为什么”类问题的推荐度。另外可以考虑,不同的session计算一次,保证在同一个session中不会出一个子主题的知识点。最后,定期更新技能,主题,子主题的可推荐度。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。如图4所示,本申请的实施例还提供一种人机对话系统400,包括:初始化模块410,用于初始化所述人机对话系统中的多个子主题的主题推荐度值;历史问题获取模块420,用于获取用户的多个历史问题;匹配度确定模块430,用于确定所述多个历史问题与所述多个子主题之间的匹配度;推荐度值更新模块440,用于根据所述匹配度更新所述多个子主题的主题推荐度值;其中,所述匹配度越高,对应的主题推荐度值越低。本申请实施例根据用户的历史问题确定用户已知的问题,并结合系统所具备的主题,确定主题的推荐度值用于找到合适的引导话题,实现引导的话题既能拓展用户已知能力域,增强用户对系统的了解,又能被系统准确回答。在一些实施例中,所述初始化模块还用于初始化所述多个子主题中的每一个子主题的多个知识点的知识点推荐度值;所述推荐度值更新模块还用于根据所述多个历史问题与所述每一个子主题的多个知识点之间的相似度值,更新所述每一个子主题的多个知识点的知识点推荐度值;其中,所述相似度值越大,对应的知识点推荐度值越小。本实施例中不仅确定了每一个子主题的主题推荐度值,还确定出了每一个子主题中的每一个知识点的推荐度值,从而能够使得基于本申请的方法优化后的人机对话系统能够在知识点层面为用户进行更加精准的推荐,以及话题的拓展,有助于用户更加全面的了解当前对话系统的能力域及对话边界。在一些实施例中,所述匹配度确定模块被配置为执行以下步骤:针对所述每一个子主题执行以下步骤以确定所述每一个子主题与所述多个历史问题之间的匹配度:确定所述多个历史问题中的每一个历史问题与当前子主题的多个知识点之间的多个相似度值,以根据所述多个相似度值确定当前历史问题是否命中所述当前子主题;根据命中所述当前子主题的历史问题的数量确定匹配问题数;根据所述匹配问题数确定对应所述当前子主题的匹配度。在一些实施例中,所述多个历史问题为距离当前时刻预设时间内(预设时间可以是几天或者几个小时或者等,本申请对此不作限定)用户所提问的问题;本申请的人机对话系统中的推荐度值更新模块还配置为:当所述多个历史问题均未命中所述当前子主题时,增大所述当前子主题的主题推荐度值,同时增大所述当前子主题中的多个知识点的知识点推荐度值。在一些实施例中,根据所述匹配问题数确定对应所述当前子主题的匹配度包括:将所述匹配问题数与所述多个历史问题的数量之间的比值确定为所述当前子主题的匹配度。在一些实施例中,根据所述多个相似度值确定当前历史问题是否命中所述当前子主题包括:判断所述多个相似度值的平均值是否大于设定阈值;如果是,则判定所述当前历史问题命中所述当前子主题;如果否,则判定所述当前历史问题未命中所述当前子主题。在一些实施例中,确定所述多个历史问题中的每一个历史问题与当前子主题的多个知识点之间的多个相似度值包括:选择所述当前子主题的多个知识点中的两两之间的相似度值最小的两个知识点作为第一知识点和第二知识点;分别确定所述多个历史问题中的每一个历史问题与所述第一知识点和第二知识点之间的第一相似度值和第二相似度值;当所述第一相似度值和第二相似度值的平均值大于设定阈值时,判定所述当前历史问题命中所述当前子主题。在一些实施例中,当所述第一相似度值和第二相似度值的平均值不大于设定阈值时,进一步确定所述多个历史问题中的每一个历史问题与所述多个知识点中的剩余知识点之间的相似度值,以完整确定对应于所述多个知识点中的每一个知识点的多个相似度值。在一些实施例中,本申请实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本申请上述任一项人机对话系统优化方法。在一些实施例中,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项人机对话系统优化方法。在一些实施例中,本申请实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行人机对话系统优化方法。在一些实施例中,本申请实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现人机对话系统优化方法。上述本申请实施例的人机对话系统可用于执行本申请实施例的人机对话系统优化方法,并相应的达到上述本申请实施例的实现人机对话系统优化方法所达到的技术效果,这里不再赘述。本申请实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。图5是本申请另一实施例提供的执行人机对话系统优化方法的电子设备的硬件结构示意图,如图5所示,该设备包括:一个或多个处理器510以及存储器520,图5中以一个处理器510为例。执行人机对话系统优化方法的设备还可以包括:输入装置530和输出装置540。处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的人机对话系统优化方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例人机对话系统优化方法。存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据人机对话装置的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至人机对话装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置530可接收输入的数字或字符信息,以及产生与人机对话装置的用户设置以及功能控制有关的信号。输出装置540可包括显示屏等显示设备。所述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的人机对话系统优化方法。上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。本申请实施例的电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,故事机、智能音箱,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子装置。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1