本申请涉及计算机技术领域,特别是涉及一种人机对话方法、装置、计算机设备和存储介质。
背景技术:
智能聊天机器人的概念在近年来越来越火热,以语音交互及自然语言理解为核心的聊天机器人,正逐步运用到语音助手、在线咨询、导引、客服、日常聊天等各个服务领域。
然而,现有的市场上的聊天机器人,通常都属于传统的一问一答方式,通过获取用户语句的知识点,再获取该知识点对应的答案来回答用户的语句,这种传统的一问一答的聊天方式,过于单一。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够提高人机对话的多样性的人机对话方法、装置、计算机设备和存储介质。
一种人机对话方法,该方法包括:
获取待回答的用户语句;
根据待回答的用户语句确定对应的目标知识点;
当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;
执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
在其中一个实施例中,人机对话方法还包括:当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
在其中一个实施例中,根据待回答的用户语句确定对应的目标知识点,包括:获取当前知识点,当前知识点关联有对应的当前用户语句;根据当前用户语句和待回答的用户语句计算语句相似度;当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点;当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
在其中一个实施例中,当目标知识点关联有对应的目标技能时,包括:获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点;当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
在其中一个实施例中,当目标知识点关联有对应的目标技能时,包括:获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的;对待回答的用户语句进行语义分析,得到对应的用户句法结构;当用户句法结构与技能句法结构匹配时,确定技能句法结构关联的第二技能为目标知识点对应的目标技能。
在其中一个实施例中,人机对话方法还包括:获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句;确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系;根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
在其中一个实施例中,人机对话方法还包括:获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率;当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。
一种人机对话装置,该装置包括:
用户语句获取模块,用于获取待回答的用户语句;
知识点确定模块,用于根据待回答的用户语句确定对应的目标知识点;
技能匹配模块,用于当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;
技能执行模块,用于执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待回答的用户语句;
根据待回答的用户语句确定对应的目标知识点;
当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;
执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待回答的用户语句;
根据待回答的用户语句确定对应的目标知识点;
当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;
执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
上述人机对话方法、装置、计算机设备和存储介质,通过获取待回答的用户语句的目标知识点对应的目标技能,而目标技能存在对应的技能任务,技能任务是用于实现人机对话多轮对话,最后,通过执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。因此,通过技能任务实现人机多轮对话,克服传统的一问一答的人机对话的模式,而且,通过一轮一轮人机对话最终得到待回答的用户语句对应的目标语句,不仅提高了人机对话的交互体验,而且还提高了人机对话的多样性。
附图说明
图1为一个实施例中人机对话方法的应用环境图;
图2为一个实施例中人机对话方法的流程示意图;
图3为一个实施例中目标知识点确定步骤的流程示意图;
图4为一个实施例中目标技能匹配步骤的流程示意图;
图5为一个实施例中目标技能匹配步骤的流程示意图;
图6为另一个实施例中人机对话方法的流程示意图;
图7为又一个实施例中人机对话方法的流程示意图;
图8为一个实施例中人机对话装置的结构框图;
图9为一个实施例中知识点确定模块的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的人机对话方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,用户可在终端102上传待回答的用户语句,终端102将采集到的待回答的用户语句通过请求发送至服务器104。服务器104根据待回答的用户语句确定对应的目标知识点,当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话,执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。最后,服务器104将目标语句返回至终端102。
在另一个实施例中,终端102获取待回答的用户语句,根据待回答的用户语句确定对应的目标知识点,当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话,执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句,供终端102进行人机对话。
在一个实施例中,如图2所示,提供了一种人机对话方法,以该方法应用于图1中的终端或服务器为例进行说明,包括以下步骤:
步骤202,获取待回答的用户语句。
其中,待回答的用户语句是等待聊天机器设备进行回答的语句,由用户发出的用户语句。待回答的用户语句可以询问式的用户问句,或者还可以是肯定形式的用户语句等等,其中,待回答的用户语句例如可以是:“可以帮我查看下今天的天气吗”、“帮我查询下今天的天气”、“推荐一部手机给我”等等。
具体地,终端或服务器通过语音采集装置采集到用户发出的待回答的用户语句。其中,语音采集装置可以是麦克风等等。
步骤204,根据待回答的用户语句确定对应的目标知识点。
其中,这里的目标知识点是与待回答的用户语句对应的知识点,所谓知识点是样本用户语句所在的知识点分类单元,各个知识点下存在至少一个样本用户语句,而知识点可以根据样本用户语句的含义、意图等确定得到。例如,样本用户语句a为:“查询今天的天气如何”、样本用户语句b为:“查询下今天的温度如何”、样本用户语句c为:“查天气”,可根据样本用户语句a、样本用户语句b、样本用户语句c确定对应的知识点为:“查询天气”,将该知识点作为样本用户语句a、样本用户语句b、样本用户语句c对应的知识点。
其中,根据待回答的用户语句确定对应的目标知识点,具体可以是,从存储的知识点中确定当前知识点,获取当前知识点对应的当前用户语句,计算当前用户语句与待回答的用户语句的语句相似度,根据语句相似度确定当前知识点是否为待回答的用户语句对应的目标知识点。
在一个实施例中,根据待回答的用户语句确定对应的目标知识点,具体还可以是,提取待回答的用户语句中的用户语句关键字,根据用户语句关键字确定对应的目标知识点,例如,待回答的用户语句为:“帮我查询下今天的天气”,可根据自然语言处理确定待回答的用户语句中的用户语句关键字为:“查询、今天、天气”,因此,待回答的用户语句对应的目标知识点可以为:“查询今天天气”。
在一个实施例中,也可以是将待回答的用户语句直接或者转换为向量之后输入到预先构建的知识点识别模型(例如,用户意图识别模型),根据知识点识别模型的输出结果确定目标知识点。具体地,可以预先通过大量的样本用户语句以及对应的真实知识点标签训练原始的知识点识别模型,当知识点识别模型达到收敛时,输出构建好的知识点识别模型。当获取到待回答的用户语句时,可以将待回答的用户语句作为构建好的知识点识别模型的输入,知识点识别模型可以先将待回答的用户语句直接或者转换为向量,进行计算得到对应的目标知识点。或者还可以是,先将待回答的用户语句直接或者转换为向量,再将向量作为构建好的知识点识别模型的输入,经过知识点识别模型的计算得到对应的目标知识点。
步骤206,当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话。
其中,这里的技能是指能够完成对应的技能任务的功能,而技能任务是指具体的某一具体任务,用于实现人机多轮对话,技能任务可以是根据业务需求或者实际场景需求进行确定的,例如,技能任务可以是通过查询、修改、删除、添加等操作来实现人机多轮对话。其中,各个技能都存在对应的技能任务,可以根据技能获取对应的技能任务。
其中,这里的目标技能是指与目标知识点匹配的技能,预先将各个知识点与对应的技能建立关联关系,具体可以是根据业务场景或者产品需求确定知识点与对应的技能之间是否需要建立关联关系。
具体地,在获取到待回答的用户语句对应的目标知识点后,可以根据知识点与技能之间的关联关系获取与目标知识点对应的目标技能,当目标知识点存在对应的目标技能时,说明目标知识点与目标技能之间存在关联关系,因此通过执行目标技能对应的技能任务,从而得到待回答的用户语句对应的目标语句,具体可以是,获取目标技能对应的技能任务,这里的技能任务是用于实现人机多轮对话。所谓人机多轮对话是指聊天设备与用户之间多次交互,通过多次交互得到待回答的用户语句对应的目标语句,避免传统的一问一答的方式,提高人机对话的多样性。
其中,当目标知识点不存在对应的目标技能时,说明目标知识点与目标技能之间不存在关联关系,因此可通过传统的一问一答的方式,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
步骤208,执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
其中,这里的目标语句是待回答的用户语句对应的最终答案,也就是用户想要知道的答案。其中,目标语句是通过执行技能任务,通过人机多轮对话得到的,其中,人机多轮对话的过程中,每一轮对话都存在对应的用户语句和机器回答,其中,机器回答都不是一开始待回答的用户语句对应的目标语句,是为了增加聊天机器与用户之间的交互次数的机器回答。例如,一开始的待回答的用户语句为:“帮我查下今天的天气?”,第一轮人机对话中,机器回答为:“请问你查询哪里的天气呢?”,第二轮人机对话中,用户语句为:“南京”,机器回答为:“南京的天气为下雨,温度20℃”,通过二轮人机对话可以得到待回答的用户语句对应的目标语句为:“南京的天气为下雨,温度20℃”。
又例如,第一轮人机对话中,一开始的待回答的用户语句为:“帮我买下广州到南京的高铁票。”,机器回答为:“请问你买什么时候的高铁票?”,第二轮人机对话中,用户语句为:“我需要购买后天的高铁票”,机器回答为:“后天具体时间是?”,第三轮人机对话中,用户语句为:“早上9点。”,机器回答为:“好的,您的身份号信息为?”,第四轮人机对话中,用户语句为:“41234xxxx”,机器回答为:“好的,已帮您购买了后天早点9点广州到南京的高铁票,用户信息为41234xxxx,购买成功。”可见,不仅通过多轮人机对话能够得到目标语句,而且可通过多轮人机对话实现某一技能,在人机多轮对话中,可以增加人机对话的多样性,增加与用户的交互乐趣。
具体地,在获取到目标知识点对应的目标技能以及目标技能对应的技能任务后,执行技能任务,由于技能任务是指具体的某一具体任务,用于实现人机多轮对话,具体可以通过查询、修改、删除、添加等操作来实现人机多轮对话。也就是说,可以通过执行技能任务,从待回答的语句中提取关键字,通过关键字查询操作来实现人机多轮对话,每一轮对话都可以是引导用户再次回答,循序渐进直至得到待回答的用户语句对应的目标语句。其中,在得到待回答的用户语句对应的目标语句之前,每一轮人机对话中机器回答的语句都不是最终的答案,而是中间为了增加与用户的交互次数,提高人机对话多样性的对话。
上述人机对话方法中,通过获取待回答的用户语句的目标知识点对应的目标技能,而目标技能存在对应的技能任务,技能任务是用于实现人机对话多轮对话,最后,通过执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。因此,通过技能任务实现人机多轮对话,克服传统的一问一答的人机对话的模式,而且,通过一轮一轮人机对话最终得到待回答的用户语句对应的目标语句,不仅提高了人机对话的交互体验,而且还提高了人机对话的多样性。
在一个实施例中,人机对话方法还包括:当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
其中,当目标知识点不存在对应的目标技能时,说明目标知识点与目标技能之间不存在关联关系,因此可通过传统的一问一答的方式,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
其中,这里的知识点用户语句是与知识点绑定的用户语句,各个知识点下可关联有至少一个知识点用户语句,通过知识点用户语句与待回答的用户语句确定目标知识点用户语句,具体可以是,计算知识点用户语句与待回答的用户语句之间的相似度,根据相似度确定目标知识点用户语句。进一步地,再将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。其中,根据知识点用户语句与待回答的用户语句可以通过自然语言处理确定目标知识点用户语句,自然语言处理包括分词、句法分析等处理过程,从目标知识点对应的目标知识点用户语句中确定与待回答的用户语句匹配的目标知识点用户语句。
在一个实施例中,如图3所示,根据待回答的用户语句确定对应的目标知识点,包括:
步骤302,获取当前知识点,当前知识点关联有对应的当前用户语句。
步骤304,根据当前用户语句和待回答的用户语句计算语句相似度。
其中,这里的当前知识点是指目前正在用来处理的知识点,可以从存储的所有知识点中随机抽取一个作为当前知识点,或者还可以是按照知识点的优先级依次作为当前知识点,或者还可以是按照知识点的时间顺序依次作为当前知识点等等。其中,各个知识点关联有对应的用户语句,用户语句的数量为至少一个,用户语句是属于知识点下的用户语句,在确定当前知识点后,由于各个知识点都关联有对应的用户语句,因此获取当前知识点关联的当前用户语句,这里的当前用户语句是与当前知识点关联的用户语句。
进一步地,根据当前用户语句和待回答的用户语句计算得到语句相似度,其中,语句相似度的计算方式可自定义,自定义可以是先对当前用户语句和待回答的用户语句进行分词处理,得到当前用户语句对应的第一分词和待回答的用户语句对应的第二分词,计算第一分词和第二分词之间的相似度,即得到语句相似度。或者自定义还可以是,先对当前用户语句和待回答的用户语句进行分词处理,得到当前用户语句对应的第一分词和待回答的用户语句对应的第二分词,根据第一分词和第二分词中相同关键词的数量计算得到语句相似度。其中,所谓语句相似度是用来表示当前用户语句和待回答的用户语句之间的相似程度,语句相似度越高,说明当前用户语句和待回答的用户语句越相似,差异越小,反之,语句相似度越低,说明当前用户语句和待回答的用户语句越不相似,差异越大。
步骤306,当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点。
步骤308,当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
其中,这里的预设条件是用来判断语句相似度是否符合规定的,可以根据实际业务场景或者产品需求确定,例如预设条件可以设置为:当语句相似度小于预设相似度时,则认为语句相似度满足预设条件,反之,则认为语句相似度不满足预设条件。
其中,当语句相似度满足预设条件时,说明当前用户语句和待回答的用户语句越相似,差异越小,因此当前用户语句对应的当前知识点可以作为待回答的用户语句对应的目标知识点。
反之,当语句相似度不满足预设条件时,说明当前用户语句和待回答的用户语句越不相似,差异越大,则当前用户语句对应的当前知识点不可以作为待回答的用户语句对应的目标知识点,因此,需要获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
在一个实施例中,如图4所示,当目标知识点关联有对应的目标技能时,包括:
步骤402,获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点。
步骤404,当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
其中,可以根据技能对应的知识点来确定目标知识点对应的目标技能,具体可以是,获取第一技能集合,这里的第一技能集合是存储的所有技能的集合,第一技能是用来与下文的第二技能进行区分的,无特殊含义,将存储的所有的技能组成第一技能集合,第一技能集合包括至少一个第一技能,而各个第一技能关联有对应的第一知识点。
进一步地,根据第一技能对应的第一知识点和目标知识点确定目标技能,具体可以是,检测第一知识点和目标知识点是否匹配,当第一知识点和目标知识点匹配时,则可确定为第一知识点关联的第一技能为目标知识点对应的目标技能。其中,检测第一知识点和目标知识点是否匹配具体可以是,检测第一知识点和目标知识点是否相同,或者计算第一知识点和目标知识点的知识点相似度,根据知识点相似度确定第一知识点和目标知识点是否匹配。也就是说,本实施例中,是通过将第一技能关联的知识点与目标知识点进行匹配来确定目标知识点对应的目标技能。
例如,第一技能集合包括第一技能a、第一技能b,第一技能a关联有对应的知识点a,第二技能b关联有对应的知识点b,而目标知识点c为知识点a,因此,可将知识点a关联的第一技能a作为目标知识点c对应的目标技能。
在一个实施例中,如图5所示,当目标知识点关联有对应的目标技能时,包括:
步骤502,获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的。
其中,除了上述实施例是通过将第一技能关联的知识点与目标知识点进行匹配来确定目标知识点对应的目标技能之外,还可以根据待回答的用户语句的句法结构来确定目标知识点对应的目标技能。
具体可以是,获取第二技能集合,第二技能集合包括至少一个第二技能,可以将存储的所有技能作为第二技能,将所有的第二技能组成第二技能集合。其中,第二技能关联有对应的技能句法结构,所谓的句法结构是指用户语句中关键词和关键词组成的句法结构,各个技能可以预先与对应的句法结构进行绑定,因此第二技能集合中的所有第二技能都存在对应的句法结构,即技能句法结构。而技能句法结构是根据大量的样本用户语句进行语义分析确定得到的,具体可以是,先从各个样本用户语句中提取关键词,由各个提取出来的关键词组成对应的句法结构,例如,大量分析样本用户语句中各个关键词与关键词之间组成的句法结构,从而得到对应的技能句法结构。例如,样本用户语句为:“推荐一部有指纹解锁的5g手机”,对其进行语义分析,得知对应的句法结构是:[推荐][5g][指纹解锁][手机]。
步骤504,对待回答的用户语句进行语义分析,得到对应的用户句法结构。
步骤506,当用户句法结构与技能句法结构匹配时,确定技能句法结构关联的第二技能为目标知识点对应的目标技能。
具体地,对待回答的用户语句进行语义分析,从而得到对应的用户句法结构,具体可以是,先对待回答的用户语句进行分词,根据分词后上下文词语之间的组合方式确定待回答的用户语句中的关键词,由关键词组成对应用户句法结构。例如,待回答的用户语句为:“推荐一部有指纹解锁的5g手机给我”,对该待回答的用户语句进行语义分析,得到对应的用户句法结构为:[推荐][5g][指纹解锁][手机]。
进一步地,将待回答的用户语句对应的用户句法结构与第二技能集合中各个第二技能对应的技能句法结构进行匹配检测,当用户句法结构与技能句法结构匹配时,则可确定技能句法结构关联的第二技能为目标知识点对应的目标技能。其中,将待回答的用户语句对应的用户句法结构与各个第二技能对应的技能句法结构进行匹配检测具体可以是,检测用户句法结构与技能句法结构的匹配度,例如,可以将用户句法结构与技能句法结构之间的相似度作为匹配度。
其中,根据匹配度确定用户句法结构与各个第二技能对应的技能句法结构是否匹配,具体可以是,获取预设匹配度,当匹配度小于预设匹配度时,则可认为用户句法结构与技能句法结构相匹配,则可确定该技能句法结构关联的第二技能为目标知识点对应的目标技能。
在一个实施例中,由于用户句法结构与技能句法结构匹配,将技能句法结构关联的第二技能为用户语句对应的目标知识点对应的目标技能,即用户句法结构与目标技能也是对应的。因此,可以将用户句法结构作为目标技能的技能句法结构,建立用户句法结构与目标技能之间的关联关系,以便后续使用。
在一个实施例中,如图6所示,人机对话方法还包括:
步骤602,获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句。
步骤604,确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系。
其中,根据待回答的用户语句能够确定对应的目标知识点,能够根据目标知识点获取对应的目标技能,都是提前建立待回答的用户语句和对应的知识点之间的关联关系,以及知识点与技能之间的关联关系。具体可以是,获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句,其中,这里的样本用户语句集合为所有样本用户语句组成的集合,样本用户语句为采集到的所有用户语句,可以从网页进行大量的爬取得到,或者可以是通过其他聊天设备的历史数据进行爬取得到。
进一步地,将所有爬取到的样本用户语句组成样本用户语句集合,对样本用户语句集合中的所有样本用户语句进行处理,得到对应的样本知识点,具体可以是,先将样本用户语句进行分词,提取样本用户语句中的关键词语,根据关键词语确定对应的样本知识点。例如,样本用户语句为:“查询今天的天气”,对样本用户语句进行分词处理,提取样本用户语句中的关键词语为:“查询今天天气”,因此,可以根据提取出的关键词语确定对应的样本知识点为:“查询天气”。
然后,在确定各个样本用户语句对应的样本知识点后,建立各个样本用户语句与对应的样本知识点之间的关联关系,即建立各个样本用户语句与对应的样本知识点之间的第一关联关系。也就是说,当样本用户语句与对应得样本知识点之间的第一关联关系建立好后,当获取到待回答的用户语句,可以根据第一关联关系获取与待回答的用户语句对应的目标知识点。
步骤606,根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
其中,这里的预设规则是用来建立样本知识点与对应的样本技能之间的关联关系的规则,可以根据实际业务场景或者产品需求进行设置得到,也就是说,可以根据实际业务场景或者产品需求确定样本知识点是否关联对应的样本技能。
具体地,获取预设规则,可根据预设规则确定样本知识点是否关联对应的样本技能,若是,则建立各个样本知识点与对应的样本技能之间的关联关系,即第二关联关系,反之,则不建立各个样本知识点与对应的样本技能之间的关联关系。也就是说,当样本知识点与对应的样本技能之间的第二关联关系建立好之后,当确定完待回答的用户语句对应的目标知识点后,可根据建立好的第二关联关系确定目标知识点对应的目标技能。
在一个实施例中,如图7所示,在图6所示的人机对话方法的基础上还包括:
步骤702,获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率。
步骤704,当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。
其中,这里的当前样本技能是指目前正在用来处理的样本技能,而当前实际解决率是当前样本技能对应的实际解决率,所谓实际解决率是指该样本技能实际解决对话的效率,可以根据当前样本技能对应的实际处理对话量以及当前样本技能对应的总处理对话量计算得到的,其中,当前样本技能对应的总处理对话量包括实际处理对话量以及人工处理对话量。
其中,当前期望解决率是当前样本技能对应的预设的期望解决的效率,当前期望解决率可以根据业务场景或者实际产品需求进行确定得到。各个样本技能都存在对应的期望解决率,因此,获取当前样本技能对应的当前期望解决率。
进一步地,将当前期望解决率与当前实际解决率进行匹配检测,检测当前实际解决率是否达到当前期望解决率,当当前实际解决率达到当前期望解决率时,说明当前实际解决率与当前期望解决率匹配,则继续保持当前技能与对应的样本知识点之间的第二关联关系,反之,当当前实际解决率未达到当前期望解决率时,说明当前实际解决率与当前期望解决率不匹配,因此需要解绑当前样本技能与对应的样本知识点之间的第二关联关系。
在一个具体的实施例中,提供了一种人机对话方法,具体包括以下步骤:
1、获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句。
2、确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系。
3、根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
4、获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率。
5、当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。
6、获取待回答的用户语句。
7、根据待回答的用户语句确定对应的目标知识点。
7-1、获取当前知识点,当前知识点关联有对应的当前用户语句。
7-2、根据当前用户语句和待回答的用户语句计算语句相似度。
7-3、当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点。
7-4、当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
8、当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话。
8-1、获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点,当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
8-2、获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的,对待回答的用户语句进行语义分析,得到对应的用户句法结构,当用户句法结构与技能句法结构匹配时,确定技能句法结构关联的第二技能为目标知识点对应的目标技能。
9、执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
10、当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种人机对话装置800,包括:用户语句获取模块802、知识点确定模块804、技能匹配模块806和技能执行模块808,其中:
用户语句获取模块802,用于获取待回答的用户语句。
知识点确定模块804,用于根据待回答的用户语句确定对应的目标知识点。
技能匹配模块806,用于当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话。
技能执行模块808,用于执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
在一个实施例中,人机对话装置800还用于当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
在一个实施例中,如图9所示,知识点确定模块804还包括:
知识点获取单元804a,用于获取当前知识点,当前知识点关联有对应的当前用户语句。
语句相似度计算单元804b,用于根据当前用户语句和待回答的用户语句计算语句相似度。
目标知识点匹配单元804c,用于当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点。
目标知识点匹配单元804c还用于当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
在一个实施例中,技能匹配模块806还用于获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点,当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
在一个实施例中,技能匹配模块806还用于获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的,对待回答的用户语句进行语义分析,得到对应的用户句法结构,当用户句法结构与技能句法结构匹配时,确定技能句法结构关联的第二技能为目标知识点对应的目标技能。
在一个实施例中,人机对话装置800还用于获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句,确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系,根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
在一个实施例中,人机对话装置800还用于获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率,当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。关于人机对话装置的具体限定可以参见上文中对于人机对话方法的限定,在此不再赘述。上述人机对话装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端102或服务器104。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现人机对话方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行人机对话方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待回答的用户语句;根据待回答的用户语句确定对应的目标知识点;当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
在一个实施例中,人机对话方法还包括:当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
在一个实施例中,根据待回答的用户语句确定对应的目标知识点,包括:获取当前知识点,当前知识点关联有对应的当前用户语句;根据当前用户语句和待回答的用户语句计算语句相似度;当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点;当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点;当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的;对待回答的用户语句进行语义分析,得到对应的用户句法结构;当用户句法结构与技能句法结果句法结构匹配时,确定技能句法结果句法结构关联的第二技能为目标知识点对应的目标技能。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句;确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系;根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率;当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待回答的用户语句;根据待回答的用户语句确定对应的目标知识点;当目标知识点关联有对应的目标技能时,获取目标技能对应的技能任务,技能任务用于实现人机多轮对话;执行技能任务,通过人机多轮对话得到待回答的用户语句对应的目标语句。
在一个实施例中,人机对话方法还包括:当知识点未关联有对应的目标技能时,获取目标知识点对应的知识点用户语句,知识点用户语句存在对应的知识点答案,根据知识点用户语句与待回答的用户语句确定目标知识点用户语句,将目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
在一个实施例中,根据待回答的用户语句确定对应的目标知识点,包括:获取当前知识点,当前知识点关联有对应的当前用户语句;根据当前用户语句和待回答的用户语句计算语句相似度;当语句相似度满足预设条件时,确定当前知识点为待回答的用户语句对应的目标知识点;当语句相似度不满足预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回根据当前用户语句和待回答的用户语句计算语句相似度的步骤,直至得到待回答的用户语句对应的目标知识点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一技能集合,第一技能集合包括至少一个第一技能,第一技能关联有对应的第一知识点;当目标知识点和第一知识点匹配时,确定第一知识点关联的第一技能为目标知识点对应的目标技能。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第二技能集合,第二技能集合包括至少一个第二技能,第二技能关联有对应的技能句法结构,技能句法结构是根据样本用户语句进行语义分析确定得到的;对待回答的用户语句进行语义分析,得到对应的用户句法结构;当用户句法结构与技能句法结果句法结构匹配时,确定技能句法结果句法结构关联的第二技能为目标知识点对应的目标技能。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取样本用户语句集合,样本用户语句集合包括至少一个样本用户语句;确定各个样本用户语句对应的样本知识点,建立各个样本用户语句与对应的样本知识点之间的第一关联关系;根据预设规则确定样本知识点对应的样本技能,建立各个样本知识点与对应的样本技能之间的第二关联关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前样本技能对应的当前实际解决率,当前样本技能存在对应的当前期望解决率;当当前实际解决率与当前期望解决率不匹配时,解绑当前样本技能与对应的样本知识点之间的第二关联关系。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种人机对话方法,所述方法包括:
获取待回答的用户语句;
根据所述待回答的用户语句确定对应的目标知识点;
当所述目标知识点关联有对应的目标技能时,获取所述目标技能对应的技能任务,所述技能任务用于实现人机多轮对话;
执行所述技能任务,通过所述人机多轮对话得到所述待回答的用户语句对应的目标语句。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述知识点未关联有对应的目标技能时,获取所述目标知识点对应的知识点用户语句,所述知识点用户语句存在对应的知识点答案,根据所述知识点用户语句与所述待回答的用户语句确定目标知识点用户语句,将所述目标知识点用户语句对应的知识点答案作为待回答的用户语句对应的目标语句。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待回答的用户语句确定对应的目标知识点,包括:
获取当前知识点,所述当前知识点关联有对应的当前用户语句;
根据所述当前用户语句和所述待回答的用户语句计算语句相似度;
当所述语句相似度满足预设条件时,确定所述当前知识点为所述待回答的用户语句对应的目标知识点;
当所述语句相似度不满足所述预设条件时,获取下一个知识点,将下一个知识点作为当前知识点,返回所述根据所述当前用户语句和所述待回答的用户语句计算语句相似度的步骤,直至得到所述待回答的用户语句对应的目标知识点。
4.根据权利要求1所述的方法,其特征在于,所述当所述目标知识点关联有对应的目标技能时,包括:
获取第一技能集合,所述第一技能集合包括至少一个第一技能,所述第一技能关联有对应的第一知识点;
当所述目标知识点和所述第一知识点匹配时,确定所述第一知识点关联的第一技能为所述目标知识点对应的目标技能。
5.根据权利要求1所述的方法,其特征在于,所述当所述目标知识点关联有对应的目标技能时,包括:
获取第二技能集合,所述第二技能集合包括至少一个第二技能,所述第二技能关联有对应的技能句法结构,所述技能句法结构是根据样本用户语句进行语义分析确定得到的;
对所述待回答的用户语句进行语义分析,得到对应的用户句法结构;
当所述用户句法结构与所述技能句法结构匹配时,确定所述技能句法结构关联的第二技能为所述目标知识点对应的目标技能。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取样本用户语句集合,所述样本用户语句集合包括至少一个样本用户语句;
确定各个所述样本用户语句对应的样本知识点,建立各个所述样本用户语句与对应的样本知识点之间的第一关联关系;
根据预设规则确定样本知识点对应的样本技能,建立各个所述样本知识点与对应的样本技能之间的第二关联关系。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取当前样本技能对应的当前实际解决率,所述当前样本技能存在对应的当前期望解决率;
当所述当前实际解决率与所述当前期望解决率不匹配时,解绑所述当前样本技能与对应的样本知识点之间的第二关联关系。
8.一种人机对话装置,其特征在于,所述装置包括:
用户语句获取模块,用于获取待回答的用户语句;
知识点确定模块,用于根据所述待回答的用户语句确定对应的目标知识点;
技能匹配模块,用于当所述目标知识点关联有对应的目标技能时,获取所述目标技能对应的技能任务,所述技能任务用于实现人机多轮对话;
技能执行模块,用于执行所述技能任务,通过所述人机多轮对话得到所述待回答的用户语句对应的目标语句。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结