多轮会话的流程配置单元、方法及智能机器人交互系统与流程

文档序号:15932549发布日期:2018-11-14 01:52阅读:189来源:国知局

本发明涉及人工智能领域,具体涉及一种多轮会话的流程配置单元。此外,本申请还涉及一种多轮交互方法,及一种智能机器人交互系统。

背景技术

在智能问答领域,除了常见的一问一答形式的单轮会话以外,常见的还有多轮会话。这是因为,在实际应用中,智能问答系统需要解决的问题很可能是一个复杂的流程型知识,而不是简单的一问一答形式。开发人员需要预先配置好会话流程,以使得智能问答系统能够根据该会话流程,以多轮交互的方式,一步一步引导用户完成对话,从而反馈给用户最终的答案。

在现有技术中,配置多轮会话的流程,需要懂得编程以及算法流程的开发人员才能够进行,配置过程繁琐不便。另外,在配置多轮会话的流程时,流程中的知识节点通常是开发者预设的提示语。智能问答系统将提示语显示给用户,然后获取用户根据提示语输入的信息,再根据这些信息来决定知识节点将要流转到的下一个节点。通过这样的方法,智能问答系统可以进行多轮会话以引导用户输入更多信息,再利用这些信息来生成答案,这样的智能问答系统在会话过程中响应较慢。



技术实现要素:

为了解决上述技术问题,本申请提供一种新的应用于多轮会话的流程配置单元,以便简化会话流程的配置过程,同时在知识节点中引入了意图,从而使用户在配置多轮会话的流程时能够更加灵活地根据实际的应用场景来决定具体采用的节点内容的类型,使利用该流程配置单元所配置出的多轮会话流程在应用到交互系统中时,交互系统能够快速响应用户,给出更准确丰富的答案。

第一方面,提供一种多轮会话的流程配置单元,包括以下组件:

开始节点,用于获取多轮会话的触发条件;

知识节点,包括第一子节点和第二子节点,所述第一子节点用于获取提示语,所述提示语为用于引导会话用户输入下一轮会话信息的语句,所述第二子节点用于获取第一意图;

分支节点,用于获取流转条件,所述流转条件为根据获取到的下一轮会话信息确定第一子节点的流转方向的信息;以及,

结束节点,用于利用开始节点流转到结束节点过程中的触发条件和流转条件确定回复源,或利用第一意图确定回复源;

其中,开始节点用于与第一子节点连接,以从所述开始节点流转到所述第一子节点;第一子节点用于与分支节点连接,以从所述第一子节点流转到所述分支节点;分支节点用于与结束节点、第一子节点或第二子节点连接,以从所述分支节点流转到所述结束节点、所述第一子节点或所述第二子节点;第二子节点用于与结束节点连接,以从所述第二子节点流转到所述结束节点。

结合第一方面,在第一方面第一种可能的实现方式中,所述第一意图包括槽意图,所述槽意图包括至少一个槽要素;

当第二子节点获取到的第一意图为槽意图时,所述第二子节点还用于获取槽意图的所有槽要素,以及,在一个槽意图的所有槽要素都被会话用户输入的会话信息填充好的情况下流转至下一个节点。

结合第一方面的第一种实现方式,在第一方面第二种可能的实现方式中,所述第二子节点还用于获取与每一个槽要素对应的引导语,所述引导语为引导用户输入用于填充槽要素的会话信息的语句。

结合第一方面及上述可能的实现方式,在第一方面第三种可能的实现方式中,所述第一子节点还用于限定由会话用户输入的下一轮会话信息的类型。

结合第一方面及上述可能的实现方式,在第一方面第四种可能的实现方式中,所述触发条件包括第二意图、实体或知识分类,所述实体为词或短语,所述知识分类为经过分类的业务知识。

第二方面,提供一种利用第一方面的任一种流程配置单元所配置出的多轮会话流程进行多轮交互的方法,包括:

获取由会话用户输入的第一轮会话信息;

如果第一轮会话信息满足多轮会话流程中开始节点上的触发条件,则输出开始节点直接流转到的第一子节点上的第一提示语;

获取由会话用户根据第一提示语输入第二轮会话信息;

如果第二轮会话信息满足与第一子节点连接的任一个第一分支节点上的流转条件,则确定满足条件的第一分支节点所流转到的下一个节点;

如果第一分支节点所流转到的下一个节点为第二子节点,则确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

结合第二方面,在第二方面第一种可能的实现方式中,如果第一分支节点所流转到的下一个节点为第二子节点,则确定所述第二子节点所流转到结束节点的步骤包括:

如果第一分支节点所流转到的下一个节点为第二子节点,并且所述第二子节点上的第一意图为槽意图,则判断所述槽意图的所有槽要素是否均已被填充;

如果所有槽要素均已被填充,则确定所述第二子节点所流转到的结束节点。

结合第二方面的第一种实现方式,在第二方面第二种可能的实现方式中,判断所述槽意图的所有槽要素是否均被填充好的步骤之后,还包括:

如果至少一个所述槽要素没有被填充,则依次输出与没有被填充的槽要素对应的引导语;

依次获取用户根据所述引导语输入的会话信息;

利用用户输入的会话信息填充槽要素。

结合第二方面及上述可能的实现方式,在第二方面第三种可能的实现方式中,确定满足条件的第一分支节点所流转到的下一个节点的步骤之后,还包括:

如果第一分支节点所流转到的下一个节点为另一个第一子节点,则输出所述另一个第一子节点上的第二提示语;

获取由会话用户根据第二提示语输入的第三轮会话信息;

如果第三轮会话信息满足与所述另一个第一子节点连接的任一个第二分支节点上的流转条件,则确定满足条件的第二分支节点所流转到的下一个节点;

如果第二分支节点所流转到的下一个节点为第二子节点,则确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

第三方面,提供一种智能机器人交互系统,所述交互系统包括:利用第一方面的任一种流程配置单元所配置出的多轮会话流程、获取单元和处理单元;

所述获取单元用于获取由会话用户输入的第一轮会话信息,以及获取由会话用户根据第一提示语输入第二轮会话信息;

所述处理单元用于在第一轮会话信息满足多轮会话流程中开始节点上的触发条件的情况下,输出开始节点直接流转到的第一子节点上的第一提示语;在第二轮会话信息满足与第一子节点连接的任一个第一分支节点上的流转条件的情况下,确定满足条件的第一分支节点所流转到的下一个节点;以及,在第一分支节点所流转到的下一个节点为第二子节点的情况下,确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

上述的多轮会话的流程配置单元,包括了开始节点、知识节点、分支节点和结束节点这四个组件。用户在配置一个具体的多轮会话的流程的时候,可以直接应用这些组件进行组合。以开始节点为起始,在开始节点上设置多轮会话的触发条件,以触发整个多轮会话的流程。然后配置知识节点,使开始节点流转到知识节点。知识节点包括第一子节点和第二子节点,第一子节点用于获取提示语,所述提示语为用于引导会话用户输入下一轮会话信息的语句;所述第二子节点用于获取第一意图。然后为第一子节点配置其将要流转到的至少一个分支节点,在分支节点上设置流转条件,以便根据用户输入的下一轮会话信息确定从第一子节点流转至哪一个分支节点。分支节点可以流转到另一个第一子节点,也可以流转到第二子节点。当分支节点流转到另一个第一子节点时,可以引导用户输入更多会话信息,因此可以为分支节点配置其将流转到的下一个第一子节点,设置第一子节点的内容,即提示语,以继续引导用户输入再下一轮会话信息。当分支节点流转到第二子节点时,为第二子节点配置第一意图。最后配置结束节点,以结束多轮会话。当结束节点的上一个节点为第一子节点时,利用开始节点流转结束节点过程中的触发条件和流转条件确定回复源,使智能问答系统能够从回复源中生成最终反馈给用户的答案。当结束节点的上一个节点为第二子节点时,利用该第二子节点的节点内容,也就是第一意图来确定回复源,使智能问答系统能够从回复源中生成最终反馈给用户的答案。

用户根据应用场景的不同,直接应用这些组件进行设置和组合,即可配置得到一个完整的多轮会话的流程。将配置得到的多轮会话流程应用在智能问答系统中,智能问答系统可以基于这个多轮会话流程,通过多轮交互的形式,引导用户输入更多信息,从而确定回复源。确定回复源的方式有两种,一种是利用用户在多轮会话中输入的信息来确定回复源,另一种是利用用户在多轮会话中输入的信息确定第一意图,再利用第一意图确定回复源。回复源确定以后,智能问答系统就可以从该特定的回复源中生成最终的答案反馈给用户。一方面,通过引入第一意图,使得智能问答系统最终生成的答案与原本相比更加丰富;另一方面,由于确定了回复源,智能问答系统在与用户进行会话的过程中能够快速响应,同时给出更准确的答案,使对话更加流畅自然。此外,用户在配置多轮会话的流程时能够灵活地根据实际的应用场景来决定具体采用的知识节点和节点之间的流转方向,即便用户毫无算法基础,不懂得编程,也能够灵活方便地配置会话流程。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请多轮会话的流程配置单元的一个实施例中,配置单元的配置界面;

图2为图1中的配置界面中所配置出的会话流程的放大图,为利用本申请的流程配置单元所配置出的一个会话流程实例;

图3为本申请多轮会话的流程配置单元的一个实施例中,开始节点的配置界面;

图4为本申请多轮会话的流程配置单元的一个实施例中,知识节点中第一子节点的配置界面;

图5为本申请多轮会话的流程配置单元的一个实施例中,知识节点中第二子节点的配置界面;

图6为本申请多轮会话的流程配置单元的一个实施例中,分支节点的配置界面;

图7为本申请多轮会话的流程配置单元的一个实施例中,结束节点的部分配置界面;

图8为利用本申请的流程配置单元所配置出的另一个会话流程实例;

图9为本申请中多轮交互的方法的一个实施例的流程图;

图10为本申请的多轮交互方法中,s400步骤的其中一种实现方式的流程图;

图11为本申请中智能机器人交互系统的一个实施例的结构示意图。

具体实施方式

下面对本申请的实施例作详细说明。

本申请中的意图是指用户意图(userintent),也可以理解为用户提问问题的中心思想。如果不同的问题的中心思想一样,即属于同一个意图。例如,一个问题是“我买纸尿裤寄厦门送什么快递?”,另一个问题是“你们寄什么快递啊”,这两个问题虽然不一样,但是二者的中心思想一样,因此,从两个问题中识别出的意图是一样的,都是“询问发货用什么快递”。在现有技术中,可以利用意图识别技术从用户输入的内容中识别出意图,例如用户在搜索引擎中输入几个关键词,可以利用这些关键词和其他有用的信息识别出用户的意图后,再反馈给用户更为精确的搜索结果。例如,用户输入“水”,搜索引擎就可以需要利用这个关键词以及用户以往的查询点击记录,识别出用户的意图指的是“化妆水”还是“饮用的水”。

而本申请的方案,首次将意图引入到多轮会话的流程配置单元中,以配置出包含意图的多轮会话流程。智能问答系统利用这样的多轮会话流程,可以利用意图来确定问题的回复源,以便给出更加准确的答案,提高答复的响应速度。

请参考图1,在本发明的第一个实施例中,提供一种多轮会话的流程配置单元,包括以下组件:

开始节点,用于获取多轮会话的触发条件;

知识节点,包括第一子节点和第二子节点,所述第一子节点用于获取提示语,所述提示语为用于引导会话用户输入下一轮会话语句,所述第二子节点用于获取第一意图;

分支节点,用于获取流转条件,所述流转条件为根据获取到的下一轮会话信息确定第一子节点的流转方向的信息;以及,

结束节点,用于利用开始节点流转到结束节点过程中的触发条件和流转条件确定回复源,或利用第一意图确定回复源;

其中,开始节点用于与第一子节点或第二子节点连接,以从所述开始节点流转到所述第一子节点或所述第二子节点;第一子节点用于与分支节点连接,以从所述第一子节点流转到所述分支节点;分支节点用于与结束节点、第一子节点或第二子节点连接,以从所述分支节点流转到所述结束节点、所述第一子节点或所述第二子节点;第二子节点用于与结束节点连接,以从所述第二子节点流转到所述结束节点。

在一个实施例中,流程配置单元的界面请参考图1至图2。其中,开始节点用于获取多轮会话的触发条件,触发条件可以是第二意图、实体或知识分类,如图3所示。

第二意图可以利用现有的意图识别技术从用户输入的会话信息中识别出来。以银行客服领域为例,第二意图可以是“信用卡如何办理”,用户输入“我想办理信用卡”或者“请问信用卡该怎么办理”等会话信息,均可以从中识别出同一个第二意图,即“信用卡如何办理”。如果一个已经配置好的会话流程中,开始节点的触发条件被配置为第二意图“信用卡如何办理”,则当智能问答系统从用户的会话中识别出该意图时,该会话流程被触发,可以从该会话流程中的开始节点流转至下一个节点。此处的第二意图,配置人员在配置时可以从一个预设的意图库中选取,仍然以银行客服领域为例,预设的意图库可以包含多个预设的意图,比如“信用卡如何办理”、“如何申请贷款”、“如何办理挂失”等。

在本申请中,实体指的是词或短语,这些词或短语通常与应用场景中的具体业务相关。例如在银行客服领域的应用场景中,这里的词或短语可以是“申请”、“挂失”等。配置人员可以在开始节点中预设特定的实体作为触发条件,一旦用户输入的会话信息中包括了一个或多个预设的实体,则可以触发该会话流程。

在本申请中,知识分类指的是已经经过分类的业务知识,例如,以银行客服领域的业务体系为例,可以包括信用卡业务、借记卡业务等,故而相关的业务知识也可以分为信用卡类业务知识、借记卡类业务知识等。配置人员可以预设特定的知识分类作为触发条件,来触发该会话流程。

开始节点用于与第一子节点连接,以从所述开始节点流转到所述第一子节点。需要说明的是,开始节点还可以用于与第二子节点连接,以从所述开始节点流转到所述第二子节点,本申请对此不做限制。但是当开始节点直接与第二子节点连接时,由于第二子节点与结束节点连接,故而配置出的会话流程在通常情况下是单轮交互的会话流程,不太适合应用在多轮会话的流程配置中。

知识节点包括第一子节点和第二子节点。第一子节点用于获取提示语,并且第一子节点用于与分支节点连接,以从所述第一子节点流转到所述分支节点。当会话用户输入的下一轮会话信息满足某一个分支节点上的流转条件时,就从第一子节点流转到该满足相应流转条件的分支节点上。配置人员可以根据会话流程的应用场景的不同,来输入具体的提示语,请参考图4,例如可以设置提示语为“请问您今年多大”。此外,第一子节点还可以用于限定由用户输入的下一轮会话信息的类型。会话信息的类型可以是日期、年龄或者其他具体的数值或文字。例如,当配置人员配置第一子节点的回复类型为年龄类型时,则用户回复的信息必须是年龄类型,如“20岁”,这样智能问答系统才能基于该回复的信息(即由用户输入的下一轮会话信息)以及配置好的流程,来决定从第一子节点流向哪一个分支节点。

第二子节点用于获取第一意图,第二子节点用于与结束节点连接,以从所述第二子节点流转到所述结束节点。请参考图5,配置人员在配置时可以从一个预设的意图库中选取。以银行客服领域为例,预设的意图库可以包含多个预设的意图,比如“信用卡如何办理”、“如何申请贷款”、“如何办理挂失”等。此处,选取第一意图的意图库与前述选取第二意图的意图库可以是同一个意图库,也可以是不同的意图库,本申请对此不作限定。

分支节点用于获取流转条件,所述流转条件为根据获取到的下一轮会话信息确定第一子节点的流转方向的信息。请参考图6,配置人员可以直接在分支节点上设置具体的流转条件。流转条件可以结合>、<、=、≠等运算符号来描述,例如“>18”,也可以以正则的形式来描述,例如“有薪资”。将会话用户输入的下一轮会话信息与流转条件进行比对,就可以确定第一子节点将流转到哪一个分支节点。分支节点可以用于与结束节点、第一子节点或第二子节点连接,以从所述分支节点流转到所述结束节点、所述第一子节点或所述第二子节点。

分支节点与第二子节点均可以与结束节点连接,以流转到结束节点。当结束节点的上一个节点为分支节点时,结束节点用于利用开始节点流转结束节点过程中的触发条件和流转条件确定回复源。当结束节点的上一个节点为第二子节点时,结束节点用于利用第一意图确定回复源。这里,回复源可以包括一条一条的知识、一个一个的业务知识分类和/或一个一个的知识库。知识、业务知识分类和知识库都是预先存储在智能问答系统中。在其中一种实现方式中,会话流程的配置人员可以根据应用场景的不同,来决定具体选用哪一个回复源,从而在每一个的第一意图和回复源之间构建了一个对应关系。当会话流程中节点流转到节点内容为第一意图的第二子节点,然后流转到结束节点时,该结束节点就可以利用第一意图确定回复源。

例如,图8为利用本实施例中的流程配置单元配置出的一个会话流程的实例,图2为配置出的另一个会话流程的实例。假设触发条件均为第二意图“信用卡如何办理”。

在图8的例子中,该会话流程中不包含第二子节点,只包含了开始节点,第一子节点“请问您今年多大了?”、“请问您是否有薪资?”和“请问您是否有住房?”,分支节点“>18岁”、“<18岁”、“有薪资”、“无薪资”、“有住房”和“无住房”,以及结束节点。其中,图8中最左侧的结束节点的上一个节点为分支节点“有薪资”,故而,该结束节点用于利用开始节点流转结束节点过程中的触发条件和流转条件,即第二意图“信用卡如何办理”、流转条件“>18岁”和流转条件“有薪资”,根据这三者来确定回复源。

在图2的例子中,该会话流程中包括4个第二子节点,其节点内容分别为第一意图1“大于18岁有薪资信用卡办理规则”、第一意图2“大于18岁无薪资信用卡办理规则”、第一意图3“小于18岁有住房信用卡办理规则”和第一意图4“小于18岁无住房信用卡办理规则”。对每一个第一意图,配置人员都在配置流程时构建了其与回复源之间的对应关系。例如对于第一意图1,与之对应的回复源为一个信用卡办理领域的知识库a;对于第一意图2,与之对应的回复源为特定的某几条知识和知识库b。对于最左侧的结束节点而言,其上一个节点为第二子节点。故而,利用第二子节点的节点内容,也就是第一意图1“大于18岁有薪资信用卡办理规则”,来确定回复源,即知识库a。然后,智能问答系统再从a中查找出答案反馈给用户,以解决用户提出的类似“信用卡如何办理”的问题。

此外,请参考图7,结束节点还可以用于配置其他后续动作,例如“转人工”、“等待用户输入”等,以便在智能问答系统无法给出合适的答案或无法给出答案时提供其他的解决方案,提升用户体验,更好地满足业务需求。

上述的应用于多轮会话的流程配置单元,包括了开始节点、知识节点、分支节点和结束节点这四个组件。用户在配置一个具体的多轮会话的流程的时候,可以直接应用这些组件进行组合。以开始节点为起始,在开始节点上设置多轮会话的触发条件,以触发整个多轮会话的流程。然后配置知识节点,使开始节点流转到知识节点。知识节点包括第一子节点和第二子节点,第一子节点用于获取提示语,所述提示语为用于引导会话用户输入下一轮会话信息的语句;所述第二子节点用于获取第一意图。然后为第一子节点配置其将要流转到的至少一个分支节点,在分支节点上设置流转条件,以便根据用户输入的下一轮会话信息确定从第一子节点流转至哪一个分支节点。分支节点可以流转到另一个第一子节点,也可以流转到第二子节点。当分支节点流转到另一个第一子节点时,可以引导用户输入更多会话信息,因此可以为分支节点配置其将流转到的下一个第一子节点,设置第一子节点的内容,即提示语,以继续引导用户输入再下一轮会话信息。当分支节点流转到第二子节点时,为第二子节点配置第一意图。最后配置结束节点,以结束多轮会话。当结束节点的上一个节点为第一子节点时,利用开始节点流转结束节点过程中的触发条件和流转条件确定回复源,使智能问答系统能够从回复源中生成最终反馈给用户的答案。当结束节点的上一个节点为第二子节点时,利用该第二子节点的节点内容,也就是第一意图来确定回复源,使智能问答系统能够从回复源中生成最终反馈给用户的答案。

用户根据应用场景的不同,直接应用这些组件进行设置和组合,即可配置得到一个完整的多轮会话的流程。将配置得到的多轮会话流程应用在智能问答系统中,智能问答系统可以基于这个多轮会话流程,通过多轮交互的形式,引导用户输入更多信息,从而确定回复源。确定回复源的方式有两种,一种是利用用户在多轮会话中输入的信息来确定回复源,另一种是利用用户在多轮会话中输入的信息确定第一意图,再利用第一意图确定回复源。回复源确定以后,智能问答系统就可以从该特定的回复源中生成最终的答案反馈给用户。一方面,通过引入第一意图,使得智能问答系统最终生成的答案与原本相比更加丰富;另一方面,由于确定了回复源,智能问答系统在与用户进行会话的过程中能够快速响应,同时给出更准确的答案,使对话更加流畅自然。此外,用户在配置多轮会话的流程时能够灵活地根据实际的应用场景来决定具体采用的知识节点和节点之间的流转方向,即便用户毫无算法基础知识,不懂得编程,也能够灵活方便地配置会话流程。

上述实施例中,第二子节点用于获取第一意图,可选地,这里的第一意图可以分类为槽意图、faq意图等。

其中,槽意图为包括至少一个槽要素。当第二子节点获取到的第一意图为槽意图时,所述第二子节点还用于获取槽意图的所有槽要素,以及,在一个槽意图的所有槽要素都被会话用户输入的会话信息填充好的情况下流转至下一个节点。

例如,一个槽意图为“火车票查询”,配置人员可以通过第二子节点为该槽意图配置至少一个槽要素。比如,槽要素可以包括“城市”和“年龄”等,槽要素“城市”是指用户当前所在的城市,槽要素“年龄”是指当前用户的年龄。当用户在一轮会话中输入的信息包含了其当前所在的城市时,智能问答系统从中识别出该内容填充至“城市”这一槽要素上;当用户在另一轮会话中输入的信息包含了用户的年龄时,智能问答系统从中识别出该内容填充至“年龄”这一槽要素上。如果“火车票查询”这一槽意图的所有槽要素都被会话用户输入的会话信息填充好了,则可以从该第二子节点流转到下一个节点,也就是结束节点。

为了更好地引导用户输入能够有效填充槽要素的会话信息,第二子节点还用于获取与每一个槽要素对应的引导语,所述引导语为引导用户输入用于填充槽要素的会话信息的语句。例如上述的例子中,可以设置与槽要素“城市”对应的引导语为“请告诉我您当前在哪个城市?”,智能问答系统将该引导语输出给用户,从而引导用户输入包含当前所在城市的会话信息,以用于填充该槽要素。类似地,也可以设置与槽要素“年龄”对应的引导语为“请告诉我您的年龄”。

此外,第二子节点还可以用于限定用户输入的下一轮会话信息的类型,这里的下一轮指的是智能问答系统向用户输出某个槽要素对应的引导语之后的一轮会话。与第一子节点限定用户输入的下一轮会话信息的类型类似地,这里的会话信息的类型也可以是日期、年龄或者其他具体的数值或文字。

除了槽意图以外,第一意图还可以是faq意图等其他类型的意图。faq指的是常见的问题与对应问题的解答,常见的问题以意图的形式来描述,即faq意图。通常,faq意图具有与之对应的答案,并被存储在某个位置,如智能问答系统内,或远程服务器上等,以便作为其中一种回复源的形式用于配置会话流程。

在本申请的第二个实施例中,请参考图9,提供一种利用多轮会话流程进行多轮交互的方法,其中,多轮会话流程可以采用前述第一个实施例中的任一种流程配置单元进行配置得到。该多轮交互方法的执行主体可以是智能问答系统,例如智能机器人等,也可以是其他能够执行该方法的交互装置或系统,例如云端人工智能服务系统等,本申请对此不做限定。需要说明的是,当执行上述方法的主体为智能机器人时,其不仅仅局限于实体的智能机器人,也可以是虚拟的智能机器人,例如网络客服机器人等。

通过执行该交互方法,可以在获取用户的问题之后再引导用户输入更多信息,从而利用用户在多轮会话中输入的信息确定用户的意图是否与配置好的流程会话中的第二子节点上的第一意图相同。然后再利用第一意图确定问题的回复源,从回复源中查找或生成最终的答案反馈给用户,使得交互装置或系统与用户进行会话的过程中能够快速响应,给出更准确丰富的答案,并使对话更加流畅自然。

具体地,该多轮交互方法包括以下s100-s500的步骤。

s100:获取由会话用户输入的第一轮会话信息。

s200:如果第一轮会话信息满足多轮会话流程中开始节点上的触发条件,则输出开始节点直接流转到的第一子节点上的第一提示语。

s300:获取由会话用户根据第一提示语输入第二轮会话信息。

s400:如果第二轮会话信息满足与第一子节点连接的任一个第一分支节点上的流转条件,则确定满足条件的第一分支节点所流转到的下一个节点。

s500:如果第一分支节点所流转到的下一个节点为第二子节点,则确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

上述的会话用户输入的会话信息可以是文字,也可以是音频、图片等其他形式,本申请对于用户输入的会话信息的具体形式不做限定。此外,在交互的过程中,不同的轮次用户还可以以相同或不同的输入形式来输入会话信息,本申请对此也不做限定。

在s200的步骤中,在判断第一轮会话信息是否满足触发条件之前,可以对第一轮会话信息进行预处理。例如,对其进行意图识别,再将识别出的意图与触发条件进行比对。还例如,如果用户输入的第一轮会话信息为语音形式,而触发条件是以文字形式来表述的,则可以将用户输入的会话信息转换为文字,然后进行意图识别,再将识别出的意图与触发条件进行比对;或不进行意图识别,直接将转换得到的文字与触发条件进行比对。

与s200的步骤类似地,在s400的步骤中,在判断第二轮会话信息是否满足流转条件时,也可以对第二轮会话信息进行预处理,此处不再赘述。

此外,上述的方案中,还可以包括以下步骤,s700:如果第一分支节点所流转到的下一个节点为结束节点,则从结束节点确定的回复源中查找出答案。

在一种实现方式中,如果第一意图为槽意图,则第二子节点不会直接流转到其下一个节点,即结束节点,而是需要槽意图中的所有槽要素都已经填充好之后才能够流转到下一个节点。如果槽意图中的某些槽意图还没有填充,也就是说,实际上根据已经获取到的信息,交互系统还不能确定当前用户的意图就是第二子节点上的槽意图,此时就不能直接流转到结束节点来确定回复源。具体地,请参见图10,s400的步骤可以包括s410和s420的步骤。

s410:如果第一分支节点所流转到的下一个节点为第二子节点,并且所述第二子节点上的第一意图为槽意图,则判断所述槽意图的所有槽要素是否均已被填充。

s420:如果所有槽要素均已被填充,则确定所述第二子节点所流转到的结束节点。

当判断槽意图上的槽要素是否已经被填充好时,如果发现还有至少一个槽意图没有没填充好,则还可以利用与槽要素对应的引导语来引导用户输入更多会话信息,以便能够利用用户进一步输入的信息来填充没有被填充好的槽要素。具体地,在s410的步骤之后还可以包括:

s430:如果至少一个所述槽要素没有被填充,则依次输出与没有被填充的槽要素对应的引导语;

s440:依次获取用户根据所述引导语输入的会话信息;

s450:利用用户输入的会话信息填充槽要素。

上述的s450的步骤中,利用会话信息填充槽要素可以采用现有的槽填充方法,此处不赘述。需要说明的是,本实现方式中的方法实际上可以应用到所有第一意图为槽意图的第二子节点上,而不仅仅是第一分支节点所流转到的第二子节点。

可选地,请参见图9,上述的任一种交互方法中,在s400的步骤之后,还可以包括:

s610:如果第一分支节点所流转到的下一个节点为另一个第一子节点,则输出所述另一个第一子节点上的第二提示语;

s620:获取由会话用户根据第二提示语输入的第三轮会话信息;

s630:如果第三轮会话信息满足与所述另一个第一子节点连接的任一个第二分支节点上的流转条件,则确定满足条件的第二分支节点所流转到的下一个节点;

s640:如果第二分支节点所流转到的下一个节点为第二子节点,则确定所述第二子节点所流转到的结束节点,从所述结束节点确定的回复源中查找出答案。

此外,上述的方案中,如果第二分支节点所流转到的下一个节点为结束节点,则从结束节点确定的回复源中查找出答案。实际上,在流转到第二子节点之前,开始节点和第二子节点之间可以包括任意轮次的交互,即,输出第一子节点上的提示语,以引导用户输入会话信息,然后利用用户输入的会话信息确定分支节点和分支节点的下一个节点。直到流转到某一个分支节点时,该分支节点的下一个节点为第二子节点或直接为结束节点。

以下以图2所示的多轮会话流程为例来进一步说明前述的交互方法,假设触发条件为第二意图“信用卡如何办理”,交互方法的执行主体为智能问答系统。

智能问答系统获取到由会话用户输入的第一轮会话信息“我想办理信用卡”,经过意图识别,从第一轮会话信息中识别出意图“信用卡如何办理”。由于该意图与会话流程中开始节点上的触发条件(即第二意图“信用卡如何办理”)相同,故而触发该会话流程,接下来智能问答系统基于该会话流程来与用户进行交互。首先,输出开始节点直接流转到的第一个子节点a1上的提示语,即“请问您今年多大了?”。然后,获取由会话用户根据第一子节点a1的提示语输入第二轮会话信息,假设用户输入“20岁”。第一子节点a1连接两个第一分支节点b1和b2,其流转条件分别是“>18岁”和“<18岁”。智能问答系统将用户输入的“20岁”分别与两个流转条件进行比对,结果第二轮会话信息满足“>18岁”的流转条件,故而从第一子节点a1流转到“>18岁”的第一分支节点b1,并确定该第一分支节点b1所流转到的下一个节点,即另一个第一子节点a2“请问您是否有薪资”。由于第一分支节点b1所流转到的下一个节点为另一个第一子节点,而不是第二子节点,故而输出另一个第一子节点a2上的第二提示语“请问您是否有薪资?”。获取由会话用户根据第二提示语输入的第三轮会话信息,假设用户输入“无薪资”。另一个第一子节点a2连接两个第二分支节点b3和b4,其流转条件分别是“有薪资”和“无薪资”。智能问答系统将用户输入的“无薪资”分别与两个流转条件进行比对,结果第二轮会话信息满足“无薪资”的流转条件,故而从另一个第一子节点a2流转到“无薪资”的第二分支节点b4,并确定该第二分支节点b4所流转到的下一个节点,即第二子节点c1“大于18岁无薪资信用卡办理规则”。由于第二分支节点b3所流转到的下一个节点为第二子节点,故而智能问答系统可以确定第二子节点c1所流转到的结束节点d1,最后从所述结束节点d1确定的回复源中查找出答案。

与第二个实施例中的交互方法对应地,在本申请的第三个实施例中,请参见图11,提供一种智能机器人交互系统,该交互系统可以应用于与用户进行多轮交互,所述交互系统包括:利用第一个实施例中的任一种流程配置单元所配置出的多轮会话流程、获取单元和处理单元;

所述获取单元2用于获取由会话用户输入的第一轮会话信息,以及获取由会话用户根据第一提示语输入第二轮会话信息;

所述处理单元3用于在第一轮会话信息满足多轮会话流程中开始节点上的触发条件的情况下,输出开始节点直接流转到的第一子节点上的第一提示语;在第二轮会话信息满足与第一子节点连接的任一个第一分支节点上的流转条件的情况下,确定满足条件的第一分支节点所流转到的下一个节点;以及,在第一分支节点所流转到的下一个节点为第二子节点的情况下,确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

可选地,所述处理单元3还用于在第一分支节点所流转到的下一个节点为第二子节点,并且所述第二子节点上的第一意图为槽意图的情况下,判断所述槽意图的所有槽要素是否均已被填充;在所有槽要素均已被填充的情况下,确定所述第二子节点所流转到的结束节点。

可选地,所述处理单元3还用于在至少一个所述槽要素没有被填充的情况下,依次输出与没有被填充的槽要素对应的引导语;以及,利用用户输入的会话信息填充槽要素。

所述获取单元2还用于依次获取用户根据所述引导语输入的会话信息。

可选地,所述处理单元3还用于在第一分支节点所流转到的下一个节点为另一个第一子节点的情况下,输出所述另一个第一子节点上的第二提示语;在第三轮会话信息满足与所述另一个第一子节点连接的任一个第二分支节点上的流转条件的情况下,确定满足条件的第二分支节点所流转到的下一个节点;以及,在第二分支节点所流转到的下一个节点为第二子节点的情况下,确定所述第二子节点所流转到结束节点,从所述结束节点确定的回复源中查找出答案。

所述获取单元2还用于获取由会话用户根据第二提示语输入的第三轮会话信息。

本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1