首页 / 专利库 / 人工智能 / 对话代理 / 聊天机器人 / 为聊天机器人对话流能力生成决策树的方法、系统和程序

聊天机器人对话流能生成决策树的方法、系统和程序

阅读:550发布:2020-05-08

专利汇可以提供聊天机器人对话流能生成决策树的方法、系统和程序专利检索,专利查询,专利分析的服务。并且本公开涉及用于为 聊天 机器人 对话流能 力 生成 决策树 的方法、系统和程序。描述的实施方式提供了一种可配置用于满足用户需求的 聊天机器人 系统。在一种实施方式中,聊天机器人系统被配置为利用和改变决策树、决策树复杂度、以及适应终端用户需求的决策树选择。实施方式还可以利用使用独立叶子和技能组而被配置为静态或动态的决策树,以允许聊天机器人谈话所需的复杂程度的变化。在其他实施方式中,聊天机器人系统可以被配置用于评估聊天机器人场景和要求以适应处理要求,从而相对于用户需求而增加或减少处理线程以改变处理效率。在一些场景中,聊天机器人系统是内省的,从而使用反馈和数据来适应聊天机器人会话错误和自我修复。,下面是聊天机器人对话流能生成决策树的方法、系统和程序专利的具体信息内容。

1.一种包括一个或多个指令的非暂态计算机可读介质,所述一个或多个指令能够由一个或多个处理器执行以用于:
响应于接收到作为聊天机器人会话的一部分的对话,接收包括第一技能组模型和至少两个叶子的决策树
遍历所述第一技能组模型以识别所述至少两个叶子;
分析输入数据、特性、动作、以及与所述至少两个叶子相关联的至少一些其他数据,以确定在对所述对话进行响应时采用所述至少两个叶子中的哪个叶子;
响应于识别出所述叶子,分析所述叶子以确定响应于所述对话而采取的附加动作;
分析所述附加动作以确定是否改变为第二技能组模型或第二叶子;
分析所述第一技能组模型和对话,以确定所述第一技能组模型或所述对话是否包含无效的、未识别的或以其他方式在一个或多个错误阈值内能够忽略的数据;以及输出对所述对话的响应。
2.如权利要求1所述的非暂态计算机可读介质,其中,所述对话包括与同所述决策树相关联的上下文一致的上下文。
3.如权利要求1所述的非暂态计算机可读介质,其中,响应于接收到所述决策树,分析所述决策树与所述对话之间的上下文,以确定所述决策树的所述上下文是否与所述对话的所述上下文匹配。
4.如权利要求1所述的非暂态计算机可读介质,其中,所述叶子包括静态响应。
5.如权利要求1所述的非暂态计算机可读介质,其中,所述叶子包括动态响应。
6.如权利要求1所述的非暂态计算机可读介质,其中,响应于所述对话以及所述叶子的特性,接收所述第二技能组模型。
7.如权利要求1所述的非暂态计算机可读介质,其中,所述附加动作包括改变为所述第二技能组模型。
8.如权利要求7所述的非暂态计算机可读介质,其中,所述第二技能组模型继承来自所述第一技能组模型的至少一些数据。
9.如权利要求1所述的非暂态计算机可读介质,其中,所述附加动作包括至少一个函数。
10.如权利要求1所述的非暂态计算机可读介质,其中,分析所述第一技能组模型进一步包括处理所述第一技能组模型,以在实施时检测将导致所述聊天机器人会话失败的错误并检测将不会导致所述聊天机器人会话失败的错误。
11.一种计算机实施的方法,包括:
响应于接收到作为聊天机器人会话的一部分的对话,接收包括第一技能组模型和至少两个叶子的决策树;
遍历所述第一技能组模型以识别所述至少两个叶子;
分析输入数据、特性、动作、以及与所述至少两个叶子相关联的至少一些其他数据,以确定在对所述对话进行响应时采用所述至少两个叶子中的哪个叶子;
响应于识别出所述叶子,分析所述叶子以确定响应于所述对话而采取的附加动作;
分析所述附加动作以确定是否改变为第二技能组模型或第二叶子;
分析所述第一技能组模型和对话,以确定所述第一技能组模型或所述对话是否包含无效的、未识别的或以其他方式在一个或多个错误阈值内能够忽略的数据;以及输出对所述对话的响应。
12.如权利要求11所述的方法,其中,所述对话包括与同所述决策树相关联的上下文一致的上下文。
13.如权利要求11所述的方法,其中,响应于接收到所述决策树,分析所述决策树与所述对话之间的上下文,以确定所述决策树的所述上下文是否与所述对话的所述上下文匹配。
14.如权利要求11所述的方法,其中,所述叶子包括静态响应。
15.如权利要求11所述的方法,其中,所述叶子包括动态响应。
16.如权利要求11所述的方法,其中,响应于所述对话以及所述叶子的特性,接收所述第二技能组模型。
17.如权利要求11所述的方法,其中,所述附加动作包括改变为所述第二技能组模型。
18.如权利要求17所述的方法,其中,所述第二技能组模型继承来自所述第一技能组模型的至少一些数据。
19.如权利要求11所述的方法,其中,分析所述第一技能组模型进一步包括处理所述第一技能组模型,以在实施时检测将导致所述聊天机器人会话失败的错误并检测将不会导致所述聊天机器人会话失败的错误。
20.一种用于在计算环境中生成聊天机器人会话的装置,所述计算环境包括与运行软件的聊天机器人生成系统通信的一个或多个计算设备,所述软件被配置用于生成所述一个或多个计算设备能够访问的聊天机器人会话,所述一个或多个计算设备中的计算设备被配置用于:
响应于接收到作为聊天机器人会话的一部分的对话,接收包括第一技能组模型和至少两个叶子的决策树;
遍历所述第一技能组模型以识别所述至少两个叶子;
分析输入数据、特性、动作、以及与所述至少两个叶子相关联的至少一些其他数据,以确定在对所述对话进行响应时采用所述至少两个叶子中的哪个叶子;
响应于识别出所述叶子,分析所述叶子以确定响应于所述对话而采取的附加动作;
分析所述附加动作以确定是否改变为第二技能组模型或第二叶子;
分析所述第一技能组模型和对话,以确定所述第一技能组模型或所述对话是否包含无效的、未识别的或以其他方式在一个或多个错误阈值内能够忽略的数据;以及输出对所述对话的响应。

说明书全文

聊天机器人对话流能生成决策树的方法、系统和程序

[0001] 相关申请的交叉引用
[0002] 本申请要求于2019年5月30日提交的名称为“METHOD,SYSTEM AND PROGRAM FOR GENERATING DECISION TREES FOR CHATBOTS DIALOG FLOW CAPABILITIES(用于为聊天机器人对话流能力生成决策树的方法、系统和程序)”的美国专利申请序列号16/427,013(ORACP0246/ORA190166-US-NP)以及于2018年10月19日提交的名称为“METHOD,SYSTEM AND PROGRAM FOR GENERATING DECISION TREES FOR CHATBOTS DIALOG FLOW CAPABILITIES(用于为聊天机器人对话流能力生成决策树的方法、系统和程序)”的美国临时专利申请序列号62/747,886(ORACP0246P/ORA190166-US-PSP)的权益,这两个美国专利申请出于所有目的如同在本申请中完整阐述的那样通过引用并入本文。

技术领域

[0003] 下文涉及聊天机器人平台。更具体地,下文涉及一种可由用户配置的实用程序,所述实用程序被配置用于允许用户实施和配置聊天机器人系统以获得更可预测的结果。

背景技术

[0004] 通常,聊天机器人系统(也称为聊天机器人、交谈机器人、对话机器人、机器人、IM机器人、交互式代理、人工谈话实体等)是被设计用于通过使用预先计算的关键用户短语和基于文本或听觉的信号来模拟人类谈话的计算机程序。在一些场景中,聊天机器人用于在社交网络中心和即时消息(IM)客户端中频繁使用的基本客户服务和营销系统。聊天机器人也可以作为智能虚拟助手包括在操作系统中。
[0005] 不幸的是,当前的聊天机器人无法提供如它们被设计用于模拟那样的无缝、愉悦且高效的用户体验。通常,聊天机器人不会像人类那样理解上下文。因此,当前现有技术的聊天机器人经常混淆陈述,这可能导致终端用户感到沮丧。
[0006] 而且,传统的聊天机器人系统目前依赖于传统决策树,所述传统决策树本质上是线性的并且随着开发者尝试使用“一刀切”方式作出并使用决策树而变得过于复杂。发明内容
[0007] 在此描述的实施方式提供了一种可配置用于满足用户需求的聊天机器人系统。在一种实施方式中,响应于输入数据和所述数据的特性(property),聊天机器人系统被配置用于加载决策树技能组模型,遍历所述技能组模型,并且基于所述输入和所述输入数据的特性来识别应当采用所述决策树的哪个叶子。在一些场景中,可以使用预定义特性和/或动态函数来解析叶子。
[0008] 进一步地,实施方式可以利用被配置用于静态或动态地进行响应的叶子以允许聊天机器人谈话所需的复杂程度的变化。与基于对对话的固定响应在其响应和流方面是单向的传统决策树不同,本文所描述的决策树实施方式利用递归且可适应的过程来解析哪个或哪些叶子将适合于响应以及如何响应对话流。
[0009] 在一种实施方式中,聊天机器人系统可以被配置用于在通信(例如,聊天、对话等)过程中的任何点处和任何状态下动态地改变技能组,并在技能组之间链接有依赖性。当前技能组与被转移到的新技能组之间的依赖性可以用于通知和/或影响(这些)新技能组的决策过程。因此,从先前技能组到新技能组的转换可以包含(多个)先前技能组的所有或一些特性。
[0010] 在其他实施方式中,本文所描述的聊天机器人系统可以被配置用于评估聊天机器人会话、输入、对话和其他要求以适应处理要求,从而相对于用户需求而增加或减少处理线程以改变处理效率。在一些场景中,本文所描述的聊天机器人系统是内省的,从而使用反馈和数据来进行自适应和自我修复。
[0011] 通过参考说明书的其余部分和所附附图,可以实现对本文公开的特定实施例的本质和优点的进一步理解。

附图说明

[0012] 图1是用于聊天机器人系统的计算系统的高级图示。
[0013] 图2图示了用于实施聊天机器人会话的对话和决策树方法的高级流程图
[0014] 图3是对话决策树过程的高级图示。
[0015] 图4是决策树的叶子的高级图示。
[0016] 图5是决策树叶子模式的高级图示。
[0017] 图6A至图6D描绘了对话决策过程模式的高级图示。
[0018] 图7是示例性计算机和通信系统的高级框图

具体实施方式

[0019] 在此描述的实施方式提供了一种可配置用于满足用户需求的聊天机器人系统。在一种实施方式中,响应于输入数据和所述数据的特性,聊天机器人系统可以被配置来加载一个或多个决策树技能组(skillset)模型,遍历所述技能组模型,并且基于所述输入和所述输入数据的特性、叶子的特性、与叶子相关联的动作、以及响应项来识别应当采用所述决策树的哪个叶子。如本文所描述的技能组模型(也称为技能组)可以用于动态地扩展并调整决策树及其能力,从而适应并处理对话流。
[0020] 在一些实施方式中,可以使用预定义特性和/或动态函数递归地解析叶子。进一步地,实施方式可以利用被配置来静态或动态地进行响应的叶子以允许聊天机器人谈话所需的复杂程度的变化。与基于对对话的固定响应在其响应和流方面是单向的传统决策树不同,本文所描述的决策树实施方式可以采用递归且可适应的过程来解析哪个或哪些叶子将适合于响应以及如何响应对话流。
[0021] 在示例性实施方式中,聊天机器人系统可以在所述过程中的任何点处和任何状态下动态地改变技能组,并在技能组之间具有依赖性。例如,在在线订购聊天对话过程期间,当用户向聊天机器人系统询问完全不同的主题时,聊天机器人系统可以通过改变为新技能组、同时使用其他(多个)技能组保留来自(多个)宝贵会话的信息来进行响应,并且告知用户例如它们将在完成订单之后回答问题。
[0022] 而且,本文所描述的实施方式可以采用和/或继承来自先前技能组的至少一些特性和来自先前技能组和聊天会话的数据,以帮助发现新技能组。因此,可以使用先前技能组来通知新技能组如何响应和/或影响新技能组的决策处理。
[0023] 图1是用于生成例如用于实施聊天机器人会话的模式、决策树等的示例性计算系统100的高级框图。计算系统100可以是任何计算系统,诸如企业计算环境、客户端-服务器系统等。计算系统100包括聊天机器人系统110,所述聊天机器人系统被配置来处理从诸如键盘鼠标等用户接口114接收的关于与如本文所描述的数据元素、信息等相关联的诸如聊天、发短信、生成、配置、建模、标记、数据绑定、维护等过程的数据。
[0024] 注意,计算系统100呈现了可以至少部分地在服务器上实施用于实施实施例的计算机代码的特定示例实施方式。然而,实施例并不限于此。例如,客户端侧软件应用程序可以根据本教导来实施聊天机器人系统110或其部分,而无需客户端侧软件应用程序与服务器之间的通信。
[0025] 在一种示例性实施方式中,聊天机器人系统110可以连接到被配置来例如向其用户显示数据140的显示器130。显示器130可以是适于允许用户经由用户接口(UI)114查看显示在其上的图形数据140并与之交互的无源或有源显示器。在其他配置中,显示器130可以是响应于触摸、手势、滑动等而用于与其用户交互并由其用户操纵数据140的触摸屏显示器。手势可以包括适于允许用户生成聊天机器人会话、决策树、模式、转换数据、建模、分析、部署模式、维护数据140等的单个手势、多点触摸手势以及手势与用户输入的其他组合。
[0026] 在一些实施方式中,计算系统100可以包括数据源,诸如数据库120。如本文所进一步描述的,数据库120可以直接地或例如经由网络连接间接地连接到聊天机器人系统110,并且可以被实施为存储在诸如硬盘驱动器、固态驱动器(SSD)、闪速存储器等本地存储器设备上的非暂态数据结构,或者可以被存储为网络的一部分。
[0027] 数据库120可以包含数据集122。数据集122可以包括如本文所描述的数据。数据集122还可以包括与聊天机器人会话、决策树、模式、数据属性、数据模型、数据结构、数据层次、节点位置、值、值类型、总和、可视化算法、代码(例如,JSON、JavaScript、XSD、XML等)、源、安全性、散列等有关的数据。另外,数据集122还可以包含其他数据、数据元素以及诸如元数据、标签、开发时间信息、运行时间信息、用户配置信息、API、界面组件信息、库信息、错误阈值数据、指针等信息。
[0028] 聊天机器人系统110可以包括用户接口模112、聊天机器人引擎116和渲染引擎118。用户接口模块112可以被配置用于接收并处理从用户接口114接收的数据信号和信息。
例如,用户接口模块112可以适于接收并处理来自与数据140相关联的用户输入的数据,以便经由聊天机器人系统110进行处理。
[0029] 在一些实施方式中,计算系统100可以包括日志123。如本文所进一步描述的,日志123可以直接地或例如经由网络连接间接地连接到聊天机器人系统110,并且可以被实施为存储在诸如硬盘驱动器、SSD、闪速存储器等本地存储器设备上的非暂态数据结构,或者可以被存储为云网络的一部分。日志123也可以耦接到数据库120和/或是所述数据库的一部分。
[0030] 在示例性实施方式中,聊天机器人引擎116可以适于从诸如用户接口114和/或数据库120等数据源接收数据以供其进行处理。在一种配置中,聊天机器人引擎116是软件引擎,所述软件引擎被配置来从其用户接收并处理与来自用户接口模块114和/或数据库120的数据140有关的输入数据(诸如聊天、文本、视频、输出模式参数等)以便生成聊天机器人会话,然后相对于例如一种类型的聊天机器人会话、处理效率和错误阈值来验证并配置聊天机器人会话。例如,在验证过程期间,聊天机器人引擎116可以分析聊天机器人会话中的数据对象以及输入参数、处理器效率阈值、聊天机器人会话类型等,以便认证并配置在聊天机器人会话期间要使用的(多个)决策树和/或上下文过程。
[0031] 而且,聊天机器人引擎116可以用于确定聊天机器人会话的错误是否在可接受平之内,其中,一些转换错误阈值可以是针对良性错误(例如,可能不会造成系统故障、聊天机器人会话失败等错误)和/或针对其他类型的用户和/或系统可接受的错误而设置的,从而提供可调整的聊天机器人会话容差。例如,聊天机器人引擎116可以允许具有可接受的错误(诸如系统错误、倾斜错误(lopping errors)、上下文错误、拼写错误、语法错误等)阈值水平的聊天机器人会话。
[0032] 在一些场景中,聊天机器人引擎116可以被配置来分析并忽略在一个聊天机器人会话中会被认为是错误但在另一聊天机器人会话中不一定是错误的单词、短语、符号、首字母缩略词等。例如,在软件编程的上下文中,聊天机器人116可以被配置来确定聊天机器人会话处于用特定编程语言(例如,C++)进行编程的上下文中并允许数据输入的变化在容差水平之内,以防止聊天机器人系统110故障(例如,崩溃),避免永久谈话循环等。
[0033] 聊天机器人引擎116还可以被配置用于自我修复以便:无论是否向其用户发出警告,都例如通过使用诸如提示终端用户进行说明、建议替代性谈话、询问问题、分析终端用户的先前会话等技术以递归方式稍后或即时校正并解决此类错误。
[0034] 在其他实施方式中,聊天机器人引擎116可以被配置为用于执行与数据140相关联的分析功能的数据分析工具。这种分析功能可以包括确定与数据140相关联的属性,确定数据类型、数据与聊天机器人会话类型的关系,确定数据值、数据类型,确定与其他数据的关系,解释与数据相关联的元数据,确定错误类型、容差数据等。
[0035] 例如,聊天机器人引擎116可以被配置来接收并分析数据集122以确定与数据集122相关联的聊天会话用词、短语、首字母缩略词、上下文、数据特性、错误类型、容错水平、模式类型、用户接口配置、定义、数据处理指令、数据属性、数据层次、节点、层次内的节点位置、值、数据类型、总和、算法、源、安全性、散列等。
[0036] 聊天机器人引擎116可以从数据库120接收现有数据集122以供其进行处理。这样的数据集122可以包括并表示分离的数据集122和与例如组织数据有关的数据元素的组合,所述组织数据可以包括比如雇佣数据、薪资数据、人员数据等数据。另外,数据集122可以包括其他类型的数据、数据元素和诸如联系人数据、销售数据、生产数据、科学数据、财务数据、医疗数据、普查数据等信息。
[0037] 渲染引擎118可以被配置来接收与数据140有关的配置数据、相关联的数据集122以及与数据140(诸如用户接口组件、图标、用户指点设备信号等)相关联的用于在显示器130上渲染数据140的其他数据。在一种示例性实施方式中,渲染引擎118可以被配置用于渲染2D和3D图形模型和仿真,以允许用户获得更多关于与数据140相关联的数据集122的信息。在一种实施方式中,在例如通过用户接口114从用户接收指令时,渲染引擎118可以被配置来生成由其用户对数据140进行的交互式改变的实时显示。
[0038] 图2图示了用于实施聊天机器人会话的对话和决策树方法200的高级流程图。在一种实施方式中,可以在例如当调用聊天机器人系统110时在201处进入方法200。在204处,方法200确定例如聊天机器人系统110是否已经启动以进行聊天机器人会话。如果在204处聊天机器人系统110尚未启动,则方法200前进到201。然而,如果聊天机器人系统110已经被启动以执行例如聊天机器人会话,则方法200前进到206。
[0039] 在206处,过程200接收并处理输入数据,然后由过程200采用所述输入数据来确定要加载哪个技能组模型。输入数据可以是可以被有利地利用的几乎任何数据。在一些实施方式中,数据输入可以来自聊天机器人系统110,可以是用户的意图、解析的实体类(entity)或方法200可以采用以便对对话的流路径进行分类的其他相关变量。然而,如果没有输入数据或技能组模型,则在一些情况下,为了允许聊天机器人系统110例如结束或寻找对话的另一途径,方法200可以退出到220。
[0040] 在208处,方法200遍历技能组模型的一个或多个叶子以识别叶子。例如,叶子可以被配置为以特定的方式处理对话的预设叶子,或者可以是被配置来响应于对话而运行函数或动态算法的动态叶子。这种静态和动态叶子配置使得系统100较灵活并适应聊天机器人会话期间对话的变化。在一些情况下,如果没有技能组模型来识别叶子,则为了允许系统100结束或寻找另一处理途径,方法200可以采用退出操作并退出到220。
[0041] 在210处,方法200分析输入数据以确定哪个或哪些叶子适合于对话流。例如,输入数据可以来自看向移动设备的在线购物者。方法200可以被配置来分析与购物者、设备、购物会话、元数据等有关的输入数据或其他因素,以便确定在关于移动设备的对话中采用哪个或哪些叶子。由于可能存在多于一个可能适合的叶子,因此方法200可以使用算法基于递归分析过程来解析要使用哪个叶子,所述算法例如使用预定义特性、动态函数加权变量等来向叶子提供更多或更少的权重,直至至少一个叶子被解析。
[0042] 然而,在210处,如果方法200不能解析叶子或者不存在或未找到叶子,则方法200可以查询诸如用户和/或系统等其他数据源来获得附加信息从而帮助解决问题。在一些情况下,为了允许系统100结束或寻找另一对话途径,方法200可以采用退出操作,所述退出操作可以结束会话或允许加载新技能组以提供另一对话流路线。
[0043] 在212处,一旦在210中识别出至少一个叶子,就可以确定这个点处的附加动作。例如,方法200可以查看叶子中列出的动作以确定要采取的动作(如果有的话)。替代性地,可以在诸如数据库120、日志123等其他位置中找到这些动作。在一些场景中,动作可以是需要第三方(诸如管理员)授权来控制对话中所使用的动作类型的授权的动作。例如,在对话可能变得不可接受的情况下(例如,变得“粗俗”),管理员、人工智能(AI)系统等可以将动作撤消或改变为另一个更加可接受的响应。
[0044] 这样,方法200可以被配置来提供灵活的方式来监控对话和动作以将对话保持在可接受的对话参数内。然而,如果方法200已经发现由于预定义响应充足而不需要更多的动作进行响应,则在这种状态下,可以选择一个或多个预定义响应,并且方法200前进到218以输出所述一个或多个预定义响应和/或退出到220。
[0045] 在214处,取决于输入数据和/或其他因素,方法200可以决定切换到另一技能组或叶子并将一些或全部数据转移到新位置(例如,技能组或叶子)以供进一步执行。然而,如果方法200已经找到了适合的叶子和/或由于预定义响应充足而不需要更多的标准进行响应,则在这种状态下,可以选择一个或多个预定义响应,并且方法200前进到218以输出所述一个或多个预定义响应和/或退出到220。
[0046] 在216处,方法200可以遍历决策树层次和/或对话并分析数据对象以确定数据对象的类型是已知的、未知的还是被标记为忽略。如果数据对象的类型是已知的,则方法200前进到另一数据对象。然而,如果数据对象(诸如对话输入)或其中包含的数据是未知的、被标记为忽略或以其他方式被认为在一个或多个可接受的错误阈值内是可容忍的,则方法200前进到决策树层次和/或对话的另一节点。
[0047] 例如,在购物的上下文中,对话可以包括用户要求系统100发送社交媒体链接时的未知对话输入,例如“#现在去购物”(“#shop now”)。在这种场景下,方法200可以被设置为对非错误的这种请求进行响应,可以被设置为忽略这些项,或者可以被配置为在预定义容错水平内允许诸如额外散列符号、拼写错误等错误。这样,系统100被配置为容忍引入到例如对话中的潜在错误。
[0048] 在一些实施方式中,为了允许不同的“最大努力”容错水平,可以使用一个错误阈值来设置一个容错限制,可以使用第二错误阈值水平来设置另一容错水平,依此类推。有利地,利用不同的错误阈值水平允许用户定制对话和数据容错以满足诸如处理效率、速度、容差、灵活性等各种要求和需求。
[0049] 然而,如果方法200已经发现相对于错误不再需要更多的动作并且预定义响应充足,则在这种状态下,可以选择一个或多个预定义响应,并且方法200前进到218以输出所述一个或多个预定义响应和/或退出到220。
[0050] 在218处,可以提供对对话的响应。在一些实施方式中,响应可以是从文本到更复杂的数据结构的任何类型的数据,或者这种响应可以根据需要分解为不同的对话流或状态。
[0051] 在220处,如果聊天机器人会话完成,则方法200前进到222并结束。然而,如果聊天机器人会话未完成,则方法200前进到204。在一些实施方式中,在220处,方法200可以提供退出动作流。例如,在方法200不能选择技能组或叶子的情况下,方法200可以返回到204并使用预定义退出模式和/或可以提供用于指定附加退出模式以采用新技能组和/或动作的能力。
[0052] 在实施方式中,在220处,方法200可以将处理流程的步骤与输入和输出信息一起记录到例如日志123中,以用作用于改进系统100的操作和对话响应的反馈。
[0053] 图3是对话决策树过程300的高级图示和示例。在一种实施方式中,决策树过程300包括一个或多个决策树302,诸如决策树302A和302B。决策树302可以被配置为使用几乎任何可用数据来做出决策。然而,在其他实施方式中,为了减少处理时间并简化对话过程,决策树302(诸如决策树302A和302B)可以由系统100配置,例如以决定基于决策树的特定叶子310的特性来使用所述叶子310,即使存在更多输入特性可用(如果它们未在特性中定义的话)也是如此。然而,当转移到新技能组时,所述新技能组可以具有使用这些特性(如果需要的话)的一个或多个叶子310。
[0054] 决策树302A包括技能组A 306,并且决策树302B包括技能组B 308。技能组306(诸如技能组A 306)和技能组308可以被设计用于特定的上下文和/或操作环境,诸如在线购物环境、软件编程环境、紧急呼叫环境、旅行环境、技术支持环境,客户支持环境等。例如,技能组A 306可以被配置用于在客户询问关于产品和服务的问题的在线购物环境中操作。
[0055] 在这个示例中,决策树302A包含技能组A 306以及叶子310A至310D,并且决策树B 302B包含技能组B 308以及叶子310E至310G。叶子310A至310G可以被配置用于接收输入数据(诸如来自系统100的用于处理对话的数据)并对这种输入数据进行操作以便例如向用户提供响应。如下文所述,虽然图示了连接路径,但是叶子动作和对话流方向是独立的并且可以使用多个因素来确定,所述因素包括但不限于叶子310的特性、与叶子310相关联的动作、以及可以预定义或自适应的响应项。因此,在一些实施方式中,可以以任何顺序来选择并采用叶子310和技能组306,使得对话流和响应不需要遵循线性决策树路径。
[0056] 例如,参考图4和图5,叶子310可以配置有许多不同的特性402。在如图5中所图示的实施方式中,叶子310可以包含可以由计算系统(诸如系统100)使用的特性402的列表,所述计算系统调用决策树过程300以使用例如输入对话数据、每个叶子310的特性、以及与所提供的技能组相关联的数据(诸如来自技能组306和技能组308的数据)来选择特定叶子310。
[0057] 特性可以包括自由定义的特性、预定义特性,并且包括内部特性和动态特性两者。自由定义的特性可以是可以例如由用户实时配置的那些特性。预定义特性可以具有设置值。例如,可以使用诸如在这个示例中为设置的“是”和“否”响应准备的““YESNO”:YES,”等标签来调用预定义特性。
[0058] 作为内部特性的特性402是具有由代理值保持的特性名称的那些特性,诸如美元“$”符号,其可以是例如由系统100根据需要针对对话的特定上下文和/或操作环境而设置的。例如,如图5所图示的,“$lastIntent”可以是表示最后聊天意图的名称的标签并且可以用于指定未来条件,“$gotoAskToHelpUser”可以用于查询来自用户的数据、设置新特性等。
[0059] 作为动态特性的特性402通常经由可以执行附加代码并返回条件的函数来启用。这些函数可以在决策树叶子选择过程期间接收一些或全部可用特性参数和输入数据。例如,像““criterion”:“Function()””这样的动态特性是可以执行附加代码并返回条件的函数。
[0060] 叶子310还可以包含被配置为允许通过转换到新叶子310或技能组来改变执行路径的动作。这种动作可以具有预定义的内部条件,但是也可以用于设置可以在叶子选择过程期间根据新叶子310或技能组(例如,技能组306)而使用的附加特性。例如,叶子310可以包含动作404,用于指定新技能组、转换动作、指定可以用于处理新技能组的静态或动态变量。
[0061] 如图5所图示的,动作404例如可以由诸如“$gotoIntentNow”(其可以允许叶子310指定新技能组)、“$gotoIntent”等标签来定义,其中,聊天会话应当在用户采取特定动作之后进行转换,例如当系统100基于响应回答问题时,可以转换到新的技能组并使用新决策树技能组继续新的选择过程。动作404还可以包括其他动作,诸如“newPropertyName”,其是调用变量的标签的示例,其中名称和值是预定义的,其可以被指定为在叶子选择过程期间在新技能组中使用。另外,动作404可以包括用于调用动态变量的标签。
[0062] 叶子310还可以包括响应项406,所述响应项被配置用于允许对终端用户的预定义聊天响应。这种预定义响应可以采用文本、其他数据、到新状态的转换、动态生成的随机化文本等形式。
[0063] 在示例性实施方式中,技能组(诸如技能组306和308)和叶子310可以被配置用于在通信(例如,聊天)会话期间提供高效、动态且线性的和/或非线性的决策树过程。例如,参考图3至图6,在一个示例中,叶子310A可以被配置为集合叶子310,所述集合叶子具有预定义特性402,诸如““YESNO”:YES”,而对话响应将设置通过叶子310C或310E的对话响应(没有其他动作404)以及“抱歉,您需要指定电话型号(Sorry you would need to specify the phone model)”的预定义响应406。在这个示例中,如果叶子310A接收到需要响应“是”或“否”的对话,则对话响应可以指向系统100在提供响应时涉及的任何一个叶子310C或310D。
[0064] 在一种场景中,如图3和图6所示,考虑购物者正在寻求购买移动电话并且叶子310A被设置为对关于移动电话的查询进行响应的情况,其中,如果所提供的信息不足以使系统100进行解析,则叶子310A被设置用于响应。然而,如果系统100例如分析并解析对话从而使得系统100确定在线商店是否具有特定移动电话,则系统100可以解析哪个叶子310(诸如叶子310C或310D)将用于发送数据以向用户提供答案和问题从而促进交易流程。
[0065] 例如,在这种特定的购物场景中,系统100可以接收来自用户的输入数据(诸如“请问您销售移动电话吗?(do you sell mobile phones?)”)并使用此数据来选择技能组A 302。此外,基于输入数据以及技能组A 302数据中包含的数据,系统100选择叶子310A作为用于对用户进行响应的适当叶子310。一旦选择了叶子310A,系统100就可以沿着从技能组A 
306到叶子310A的流路径“1”来提供诸如意图和实体类等数据。由于在这个示例场景中没有提及型号,因此将不存在实体类数据。由于在此示例流程中不存在系统100可以解析的实体类数据,因此叶子310A可以在假定在线商店销售移动电话的情况下发送叶子310A处的如“抱歉,您需要指定电话型号(Sorry you would need to specify a phone model)”的预定义响应,并且然后等待响应。
[0066] 然而,在一个示例中,如果购物者最初提供了将提供实体类数据的电话型号,则系统100可以根据店铺中型号存在310D还是型号不存在310C来选择叶子310C或310D,并且沿着流路径“2”或“3”将数据输入和实体类从叶子310A发送到叶子310C或310D。在这种情况下,如果在线商店没有移动电话存货,则310C可以处理请求,并且然后返回响应(诸如“抱歉,此型号不可获得,请再次尝试不同的型号名称!”(I am sorry this model is not available,try again with different model name!))并等待用户响应以继续。如果型号可获得,则310D可以穿到新的技能组302B,从而将至少一些可用数据和实体类转移到技能组B 308。
[0067] 在实施方式中,系统100使用一个技能组(诸如技能组A 302)不能解析一些数据输入,但是可以使用其他附加技能组或结束会话。例如,参考图6B,考虑叶子310B表示退出选项(未解析的叶子310)的情况。在这种情况下,当系统100将叶子310B解析为适当的叶子310时,系统100可以将数据发送到叶子310B,其可以通过提交对用户的响应“很抱歉,我无法找到解决您的查询的方法、请您再试一次……(I am sorry,I can’t find a way to resolve your query,could you please try again…)”来进行响应,这将进而允许系统100结束对话会话和/或等待来自用户的进一步输入。在310B处不能解析叶子310的情况下,在一些实施方式中,系统100于是可以结束会话、或者使用来自技能组A 306的输入数据、来自其他对话叶子310的数据和/或来自技能组B 308的数据来解析到另一决策树技能组302的对话路径。
[0068] 如果需要与来自叶310A或310C相比不同的响应,并且基于叶子310D的响应项406、动作404、特性402和输入数据,则系统100例如可以沿着从叶子310A到叶子310D的流路径“3”来发送输入数据以便处理请求。例如,假设买方仅提供了部分移动电话型号。在叶子310D处,如果叶子310D被设置为基于接收电话型号的部分实体类匹配的静态响应,则系统
100例如可以将叶子解析为310D,并且然后提供诸如“您能否提供更完整的型号?(Can you provide a more complete model number?)”等响应。
[0069] 然而,如果叶子310D被设置为动态叶子,则叶子310D可以调用函数以便基于对话向用户提供可能匹配的列表。这样,在这个示例中,叶子310A、310C和310D可以由系统100单独选择,以向用户提供寻求更多信息或提供直接响应的确定性响应,而不必使用更复杂的传统决策树来扩展查询。
[0070] 在一些实施方式中,如图3和图6B所图示的,如果系统100解析出叶子310D是适当的叶子310,但是可以使用诸如技能组308B等另一技能组来完成任务,则系统100例如可以沿着从叶子310D到技能组B 308的流路径“5”来发送来自技能组A 306和叶子310D的数据。在这种数据流路径场景中,系统100例如可以使用从一个决策树302(例如,302A)获得的信息来通知和/或影响另一决策树302(例如,302B)。
[0071] 例如,参考本文讨论的购物者的情况,如图3所示,技能组306可以被配置用于基于与用户的交互而解析出叶子310A、310C和310D将不会完全工作于此聊天机器人会话。在这种场景中,例如,系统100然后可以沿着从叶子310D到技能组B 308的流路径“5”发送经处理的数据,并且基于该数据和技能组A 306和叶子310D的特性,所述系统将数据从技能组B 308发送到叶子310E、310F或310G。如果系统100例如确定基于该数据以及与技能组A 306和技能组B 308相关联的数据将采用所述叶子310E,则可以沿着到叶子310E的流路径“6”来发送该数据以及来自技能组A 306和技能组B 308的数据。
[0072] 类似于310D,叶子310E可以是与叶子310A、310C或310D不同的静态或动态响应。然而,由于叶子310E与不同的技能组B 308相关联,因此叶子310E的响应可以通过来自技能组A 306、技能组B 308和决策树302A的一个或多个叶子310A至310D的数据进行通知和/或受所述数据影响。
[0073] 如图3以及图6A至图6D所图示的,如果在系统100分析来自决策树302A和302B的信息和输入数据之后,例如叶子310G现在是用于对数据进行响应的适当叶子310,则可以沿着从叶子310E到叶子310G的流路径“7”来发送数据。如图3和图6C所图示的,叶子310G可以被配置用于沿着流路径“8”来发送数据以采用技能组C 312,这可以在用户回答问题之后执行,叶子310F的动作404“$gotoIntent”将叶子310G配置为等待用户响应以在其切换到技能组C 312之前获得新值/实体类。
[0074] 然而,在诸如例如规定立即转移的“$gotoIntentNow”等动作的情况下,叶子310G可以被配置用于立即切换到新技能组C 312并将其一些或全部特性转移到技能组C 312。在切换到新技能组C 312之后,叶子310G可以被配置用于提供诸如“您想现在完成您的订单吗?(Would you like to finish your order now?)”等响应以提交给用户。
[0075] 如图3至图6所图示的,考虑到叶子310E基于特性402、动作404和响应406被配置用于对正在购买的物品的属性(诸如“颜色”)进行响应,叶子310E可以向用户提供诸如“请选择电话颜色(Please select phone color)”的响应。而且,如果系统100针对“电话容量”基于处理数据输入以及叶子310F的特性402、动作404和响应项406来解析叶子310F,则沿着流路径“9”,系统100例如可以向叶子310F提供数据,叶子310F可以向用户提供诸如“请选择电话容量(Please select phone capacity)”等响应。
[0076] 因此,与基于对对话的固定响应在其响应和流路径方面线性固定的传统决策树相比,本文所描述的决策树实施方式利用独立的、递归的且可适应的决策树过程来解析哪个或哪些叶子将适合于响应以及如何响应对话流。而且,所讨论的实施方式提供了对话处理,所述对话处理在决策树与不同的技能组之间自适应地改变,同时根据需要继承来自先前聊天机器人会话、叶子310和技能组306的数据,以进一步细化解析针对对对话的特定响应要使用哪个叶子310和(哪些)技能组306的过程。
[0077] 图7是用于与本文所描述的实施方式一起使用的示例性计算机系统700的框图。计算机系统700仅仅是说明性的,并且不旨在限制权利要求的范围。本领域普通技术人员将认识到其他变型、修改和替代方案。例如,计算机系统700可以以分布式客户端-服务器配置实施,该配置具有与一个或多个服务器系统通信的一个或多个客户端设备。
[0078] 在一种示例性实施方式中,计算机系统700包括显示设备(诸如监视器710)、计算机720、数据录入设备730(诸如键盘、触摸设备等)、用户输入设备740、网络通信接口750等。用户输入设备740通常实施为计算机鼠标、轨迹球、轨迹板、无线遥控器、平板计算机、触摸屏等。而且,用户输入设备740通常允许用户选择和操作例如出现在监视器710上的对象、图标、文本、字符等。
[0079] 网络接口750通常包括以太网卡、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字用户线(DSL)单元等。进一步地,网络接口750可以物理地集成在计算机720的主板上,可以是软件程序,诸如软DSL等。
[0080] 计算机系统700还可以包括能够通过通信网络752(诸如HTTP协议、TCP/IP协议、RTP/RTSP协议、无线应用协议(WAP)、IEEE 802.11协议等)进行通信的软件。另外和/或替代性地,还可以使用其他通信软件和传输协议,例如IPX、UDP等。通信网络752可以包括局域网、广域网、无线网络、内联网、因特网、专用网络、公用网络、交换网络、或诸如例如云网络等任何其他合适的通信网络。
[0081] 通信网络752可以包括许多互连的计算机系统和任何合适的通信链路,诸如硬连线链路、光链路、卫星或其他无线通信链路,诸如蓝牙、WIFI、波传播链路、或用于传送信息的任何其他合适的机制。例如,通信网络752可以经由诸如无线收发器754等基站与诸如移动电话、平板计算机等一个或多个移动无线设备756A至756N进行通信。
[0082] 计算机720通常包括熟悉的计算机部件,诸如处理器760和存储器存储设备(诸如存储器770,例如随机存取存储器(RAM),存储介质780)、以及使上述部件互连的系统总线790。在一个实施例中,计算机720是具有多个微处理器图形处理单元(GPU)等的PC兼容计算机。虽然示出了计算机,但是对于本领域普通技术人员来说将显而易见的是,许多其他硬件和软件配置适用于本发明。存储器770和存储介质780是用于存储数据、音频/视频文件、计算机程序等有形非暂态计算机可读介质的示例。其他类型的有形介质包括磁盘驱动器、固态驱动器、软盘、光学存储介质(诸如CD-ROM和条形码)、半导体存储器(诸如闪速驱动器)、闪速存储器、只读存储器(ROMS)、电池支持的易失性存储器、联网存储设备、云存储等。
[0083] 任何合适的编程语言都可以用于实施特定实施例的例程(routine),所述编程语言包括C、C++、Java、汇编语言等。可以采用诸如程序化或面向对象等不同的编程技术。所述例程可以在单个处理设备或多个处理器上执行。虽然这些步骤、操作或计算可能以特定顺序呈现,但是在不同的特定实施例中可以改变这种顺序。在一些特定实施例中,可以同时执行在本说明书中按顺序示出的多个步骤。
[0084] 特定实施例可以在计算机可读存储介质中实施,以供指令执行系统、装置、系统、或设备使用或与其结合使用。特定实施例可以以控制逻辑的形式以软件或硬件或这两者的组合实施。所述控制逻辑当由一个或多个处理器执行时可以操作以用于执行在特定实施例中描述的内容。例如,诸如硬件存储设备等非暂态介质可以用于存储可以包括可执行指令的控制逻辑。
[0085] 特定实施例可以通过使用编程的通用数字计算机、通过使用专用集成电路可编程逻辑器件、现场可编程阵列、光学系统、化学系统、生物系统、量子系统或纳米工程系统等来实施。可以使用其他部件和机制。通常,特定实施例的功能可以通过本领域已知的任何手段来实现。可以使用分布式联网系统、部件和/或电路。可以采用云计算或云服务。数据的通信或传输可以是有线的、无线的或通过任何其他手段。
[0086] 还应当理解,附图/图中描绘的元件中的一个或多个也可以以更分离或集成的方式实施,或者甚至在某些情况下被移除或被使得为不可操作,这根据特定应用是有用的。实施可以存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法也在精神和范围内。
[0087] “处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或部件。处理器可以包括具有通用中央处理单元、多处理单元、用于实现功能的专用电路的系统或其他系统。处理不必限于地理位置或具有时间限制。例如,处理器可以“实时”、“离线”、以“批处理模式”等方式执行其功能。可以通过不同(或相同)处理系统在不同时间和不同位置执行部分处理。处理系统的示例可以包括服务器、客户端、终端用户设备、路由器、交换机、联网存储装置等。计算机可以是与存储器通信的任何处理器。存储器可以是任何合适的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁盘或光盘、或适合于存储由处理器执行的指令的其他非暂态介质。
[0088] 如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“一个(a)”、“一种(an)”以及“所述(the)”包括复数指代物。同样,如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“在……中(in)”的含义包括“在……中(in)”和“在……上(on)”。
[0089] 虽然已经关于特定实施例进行了描述,但是这些特定实施例仅是说明性的而非限制性的。
[0090] 因此,虽然本文已经描述了特定实施例,但是在前述公开内容中意图进行一定范围的修改、各种改变和替换,并且应当理解,在一些实例中,可以在不背离如前所述的范围和精神的情况下采用特定实施例的一些特征而不相应地使用其他特征。因此,可以进行许多修改以使特定情况或材料适于基本范围和精神。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈