在特定子节点状态处实例化对话进程的制作方法

文档序号:15932112发布日期:2018-11-14 01:48阅读:172来源:国知局

本申请涉及在特定子节点状态处实例化对话进程(dialogprocess)的方法、系统和存储介质。

背景技术

对话进程是在由计算机装置执行时模拟与人类用户的会话的计算机程序、脚本、或者任何其它指令集。通过这些模拟的会话,对话进程向用户提供广泛的自动化协助。对话进程通常由具有多个节点状态的状态机或者图形进程来实现。每个状态征求来自用户的一个或者多个输入,并且根据输入,遍历至另一个节点状态或者采取特定动作。

对话进程、也可以称为“聊天机器人(chatbot)”被广泛地用作消息传送平台、娱乐网站的以及用于客户服务的一部分。通常,对话进程开发者可能希望将用户带入对话进程的特定节点状态。例如,假设已经编写了帮助用户计划其旅行的聊天机器人的开发者已经向聊天机器人添加了新功能,该新功能帮助用户将旅馆客房预定进行比较。开发者想要向用户暴露该功能。然而,为了向用户暴露该功能,用户必须从初始状态遍历一个或者多个聊天机器人状态以被暴露新功能。因此,除非指示用户手动地录入必要的响应以达到将暴露新功能的特定节点状态(并且然后遵循指示并且在实际上手动地录入必要的响应)或者除非开发者创建了强调新功能的新聊天机器人(这增加了客户的代码库并且可能会存在损失用户的风险),否则将不会向大多数用户暴露新功能。



技术实现要素:

本说明书描述了涉及向用户提供到诸如聊天机器人的对话进程的特定子例程中的深度链接(其中,“深度链接”是指向特定子例程的链接)的技术。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:在服务器计算机处从用户装置接收指定对话进程的特定子节点状态的请求,其中,对话进程定义多个节点状态,节点状态包括根节点状态和子节点状态,并且其中,每个子节点状态从另一个子节点状态或者根节点状态中的至少一个衍生;并且每个节点状态指定输入请求和输入响应处理规则,该输入响应处理规则用于对响应于该输入请求而接收到的输入响应进行处理并且基于该输入响应来选择从该节点状态衍生的子节点状态中的一个子节点状态。服务器计算机响应于指定特定子节点状态的请求在根节点状态处实例化对话进程。提供对对话进程的多个输入响应,其中,每个输入响应是对输入请求的响应,并且其中,为根节点状态的输入请求提供所提供的输入响应中的第一个输入响应,并且为作为特定子节点状态的父节点的节点状态的输入请求提供所提供的输入响应中的最后一个输入响应,并且使对话进程选择特定子节点状态。服务器计算机然后向用户装置提供使用户装置在特定子节点状态处呈现对话进程的数据。该方面的其它实施例包括对应的系统、设备、和编码在计算机存储装置上配置为执行方法的动作的计算机程序。例如,本说明书中描述的主题的另一创新方面可以体现在计算机存储介质(该计算机存储介质可以是非暂时性计算机存储介质,虽然该方面不限于此)中,该计算机存储介质存储有指令,该指令可由具有一个或者多个服务器计算机的数据处理设备执行并且在这样执行时使数据处理设备执行操作,该操作包括根据本说明书中描述的主题的任何方面或者实施方式的方法。

在本说明书中描述的主题的另一创新方面可以体现在包括服务器计算机的系统中,该服务器计算机从用户装置接收指定对话进程的特定子节点状态的请求,其中,对话进程定义多个节点状态,节点状态包括根节点状态和子节点状态,并且其中,每个子节点状态从另一个子节点状态或者根节点状态中的至少一个衍生;并且每个节点状态指定输入请求和输入响应处理规则,该输入响应处理规则用于对响应于该输入请求而接收到的输入响应进行处理并且基于该输入响应来选择从该节点状态衍生的子节点状态中的一个子节点状态。该系统包括用于响应于指定特定子节点状态的请求而在子节点状态处实例化对话进程的装置和用于由服务器计算机向对话进程提供(或者用于使服务器计算机指示另一装置诸如用户装置向对话进程提供)对对话进程的多个输入响应的装置,提供每个输入响应作为对输入请求的响应,其中,为根节点状态的输入请求提供所提供的输入响应中的第一个输入响应,并且为作为特定子节点状态的父节点的节点状态的输入请求提供所提供的输入响应中的最后一个输入响应,并且使对话进程选择特定子节点状态。服务器计算机向用户装置提供使用户装置在特定子节点状态处呈现对话进程的数据。本说明书描述的主题的另一创新方面可以体现在系统中,所述系统包括:数据处理设备;以及计算机可读介质(该计算机可读介质可以是非暂时性计算机可读介质,虽然该方面不限于此),该计算机可读介质存储有指令,该指令可由数据处理设备执行并且在这样执行时使数据处理设备执行操作,该操作包括根据本说明书中描述的主题的任何方面或者实施方式的方法。

可选地,这些和其它实施例可以分别包括以下特征中的一个或者多个:在一些实施方式中,指定对话进程的特定子节点状态的请求包括对话进程索引的索引键值,其中,对话进程索引针对每个索引条目指定由相应的索引键值索引的特定子节点状态条目以及使对话进程从根节点状态遍历至特定子节点状态的输入响应集合。向对话进程提供的多个输入响应可以包括:访问由所述请求的索引键值索引的特定子节点状态条目,从对话进程索引检索输入响应集合,并且然后向对话进程提供输入响应集合。

在一些实施方式中,指定对话进程的特定子节点状态的请求包括使对话进程从根节点状态遍历至特定子节点状态的多个输入响应。请求可以由包括输入响应集合作为查询参数的统一资源定位符指定。

在一些实施方式中,请求由引用资源的特定统一资源标识符指定,该资源包括指令,该指令使对话进程从根节点状态遍历至特定子节点状态,其中,指令可以指定多个输入响应。

在一些实施方式中,多个输入响应中的每个输入响应包括用于使对话进程遍历至另一节点状态的输入响应。

在一些实施方式中,指定对话进程的特定子节点状态的请求部分地基于用户搜索历史。指定对话进程的特定子节点状态的请求可以部分地基于用户浏览历史。

可以实施在本说明书中描述的主题的特定实施例以实现以下优点中的一个或者多个。向用户提供到对话进程的特定子节点状态的直接链接(例如,统一资源标识符)。对链接的选择使对话进程在根节点状态处实例化。进一步地,链接使对话进程按照包括从根节点状态遍历至对话进程的特定子节点状态的所有必要信息的方式被调用。通过向对话进程提供信息以使对话进程遍历至特定子节点状态,该系统和方法确保向用户暴露该特定子节点状态的功能,而不需要用户输入任何响应以到达该特定子节点状态。消除用户输入任何响应的需要并且为使对话进程提供对用户的输入请求,减少了用户链接至特定子节点状态所需的网络业务和/或减少了用户链接至特定子节点状态所花费的时间,从而提供更加资源高效的进程。此外,避免了对对话进程的自定义代码的需要,使得对话进程不需要对对话进程的特定子节点状态的每个期望暴露重新编程。这简化了开发者代码库,并且通过需要每个对话进程的特殊编码的系统提供附加的灵活性。

在附图和下面的说明中阐述了在本说明书中描述的主题的一个或者多个实施例的细节。本主题的其它特征、方面、和优点将通过描述、附图、以及权利要求书而变得显而易见。

附图说明

图1a是用户装置的可以在特定子节点状态处调用对话进程的示例环境的框图。

图1b是在对话进程中从根节点状态衍生的子节点状态的子集的示意图。

图2是用于在特定子节点状态处实例化对话进程的示例过程的流程图。

图3a-c是用于在特定子节点状态处实例化对话进程的各种示例系统进程流的框图。

在各种附图中的类似的附图标记和指示表示类似的元件。

具体实施方式

概述

下文描述了用于向用户提供到例如聊天机器人或者人工会话实体的对话进程的特定子节点状态的深度链接的系统和方法。对链接的选择使对话进程在根节点状态处实例化。链接使对话进程按照包括将对话进程遍历至对话进程的特定子节点状态的所有必要信息的方式被调用。可以用若干不同的方法来完成提供将对话进程遍历至特定子节点状态的信息。一种方法是用信息对统一资源标识符进行编码,例如以查询参数的形式,并且当调用对话进程时,对话进程消费该信息。另一种方法通过下述方式进行:用对包括该信息的索引进行索引的令牌来对统一资源标识符进行编码,并且在调用时该信息从该索引中被提取并被提供给对话进程。再一种方法通过下述方式进行:链接至诸如脚本的进程,该进程被编码成在调用对话进程时将该信息提供给该对话进程。计算机服务器响应于用户装置的用户所选择的链接而从该用户装置接收对在特定子节点状态处的对话进程的请求。

对话进程具有包括根节点状态和子节点状态的多个节点状态。对话进程的每个子节点状态在对话进程中从另一子节点状态或者根节点状态中的至少一个衍生。每个节点状态包括输入请求和输入响应处理规则,其中,该输入响应处理规则确定节点状态将如何对接收到的输入响应进行处理,并且响应于输入响应而选择从根节点衍生的子节点状态。

根据本说明书的各个方面,对于每个对在特定子节点状态处的对话进程的请求,在对话进程的根节点状态处将该对话进程实例化。响应于对链接的选择而向对话进程提供多个输入响应。在一些实施方式中,可以由服务器计算机来提供响应,而在其它实施方式中,可以通过用户装置提供响应。

响应于输入请求而向对话进程提供每个输入响应。例如,针对(响应于)对话进程的根节点状态的输入请求提供第一个输入响应,并且针对(响应于)作为被链接到的特定子节点状态的父节点的节点状态的输入请求提供最后一个输入响应。在针对根节点状态提供的响应与针对作为特定子节点状态的父节点的节点状态提供的响应之间,根据特定子节点状态的深度,可以提供零个或者多个中间响应。在接收到最后一个输入响应时,对话进程将选择该特定子节点状态。

在一些实施方式中,在达到特定子节点状态时,然后在用户装置处呈现对话进程。在其它实施方式中,当向对话进程提供每个输入响应时,可以在用户装置处呈现对话进程,使得用户可以看到造成对话进程遍历至特定子节点状态的问题和响应。

下文更详细地描述了这些特征和附加特征。

示例操作环境

图1a是可以在用户装置的特定子节点状态处调用对话进程的示例环境100的框图。计算机网络102诸如局域网(lan)、互联网、或者它们的组合连接包括一个或者多个对话进程106的服务器计算机104和用户装置108。服务器计算机104在图1a中被表示成单个实体,但是可以包括直接通信或者通过网络102通信的多个不同的服务器。

用户装置108是能够通过网络102请求和接收对话进程106的电子装置。示例用户装置108包括个人计算机、移动通信装置、和可以通过网络102来发送和接收数据的其它装置。用户装置108通常包括诸如web浏览器的用户应用以促进通过网络102发送和接收数据包括对话进程106。web浏览器可以使用户能够显示文本、图像、视频、音乐、和通常位于万维网或者局域网中的网站处的web页面上的其它信息并且与这些信息交互。

对话进程实例化

用户装置108可以显示包括与对话进程的特定子节点状态的链接114(或者一些其它请求指令114)的用户环境107。例如,用户环境107可以是web页面、本地应用中的用户界面、文本消息环境、或者可以提供指令的任何其它环境,该指令在被选择时使用户装置108将请求发送至服务器。例如,用户装置108上的用户可以通过选择请求指令114来向服务器104请求在特定子节点状态处呈现对话进程106。每个对话进程106具有多个节点状态{n1,n2,…nn},该多个节点状态包括根节点状态和子节点状态。对话进程106的每个子节点状态从另一子节点状态或者根节点状态衍生。每个节点状态包括输入请求(例如,问题)和用于对输入响应(例如,应答)进行处理的输入响应处理规则。对于响应于节点状态的输入请求而提供的特定输入响应,节点状态将选择从该节点状态衍生的子节点状态中的一个子节点状态。

在图1b中图示了对话进程中的节点状态的关系,图1b是在对话进程中从根节点n0衍生的节点状态的子集的示意图。根节点n0包括输入请求{问题0}和用于对输入响应进行处理的规则。如图1b所示,规则解析到两个决定——遍历至子节点n11的a01和遍历至子节点n12的a02。例如,假设问题是“doyouwanttobookanewhotelreservation,orreviewanexistingreservation?(您想预定新酒店预订还是查看现有预订?)”a01分支可以是解析到“预定”的任何响应或者输入,并且a02分支可以是解析到“查看”的任何响应和输入。为了简洁并且避免绘图拥塞,从附图中省略了幻影分支指示的其它节点状态。

为了遍历至子节点状态n33,对话进程必须接收针对根节点n0处的问题0解析到a02、针对子节点n12处的问题12解析到a121、以及针对子节点n23处的问题23解析到a231的输入。下文描述的系统和方法允许对话进程在根节点状态处实例化并且自动从根节点状态遍历至特定子节点状态。

如上所述,提供了使对话进程在根节点状态处实例化并且自动遍历至特定子节点状态的三种示例方法。第一种方法是用信息对统一资源标识符进行编码,并且参照图3a更详细地描述了该方法。第二种方法是通过用将包括信息的索引进行索引的令牌对统一资源标识符进行编码,并且参照图3b描述了该方法。第三种方法是通过链接至编码成在调用对话进程时向对话进程提供信息的诸如脚本的进程,并且参照图3c描述了该方法。这些示例并不详尽,并且还可以使用使对话进程在根节点处实例化并且自动从根节点状态遍历至特定子节点状态的其它适当的方法。

图2是用于在特定子节点状态处实例化对话进程106a的示例过程200的流程图。进程200可以由计算机系统诸如服务器计算机104执行。

服务器104接收对向用户装置108提供在特定子节点状态处的对话进程106a的请求114(202)。可以通过选择统一资源标识符诸如统一资源定位符(url)来生成请求。在链接中编码的内容和产生的请求可以取决于系统用来在根节点状态处实例化对话进程并且自动从根节点状态遍历至特定子节点状态的实例化进程。例如,请求114可以包括输入响应作为查询参数。可替代地,请求114可以包括对对话进程索引的索引键值的引用,其中,索引键值引用特定子节点状态的索引条目和输入响应集合。在又一替选方案中,请求可以指资源,其中,该资源112(例如,网页)包括与输入响应集合有关的指令和信息。参照下面的图3a至3c分别描述了这些不同的请求类型。

在接收到请求114之后,服务器104在对话进程106a的根节点状态处实例化对话进程(204)。虽然与用户装置108分开地在服务器104上的环境中将对话进程106a实例化,但在一些实施方式中,例如,替代地,可以在用户装置108上的环境中将对话进程106a实例化。

服务器104向对话进程提供多个输入响应,其中,每个输入响应是响应于输入请求而提供的(206)。可以根据请求类型来完成响应的提供,并且参照下面的图3a至3c描述了其示例。通过向对话进程106a提供特定输入响应集合,对话进程106a从根节点状态遍历至特定子节点状态。例如,机票预订对话进程可以为在根节点状态处的输入请求“whereareyouflyingtotoday?(今天您要飞往何处?)”提供对应的输入响应“honolulu,hawaii.(夏威夷,檀香山)”。在达到特定子节点状态之前,对话进程106a然后可以选择具有可能的输入响应“yes(是)”等的输入请求为“wouldyouliketocheck-in?(您想要办理登机手续吗?)”的后代子节点状态。

更具体地,参照图1b,可以提供解析到a02、a121、和a231的响应以遍历至子节点状态n33。例如,为了将图1b的对话进程遍历至子节点状态n33,一旦服务器104已经将在根节点状态n0下的对话进程实例化,就例如由服务器104录入能有效地产生决定a02的响应,使得对话进程遍历至子节点状态n12。对话进程可以向服务器104提示待录入的响应,或者一旦已经将根节点状态实例化,服务器就可以自动录入响应。接着,将录入在子节点状态n12下有效地产生决定a121的响应,使得对话进程遍历至子节点状态n23,随后是在子节点状态n23下有效地产生决定a231的响应,以使对话进程遍历至特定子节点状态n33。每个响应只需要是解析到状态所需的数据。例如,如果问题需要数字输入1、2、或者3以解析至相应的子节点状态1、2、或者3,则解析至“1”的响应可以是数字“1”或者单词“one(一)”,依此类推。如果规则集合包括语义规则,则响应只需要是解析到状态所需的数据。例如,如果征求输入的问题是“tellusifyouwanttobookaflight,manageareservation,orcancelaflight(请告知我们您是否要预定航班、管理预订、或者取消航班)”,则解析到“bookaflight(预定航班)”的录入可以是以下单词或者短语,比如“book(预定)”、“makeaflight(预定航班)”、或者“buyticket(购票)”。这些单词或者短语中的任何一个可以用作对节点状态的输入响应。因此,如果遍历需要将节点状态解析到“bookaflight预定航班”,则输入响应可以仅仅是“book”。

对遍历至节点状态的输入响应可以由对话进程作者提供,或者可以通过机器学习技术发现。在前者的状态处,对话进程作者可以为例如图1a的对话进程的特定节点状态提供字符串分隔开的响应,要遍历至节点n33字符串可以是{a01};{a121};{a231},其中,节点的任何{·}是字母数字值,该字母数字值使节点的对话进程处理规则选择在遍历至特定子节点状态时所需的状态。在后者的情况下,虚拟机可以被编程为解释对话进程的每个节点状态的输入请求,向对话进程提供输入响应,并且学习描述了对话进程的层级的对话进程“对话图”(与网站图相似)。

一旦对话进程106a已经遍历至特定子节点状态,服务器104就向用户装置提供使用户装置108在特定子节点状态处呈现对话进程106a的数据(208)。可以在应用环境中以新窗口的形式将对话进程106a呈现给用户装置108,并且可以将对话进程106a与和对话进程106a有关的附加信息一起呈现。

链接中的输入响应编码

如参照图1a-b和图2所述,可以实施各种方法以向用户装置提供在特定子节点状态处的对话进程。图3a是用于将在特定子节点状态302下的对话进程实例化的示例过程300的框图。在图3a中,请求304是从包括输入响应集合作为查询参数的url中生成的。当调用对话进程时,对话进程消费了在查询参数中包括的信息。

例如,在图3a中,在url中包括输入响应(例如,{a1,a2,…an})作为查询参数。可以响应于请求而调用到对话进程的位置的url链接,例如,www.example/com/chatbot。服务器306可以接收从对url的选择中生成的请求304,并且作为响应,将对话进程308实例化。

向对话进程308提供为请求304提供的输入响应集合作为查询参数。响应于来自对话进程308的输入请求,依次提供了输入响应集合中的每个输入响应。对话进程308可以被编程为确定是否在调用时提供输入请求作为命令参数,并且对输入请求相应地进行处理。如果没有提供输入请求,则对话进程等待来自i/o装置的输入。例如,响应于由url304选择生成的请求,响应于输入请求“q1”而提供第一输入响应“a1”,响应于输入请求“q2”而提供第二响应,依此类推,直到响应于输入请求“qn”而提供最后一个输入响应“an”为止。当对话进程接收输入响应“an”时,对话进程选择作为特定子节点状态“m”的降序节点状态。

然后向用户装置108提供使在特定子节点状态“m”下的对话进程302能够显示在用户装置处的数据。在一些实施方式中,提供给对话进程的对从对话进程302的根节点状态遍历至特定子节点状态的输入请求和/或输入响应集合310也被提供给用户装置108的用户。这能够向用户显示从根节点状态到子节点状态的完整对话上下文。例如,用户装置108上的对话进程302内的或者与对话进程302一起包括在内的文本和/或图形显示310可以呈现与从根节点状态遍历至特定子节点状态(例如,“qm”)的节点状态对应的输入请求(例如,从对话进程到用户的问题)集合和相应输入响应(例如,服务器向对话进程提供的应答)。在其它实施方式中,仅向用户装置提供子节点状态的输入请求。

在一些实施方式中,提供输入请求和/或输入响应集合310可以包括:在用户装置108上显示输入请求和/或输入响应集合310的概述。概述可以包括:将向用户装置108的用户呈现相关信息连同在特定子节点状态处的对话进程302一起提供或者提供作为在特定子节点状态处的对话进程302的一部分。例如,对于输入请求“wherewouldyouliketoflyto(您想要飞往何处?)”、“doyouneedtobookahotelatyourdestination(您是否需要在您的目的地预定酒店?)”、以及“wouldyouliketobookarentalcaratyourdestination(您想要在您的目的地预定出租车?)”以及提供的对应的输入响应集合“hawaii(夏威夷)”、“yes(是)”、以及“yes”,该信息的概述是:“youwouldliketopurchaseplaneticketstogotohawaiiandbookahotelroomandarentalcarwhileyouarevisiting?(您想购买飞往夏威夷的机票并且在您前往时预定酒店客房和出租车?)”可以使用显示与输入请求和/或输入响应集合相关的信息的其它方法(例如,文本地或者图形化地)。

来自索引的响应集合的输入响应

如上文参照图1a-b所述,请求114可以包括url,该url包含对对话进程索引110的索引键值的引用,其中,索引键值引用特定子节点状态的索引条目和输入响应集合。通过使用键值,服务器从索引中取得输入响应,并且在调用时向对话进程提供响应。图3b是用于通过请求324在特定子节点状态处实例化对话进程322的示例过程320的框图,其中,请求324包括对对话进程索引326的索引键值的引用。在一些实施方式中,服务器104包括对话进程索引326。对话进程索引326可以包含多个索引条目(例如,ns1、ns2等),每个索引条目表示由相应的索引键值(例如,ik1、ik2等)索引的特定子节点状态,和使对话进程322从根节点状态遍历至特定子节点状态的输入响应集合(例如,{a1,a2,…an1}、{a1,a2,...an2}等)。例如,由索引键ik1表示的并且与特定子节点状态ns1对应的索引条目包含输入响应集合{a1,a2,…an1}。

在一些实施方式中,请求324可以包括指定对话进程的特定子节点状态的引用,包括与对话进程索引326对应的存储在服务器328上的索引键值。例如,对话进程的特定子节点状态“m”,例如节点状态m(nsm))的索引条目可以包括索引键值“ikm”和输入响应集合330{a1,a2,…ann},这会使对话进程332从根节点状态遍历至特定子节点状态“m”。更具体地,对话进程中的每个节点可以与索引条目对应,并且记录的值可以是对从根节点到由索引条目索引的特定子节点的响应。例如,对于图1a的层级,节点n12的索引条目可以包括值{a01}。同样,对于节点n23的索引条目,值可以是{a01}、{a121}等。

对话进程索引326可以由对话进程作者提供,或者可以通过自动化进程生成。例如,如上所述,虚拟机可以被编程为生成“对话图”。然后可以使用对话图来生成索引。

服务器328接收请求324,并且通过使用索引键值从对话进程索引326访问由索引键值表示的特定子节点状态索引条目。从索引条目nsm中,服务器可以检索输入响应集合330。例如,对于索引键值“ikm”,可以由服务器328检索输入响应集合330{a1,a2,…ann}。

服务器328然后可以在根节点状态处实例化对话进程332,并且按照如参照图3a讨论的相似方式向对话进程332提供使对话进程332从根节点状态遍历至特定子节点状态“m”的输入响应集合330。然后向用户装置108提供使在特定子节点状态“m”322下的对话进程能够显示在用户装置处的数据。

来自资源指令的输入响应

在一些实施方式中,如参照图1a-b讨论的,请求114可以包括url,该url包含对资源112的引用,其中,资源(例如,网页)包括信息和在调用对话进程后被执行时将信息提供给对话进程的指令例如脚本。图3c是用于借助于引用包括指令348的资源346的请求344在特定子节点状态处实例化对话进程342的示例过程340的框图。在资源中包括的信息348可以包括多个输入响应,可以响应于对话进程输入请求而提供该多个输入响应以遍历至另一节点状态直到达到特定子节点状态为止。一旦达到特定子节点状态,如脚本所指令的,服务器提供使用户装置在特定子节点状态处呈现对话进程342的数据。

在一些实施方式中,信息348是针对运行时环境编写的自动执行任务的脚本。可以使用脚本语言(例如,perl或者python)来编写脚本。例如,信息348可以包括可执行任务,该可执行任务包括:在根节点状态处生成新对话进程,并且响应于对话进程的输入请求(例如,{q1,q2,…qn}),向对话进程提供输入响应集合(例如,{a1,a2,…ann})。

在一些实施方式中,不同的url用于对话进程的每个节点状态,其中,用指令定制每个请求344的信息348以使对话进程遍历至对话进程的特定子节点状态。例如,对特定子节点状态“m”的请求344可以从对包含信息348的资源的url引用中生成,其中,信息348是使对话进程从根节点状态遍历至特定子节点状态“m”的脚本。对特定子节点状态“q”的不同请求344可以从对包含使对话进程从根节点状态遍历至特定子节点状态“q”的不同信息的不同资源的不同的url引用中生成。

节点状态选择

当对话进程所有者希望利用对话进程向用户暴露特定特征时,对话进程所有者可以创建具有链接的资源,该链接在被选择时将对话进程实例化到根节点状态,并且使对话进程自动从根节点状态遍历至特定子节点状态。

在其它实施方式中,对对话进程的特定子节点状态的请求部分地基于用户装置108的用户的用户搜索历史和/或浏览历史。例如,服务器可以使用用户装置的当前会话数据来基于例如关键字和主题来确定当前用户兴趣。例如,旅行社网站可以确定用户有兴趣赴夏威夷旅行,并且提供用于将旅行社的聊天机器人实例化的内容项。然而,并非要求用户输入多个响应以进入针对夏威夷的聊天机器人中的节点状态,例如,“wehavetravelspecialsforhawaii.wouldyouliketolearnaboutthem?(我们有夏威夷旅行特价机票。您想要了解具体信息吗?)”,而是将在根节点状态处实例化聊天机器人,并且能够通过使用上述进程中的一个(或者多个)进程自动遍历至该特定子节点状态。举例来说,假定图1a描绘了聊天机器人的索引中的信息,并且期望的子节点状态是n33。记录可以是以下形式:

考虑到将用户的兴趣确定为赴夏威夷进行国内旅行,用户可以具有指示去夏威夷进行国内旅行是用户的当前兴趣的兴趣矢量。因此,节点n33可以被选择为具有比聊天机器人的所有其它节点更高的相关性分数。可以通过任何适当的评分算法,诸如通过问题和响应路径字段中的词项和的当前用户兴趣词项矢量的余弦相似度,来确定相关性分数。因此,如果用户选择了链接,为聊天机器人生成的并且用于用户装置的链接将使聊天机器人在实例化时能够将对以下问题的以下响应作为输入进行消费:

然后在用户装置处呈现在特定子节点状态处的对话进程,而用户不必输入“book”、“domestic”、以及“hawaii”。

附加实施方式细节

在此处讨论的系统采集有关用户的个人信息或者可以利用个人信息的情况下,可以为用户提供如下机会:控制应用或者特征是否采集用户信息(例如,有关用户的社交网络、社交动作或者活动、职业、用户的偏好、或者用户的当前位置的信息)或者控制是否和/或如何接收可能与用户更有关的内容。另外,在存储或者使用特定数据之前,可以按照一种或者多种方式来处理该特定数据,从而使得可以去除个人可识别信息。例如,可以处理用户的身份,从而使得无法确定用户的个人可识别信息,或者在可以获得位置信息的情况下,可以将用户的地理位置一般化(诸如,到城市、邮政编码、或者州县等级),从而使得无法确定用户的特定位置。由此,用户可以对内容服务器采集和/或使用有关用户的信息的方式进行控制。

可以利用数字电子电路系统,或者利用计算机软件、固件、或者硬件、包括在本说明书所公开的结构及其结构等效物、或者它们中的一个或者多个的组合来实施本说明书中描述的主题的实施例和操作。可以将本说明书中描述的主题的实施例实施为一个或者多个计算机程序,即,编码在计算机存储介质上、由数据处理设备执行或者控制该数据处理设备的操作的计算机程序指令的一个或者多个模块。

计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或者串行存取存储器阵列或者装置、或者它们中的一个或者多个的组合,或者包括在其中。此外,尽管计算机存储介质不是传播信号,计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独的物理部件或者介质(例如,多个cd、磁盘、或者其它存储装置),或者包括在其中。

可以将本说明书中描述的操作实施为由数据处理设备对存储在一个或者多个计算机可读存储装置上的或者从其它源接收到的数据执行的操作。

术语“数据处理设备”囊括了用于处理数据的所有种类的设备、装置、和机器,包括例如可编程处理器、计算机、片上系统、或者前述中的多种或者组合。设备可以包括专用逻辑电路系统,例如,fpga(现场可编程门阵列)或者asic(专用集成电路)。除了硬件之外,设备还可以包括为探讨中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机、或者它们中的一个或者多个的组合的代码。设备和执行环境可以实现各种不同的计算模型基础设施,诸如,网络服务、分布式计算和网格计算基础设施。

可以用任何形式的编程语言包括编译语言或者解释语言、陈述性语言或者程序语言来编写计算机程序(也称为程序、软件、软件应用、脚本、或者代码),并且可以按照任何形式包括作为独立式程序或者模块、部件、子例程、对象、或者适合用于计算环境的其它单元来部署计算机程序。计算机程序可以但并非必须与文件系统中的文件对应。可以将程序存储在保存其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中,或者存储在专用于所探讨中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或者多个模块、子程序、或者部分代码的文件)中。可以将计算机程序部署为在一个计算机上执行或者在位于一个站点处或者分布在多个站点中并且通过通信网络互相连接的多个计算机上执行。

可以通过一个或者多个可编程处理器来进行本说明书中描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来进行动作。也可以通过专用逻辑电路系统例如fpga(现场编程门阵列)或者asic(专用集成电路)来进行过程和逻辑流程,并且也可以将设备实施为专用逻辑电路系统。

适合执行计算机程序的处理器包括例如通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于根据指令来进行动作的处理器、和用于存储指令和数据的一个或者多个存储器装置。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储装置例如磁盘、磁光盘、或者光盘,或者计算机可以操作地耦合以接收来自该海量存储装置的数据或者将数据传输至该海量存储装置或者进行两者。然而,计算机无需具有这种装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏机、全球定位系统(gps)接收器、或者便携式存储装置(例如,通用串行总线(usb)闪存驱动),仅举几例。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如半导体存储器装置,例如eprom、eeprom、和闪速存储器装置;磁盘,例如内部硬盘或者可移动盘;磁光盘;以及cd-rom盘和dvd-rom盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。

为了提供与用户的交互,可以在计算机上实施本说明书中描述的主题的实施例,该计算机具有:用于向用户显示信息的显示装置,例如,crt(阴极射线管)或者lcd(液晶显示器)监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用任何形式包括声输入、语音输入或者触觉输入来接收来自用户的输入。另外,计算机可以通过将文档发送至用户所使用的装置并且接收来自该装置的文档来与用户进行交互,例如通过响应于从web浏览器接收的请求来将web页面发送至在用户的用户装置上的web浏览器。

可以将本说明书中描述的主题的实施例实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者web浏览器的用户计算机,用户可以通过该图形用户界面或者该web浏览器来与本发明中所描述的主题的实施方式交互)、或者包括一个或者多个这种后台部件、中间件部件或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信例如通信网络来将系统的部件相互连接。通信网络的示例包括:局域网(“lan”)和广域网(“wan”)、网际网(例如,互联网)、以及点对点网络(例如,adhoc点对点网络)。

计算系统可以包括用户和服务器。用户和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有用户-服务器关系的计算机程序来产生用户和服务器的关系。在一些实施例中,服务器将数据(例如,html页面)传输至用户装置(例如,为了向与用户装置交互的用户显示数据并且接收来自该用户的用户输入)。可以从在服务器处的用户装置接收在用户装置处生成的数据(例如,用户交互的结果)。

虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何特征或者可能被要求的内容的范围的限制,而是作为针对特定实施例的特征的描述。在本说明书中在单独实施例的背景下描述的某些特征还可以组合地实施在单个实施例中。相反,在单个实施例的背景中描述的各种特征也可以单独地或者按照任何合适的子组合实施在多个实施例中。此外,虽然上文可能将特征描述为以某些组合来起作用并且最初甚至同样地对该特征进行了要求,但是在一些情况下可以从组合中删除来自所要求的组合的一个或者多个特征,并且所要求的组合可以指向子组合或者子组合的变化。

同样,虽然在附图中按照特定顺序示出了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继的顺序来进行这种操作,或者需要进行所有图示的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,不应该将在上述实施例中的各种系统部件的分离理解为在所有实施方式中需要这种分离,并且应该理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。

由此,已经描述了本主题的具体实施例。其它实施例在以下权利要求书的范围内。在某些情况下,在权利要求书中叙述的动作可以按照不同的顺序来进行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

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