1.本技术总体上涉及对话系统。更具体地,本技术涉及在对话系统中使用的语言理解模型的改进。
背景技术:2.使用自然语言短语与用户通信的对话系统利用语言理解模型来辨别用户的意图,使得可以给出适当响应,或者可以采取适当动作。很多时候,用户会向对话系统提供简短话语,这些话语被传递给语言理解模型以进行解释。简短话语通常是高度模棱两可的,并且很难发现话语的意图。
3.本实施例正是在这种上下文中出现的。
附图说明
4.图1示出了根据本公开的一些方面的代表性对话系统的示例架构。
5.图2示出了描绘根据本公开的一些方面的对话系统和语言模型交互的示例图。
6.图3示出了根据本公开的一些方面的用于使用先前对话上下文的示例流程图。
7.图4示出了根据本公开的一些方面的导出训练数据的示例。
8.图5示出了根据本公开的一些方面的用于训练机器学习模型的代表性架构。
9.图6示出了根据本公开的一些方面的用于训练机器学习模型的代表性架构。
10.图7示出了根据本公开的一些方面的用于导出训练数据的代表性流程图。
11.图8示出了根据本公开的一些方面的用于选择和利用已训练机器学习模型的代表性流程图。
12.图9示出了用于实现本文中公开的系统和其他方面或者用于执行本文中公开的方法的代表性架构。
具体实施方式
13.以下描述包括例示说明性实施例的说明性系统、方法、用户界面、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述了很多具体细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说很清楚的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,众所周知的指令实例、协议、结构和技术没有详细示出。
14.概述
15.提供以下概述以便以简化的形式介绍在以下描述中进一步描述的概念的选择。该概述不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。它的唯一目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的前奏。
16.与诸如数字助理、聊天机器人、自动化系统和其他这样的系统等对话系统的自然
语言交互现在很常见。从用户或其他系统接收的自然语言输入在本公开中被称为话语。话语可以具有多种格式,例如口头的、文本的等。在本公开中,文本话语将用于说明目的,但本公开不限于此,并且本公开将涵盖任何形式的话语。
17.对话系统接收话语并且向用户返回答复和/或代表用户发起期望动作。例如,用户可以说出“开灯”并且期望数字助理、自动化系统或其他这样的系统开灯。作为另一示例,用户可以输入“告诉我昨晚的棒球比分”并且期望显示昨晚比赛的比分。
18.这些对话系统使用语言理解模型来检测用户想要什么。语言理解模型接收话语并且返回意图和/或实体。语言理解模型以无状态方式操作,评估每个话语并且仅基于接收到的话语来返回每个意图和/或实体。如本文中使用的,“意图”是用户想要做什么。“实体”是与意图相关的信息。例如,如果话语是“订购披萨”,则其意图是订购商品或服务。实体“披萨”是一个实体,并且是用户想要订购的东西。再举一个示例,如果话语是“播放最新的king arthur预告片”,则意图是查看媒体。实体是“预告片”,它是用户希望查看的媒体类型,而“king arthur”是用户希望查看的特定预告片。虽然通常只有一个意图与话语相关联,但可以有零个或多个实体与话语相关联。
19.通常,用户给出简短话语,期望对话系统理解用户想要什么。然而,简短话语通常是高度模棱两可的,对话系统和语言模型很难确定话语的意图。例如,考虑话语“芝加哥”可能表示很多不同事物,并且从如此短的话语中确定意图可能极其困难。
20.考虑以下用户与对话系统之间的对话交换:
[0021][0022]
由于语言理解模型以无状态方式操作,每个话语独立存在,并且话语的意图和/或实体仅在当前输入话语上被评估。因此,尽管语言理解模型可以能够确定话语u1中的意图是预订航班,但话语u2和u3的意图可能会返回为“无”,因为话语仅包含城市和州或国家并且语言理解模型将无法辨别话语中的任何意图。
[0023]
本公开的实施例利用先前对话上下文来帮助消除话语中的意图和/或实体的歧义。在本公开的上下文中,先前对话上下文表示来自对话的先前意图和/或实体。本公开的实施例中的语言理解模型可以使用话语上下文对来训练。在一些实施例中,话语上下文对是输入话语和一个或多个先前意图、输入话语和一个或多个先前实体、和/或输入话语和一个或多个先前意图和一个或多个先前实体。
[0024]
当语言理解模型与话语一起接收先前对话上下文时,语言模型利用来自话语和先前对话上下文两者的特征以提高语言理解模型能够消除话语歧义并且增加意图和/或实体检测的准确性的能力。
[0025]
描述
[0026]
当机器识别包括源图像中的文本线索时,本公开的实施例可以应用于多种系统。本公开的实施例可以应用的示例系统包括但不限于视觉搜索系统、视觉识别系统、以及可以使用物品的自动识别来驱动进一步处理的任何系统,例如自动结账系统。所有这些在本文中统称为识别系统。
[0027]
代表性对话系统架构
[0028]
图1示出了根据本公开的一些方面的代表性对话系统106的示例架构100。为了便于讨论,本公开的对话系统和/或对话服务简称为对话系统。代表性架构100可以应用于各种不同情况和上下文。
[0029]
作为第一示例,架构100可以是信息聊天机器人。在该上下文中,用户经由诸如移动电话、计算机(膝上型计算机、台式机等)、平板系统、游戏系统等用户设备102与信息聊天机器人交互。在一些上下文中,可能要求用户在访问信息聊天机器人之前通过认证服务104进行认证。认证服务104执行用户的认证和/或授权以确保用户有权访问聊天机器人、为用户定制聊天机器人和/或用于其他目的。
[0030]
一旦用户已经被认证和/或授权检查,用户就被允许访问对话系统106,对话系统106在该示例中是信息聊天机器人,其回答问题、向用户提供信息等。
[0031]
用户可以在聊天机器人覆盖的域内向对话系统106提问。例如,对话系统106可以提供帮助,以帮助用户理解对话系统可以有效回答什么类型的话语。
[0032]
在接收到话语时,对话系统106将话语和/或先前对话上下文提交给如本文所述的语言理解模型114。语言理解模型返回与话语相对应的意图和/或实体。
[0033]
对话系统106评估意图和/或实体并且利用其自己的资源和/或附加服务108和/或数据110的资源来制定适当提示并且将其返回给用户。
[0034]
作为示例,假定聊天机器人被设计为在特定编程环境中帮助程序员。用户可以提交诸如“告诉我有关addexample api的信息”等问题。对话系统106可以将话语传递给语言理解模型114,并且语言理解模型114可以返回诸如“retrieveapi”和实体“addexample”等意图。
[0035]
对话系统106将了解用户想要什么并且直接从数据存储库110或经由另一服务108检索关于“addexample”api的信息。对话系统106制定给出“addexample”api的细节的提示并且将其返回给用户。
[0036]
在另一示例中,对话系统106可以是数字助理,该数字助理可以通过诸如日历服务、日程安排服务、购买服务和/或任何其他类型的服务等各种附加服务108代表用户检索信息和/或完成任务。在这样的示例中,对话系统106将以与先前描述的大致相同的方式与语言理解模型114交互。
[0037]
在又一示例中,对话系统可以是自动化系统或数字助理,该自动化系统或数字助理可以通过开/关灯、调节温度和其他这样的任务来影响用户的环境。在这种情况下,附加服务108可以包括集线器或其他iot(物联网)设备接口,并且可以通过与集线器和/或iot设备接口交互来实现用户的意图。
[0038]
这些示例表示图1的架构可以在其中使用的上下文的一小部分。在所有上下文中,诸如对话系统106、语言理解模型114、附加服务108和/或数据存储库110等各个方面可以集成到单个系统中,可以利用一个或多个服务来实现一个或多个方面,和/或其组合。例如,
为聊天机器人、语言理解模型、和/或可以用于实现一个或多个所示方面的其他服务提供在线服务。
[0039]
语言理解模型114经由如本文所述的模型训练过程112来训练。如下所述,开发者可以利用开发者系统116向模型训练过程112提交模型训练数据。语言理解模型114然后由模型训练过程112利用训练数据来训练。
[0040]
对话系统语言模型交互
[0041]
图2示出了描绘根据本公开的一些方面的对话系统和语言模型交互200的示例图。示例对话系统202包括数字助理或聊天机器人或经由用户机器226从用户接收自然语言输入并且如本文中讨论的那样响应于用户和/或代表用户发起(多个)动作的另一这样的系统。这些对话系统202通过接收用户请求222、向用户220提供提示和/或代表用户执行动作来与用户交互。在高级别,对话系统202接收信息222,并且基于该信息以及在一些情况下基于其他信息代表用户制定一个或多个提示220和/或执行动作。因此,会话的序列可以被视为网络地图,其中每个节点代表会话的当前状态并且基于用户输入和/或其他信息从一个节点移动到另一节点。会话的状态可以基于先前请求/提示以及由用户提供的输入。
[0042]
来自用户222的输入(例如,请求)话语。为了制定提示220和/或代表用户发起动作,对话系统202使用如本文所述的语言理解模型224。虽然会话的当前状态可能取决于过去请求/提示、过去会话状态等,但是语言理解模型224以无状态方式操作。当前自然语言输入222被呈现给语言理解模型224,并且语言理解模型224用数据结构进行响应,该数据结构包括语言理解模型所理解的话语的意图(如果有的话)和话语的实体(如果有的话)。在一些实施例中,数据结构还包括意图和/或实体的置信水平。
[0043]
作为示例,假定用户提供自然语言输入“给我预订飞往开罗的航班”。语言理解模型224可以评估输入并且提供包括一组项目值对的数据结构。例如,项目值对可以包括以下中的一项或多项:
[0044]
·
查询:查询文本(即,话语的文本)
[0045]
·
得分最高的意图:意图(即,具有最高得分的意图)
[0046]
·
得分最高的意图的得分:得分(即,与得分最高的意图相关联的得分)
[0047]
·
其他意图及其对应得分的列表。
[0048]
·
在输入中找到的实体及其实体类型、实体得分等的列表
[0049]
这些可以被编码成一个或多个数据结构。例如,对于“给我预订飞往开罗的航班”的请求,数据结构可以包括以下中的一项或多项:
[0050]
[0051][0052]
在上述数据结构中,startindex和endindex为输入话语中与对应实体的开头和结尾相对应的字符位置。
[0053]
作为如何遍历会话地图的各个节点的示例,考虑节点206代表会话的当前(或源)节点。当前状态的参数(包括发送给用户的任何提示)由214表示。基于用户响应和/或其他信息(210、218),对话系统将移动到任一目的地节点204,显示提示并且具有参数212或移动到目的地节点208,连同其相关联的提示/参数216。目的地节点成为新的源节点并且在会话的持续时间内重复该过程。随着时间的推移,随着会话的进行,来自对话系统的会话地图将被遍历,地图中的每个节点具有一组参数。
[0054]
使用先前对话上下文
[0055]
图3示出了根据本公开的一些方面的用于使用先前对话上下文的示例流程图300。例如,该方法可以通过本公开的对话系统来实现。该方法开始于操作302并且进行到操作
304,在操作304中,从用户或其他系统接收话语。
[0056]
在操作306中,对话系统可以尝试确定话语是否是现有对话的一部分。这可以通过将一个或多个因素视为一组规则或视为机器学习或将这些因素组合成概率的其他模型的输入或其某种组合来实现。例如,诸如从先前话语和/或提示开始的时间长度、系统是否已经响应于作为现有对话的一部分的提示而接收到话语、话语是否响应于任何提示、先前对话是否已经关闭等因素可以指示接收到的话语是否可能是现有对话的一部分或者接收到的话语是否不是现有对话的一部分。进一步解释这些因素:
[0057]
·
如果响应于提示而接收到话语,则该话语更有可能是生成提示的对话的一部分。
[0058]
·
如果没有响应于提示而接收到话语,则该话语更有可能不是现有对话的一部分。
[0059]
·
随着提示与话语之间的时间增加(减少),接收到的话语是生成提示的对话的一部分的可能性可能会减少(增加)。
[0060]
·
随着话语之间的时间增加(减少),接收到的话语与先前话语属于同一对话的可能性可能会降低(增加)。
[0061]
·
如果对话系统没有正在进行的对话(例如,会话地图的当前状态不是任何对话的一部分或没有会话的当前状态),则接收到的话语是现有对话的一部分的可能性会降低(接收到的话语是新对话的一部分的可能性增加)。
[0062]
因此,对话系统可以具有诸如上述的一组规则,或者可以将因素的组合输入到已训练机器学习模型或其他类型的模型中,或者其某种组合,以便确定话语是现有对话或新对话的一部分的可能性。由于只有两种选择(话语是现有对话的一部分,或者话语是新对话的一部分),这两种可能性是相关的,并且系统可以利用这两种可能性中的任何一种来采取动作。将期望可能性与阈值进行比较可以允许系统做出关于接收到的话语是否是现有对话的一部分的选择。
[0063]
如果话语是现有对话的一部分,则该方法进行到操作310,在操作310中,系统标识先前对话上下文。如本文所述,先前对话上下文可以包括一个或多个意图、一个或多个实体、或其任何组合。
[0064]
然后,系统在操作312中将话语和先前对话上下文发送到语言理解模型。
[0065]
另一方面,如果系统确定接收到的话语不是现有对话的一部分,则该方法进行到操作308并且话语(没有先前对话上下文)被发送到语言理解模型。
[0066]
如本文所述,在操作314中,对话系统从语言理解模型接收与接收到的话语或接收到的话语和先前对话上下文相关联的任何意图和/或话语。
[0067]
基于意图和/或实体,对话系统在操作316中基于其会话状态、内部编程、已知信息等确定下一动作应当是什么。该方法在操作318中终止。
[0068]
一个示例可以帮助说明图3的方法如何操作。如图2所示,对话系统在与用户对话期间具有或创建会话地图。考虑为用户预订航班的示例。用户可以通过向对话系统指示应当预订航班的话语来发起该动作。例如,发起预订航班的初始话语可以是以下中的一项或多项:
[0069]
·
我想去开罗旅行;
[0070]
·
给我订机票;
[0071]
·
我下周二要去开罗开会。
[0072]
·
下周二将是游览开罗的好时机。
[0073]
或任何数目的类似话语。对话系统可以将话语提交给语言理解模型,并且接收指示用户想要预订航班的意图以及话语中包含的任何实体作为回报。上面的一些话语具有一个或多个实体,而有些话语则没有。
[0074]
一旦对话系统了解到用户想要预订航班,则需要在可以发起和/或完成该动作之前收集某些信息。在预订航班的示例中,对话系统需要知道例如:
[0075]
·
始发城市(用户希望从哪里起飞);
[0076]
·
目的地城市(用户想要飞往哪里);
[0077]
·
旅行个人的姓名;
[0078]
·
旅行日期;以及
[0079]
·
其他信息,例如一个城市有多个机场时使用哪个机场、旅客详细信息、座位偏好、服务等级、优选航空公司、飞行常客号码等。
[0080]
可能不需要收集所有这样的信息,但是在可以标识旅行选项并且将其呈现给用户之前,存在对话系统需要的最小信息集。假定该最小数据集包括始发城市、目的地城市和旅行日期。对话系统可以被编程,使得用户被提示提供最小数据集,然后向用户呈现一些选项。在这种情况下,对话可以如下进行:
[0081][0082]
在操作304,对话系统接收话语ul。在操作306中,对话系统确定该话语是否是现有对话的一部分。由于对话系统没有当前对话状态,并且由于没有响应于对话提示而接收到话语(或者响应于诸如“今天我能帮上什么忙吗?”等一般提示而接收到话语),系统得出结论:话语不是任何现有对话的一部分并且进行到操作308并且将话语提交给语言理解模型。
[0083]
在操作314,对话系统接收意图(预定机票)和实体(日期:星期二)。对话系统从其内部会话地图中标识实现用户意图(在这种情况下是目的地和源城市)所需要的缺失信息,并且在操作316中生成提示r1“您想去哪里旅行?”并且将其呈现给用户。
[0084]
在对话的下一回合,接收到话语“华盛顿州雷德蒙德”(话语u2)。这次,对话系统在操作306中确定该话语是现有对话的一部分,因为该话语是响应于作为现有对话的一部分的提示而接收的。因此,对话系统进行到操作310并且将“预定机票”标识为先前对话上下文。
[0085]
在操作312中,将“预定机票”意图以及话语“华盛顿州雷德蒙德”发送到语言理解模型。作为响应,在操作314中,语言理解模型可以标识现有意图“预定机票”和由对话系统
接收的话语实体“城市:雷德蒙德”和“州:华盛顿”。
[0086]
由于提示是询问目的地城市,所以对话系统可以在操作316中将城市和州放入目的地城市实体,然后用提示r2:“您从哪里旅行?”提示剩余的缺失信息
[0087]
该过程基本上如上所述重复,其中在操作306中将接收到的话语u3“埃及开罗”标识为同一对话的一部分,并且将“预定机票”的先前对话上下文传递给语言理解模型并且意图“预定机票”和“实体城市:开罗”和“国家:埃及”在话语中被标识。
[0088]
在操作316,根据代表性示例,对话系统应当具有向用户呈现一些旅行选择所需要的所有信息。
[0089]
虽然图3中未示出,但是对话系统的一种选择是将具有先前对话上下文的话语和单独的话语呈现给语言理解模型,然后评估返回的意图和/或实体,并且决定话语是否是先前对话的一部分。这可以通过多种方式实现。例如,如果对话系统无法决定(例如,可能性是“太接近而无法调用”),则考虑的因素指向两个结果(例如,作为对话的一部分的提示被发送,并且话语响应于提示而被接收到,但提示与话语之间的时间将指示这两者不相关)和/或其组合,和/或出于其他原因,对话系统然后可以提交这两者。这会将操作306从二元决策(是,否)转变为三元决策(是,否,也许),“也许”路径将是将单独的话语和话语先前对话上下文对提交给语言理解模型。然后系统可以使用各种标准来决定何时采取“是”路径、何时采取“否”路径以及何时采取“可能”路径。
[0090]
在又一实施例中,对话系统可以基于一些其他标准将单独的话语和话语先前对话上下文对提交给语言理解模型。在一个代表性示例中,对话系统总是可以选择“是”路径。在另一代表性示例中,对话系统总是可以选择“可能”路径。
[0091]
训练语言理解模型
[0092]
图4示出了根据本公开的一些方面的导出训练数据的示例400。如本文中讨论的,语言理解模型可以包括使用训练数据训练的一个或多个机器学习模型。为了训练模型以仅从话语中提取意图和实体,收集一组示例话语402。示例话语402可以如本文中讨论的以多种方式收集。
[0093]
操作406可以一个接一个地检查示例话语402并且从示例话语中提取特征并且将这些特征组装成与示例话语相对应的训练向量410。以这种方式,从示例话语402中提取训练向量集合414。
[0094]
特征提取操作406可以以多种方式提取特征。在一个实施例中,可以去除停用词(例如,传达很少或没有意义的常用词,如冠词、“一(a)”、“一个(an)”、“所述(the)”等),并且可以将剩余词组合成训练向量。在其他实施例中,可以使用其他机制来提取特征。例如,可以对单词进行词干提取,可以从输入短语中提取n元语法,并且其他这样的处理可以是特征提取过程406的一部分。在另一示例中,可以利用word2vec或产生词嵌入的类似工具来从示例话语产生训练向量。当使用文本语料库进行训练时,word2vec产生向量空间,其中以共享公共上下文(例如,语义相似)的单词彼此靠近的方式在向量空间中为单词分配位置。word2vec工具、方法及其变体是众所周知的,并且此处无需进一步讨论。
[0095]
在一些情况下,示例话语402被注释,这表示,示例话语并且已经标识出与示例话语相关联的意图和/或实体。当示例话语402被注释时,特征提取方法406可以使用注释来提取适当特征,可以将注释编码到结果训练向量410中,和/或其组合。
[0096]
结果训练数据集414可以用于训练语言理解模型以在没有先前对话上下文的情况下提交话语时标识与话语相关联的意图和/或实体。
[0097]
为了训练语言理解模型以在话语与先前对话上下文一起提交时标识与话语相关联的意图和/或实体,使用话语上下文对。下面更详细地讨论组装话语上下文对的过程。然而,总而言之,来自一组示例话语402的示例话语与来自一组示例先前示例上下文404的示例先前对话上下文相关联。该对可以通过特征提取过程408,特征提取过程408与上面讨论的特征提取过程406基本上相同地操作。特征提取过程408的结果输出是与对应话语上下文对相关联的训练向量412。训练向量412可以被收集到训练数据集416中并且用于训练语言理解模型以如本文所述识别意图和/或实体。
[0098]
图5和图6示出了根据本公开的一些方面的用于训练机器学习模型的代表性架构。图5示出了训练机器学习模型,例如话语,而图6示出了训练机器学习模型,例如话语上下文对。
[0099]
首先参考图5,收集示例话语506。示例话语506是将用于训练语言理解模型的机器学习模型的示例话语。在训练之后,语言理解模型将如本文所述提取意图和/或实体。
[0100]
有多种方式可以收集一组示例话语以用于训练。在一个实施例中,示例话语由开发者通过机器502提供。例如,开发者可以简单地提供一组完整的示例话语506。
[0101]
在另一实施例中,示例话语由一个或多个应用和/或服务508提供。例如,应用和/或服务508可以监测用户输入什么并且收集示例话语以用于初始训练和/或更新语言理解模型。在某些情况下,可以使用标准来收集示例话语。例如,应用和/或服务508可以在使用对话系统时以及当语言理解模型无法标识与话语相关联的意图和/或实体时监测语言理解模型的输出。例如,这可以在与话语中标识出的意图和/或实体相关联的得分低于指定阈值时确定。例如,如果用户输入话语并且得分最高的意图和/或实体的得分低于阈值,则应用和/或服务508可以捕获该话语以用于训练。
[0102]
应用和/或服务508可以是对话系统本身、另一系统、应用和/或服务、和/或其任何组合。下面讨论的图7可以代表一种机制,该机制帮助以完全自动化的方式或以开发者辅助的方式和/或其某种组合从对话系统中提取信息,以便收集示例话语和/或话语上下文对(如图6所示)。
[0103]
在又一示例中,可以以交互方式从开发者收集示例话语。例如,可以向开发者呈现用户界面504,用户界面504允许开发者输入示例话语、注释示例话语、发起模型的训练、运行测试用例以查看已训练模型如何执行、以及控制示例话语收集、模型训练和/或模型训练评估的其他方面。下面讨论这种类型的实施例的示例、以及一组代表性的api,这些api可以用于收集信息并且与存储示例话语(506)和/或示例话语上下文对(606)的系统交互以训练适当模型。
[0104]
一旦收集到一组示例话语506,特征提取过程510就提取特征以创建一组训练数据512。特征提取已经上面结合图4进行了讨论。
[0105]
在一些示例实施例中,可以使用不同机器学习工具。语言理解模型可以设置为分类问题或匹配问题。在分类问题方法中,训练数据与适当机器学习模型一起使用,以训练模型从话语和/或从话语中提取的特征中识别意图和/或实体。在匹配问题方法中,训练数据与适当机器学习模式一起使用以训练模型选择与话语和/或从话语中提取的特征相关联的
匹配意图和/或实体。
[0106]
对于分类类型系统,示例机器学习模型包括但不限于逻辑回归(lr)、朴素贝叶斯、随机森林(rf)、神经网络(nn)、矩阵分解和支持向量机(svm))工具。对于匹配类型系统,某种形式的神经网络(例如,长短期记忆、双向长期短期记忆等)通常用于对话语和候选意图和/或实体进行编码,并且对编码的话语和编码的候选意图/实体之间确定的匹配得分进行编码。选择具有最高匹配得分的意图和/或实体。用于分类类型问题和用于匹配类型问题两者的机器学习模型是已知的,并且任何这样的模型可以与本公开的实施例一起使用。
[0107]
机器学习算法利用训练数据512来寻找影响结果或评估520的标识特征之间的相关性。在一些示例实施例中,训练数据512包括注释数据(也称为标记数据),其是一个或多个标识特征和一个或多个结果的已知数据,例如与示例话语相关联的意图和/或实体。
[0108]
利用训练数据512,在操作514训练语言理解模型的机器学习模型。训练过程514评价特征的值,因为它们与训练数据512和相关联的意图和/或实体相关。这通常通过最小化误差函数来完成。各种机器学习模型的训练是已知的,并且此处无需进一步讨论。训练的结果是已训练语言理解模型518。
[0109]
当已训练语言理解模型518用于执行评估时,新数据516(例如,新话语)被提供作为对已训练语言理解模型518的输入,并且语言理解模型518生成评估520作为输出。在这种情况下,评估520是与输入话语516相关联的意图和/或实体。
[0110]
图6示出了使用话语上下文对而不是话语的相同过程。因此,图5的描述(比照)适用于图6。
[0111]
有多种方式可以收集话语上下文对(606)以产生训练数据。图7示出了根据本公开的一些方面的用于导出训练数据的代表性流程图700。该流程图是如本文所述如何收集要用于训练语言理解模型的话语上下文对的示例方法。
[0112]
该方法开始于操作702并且进行到操作704,在操作704中,标识具有先前对话上下文的提示。如结合图2所讨论的,对话系统在对话过程中拥有或构建会话网络地图。对话系统向用户显示的提示由开发者编程、在对话系统的操作期间创建、和/或其某种组合。每个提示可以被设计为向用户传达信息,引起用户的响应,或这两者。因此,提示可以被视为对话中开始对话、继续对话和/或结束对话的步骤。
[0113]
作为对话的一部分的提示是可能受益于先前对话上下文的提示。因此,如果对话系统具有作为给定对话的一部分的一组提示,则收集提示可以是操作704的实现的一部分。例如,如果对话系统具有一组预先确定的提示和/或对于在运行时期间创建的提示(例如,使用该组条件、规则等),则操作704可以从对话系统所使用的信息中收集这样的提示,例如存储这样的提示的数据结构、条件、规则、和/或检索和/或创建提示的其他地方。作为另一示例,如果对话系统在运行时期间动态地创建提示,则提示可以在运行时期间收集,然后由操作704检索。又例如,开发者可以输入提示集,例如通过交互式用户界面。又如,开发者可以批量输入该组提示。也可以使用其他机制来收集与先前对话上下文相关联的一组提示。
[0114]
作为代表性示例,考虑一个简单的预订航班对话,该对话可以包含作为对话的一部分的若干提示。例如,假定为了完成航班的预订,对话系统被编程为通过几个步骤来完成预订:
[0115]
1)收集向用户呈现旅行选择所需要的信息。这样的信息包括:
[0116]
a.旅行日期(开始和结束)
[0117]
b.出发机场
[0118]
c.终点机场
[0119]
d.用户希望提供以用于缩小搜索条件的任何其他信息,例如:
[0120]
i.(多个)优选航空公司
[0121]
ii.期望服务等级(经济舱、商务舱等)
[0122]
iii.优选座位
[0123]
iv.优选旅行时间
[0124]
v.等
[0125]
2)一旦收集到基本旅行信息,系统就会搜索航班并且向用户提供航班选项。
[0126]
3)基于期望航班的用户选择,收集完成预订所需要的信息:
[0127]
a.旅行的个人
[0128]
b.旅客详细信息(全名、护照号码等)
[0129]
c.支付信息
[0130]
d.和/或可能期望和/或需要的附加信息
[0131]
4)完成预订
[0132]
在该代表性示例中,步骤1在步骤2等之前完成,尽管对话系统的优点之一是它们在这样的顺序方面可以是灵活的。
[0133]
这些不同步骤可以表示为规则、对话流、会话地图中的节点或以任何其他方式表示。对话系统将利用这些表示中的一个或多个来呈现对话提示以收集所需要的信息、创建对话提示以收集所需要的信息、和/或其组合。
[0134]
为了了解如何从以上信息收集具有先前对话上下文的提示(例如,操作704),考虑从这些步骤创建的会话地图。在该示例中,步骤1必须在步骤2完成之前完成。步骤1将基于输入的初始话语而开始,例如“我下周需要出差”。初始话语可能有也可能没有一个或多个所需要的实体1:a
‑
c。因此,导致标识出的意图“预定机票”的话语将发起步骤1。由于在将步骤1标记为完成并且开始步骤2之前,必须至少收集步骤1:a
‑
c中实体的数据,因此系统将利用提示从用户收集信息,直到知道1:ac中的实体。因此,一个或多个提示将与1:a
‑
c相关联,以便收集所需要的信息。例如,一组简单的提示可以包括以下内容:
[0135]
表1:示例提示
[0136]
[0137][0138]
当然,对话系统可以使用更复杂的一组提示,例如询问源城市和目的地城市,并且仅在存在多于一个的情况下才询问机场的说明或者简单地搜索飞往为该城市提供服务的所有机场的航班。在一些实施例中,提示可以根据初始话语而改变。
[0139]
操作704中的提示可以直接从对话系统中的信息中收集、如本文所述在运行时期间收集并且随后使用、和/或以另一方式标识。作为替代,可以通过与开发者的交互来收集交互式用户界面。例如,系统可以将实体1:a
‑
c标识为需要,并且系统可以提示开发者提供可以呈现给用户的各种提示,以便收集实体信息。还可以采用批量上传等其他方式来收集各种提示。
[0140]
下面呈现用于收集示例并且与模型训练系统交互的交互实施例的示例。
[0141]
操作706开始循环,该循环依次考虑在操作704中收集的集合中的每个提示。
[0142]
操作708标识用户可能响应于所考虑的提示而输入的一个或多个示例话语。例如,如果提示是预订航班的对话框的一部分,例如“您想什么时候旅行?”,则操作708将标识用户可能输入的可能响应。例如,用户可以输入如下响应:
[0143]
·
周二
[0144]
·
我想周三出发,下周一回来
[0145]
·
15日出发,21日返回
[0146]
·
春假的第一天
[0147]
因此,表1中的每个提示可以产生多个相关联的话语。
[0148]
操作708可以以多种方式收集用户可能响应于考虑中的提示而输入的示例话语。例如,在交互式上下文中,可以向开发者显示提示并且要求开发者输入用户可以响应于该提示而输入的一个或多个示例话语。这些可以由操作708收集。在另一示例中,在操作期间,对话系统或另一服务/系统或其组合可以收集用户对提示的响应,并且可以通过操作708挖掘数据以提取与考虑中的提示相关联的示例话语。也可以使用其他选项,例如开发者在批处理中输入示例话语。
[0149]
操作710为每个示例话语标识示例先前对话上下文。在一些实施例中,系统检查考虑中的提示并且根据与提示相关联的对话信息创建示例上下文。例如,考虑中的提示要么不是对话的一部分,要么是对话的一部分。在提示不是对话的一部分的情况下,系统可以将提示视为没有先前对话上下文,或者可以通过询问开发者来标识先前对话上下文,或者以某种其他方式标识先前对话上下文。
[0150]
在提示是对话的一部分的情况下,对话本身可以与意图相关联。例如,作为航班预订对话框一部分的提示“您想去哪里旅行”可以与意图“预定机票”相关联。在这种情况下,可以从对话元数据、对话数据存储装置或可以找到与对话相关联的意图的其他位置中提取意图。类似地,可以挖掘对话框中的其他提示以获取附加上下文数据。
[0151]
作为挖掘对话数据以发现先前对话上下文的代表性示例,考虑图2的会话地图,其
中地图中的每个节点具有包含提示的相关联的数据(例如,212、214、216、218)。收集所有提示可以根据意图和/或实体提供先前对话上下文。类似地,可以为具有代表性示例话语挖掘导致状态转变的信息(例如,218、210)。这可以是由对话系统存储、访问和/或创建以标识与考虑中的提示相关联的示例上下文的挖掘数据的示例。
[0152]
作为又一示例,可以向开发者呈现用户界面并且要求开发者提供将与考虑中的提示相关联的示例先前对话上下文。
[0153]
作为又一示例,考虑上面的预订航班示例。示例先前对话上下文可以包括一个或多个意图和/或一个或多个实体。在上面的预订航班示例中,步骤1在步骤2完成之前完成,以此类推。在将步骤1标记为完成并且开始步骤2之前,必须至少收集步骤1:a
‑
c中的数据。
[0154]
在一个实施例中,示例上下文只是意图预定机票。在其他实施例中,1:a
‑
c中实体的各种组合也可以被包括在示例上下文中。除非对话系统被设计为用户必须以特定顺序输入数据,否则示例上下文可以考虑以任何顺序输入实体,并且所有组合都可以用作示例先前上下文。例如,假定先前输入的实体的顺序无关紧要,先前对话上下文可以包括意图和实体的任何组合。在这种情况下,意图是预定机票,并且实体可以是开始旅行日期、结束旅行日期、源机场和/或目的地机场的任何组合。因此,以意图.实体格式表达的先前上下文可以包括:
[0155]
(1)预定机票.开始旅行日期
[0156]
(2)预定机票.结束旅行日期
[0157]
(3)预定机票.源机场
[0158]
(4)预定机票.目的地机场
[0159]
(5)预定机票.开始旅行日期.结束旅行日期
[0160]
(6)预定机票.开始旅行日期.源机场
[0161]
(7)预定机票.开始旅行日期.目的地机场
[0162]
(8)预定机票.结束旅行日期.源机场
[0163]
(9)预定机票.结束旅行日期.目的地机场
[0164]
(10)预定机票.源机场.目的地机场
[0165]
(11)预定机票.开始旅行日期.结束旅行日期.源机场
[0166]
(12)预定机票.开始旅行日期.结束旅行日期.目的地机场
[0167]
(13)预定机票.开始旅行日期.源机场.目的地机场
[0168]
(14)预定机票.结束旅行日期.sourcairport.目的地机场
[0169]
连同单独的意图,这些中的每个可以表示在操作710中标识出的先前示例上下文。
[0170]
在操作712中,组装话语上下文对。为了创建话语上下文对,上下文与旨在引出由先前对话上下文尚未表示的信息的话语配对。例如,如果先前对话上下文是“预定机票”,则响应于上面的表1的提示而给出的示例话语可以与意图预定机票配对。对于具有相关联的实体的上下文,话语是响应于不是上下文的一部分的实体而给出的话语。例如,如果上下文是上面列表中的(4)(预定机票.目的地机场),则与旨在收集源机场、开始旅行日期和结束旅行日期的提示相关联的话语可以组合配对。如果上下文是列表(预定机票.结束旅行日期.sourcairport.目的地机场)上的(14),则唯一缺少的实体是开始旅行日期,因此与收集开始旅行日期的提示相关联的话语与上下文(14)相结合配对。
[0171]
操作714结束提示的循环并且该方法在操作716结束。
[0172]
如本文中讨论的,在有或没有先前对话上下文的情况下收集训练示例的一种方法是允许开发者通过诸如图5:504和/或图6:604所示的用户界面与系统交互。用户界面可以收集信息并且使用api来存储信息,例如根据图8的数据库模式或在另一数据存储库中。当语言理解模型由开发者的对话系统所依赖的基础设施、服务或其他类型的平台提供时,这种交互式方法可能特别有用。
[0173]
用户界面(例如,图5:504和/或图6:604)可以呈现允许开发者输入示例的选项,无论有没有先前对话上下文,然后注释和/或保存示例。例如,系统可以允许开发者输入示例话语、标识意图、实体和/或与话语相关联的先前对话上下文。使用上面的预订航班示例,开发者可以输入:“我下周需要出差”并且将相关联的意图标识为预定机票。类似地,用户可以输入“为我预订下周二飞往开罗的航班”并且将意图标识为预定机票,将实体目的地机场标识为开罗,并且将实体开始旅行日期标识为星期二。
[0174]
类似地,可以交互式地输入先前对话上下文。例如,用户可以输入“星期五”作为话语,并且先前对话上下文具有意图预定机票和实体开始旅行日期(其值为星期二)。
[0175]
在一些实施例中,交互可以由系统辅助。例如,如果训练系统能够从开发者的对话系统中提取表1中的提示(例如,作为操作704的一部分),则训练系统可以遍历每个提示并且允许用户对照每个提示输入示例话语(例如,作为操作708的一部分)。用户然后可以通过用户界面以及针对所输入的不同示例话语标识示例先前对话上下文。
[0176]
示例话语和/或示例话语上下文对的交互式输入还可以伴随有通过图5和6中概述的训练方法进行的交互式循环。例如,用户可以如上所述输入一个或多个示例话语和/或话语上下文对,特征提取(510、610)可以提取训练数据(512、612),模型可以被训练和/或更新(514、614)。用户然后可以输入测试话语和/或话语上下文对(516、616)、以及由已训练模型(518、618)评估的测试话语和/或话语上下文对、和通过用户界面(504、604)呈现给开发者的结果评估(520、620)。然后,开发者可以添加注释以校正由模型产生的任何错误,并且注释的校正用于进一步更新模型。
[0177]
选择和使用已训练模型
[0178]
图8示出了根据本公开的一些方面的用于选择和利用已训练机器学习模型的代表性流程图800。已训练机器学习模型是作为本文所述的语言理解模型的一部分而训练的模型。例如,在一些实施例中,该过程由语言理解模型执行。
[0179]
该过程在802开始并且进行到804,在804中,从对话系统接收输入参数。输入参数可以包括输入话语和(可选的)先前对话上下文。因为对话系统可能会或可能不会呈现先前对话上下文(即使这样可用),语言理解模型需要适应接收先前对话上下文以及输入话语的场景以及没有接收先前对话上下文并且仅接收输入话语的场景。
[0180]
如上所述,适应这两种场景的一种方式是训练两种机器学习模型,一种针对话语上下文对进行训练,一种仅针对话语进行训练。这是图8所示的实施例。在另一实施例中,仅使用单个机器学习模型,该模型已经使用仅话语训练数据和话语上下文对训练数据两者进行训练。
[0181]
操作806确定先前对话上下文是否已经与话语一起被接收,或者仅是没有任何先前对话上下文的话语被接收。响应于已经接收到先前对话上下文,执行进行到操作808,在
操作808中,选择针对话语上下文对而训练的模型。如果仅接收到没有任何先前对话上下文的话语,则执行进行到操作810,在操作810中,选择仅针对话语而训练的模型。
[0182]
在操作812中将输入(例如,话语或话语/先前对话上下文)呈现给所选择的已训练机器学习模型。作为响应,该模型根据需要返回意图、实体和相关得分。例如,可以训练模型以返回与所有可能意图和/或任何标识出的实体相关联的得分以及其相应得分。如本文中讨论的,得分表示相关联的意图和/或实体在输入话语中被表示的可能性。
[0183]
在操作816中,期望参数被组装并且返回到对话系统。对话系统可能需要所有意图/实体和相关联的得分,或者可能只需要得分最高的意图和/或实体。例如,返回到对话系统的“详细”参数集可以如下所示:
[0184]
{
[0185]
"查询":"给我预订飞往开罗的航班",
[0186]
"最高得分意图":{
[0187]
"意图":"预定机票",
[0188]
"得分":0.9887482
[0189]
},
[0190]
"意图":[
[0191]
{
[0192]
"意图":"预定机票",
[0193]
"得分":0.9887482
[0194]
},
[0195]
{
[0196]
"意图":"无",
[0197]
"得分":0.04272597
[0198]
},
[0199]
{
[0200]
"意图":"查找位置器",
[0201]
"得分":0.0125702191
[0202]
},
[0203]
{
[0204]
"意图":"提醒",
[0205]
"得分":0.00375502417
[0206]
},
[0207]
{
[0208]
"意图":"订餐",
[0209]
"得分":3.765154e
‑
07
[0210]
},
[0211]
],
[0212]
"实体":[
[0213]
{
[0214]
"实体":"开罗",
[0215]
"类型":"位置",
[0216]
"startindex":20,
[0217]
"endindex":24,
[0218]
"得分":0.956781447
[0219]
}
[0220]
]
[0221]
}
[0222]
另一方面,“最高得分”结果可以类似于:
[0223]
{
[0224]
"查询":"给我预订飞往开罗的航班",
[0225]
"最高得分意图":{
[0226]
"意图":"预定机票",
[0227]
"得分":0.9887482
[0228]
},
[0229]
"实体":[
[0230]
{
[0231]
"实体":“开罗”,
[0232]
"类型":"位置",
[0233]
"startindex":20,
[0234]
"endindex":24,
[0235]
"得分":0.956781447
[0236]
}
[0237]
]
[0238]
}
[0239]
示例机器架构和机器可读介质
[0240]
图9示出了适合于实现系统等或适合于执行本文中公开的方法的代表性机器架构。图9的机器被示出为独立设备,其适用于上述概念的实现。对于上述服务器方面,可以使用在数据中心、云架构的一部分等中操作的多个这样的机器。在服务器方面,并非所有图示的功能和设备都被利用。例如,虽然用户用来与服务器和/或云架构交互的系统、设备等可以具有屏幕、触摸屏输入等,但服务器通常没有屏幕、触摸屏、相机等,并且通常通过具有适当输入和输出方面的连接系统与用户交互。因此,下面的架构应当被视为包含多种类型的设备和机器,并且各个方面可能存在也可能不存在于任何特定设备或机器中,具体取决于其外形因素和用途(例如,服务器很少有相机,而可穿戴设备很少包括磁盘)。然而,图9的示例说明适合于允许本领域技术人员确定如何通过对所使用的特定设备、机器等的图示实施例进行适当修改利用硬件和软件的适当组合来实现先前描述的实施例。
[0241]
虽然仅示出了单个机器,但术语“机器”也应当被视为包括单独或联合执行一组(或多组)指令以执行本文中讨论的任何一种或多种方法的机器的任何集合。
[0242]
机器900的示例包括经由链路908彼此通信的至少一个处理器902(例如,中央处理
单元(cpu)、图形处理单元(gpu)、高级处理单元(apu)或其组合)、一个或多个存储器,例如主存储器904、静态存储器906或其他类型的存储器。链路908可以是总线或其他类型的连接通道。机器900可以包括另外的可选方面,例如包括任何类型的显示器的图形显示单元910。机器900还可以包括其他可选方面,例如字母数字输入设备912(例如,键盘、触摸屏等)、用户界面(ui)导航设备914(例如,鼠标、轨迹球、触摸设备等)、存储单元916(例如,磁盘驱动器或(多个)其他存储设备)、信号生成设备918(例如,扬声器)、(多个)传感器921(例如,全球定位传感器、(多个)加速度计、(多个)麦克风、(多个)相机等)、输出控制器928(例如,有线或无线连接,用于与一个或多个其他设备连接和/或通信,诸如通用串行总线(usb)、近现场通信(nfc)、红外(ir)、串行/并行总线等)、以及用于连接到一个或多个网络926和/或通过一个或多个网络926进行通信的网络接口设备920(例如,有线和/或无线)。
[0243]
可执行指令和机器存储介质
[0244]
各种存储器(即,904、906,和/或(多个)处理器902的存储器)和/或存储单元916可以存储体现本文所述的任何一种或多种方法或功能或由其使用的一组或多组指令和数据结构(例如,软件)924。这些指令在由(多个)处理器902执行时引起各种操作实现所公开的实施例。
[0245]
如本文中使用的,术语“机器存储介质”、“设备存储介质”、“计算机存储介质”表示相同的事物并且在本公开中可以互换使用。这些术语是指存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。因此,这些术语应当被视为包括存储设备,诸如固态存储器等、以及光和磁介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,例如包括半导体存储器设备,例如可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、fpga和闪存设备;磁盘,诸如内置硬盘和可移动磁盘;磁光盘;以及cd
‑
rom和dvd
‑
rom磁盘。术语机器存储介质、计算机存储介质和设备存储介质具体且明确地排除了载波、调制数据信号和其他这样的瞬态介质,其中至少有一些被包括在下面讨论的术语“信号介质”中。
[0246]
信号介质
[0247]
术语“信号介质”应当被认为包括任何形式的调制数据信号、载波等。术语“调制数据信号”是指一种信号,该信号的一个或多个特性被设置或改变以便在信号中对信息进行编码。
[0248]
计算机可读介质
[0249]
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”表示相同的事物并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和信号介质。因此,这些术语包括存储设备/媒体和载波/调制数据信号。
[0250]
示例实施例
[0251]
示例1.一种用于语言识别的方法,包括:
[0252]
接收输入话语;
[0253]
确定先前对话上下文信息是否连同所述输入话语一起被接收到;
[0254]
响应于确定接收到先前对话上下文信息:
[0255]
选择第一已训练语言理解模型;
[0256]
使用所述第一已训练语言理解模型从所述输入话语和所述先前对话上下文信息中确定第一意图;
[0257]
返回所述第一意图;
[0258]
响应于确定未接收到先前对话上下文信息:
[0259]
选择第二已训练语言理解模型;
[0260]
使用所述第二已训练语言理解模型从所述输入话语中确定第二意图;
[0261]
返回所述第二意图。
[0262]
示例2.根据权利要求1所述的方法,还包括:
[0263]
响应于确定接收到先前对话上下文信息:
[0264]
使用所述第一已训练语言理解模型从所述输入话语中确定第一实体;以及
[0265]
与所述第一意图一起返回所述第一实体。
[0266]
示例3.根据权利要求1或2所述的方法,还包括:
[0267]
响应于确定未接收到先前对话上下文信息:
[0268]
使用所述第二已训练语言理解模型从所述输入话语中确定第二实体;以及
[0269]
与所述第二意图一起返回所述第二实体。
[0270]
示例4.根据权利要求1、2或3所述的方法,其中:
[0271]
所述第一已训练语言理解模型使用示例话语和相关联的先前对话上下文进行训练;以及
[0272]
所述第二已训练语言理解模型使用没有相关联的先前对话上下文对的示例话语进行训练。
[0273]
示例5.根据权利要求1、2、3或4所述的方法,还包括:
[0274]
接收多个示例话语;
[0275]
标识至少一个示例先前对话上下文;
[0276]
创建多个话语上下文对,每对包括示例话语和示例对话上下文;
[0277]
从所述话语上下文对中提取第一组特征;以及
[0278]
使用包括所述第一组特征的训练数据训练所述第一语言理解模型。
[0279]
示例6.根据权利要求5所述的方法,还包括:
[0280]
从所述示例话语中提取第二组特征;以及
[0281]
使用包括所述第二组特征的训练数据训练所述第二语言理解模型。
[0282]
示例7.根据权利要求5所述的方法,其中所述多个示例话语是从由对话系统使用以从用户引出实体信息的请求中导出的。
[0283]
示例8.根据权利要求7所述的方法,其中所述至少一个示例先前对话上下文包括至少一个意图,并且其中所述实体信息与所述至少一个意图相关联。
[0284]
示例9.根据权利要求1、2、3、4、5、6、7或8所述的方法,还包括:
[0285]
响应于确定接收到先前对话上下文信息:
[0286]
使用所述第一已训练语言理解模型确定与所述第一意图相关联的第一似然得分;
[0287]
使用所述第一已训练语言理解模型确定第三意图和相关联的似然得分;
[0288]
与所述第一意图一起返回所述第一似然得分,并且与所述第一意图和所述第一似然得分一起返回所述第三意图及其相关联的似然得分。
[0289]
示例10.根据权利要求1、2、3、4、5、6、7、8或9所述的方法,还包括:
[0290]
响应于确定未接收到先前对话上下文信息:
[0291]
使用所述第二已训练语言理解模型确定与所述第二意图相关联的第二似然得分;
[0292]
使用所述第二已训练语言理解模型确定第四意图和相关联的似然得分;
[0293]
与所述第二意图一起返回所述第二似然得分,并且与所述第二意图和所述第二似然得分一起返回所述第四意图及其相关联的似然得分。
[0294]
示例11.根据权利要求1、2、3、4、5、6、7、8、9或10所述的方法,还包括使用所述第一语言模型确定与所述第一意图相关联的似然得分。
[0295]
示例12.根据权利要求1、2、3、4、5、6、7、8、9、10或11所述的方法,其中所述第一语言模型选自多个语言模型。
[0296]
示例13.根据权利要求1、2、3、4、5、6、7、8、9、10、11或12所述的方法,其中所述第二语言模型选自多个语言模型。
[0297]
示例14.一种装置,包括用于执行根据任一前述权利要求所述的方法的装置。
[0298]
示例15.一种机器可读存储装置,包括机器可读指令,所述机器可读指令当被执行时用于实现根据任一前述权利要求所述的方法或装置。
[0299]
示例16.一种用于语言识别的方法,包括:
[0300]
接收输入话语;
[0301]
确定先前对话上下文信息是否连同所述输入话语一起被接收到;
[0302]
响应于确定接收到先前对话上下文信息:
[0303]
选择第一已训练语言理解模型;
[0304]
使用所述第一已训练语言理解模型从所述输入话语和所述先前对话上下文信息中确定第一意图;
[0305]
返回所述第一意图;
[0306]
响应于确定未接收到先前对话上下文信息:
[0307]
选择第二已训练语言理解模型;
[0308]
使用所述第二已训练语言理解模型从所述输入话语中确定第二意图;
[0309]
返回所述第二意图。
[0310]
示例17.根据权利要求16所述的方法,还包括:
[0311]
响应于确定接收到先前对话上下文信息:
[0312]
使用所述第一已训练语言理解模型从所述输入话语中确定第一实体;以及
[0313]
与所述第一意图一起返回所述第一实体。
[0314]
示例18.根据权利要求16所述的方法,还包括:
[0315]
响应于确定未接收到先前对话上下文信息:
[0316]
使用所述第二已训练语言理解模型从所述输入话语中确定第二实体;以及
[0317]
与所述第二意图一起返回所述第二实体。
[0318]
示例19.根据权利要求16所述的方法,其中:
[0319]
所述第一已训练语言理解模型使用示例话语和相关联的先前对话上下文进行训练;以及
[0320]
所述第二已训练语言理解模型使用没有相关联的先前对话上下文对的示例话语
进行训练。
[0321]
示例20.根据权利要求16所述的方法,还包括:
[0322]
接收多个示例话语;
[0323]
标识至少一个示例先前对话上下文;
[0324]
创建多个话语上下文对,每对包括示例话语和示例对话上下文;
[0325]
从所述话语上下文对中提取第一组特征;以及
[0326]
使用包括所述第一组特征的训练数据训练所述第一语言理解模型。
[0327]
示例21.根据权利要求20所述的方法,还包括:
[0328]
从所述示例话语中提取第二组特征;以及
[0329]
使用包括所述第二组特征的训练数据训练所述第二语言理解模型。
[0330]
示例22.根据权利要求20所述的方法,其中所述多个示例话语是从由对话系统使用以从用户引出实体信息的请求中导出的。
[0331]
示例23.根据权利要求22所述的方法,其中所述至少一个示例先前对话上下文包括至少一个意图,并且其中所述实体信息与所述至少一个意图相关联。
[0332]
示例24.根据权利要求16所述的方法,还包括:
[0333]
响应于确定接收到先前对话上下文信息:
[0334]
使用所述第一已训练语言理解模型确定与所述第一意图相关联的第一似然得分;
[0335]
使用所述第一已训练语言理解模型确定第三意图和相关联的似然得分;
[0336]
与所述第一意图一起返回所述第一似然得分,并且与所述第一意图和所述第一似然得分一起返回所述第三意图及其相关联的似然得分。
[0337]
示例25.根据权利要求16所述的方法,还包括:
[0338]
响应于确定未接收到先前对话上下文信息:
[0339]
使用所述第二已训练语言理解模型确定与所述第二意图相关联的第二似然得分;
[0340]
使用所述第二已训练语言理解模型确定第四意图和相关联的似然得分;
[0341]
与所述第二意图一起返回所述第二似然得分,并且与所述第二意图和所述第二似然得分一起返回所述第四意图及其相关联的似然得分。
[0342]
示例26.一种系统,包括处理器和计算机可执行指令,所述计算机可执行指令在由所述处理器执行时引起所述系统执行操作,所述操作包括:
[0343]
接收多个示例话语;
[0344]
标识至少一个示例先前对话上下文;
[0345]
创建多个话语上下文对,每对包括示例话语和示例对话上下文;
[0346]
从所述话语上下文对中提取第一组特征;
[0347]
使用包括所述第一组特征的训练数据训练所述第一语言模型;
[0348]
接收话语;
[0349]
确定先前对话上下文是否与所述话语一起被接收到;
[0350]
响应于确定先前对话上下文与所述话语一起被接收到:
[0351]
使用所述第一语言模型基于所述话语和所述先前对话上下文确定至少一个意图;以及
[0352]
返回所述至少一个意图。
[0353]
示例27.根据权利要求26所述的系统,还包括使用所述第一语言模型确定与所述至少一个意图中的每个意图相关联的似然得分。
[0354]
示例28.根据权利要求26所述的系统,其中还包括:
[0355]
响应于确定先前对话上下文与所述话语一起被接收到,从多个语言模型中选择所述第一语言模型。
[0356]
示例29.根据权利要求26所述的系统,其中所述至少一个示例先前对话上下文包括意图并且其中所述操作还包括:
[0357]
从由对话系统使用以从用户引出实体信息的请求中导出所述多个示例话语。
[0358]
示例30.根据权利要求26所述的系统,还包括:
[0359]
从所述多个话语中提取第二组特征;以及
[0360]
使用包括所述第二组特征的训练数据训练第二语言模型。
[0361]
结论
[0362]
鉴于可以应用本发明的原理和前述示例的很多可能的实施例,应当认识到,本文中描述的示例仅是说明性的,而不应当被视为对本发明的范围的限制。因此,本文中描述的本发明考虑了可能落入所附权利要求及其任何等同物的范围内的所有这样的实施例。