多轮会话交互方法及装置与流程

文档序号:12666540阅读:250来源:国知局
多轮会话交互方法及装置与流程

本发明的实施方式涉及人机交互领域,更具体地,本发明的实施方式涉及多轮会话交互方法、多轮会话交互装置以及计算机可读存储介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

基于一定的对话规则,允许人机进行多轮会话,从而让机器理解用户的深层意图并提供反馈一直是人机交互领域所努力的方向。

目前,已经出现了少许人机多轮会话方法。典型地,现有技术中国发明专利申请CN104408639A公开了一种多轮会话交互方法和系统,以实现系统动作具有树形层次依赖关系的任务型会话。该多轮会话交互方法包括:接收用户需求信息;将所述用户需求信息向预置在本地的多个需求结构树中各节点包含的标准需求进行映射,在所述需求结构树中,每个节点包含的标准需求是其子节点包含的标准需求的上位需求;若所述多个需求结构树中存在一个节点,其包含的所述标准需求被所述用户需求信息命中,则输出被命中的非叶子节点的子节点包含的标准需求内容,或者输出被命中的叶子节点对应的会话信息。据专利申请文件记载,该专利申请的技术方案不仅实现了有树形层次依赖关系的任务型会话任务交互,而且提高了标准需求被命中的可能性。

然而,专利申请CN104408639A公开的技术方案存在着明显的不足。该技术方案中业务(即“需求”)与算法过于耦合,同样的算法难以应用于多个不同的业务,编程人员需要针对不同的业务花费大量编程时间。例如其中的关键环节“需求结构树”需要根据业务定制构建。为实现多轮会话,需要针对不同的业务分别构建不同的算法,这使得该种多轮会话交互方法难以大规模应用。



技术实现要素:

由于现有技术中业务(即“需求”)与算法过于耦合,同样的算法难以应用于多个不同的业务,编程人员需要针对不同的业务花费大量编程时间,因此,现有技术很难实现拓展以及规模化应用。

在现有技术中,必须根据不同的业务逐个定制算法,以尽可能实现多轮次的人机会话,这是非常令本领域技术人员烦恼的过程。

为此,非常需要一种新的多轮会话交互技术方案,以使多轮会话交互技术具备可拓展性,提高多轮会话的构建效率,从而实现多轮会话交互技术的规模化应用。

在本上下文中,本发明的实施方式期望提供一种多轮会话交互方法、装置以及计算机可读存储介质。

在本发明实施方式的第一方面中,提供了一种多轮会话交互方法,该方法包括:接收终端用户需求信息;根据终端用户需求信息判断终端用户意图所对应的目标函数;调用所述目标函数;获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达;向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

在本发明的一个实施例中,该多轮会话交互方法还包括:当调用第N级关联函数时,获取所述第N级关联函数的第N+1级关联函数,并获取所述第N+1级关联函数对应的第二触发表达;向所述终端用户发送所述第二触发表达,并根据接收到的所述终端用户针对所述第二触发表达的回应,判断是否调用所述第N+1级关联函数,其中,N为自然数。

在本发明的另一实施例中,该多轮会话交互方法还包括:根据终端用户需求信息提取所述目标函数的参数信息,如果终端用户需求信息中缺少所述目标函数的参数信息,则获取所述目标函数对应的第一参数获取表达;向所述终端用户发送所述第一参数获取表达,并根据所述终端用户针对所述第一参数获取表达的回应,获取缺少的该目标函数的参数信息。

在本发明的又一个实施例中,该多轮会话交互方法还包括:根据终端用户需求信息和N级关联函数的处理结果,提取所述第N+1级关联函数的参数信息,如果终端用户需求信息和N级关联函数的处理结果中缺少该第N+1级关联函数的参数信息,则获取所述第N+1级关联函数对应的第二参数获取表达;向所述终端用户发送所述第二参数获取表达,并根据所述终端用户针对所述第二参数获取表达的回应,获取缺少的所述第N+1级关联函数的参数信息。

优选地,所述函数具有统一的定义规范。

更优选地,所述统一的定义规范包括:所述函数本身、所述函数的触发表达以及所述函数的参数获取表达。

在本发明的再一个实施例中,该多轮会话交互方法还包括:通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。

优选地,所述可视化编程的方式包括:在可视化编程界面中,响应于连接线的拖拽操作,建立函数之间的关联关系。

在本发明实施方式的第二方面中,提供了一种多轮会话交互装置,包括:接收模块,用于接收终端用户需求信息;判断模块,用于根据终端用户需求信息判断终端用户意图所对应的目标函数;调用模块,用于调用所述目标函数;获取模块,用于获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达;第一关联模块,用于向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

在本发明的一个实施例中,该多轮会话交互装置还包括:第二关联模块,用于当调用第N级关联函数时,获取所述第N级关联函数的第N+1级关联函数,并获取所述第N+1级关联函数对应的第二触发表达;向所述终端用户发送所述第二触发表达,并根据接收到的所述终端用户针对所述第二触发表达的回应,判断是否调用所述第N+1级关联函数,其中,N为自然数。

在本发明的另一个实施例中,该多轮会话交互装置还包括:第一参数模块,用于根据终端用户需求信息提取所述目标函数的参数信息,如果终端用户需求信息中缺少所述目标函数的参数信息,则获取所述目标函数对应的第一参数获取表达;向所述终端用户发送所述第一参数获取表达,并根据所述终端用户针对所述第一参数获取表达的回应,获取缺少的该目标函数的参数信息。

在本发明的又一个实施例中,该多轮会话交互装置还包括:第二参数模块,用于根据终端用户需求信息和N级关联函数的处理结果,提取所述第N+1级关联函数的参数信息,如果终端用户需求信息和N级关联函数的处理结果中缺少该第N+1级关联函数的参数信息,则获取所述第N+1级关联函数对应的第二参数获取表达;向所述终端用户发送所述第二参数获取表达,并根据所述终端用户针对所述第二参数获取表达的回应,获取缺少的所述第N+1级关联函数的参数信息。

优选地,所述函数具有统一的定义规范。

更优选地,所述统一的定义规范包括:所述函数本身、所述函数的触发表达以及所述函数的参数获取表达。

在本发明的再一个实施例中,该多轮会话交互装置还包括:设置关联关系模块,用于通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。

优选地,所述设置关联关系模块包括:拖拽子模块,用于在可视化编程界面中,响应于连接线的拖拽操作,建立函数之间的关联关系。

在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现下述步骤:接收终端用户需求信息;根据终端用户需求信息判断终端用户意图所对应的目标函数;调用所述目标函数;获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达;向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

根据本发明实施方式的多轮会话交互方法、多轮会话交互装置以及计算机可读存储介质,通过将不同的业务关联起来,实现了自定义的多业务组合;通过统一的函数定义规范去除了现有技术中业务与算法的高度耦合,从而实现了多轮会话交互技术的大规模、多场景应用,极大地提高了多轮会话的构建效率,将多轮会话交互技术提升到了一个新的高度。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的可以在其中实现的应用场景;

图2示意性地示出了根据本发明一实施例的多轮会话交互方法的流程图;以及

图3示意性地示出了根据本发明一实施例的多轮会话交互装置的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种多轮会话交互方法和多轮会话交互装置。

在本文中,需要理解的是,所涉及的术语业务在一定环境下可以等同于人机对话领域的服务、需求以及功能等术语。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

本发明人发现,在人机交互领域,现有技术存在着很多不足。现有技术方案中业务(即“需求”)与算法过于耦合,同样的算法难以应用于多个不同的业务,编程人员需要针对不同的业务花费大量编程时间。例如现有技术中的关键环节“需求结构树”需要根据业务定制构建。为实现多轮会话,需要针对不同的业务分别构建不同的算法,这使得该种多轮会话交互方法难以大规模应用。

为此,非常需要一种新的多轮会话交互技术方案,以使多轮会话交互技术具备可拓展性,提高多轮会话的构建效率,从而实现多轮会话交互技术的规模化应用。为实现此目的,本发明实施方式通过将不同的业务关联起来,实现了自定义的多业务组合;本发明设置统一的函数定义规范去除了现有技术中业务与算法的高度耦合,从而实现了多轮会话交互技术的大规模、多场景应用,极大地提高了多轮会话的构建效率,将多轮会话交互技术提升到了一个新的高度。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1,示意性地示出了根据本发明实施方式在手机上实现的应用场景。

图1中,终端用户在利用例如手机终端这样的智能终端进行人机交互。终端用户通过语音或文字输入需求信息后,手机终端通过访问服务器或本地数据库针对终端用户输入的需求信息进行响应。手机终端也能够根据终端用户输入的需求信息输出有关信息对终端用户进行引导。通过多轮次的信息交互,满足终端用户获取目标信息的需求。本发明不对智能终端的具体表现形式进行限定,该智能终端可以表现为台式计算机、笔记本电脑、手机、车载导航仪、智能手表等多种类型的智能终端。

示例性方法

下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的多轮会话交互方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

图2为本发明提供的多轮会话交互方法的一个实施例的方法流程图,该方法的执行主体可以是具有多轮会话功能的交互装置。如图2所示,该多轮会话交互方法具体可以包括:

S210,接收终端用户需求信息。

需求信息本质上是终端用户输入的信息,需求信息可以是各种形式的,例如,语音、文字以及图片等中的一种或多种。作为示例,需求信息可能是终端用户输入的文字信息“帮我查下附近的酒店”,需求信息可能是终端用户输入的一幅图像,也可能是终端用户输入的一段语音。

S220,根据终端用户需求信息判断终端用户意图所对应的目标函数。

以终端用户输入的文字信息“帮我查下附近的酒店”为例,在接收终端用户需求信息“帮我查下附近的酒店”后,分析终端用户的意图以及根据该意图判断对应的目标函数。

根据终端用户输入的需求信息分析终端用户的意图(意图分析,intention recognition)的实现方式可以有多种,本发明对此不进行限定。例如,本发明中分析终端用户的意图可以通过深度学习实现,也可以通过语义分析实现,也可以通过其他任何意图分析技术实现。

在分析需求信息“帮我查下附近的酒店”后,可以确定终端用户意图是“附近的酒店”。根据该终端用户意图,匹配与之对应的目标函数,比如,酒店函数。其中,酒店函数可以是预先设定好的。具体的匹配方法可以是多样的,可以根据终端用户意图“附近的酒店”进行整体关联,也可以根据终端用户意图“附近的酒店”中的部分信息(例如,“酒店”)进行关联。

S230,调用所述目标函数。

步骤S220中已经确定了目标函数,即酒店函数。本步骤中,根据终端用户需求信息和/或终端用户意图运行确定了的目标函数。以需求信息“帮我查下附近的酒店”和终端用户意图“附近的酒店”为例,酒店函数将据此执行并调用相关酒店数据库中的信息并输出相关信息呈现给终端用户,作为示例,输出的相关信息可以是“最近的酒店是汉皇大酒店,位于新北区南浦路30号,联系电话099-56450000”。相关信息呈现方式可以是语音、文字、图片等一种或多种形式,本发明对此不进行限定。

S240,获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达。

其中,关联函数是与目标函数具有相关性的函数。这种相关性可以是人为设置的,也就是说目标函数所对应的关联函数是可以任意设定的。

在S230中,目标函数酒店函数运行并输出了相关信息“最近的酒店是汉皇大酒店,位于新北区南浦路30号,联系电话099-56450000”。

例如,酒店函数的第1级关联函数可以是拨号函数。虽然终端用户没有明确需要拨号预定酒店,但考虑到终端用户有这种潜在需求,可以获取该拨号函数,并获取该拨号函数对应的触发表达。作为示例,该触发表达可以是“是否需要拨打酒店联系电话?”

S250,向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

在步骤S240中,已经获取了目标函数酒店函数的第1级关联函数及其对应的触发表达。本步骤中,向终端用户发送触发表达,以确定终端用户是否需要这种潜在需求。以终端用户需要拨号预定酒店这一潜在需求为例,可以向终端用户发送触发表达“是否需要拨打酒店联系电话?”,如果终端用户给出了肯定答复则调用拨号函数,拨出酒店号码“099-56450000”;否则不调用。

在本发明的一个实施方式中,本实施例还可以有步骤S310(未示出):

S310:当调用第N级关联函数时,获取所述第N级关联函数的第N+1级关联函数,并获取所述第N+1级关联函数对应的第二触发表达;向所述终端用户发送所述第二触发表达,并根据接收到的所述终端用户针对所述第二触发表达的回应,判断是否调用所述第N+1级关联函数,其中,N为自然数。

其中,第N级关联函数是与第N+1级关联函数具有相关性的函数。这种相关性可以是人为设置的,也就是说第N级关联函数所对应的关联函数是可以任意设定的。

继续以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。在终端用户对触发表达“是否需要拨打酒店联系电话?”给予肯定答复并调用拨号函数时,可以获取该第1级关联函数拨号函数的第2级关联函数,并获取该第2级关联函数对应的触发表达。

作为示例,该第2级关联函数可以是导航函数;该第2级关联函数导航函数对应的触发表达可以是“是否需要从当前位置至酒店的导航路线?”。

向终端用户发送触发表达“是否需要从当前位置至酒店的导航路线?”以确定终端用户是否需要这种潜在需求。如果终端用户给出了肯定答复则调用第2级关联函数导航函数,呈现从终端用户所在的当前位置至酒店的导航路线。

依此规律,在调用第2级关联函数导航函数时,可以获取第2级关联函数导航函数的第3级关联函数,并获取该第3级关联函数的触发表达。作为示例,该第3级关联函数可以是娱乐函数;该第3级关联函数娱乐函数对应的触发表达可以是“是否需要了解酒店附近的娱乐场所?”。向终端用户发送该触发表达并获得终端用户肯定答复后,调用该第3级关联函数娱乐函数,将酒店周边的娱乐场所信息呈现给终端用户。

依此规律,可以继续上述步骤,直至终端用户停止会话。

在本发明的一个实施方式中,本实施例还可以有步骤S410(未示出):

S410:根据终端用户需求信息提取所述目标函数的参数信息,如果终端用户需求信息中缺少所述目标函数的参数信息,则获取所述目标函数对应的第一参数获取表达;向所述终端用户发送所述第一参数获取表达,并根据所述终端用户针对所述第一参数获取表达的回应,获取缺少的该目标函数的参数信息。

很多时候,终端用户给出的需求信息是零散的、不全面的。这个时候尽管能够分析出终端用户的意图和实际需求,但仍难以给出符合终端用户实际需要的准确信息。因此,有必要向终端用户确认有关信息。

继续以以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。尽管确定了终端用户意图是“附近的酒店”,但实际生活中,附近可能有多家星级不同的酒店。为准确判断终端用户的需求层次,也为了提高会话效率,可以在酒店函数中设置星级参数,从而过滤掉部分酒店信息。由于终端用户没有输入任何有关酒店星级的信息,则可以获取并向终端用户发送酒店函数对应的参数获取表达“请问您需要查询几星级的酒店?”。随后,可以根据终端用户针对该参数获取表达的回应,从中获取酒店函数的星级参数信息。

在本发明的一个实施方式中,本实施例还可以有步骤S510(未示出):

S510:根据终端用户需求信息和第N级关联函数的处理结果,提取所述第N+1级关联函数的参数信息,如果终端用户需求信息和第N级关联函数的处理结果中缺少该第N+1级关联函数的参数信息,则获取所述第N+1级关联函数对应的第二参数获取表达;向所述终端用户发送所述第二参数获取表达,并根据所述终端用户针对所述第二参数获取表达的回应,获取缺少的所述第N+1级关联函数的参数信息。

其中,在本发明中,当N为0时,该N级关联函数即为目标函数。

继续以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。第2级关联函数导航函数可以设置有交通工具参数。第2级关联函数导航函数的交通工具参数信息可以从终端用户需求信息“帮我查下附近的酒店”和第1级关联函数拨号函数的处理结果中获取。由于第1级关联函数拨号函数只有“电话已拨通”和“电话未拨通”两种处理结果,因此终端用户需求信息“帮我查下附近的酒店”和第1级关联函数的处理结果中缺少该第2级关联函数导航函数的交通工具参数信息。

此时,可以获取第2级关联函数导航函数对应的参数获取表达“您打算以哪种交通工具前往酒店?”并向终端用户发送,然后从终端用户的回应中获取该缺少的第2级关联函数导航函数的交通工具参数信息。

在本实施例中,目标函数和第N级关联函数(统称为“函数”)都可以具有统一的函数定义规范。优选地,这种统一的函数定义规范包括:函数本体、函数的触发表达以及函数的参数获取表达。此处,为说明之便,与函数相连的触发表达、参数获取表达可以理解为函数定义规范的一部分,尽管在理论上,与函数相连的触发表达、参数获取表达并不属于函数的一部分。

例如,统一的函数定义规范可以如下:

//触发表达

//参数获取表达(如有参数)

函数(类型1参数a,类型2参数b,...){

函数执行主体;

返回数据结构体(如有);

}

为方便说明,此处“//”并不是注释语言,而是说明与函数相连的触发表达和参数获取表达(如有参数)。

以导航业务为例,所需的一个参数信息可以是指定地点,函数执行主体则会给出到指定地点的导航路径。其中,触发表达可以为“是否需要导航到这里?”;参数获取表达可以为“请问是要去什么地方?”。

统一的函数定义规范解放了函数开发人员,借此函数开发人员不需要针对不同的业务分别构建不同的算法。从而,本发明克服了现有技术中业务与算法高度耦合的重大缺陷,使得业务人员能够专注于业务逻辑的开发与定制、函数开发人员能够专注于优化函数规范本身。简而言之,专业的人做专业的事使得人机对话的效率和质量由此得以提升到新的高度。

在本发明的一个实施方式中,本实施例还可以有步骤S610(未示出):

S610:通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。

在本实施例中,可以通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。简言之,也就是函数之间的关联关系。

如前文所述,目标函数和第1级关联函数之间的关联关系可以是人为设定的,第N级关联函数和所述第N+1级关联函数之间的关联关系也可以是人为设定的。这样做的好处是,可以实现多轮会话的自定义业务组合。也就是说,业务人员以及函数开发人员可以根据业务需要在不同函数之间建立关联关系,从而实现了多轮会话的扩展应用。作为一种优选方案,在不同函数之间建立关联关系可以通过可视化编程的方式实现。这里的“可视”,指的是无须编程,仅通过直观的操作方式即可完成界面的设计、建立不同函数之间的关联关系。可视化编程的基本知识为相关领域技术人员所熟知,本文对此不再赘述。

作为一种更优选的方案,通过可视化编程的方式实现不同函数之间建立关联关系可以在可视化编程界面中通过拖拽连接线等类似的操作,将函数之间的关联关系建立起来。

优选的,可以由函数开发人员(例如编程人员)按照上述统一的函数定义规范开发和提供函数,由智能会话服务方将符合统一函数定义规范的函数提供给企业客户(如上文中的业务人员)使用,由企业客户根据自己的业务需求、选择合适的函数,并根据实际业务需求采用上述可视化编程的方式建立函数之间的关联关系、定制符合业务需要的业务逻辑,智能会话服务方根据企业客户定制的函数关联关系,向企业客户的终端用户提供智能会话服务,根据终端终端用户的请求、为终端终端用户提供智能会话服务。

优选的,所述目标函数可以有一个以上的第1级关联函数、以及所述第N级关联函数可以有一个以上的第N+1级关联函数,即目标函数可以有多个第1级关联函数,第N级关联函数可以有多个第N+1级关联函数;在这种情况下,系统判断目标函数有多个第1级关联函数的情况下,可以将该多个第1级关联函数分别对应的触发表达发送给终端用户,由终端用户进行选择,选择其中一个或多个第1级关联函数进行触发;同理,系统判断第N级关联函数有多个第N+1级关联函数的情况下,可以将该多个第N+1级关联函数的情况下分别对应的触发表达发送给终端用户,由终端用户进行选择,选择其中一个或多个第N+1级关联函数进行触发。

示例性设备

在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的多轮会话交互装置进行说明。

本发明一实施例的多轮会话交互装置主要包括:接收模块,用于接收终端用户需求信息;判断模块,用于根据终端用户需求信息判断终端用户意图所对应的目标函数;调用模块,用于调用所述目标函数;获取模块,用于获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达;第一关联模块,用于向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。此外,该装置还可以包括第二关联模块、第一参数模块、第二参数模块以及设置关联关系模块中的一个或多个。

如图3所示,该多轮会话交互装置主要包括:

接收模块710,用于接收终端用户需求信息。

需求信息本质上是终端用户输入的信息,需求信息可以是各种形式的,例如,语音、文字以及图片等中的一种或多种。作为示例,需求信息可能是终端用户输入的文字信息“帮我查下附近的酒店”,需求信息可能是终端用户输入的一幅图像,也可能是终端用户输入的一段语音。

判断模块720,用于根据终端用户需求信息判断终端用户意图所对应的目标函数。

以终端用户输入的文字信息“帮我查下附近的酒店”为例,在接收终端用户需求信息“帮我查下附近的酒店”后,分析终端用户的意图以及根据该意图判断对应的目标函数。

根据终端用户输入的需求信息分析终端用户的意图(意图分析,intention recognition)的实现方式可以有多种,本发明对此不进行限定。例如,本发明中分析终端用户的意图可以通过深度学习实现,也可以通过语义分析实现,也可以通过其他任何意图分析技术实现。

在分析需求信息“帮我查下附近的酒店”后,可以确定终端用户意图是“附近的酒店”。根据该终端用户意图,匹配与之对应的目标函数,比如,酒店函数。其中,酒店函数可以是预先设定好的。具体的匹配方法可以是多样的,可以根据终端用户意图“附近的酒店”进行整体关联,也可以根据终端用户意图“附近的酒店”中的部分信息(例如,“酒店”)进行关联。

调用模块730,用于调用所述目标函数。

判断模块720中已经确定了目标函数,即酒店函数。在本模块中,根据终端用户需求信息和/或终端用户意图运行确定了的目标函数。以需求信息“帮我查下附近的酒店”和终端用户意图“附近的酒店”为例,酒店函数将据此执行并调用相关酒店数据库中的信息并输出相关信息呈现给终端用户,作为示例,输出的相关信息可以是“最近的酒店是汉皇大酒店,位于新北区南浦路30号,联系电话099-56450000”。相关信息呈现方式可以是语音、文字、图片等一种或多种形式,本发明对此不进行限定。

获取模块740,用于获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达。

其中,关联函数是与目标函数具有相关性的函数。这种相关性可以是人为设置的,也就是说目标函数所对应的关联函数是可以任意设定的。

在调用模块730中,目标函数酒店函数运行并输出了相关信息“最近的酒店是汉皇大酒店,位于新北区南浦路30号,联系电话099-56450000”。

例如,酒店函数的第1级关联函数可以是拨号函数。虽然终端用户没有明确需要拨号预定酒店,但考虑到终端用户有这种潜在需求,可以获取该拨号函数,并获取该拨号函数对应的触发表达。作为示例,该触发表达可以是“是否需要拨打酒店联系电话?”

第一关联模块750,用于向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

在获取模块740中,已经获取了目标函数酒店函数的第1级关联函数及其对应的触发表达。在本模块中,向终端用户发送触发表达,以确定终端用户是否需要这种潜在需求。以终端用户需要拨号预定酒店这一潜在需求为例,可以向终端用户发送触发表达“是否需要拨打酒店联系电话?”,如果终端用户给出了肯定答复则调用拨号函数,拨出酒店号码“099-56450000”;否则不调用。

在本发明的一个实施方式中,本实施例还可以有第二关联模块810:

第二关联模块810,用于当调用第N级关联函数时,获取所述第N级关联函数的第N+1级关联函数,并获取所述第N+1级关联函数对应的第二触发表达;向所述终端用户发送所述第二触发表达,并根据接收到的所述终端用户针对所述第二触发表达的回应,判断是否调用所述第N+1级关联函数,其中,N为自然数。

其中,第N级关联函数是与第N+1级关联函数具有相关性的函数。这种相关性可以是人为设置的,也就是说第N级关联函数所对应的关联函数是可以任意设定的。

继续以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。在终端用户对触发表达“是否需要拨打酒店联系电话?”给予肯定答复并调用拨号函数时,可以获取该第1级关联函数拨号函数的第2级关联函数,并获取该第2级关联函数对应的触发表达。

作为示例,该第2级关联函数可以是导航函数;该第2级关联函数导航函数对应的触发表达可以是“是否需要从当前位置至酒店的导航路线?”。

向终端用户发送触发表达“是否需要从当前位置至酒店的导航路线?”以确定终端用户是否需要这种潜在需求。如果终端用户给出了肯定答复则调用第2级关联函数导航函数,呈现从终端用户所在的当前位置至酒店的导航路线。

依此规律,在调用第2级关联函数导航函数时,可以获取第2级关联函数导航函数的第3级关联函数,并获取该第3级关联函数的触发表达。作为示例,该第3级关联函数可以是娱乐函数;该第3级关联函数娱乐函数对应的触发表达可以是“是否需要了解酒店附近的娱乐场所?”。向终端用户发送该触发表达并获得终端用户肯定答复后,调用该第3级关联函数娱乐函数,将酒店周边的娱乐场所信息呈现给终端用户。

依此规律,可以继续上述步骤,直至终端用户停止会话。

在本发明的一个实施方式中,本实施例还可以有第一参数模块:

第一参数模块,用于根据终端用户需求信息提取所述目标函数的参数信息,如果终端用户需求信息中缺少所述目标函数的参数信息,则获取所述目标函数对应的第一参数获取表达;向所述终端用户发送所述第一参数获取表达,并根据所述终端用户针对所述第一参数获取表达的回应,获取缺少的该目标函数的参数信息。

很多时候,终端用户给出的需求信息是零散的、不全面的。这个时候尽管能够分析出终端用户的意图和实际需求,但仍难以给出符合终端用户实际需要的准确信息。因此,有必要向终端用户确认有关信息。

继续以以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。尽管确定了终端用户意图是“附近的酒店”,但实际生活中,附近可能有多家星级不同的酒店。为准确判断终端用户的需求层次,也为了提高会话效率,可以在酒店函数中设置星级参数,从而过滤掉部分酒店信息。由于终端用户没有输入任何有关酒店星级的信息,则可以获取并向终端用户发送酒店函数对应的参数获取表达“请问您需要查询几星级的酒店?”。随后,可以根据终端用户针对该参数获取表达的回应,从中获取酒店函数的星级参数信息。

在本发明的一个实施方式中,本实施例还可以有第二参数模块:

第二参数模块,用于根据终端用户需求信息和第N级关联函数的处理结果,提取所述第N+1级关联函数的参数信息,如果终端用户需求信息和第N级关联函数的处理结果中缺少该第N+1级关联函数的参数信息,则获取所述第N+1级关联函数对应的第二参数获取表达;向所述终端用户发送所述第二参数获取表达,并根据所述终端用户针对所述第二参数获取表达的回应,获取缺少的所述第N+1级关联函数的参数信息。

其中,在本发明中,当N为0时,该N级关联函数即为目标函数。

继续以上文中终端用户输入的需求信息“帮我查下附近的酒店”为例。第2级关联函数导航函数可以设置有交通工具参数。第2级关联函数导航函数的交通工具参数信息可以从终端用户需求信息“帮我查下附近的酒店”和第1级关联函数拨号函数的处理结果中获取。由于第1级关联函数拨号函数只有“电话已拨通”和“电话未拨通”两种处理结果,因此终端用户需求信息“帮我查下附近的酒店”和第1级关联函数的处理结果中缺少该第2级关联函数导航函数的交通工具参数信息。

此时,可以获取第2级关联函数导航函数对应的参数获取表达“您打算以哪种交通工具前往酒店?”并向终端用户发送,然后从终端用户的回应中获取该缺少的第2级关联函数导航函数的交通工具参数信息。

在本实施例中,目标函数和第N级关联函数(统称为“函数”)都可以具有统一的函数定义规范。优选地,这种统一的函数定义规范包括:函数本体、函数的触发表达以及函数的参数获取表达。此处,为说明之便,与函数相连的触发表达、参数获取表达可以理解为函数定义规范的一部分,尽管在理论上,与函数相连的触发表达、参数获取表达并不属于函数的一部分。

例如,统一的函数定义规范可以如下:

//触发表达

//参数获取表达(如有参数)

函数(类型1参数a,类型2参数b,...){

函数执行主体;

返回数据结构体(如有);

}

为方便说明,此处“//”并不是注释语言,而是说明与函数相连的触发表达和参数获取表达(如有参数)。

以导航业务为例,所需的一个参数信息可以是指定地点,函数执行主体则会给出到指定地点的导航路径。其中,触发表达可以为“是否需要导航到这里?”;参数获取表达可以为“请问是要去什么地方?”

统一的函数定义规范解放了编程人员,借此编程人员不需要针对不同的业务分别构建不同的算法。从而,本发明克服了现有技术中业务与算法高度耦合的重大缺陷,使得业务人员能够专注于业务开发,编程人员能够专注于优化函数规范本身。简而言之,专业的人做专业的事使得人机对话的效率和质量由此得以提升到新的高度。

在本发明的一个实施方式中,本实施例还可以有设置关联关系模块:

设置关联关系模块,用于通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。

在本实施例中,可以通过可视化编程的方式建立所述目标函数和所述第1级关联函数之间的关联关系,和/或所述第N级关联函数和所述第N+1级关联函数之间的关联关系。简言之,也就是函数之间的关联关系。

如前文所述,目标函数和第1级关联函数之间的关联关系可以是人为设定的,第N级关联函数和所述第N+1级关联函数之间的关联关系也可以是人为设定的。这样做的好处是,可以实现多轮会话的自定义业务组合。也就是说,业务人员以及编程人员可以根据业务需要在不同函数之间建立关联关系,从而实现了多轮会话的扩展应用。作为一种优选方案,在不同函数之间建立关联关系可以通过可视化编程的方式实现。这里的“可视”,指的是无须编程,仅通过直观的操作方式即可完成界面的设计、建立不同函数之间的关联关系。可视化编程的基本知识为相关领域技术人员所熟知,本文对此不再赘述。

优选地,设置关联关系模块可以包括:

拖拽子模块,用于在可视化编程界面中,响应于连接线的拖拽操作,建立函数之间的关联关系。

作为一种更优选的方案,通过可视化编程的方式实现不同函数之间建立关联关系可以在可视化编程界面中通过拖拽连接线等类似的操作,将函数之间的关联关系建立起来。

优选的,可以由函数开发人员(例如编程人员)按照上述统一的函数定义规范开发和提供函数,由智能会话服务方将符合统一函数定义规范的函数提供给企业客户(如上文中的业务人员)使用,由企业客户根据自己的业务需求、选择合适的函数,并根据实际业务需求采用上述可视化编程的方式建立函数之间的关联关系、定制符合业务需要的业务逻辑,智能会话服务方根据企业客户定制的函数关联关系,向企业客户的终端用户提供智能会话服务,根据终端终端用户的请求、为终端终端用户提供智能会话服务。

优选的,所述目标函数可以有一个以上的第1级关联函数、以及所述第N级关联函数可以有一个以上的第N+1级关联函数,即目标函数可以有多个第1级关联函数,第N级关联函数可以有多个第N+1级关联函数;在这种情况下,系统判断目标函数有多个第1级关联函数的情况下,可以将该多个第1级关联函数分别对应的触发表达发送给终端用户,由终端用户进行选择,选择其中一个或多个第1级关联函数进行触发;同理,系统判断第N级关联函数有多个第N+1级关联函数的情况下,可以将该多个第N+1级关联函数的情况下分别对应的触发表达发送给终端用户,由终端用户进行选择,选择其中一个或多个第N+1级关联函数进行触发。

本发明实施方式的计算机可读存储介质一个具体例子例如为光盘,其上存储有计算机程序(即程序产品),该程序被处理器执行时,会实现上述方法实施方式中所记载的各步骤,其中包括:

接收终端用户需求信息;

根据终端用户需求信息判断终端用户意图所对应的目标函数;

调用所述目标函数;

获取所述目标函数的第1级关联函数,并获取所述第1级关联函数对应的第一触发表达;

向所述终端用户发送所述第一触发表达,并根据接收到的所述终端用户针对所述第一触发表达的回应,判断是否调用所述第1级关联函数。

应当注意,尽管在上文详细描述中提及了多轮会话交互装置的若干模块或子模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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