CN108780444A - 可扩展设备和依赖于域的自然语言理解 - Google Patents

可扩展设备和依赖于域的自然语言理解 Download PDF

Info

Publication number
CN108780444A
CN108780444A CN201780016162.6A CN201780016162A CN108780444A CN 108780444 A CN108780444 A CN 108780444A CN 201780016162 A CN201780016162 A CN 201780016162A CN 108780444 A CN108780444 A CN 108780444A
Authority
CN
China
Prior art keywords
endpoint
language item
dependent
independently
subsystem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780016162.6A
Other languages
English (en)
Other versions
CN108780444B (zh
Inventor
郑珉宇
R·萨里卡亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108780444A publication Critical patent/CN108780444A/zh
Application granted granted Critical
Publication of CN108780444B publication Critical patent/CN108780444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Information Transfer Between Computers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

描述了一种用于以有效且可扩展的方式处理语言项(例如,查询)的计算机实现的技术。该技术使用语言理解(LU)系统以基于语言项所源自的特定端点机构的方式解释语言项。LU系统可以包括独立于端点的子系统、依赖于端点的子系统和排序组件。独立于端点的子系统以独立于特定端点机构的方式解释语言项。依赖于端点的子系统以依赖于特定端点机构的方式解释语言项。排序组件基于由独立于端点的子系统和依赖于端点的子系统生成的中间结果来生成最终解释结果,例如,通过标识语言项的最可能的解释。

Description

可扩展设备和依赖于域的自然语言理解
背景技术
在当前实践中,用户经常经由语言理解(LU)系统与计算设备和其他设备交互。典型的LU系统在用户与特定应用(或一些其他设备功能)的交互过程中从用户接收口头或键入的语言项。如本文中所使用的,“语言项”是指以自然语言被表达的任何信息,诸如查询、命令等。LU系统识别语言项中的单词,并且然后整体解释语言项的含义,以提供解释结果。然后,应用根据解释结果执行某个动作。例如而非限制,基于用户的命令或查询,应用可以执行:搜索操作(例如,从因特网或其他信息库取回信息);知识库查找操作;服务访问操作(例如,以访问web服务);用于控制某些程序功能或设备的控制操作等。
每个开发者通常生成应用于特定服务点和应用域的LU系统。例如,开发者可以生成用于游戏控制台的特定用途的LU系统,以用于解释用户的游戏命令的目的。另一开发者可以生成用于智能手机的特定用途的LU系统,以便向用户提供导航帮助,等等。然而,上述开发LU系统的方法是劳动密集型的,成本很高并且容易出错。
发明内容
本文中描述了一种用于处理从特定端点机构接收的语言项的计算机实现的技术。特定端点机构与一组可能的端点机构中的一个可能的端点机构对应。在一些情况中,端点机构与用户通过其录入语言项的特定用户计算设备对应;例如,智能手机与一种类型的端点机构对应,而游戏控制台与另一种端点机构对应。在其他情况中,端点机构与用户通过其录入语言项的用户计算设备上运行的特定程序组件对应;例如,浏览器程序与一种类型的端点机构对应,而消息工作流程序(例如,视频会议组件)与另一种端点机构对应。在任何一种情况中,端点机构都可以被认为是设备实现的,因为它在某个(些)计算设备上运行。该技术以考虑到语言项所源自的特定端点的方式使用语言理解(LU)系统来解释语言项。
在一个实现中,LU系统包括被配置为从特定端点机构接收语言项的接口组件。LU系统还包括独立于端点的子系统、依赖于端点的子系统和排序组件。独立于端点的子系统以独立于语言项所源自的特定端点机构的方式解释语言项。依赖于端点的子系统以依赖于语言项所源自的特定端点机构的方式解释语言项。排序组件基于由独立于端点的子系统和依赖于端点的子系统生成的中间结果来生成最终解释结果。最终解释结果表示对输入语言项的含义的解释。
在一个实现中,独立于端点的子系统包括一个或多个独立于端点的解释器组件,每个独立于端点的解释器组件以与独立于端点的方式操作。依赖于端点的子系统包括一个或多个依赖于端点的解释器组件,每个依赖于端点的解释器组件以依赖于端点的方式操作。每个解释器组件被配置为解释指向特定域(例如,特定的终端用户应用场景)的语言项。
总的来说,LU系统本质上是灵活且可扩展的。开发者可以添加(和去除)新的应用,并且以零散的方式引入新的端点机构,而不会影响LU系统的所有部分。反过来,这些特性促进LU系统的开发和维护。
LU系统还提供语言项的准确解释,例如,通过考虑到其中语言项的含义依赖于用于录入该语言项的端点机构的那些情况。否则,LU系统提供跨不同端点机构通常一致的用户体验。
上述技术可以在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面演示、制品等中被实施。
提供这一“发明内容”是为了以简化的形式介绍一些概念;这些概念在下面的“具体实施方式”中被进一步描述。本“发明内容”不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在用于限制所要求保护的主题内容的范围。
附图说明
图1示出了一个说明性环境的概述,在该环境中语言理解(LU)系统以依赖于语言项所源自的端点机构的方式来解释语言项。
图2示出了图1的环境的一个特定实现。
图3示出了用于在图1的环境中使用的包括一个或多个解释器组件的依赖于端点的子系统。
图4示出了用于在图3的子系统中使用的说明性依赖于端点的解释器组件的高级表示。
图5至图7示出了解释器组件的三个相应实现方式。
图8示出了使用机器学习模型的解释器组件。
图9示出了使用规则应用引擎的解释器组件。
图10示出了描述图1的LU系统的一种操作方式的说明性过程。
图11示出了开发者可以用来解决对环境(图1)的改变的说明性过程。
图12示出了可以被用于实现前述附图中所示特征的任何方面的说明性计算功能。
在整个公开内容和附图中使用相同的数字来引用相同的组件和特征。系列100编号指的是最初在图1中找到的特征,系列200编号指的是最初在图2中找到的特征,系列300编号指的是最初在图3中找到的特征,依此类推。
具体实施方式
本公开内容如下组织。A部分描述以依赖于语言项所源自的端点机构的方式解释语言项的语言理解(LU)系统。B部分阐述解释A部分的LU系统的操作的说明性方法。C部分描述可以被用于实现A部分和B部分中描述的特征的任何方面的说明性计算功能。
作为初步事项,一些附图在一个或多个结构组件(也被称为功能、模块、特征、元件等)的上下文中描述概念。在一个实现方式中,图中所示的各种组件可以通过在计算机设备上运行的软件或硬件(例如,芯片实现的逻辑功能)等或其任何组合而被实现。在一种情况中,附图中各个组件的所示出的成为不同的单元的分离可以反映相应的不同的物理和有形组件在实际实现方式中的使用。备选地或附加地,附图中所示的任何单个组件可以由多个实际物理组件实现。备选地或附加地,附图中的任何两个或更多个单独组件的描绘可以反映由单个实际物理组件执行的不同功能。C部分提供关于附图中所示功能的一个说明性物理实现方式的附加细节。
其他附图以流程图的形式描述概念。在这种形式中,某些操作被描述为构成以特定顺序执行的不同框。这样的实现方式是说明性的而非限制性的。本文中描述的某些框可以组合在一起并且在单个操作中执行,某些框可以分成多个组成框,并且某些框可以按照与本文中所示的顺序不同的顺序执行(包括执行框的并行方式)。在一个实现方式中,流程图中示出的框可以由在计算机设备上运行的软件或硬件(例如,芯片实现的逻辑功能)等或其任何组合而被实现。
关于术语,短语“被配置为”包括用于执行所标识的操作的各种物理和有形机构。这些机构可以被配置为使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等或其任何组合来执行操作。
术语“逻辑”包括用于执行任务的各种物理和有形机构。例如,流程图中示出的每个操作与用于执行该操作的逻辑组件对应。可以使用例如在计算机设备上运行的软件、硬件(例如,芯片实现的逻辑功能)等或其任何组合来执行操作。当由计算设备实现时,逻辑组件以任何实现的方式被表示为计算系统的物理部分的电子组件。
本文中描述的任何存储资源或存储资源的任何组合可以被视为计算机可读介质。在很多情况中,计算机可读介质代表某种形式的物理和有形实体。术语计算机可读介质还包括传播信号,例如经由物理渠道和/或空中或其他无线介质等发射或接收的信号。然而,特定术语“计算机可读存储介质”和“计算机可读存储介质设备”明确地排除传播信号本身,同时包括所有其他形式的计算机可读介质。
以下说明可将一个或多个特征标识为“可选的”。这种类型的陈述不应当被解释为可以被视为可选特征的详尽指示;也就是说,虽然未在文中明确指出,但其他特征可以被视为可选特征。此外,对单个实体的任何描述都不是要排除多个这样的实体的使用;类似地,对多个实体的描述并不旨在排除单个实体的使用。此外,虽然描述可以将某些特征解释为执行所标识的功能或实现所标识的机构的替代方式,但是这些特征也可以按照任何组合方式被组合在一起。最后,术语“示例性”或“说明性”是指潜在的很多实现方式中的一种实现方式。
A.说明性系统
图1示出了一个说明性环境102的概述,其中语言理解(LU)系统104解释从端点机构106接收的语言项。通常,语言项与用户以自然语言表达的任何信息对应,自然语言包括一个或多个单词和/或其他含义符号。例如,在某些情况中,语言项可以对应于查询。用户可以提交查询以便检索信息,诸如当用户提交查询“通过Tom Cruise向我展示电影”时。在其他情况中,语言项可以对应于命令。用户可以提交命令以控制一件设备,诸如当用户说“播放电影Mission Impossible”时。在其他情况中,语言项可以与实施任何其他相应用户意图的任何其他表达对应。
本文中所使用的术语端点机构与用户通过其提供语言项的任何数据处理设备对应。在一些情况中,端点机构与特定用户计算设备对应,诸如但不限于:台式个人计算设备、膝上型计算设备、游戏控制台、机顶盒设备、平板型计算设备、媒体消费设备(诸如电子书阅读器设备)、智能手机、可穿戴计算设备、智能设备等。在其他情况中,端点机构与程序组件对应,诸如但不限于:浏览器组件、消息传送工作流组件(诸如视频会议组件)等。在其他情况中,端点机构与在特定用户计算设备上运行的特定程序组件的组合对应,诸如在游戏控制台上运行的浏览器程序等。在任何情况中,可以说端点机构是物理的或设备实现的,因为它由一个或多个计算设备或其他处理设备实现。
用户可以按照任何形式录入语言项。例如,用户可以按照口语形式、手写文本形式、键入文本形式等提供语言项。端点机构包括(或以其他方式与其相关联)接收语言项的输入设备。例如,智能手机端点机构包括用于接收用户的口头查询或命令的一个或多个麦克风。
不同的端点机构通常具有不同的硬件特征和/或软件特征。例如,智能手机端点机构可以包括光机构和相机设备,而游戏控制台端点机构通常缺少这些设备。相反,游戏控制台端点机构可以包括一个或多个图形处理单元(GPU),而智能手机端点机构通常缺少该设备。此外,不同的端点机构通常可以访问不同的相应的应用集合。
此外,用户在不同上下文中与不同端点机构交互。例如,用户可以在移动环境中与智能手机端点机构交互,例如,在步行、骑车等时。相反,用户通常在固定设置中与游戏控制台机构交互,诸如固定的家庭环境。
由于上述差异,在某些情况中,用户可以经由不同的端点机构录入不同的语言项。例如,与游戏控制台端点机构相比,用户可能更倾向于使用智能手机端点机构发出寻找特定机构(例如,餐馆、商店等)的命令。相反,与智能手机端点机构相比,用户可能更倾向于经由家庭娱乐端点机构发出媒体控制命令。
用户的命令或查询可以具有相同的词汇形式,但是可以在不同的相应上下文中表达不同的意图。例如,用户可以在移动通过特定城市的同时使用智能手机端点机构发出命令“寻找Hotel California”,目的是寻找酒店。用户可以使用家庭娱乐端点机构发出相同的命令以找到名为“Hotel California”的特定歌曲。在另一种情况中,用户可以使用智能手机端点机构发出命令“回家”,目的是获取到用户的实际家园的方向。用户可以使用游戏控制台端点机构发出相同的命令以访问特定应用的主页。
在以上示例中,依赖于用户的基本意图,用户的命令或查询以不同的应用域为目标。例如,使用智能手机端点机构发出命令“回家”的用户以导航应用为目标,而使用游戏控制台端点机构发出命令“回家”的用户可以以媒体控制应用为目标。在其他情况中,用户的输入语言项在不同的上下文中可以具有不同的含义,但是那些单独的含义可以都以相同的应用域为目标。
在其他情况中,用户与某些应用的交互在很大程度上不依赖于用户访问应用的端点机构。例如,考虑提供天气相关信息的天气应用。用户的查询“西雅图的当前温度是多少?”可能具有相同的含义,而无论用户是在他或她的智能手机端点机构还是用户的游戏控制台端点机构上发出该查询。
总之,在不同情况中由用户录入的语言项可能存在歧义。为了解决这个问题,LU系统104提供单个基础设施,用于以依赖于已经通过其录入语言项的端点机构的方式解释用户的输入语言项。凭借该特征,LU系统104提供准确地解释语言项的相应含义的方式。LU系统104的其他益处如下所述。
在一个实现方式中,LU系统104包括以下主要特征:接口组件108、独立于端点的子系统110、依赖于端点的子系统112和排序组件114。LU系统104的主要特征通常将在下面以自上而下的方式描述。后面的附图和随附的解释提供关于LU系统104的上述特征及其相关益处的附加细节。
接口组件108提供LU系统104通过其从端点机构106接收语言项的任何机构。接口组件108还向端点机构和/或其他实体提供输出结果。例如,接口组件108可以提供用户可以通过其录入语言项的一个或多个用户界面呈现,例如,以基于文本的形式或某种其他形式。另外,接口组件108可以提供用于处理语言项的功能,诸如以下任何一种:路由设备、负载平衡设备、用户认证功能、安全功能等。路由设备将输入语言项路由到独立于端点的子系统110和依赖于端点的子系统112。
另外,接口组件108可以包括用于将输入信号(其表示输入语言项)转换为识别信息以由独立于端点的子系统110和依赖于端点的子系统112处理的识别功能。例如,接口组件108可以包括用于将表示口头语言项的音频信号转换为与语言项相关联的单词的语音识别组件。语音识别组件可以使用任何已知技术来执行该任务,诸如机器学习神经网络。附加地或备选地,接口组件108可以包括手写识别组件等。在其他情况中,接口组件108不需要执行转换,例如当用户使用键盘录入设备作为自由格式文本输入语言项时。
独立于端点的子系统110以独立于其所源自的端点机构的方式解释输入语言项以生成第一中间结果116。它使用一个或多个独立于端点的解释器组件118来这样做。每个独立于端点的解释器组件处理与特定域相关的语言项以生成解释器结果。反过来,域指的是解释器组件被设计为处理的任务范围。例如,一种独立于端点的解释器组件对应于与天气相关的域。该独立于端点的解释器处理与天气有关的查询。独立于端点的解释器组件不需要考虑与天气相关的查询所源自的端点机构,因为该因素通常不会影响查询的含义。
在一些情况中,解释器组件可以被设计为与特定应用交互。这里,解释器组件的域与应用被设计为处理的任务的范围同范围(co-extensive)。在其他情况中,解释器组件可以被设计为仅处理与特定应用或设备功能相关联的任务的子集。在其他情况中,解释器组件可以被设计为处理与两个或更多个应用或两个或更多个设备功能相关联的任务。
依赖于端点的子系统112以依赖于其所源自的端点机构的方式解释输入语言项以生成第二中间结果120。它使用一个或多个依赖于端点的解释器组件122来这样做。每个依赖于端点的解释器组件处理与特定域相关的语言项以生成解释器结果。例如,一种依赖于端点的解释器组件对应于与媒体搜索相关的域。该依赖于端点的解释器组件处理与媒体项有关的查询,诸如歌曲标题、电影标题等。该依赖于端点的解释器组件考虑查询所源自的端点机构以帮助消除某些查询的歧义,例如当用户发出上述查询“查找Hotel California”以确定用户是否希望找到一首歌而不是其他一些含义时。
排序组件114从独立于端点的子系统110接收第一中间结果116,并且从端点依赖系统112接收第二中间结果120。这些中间结果(116、120)传达多个可能的候选解释结果(CIR)项。每个CIR项对应于输入语言项的含义的可能解释。但是,注意,并非每个独立于端点的解释器组件和每个依赖于端点的解释器组件都需要提供解释。例如,特定解释器组件在确定其域未被调用和/或某个其他启用条件尚未满足时可以省略解释。在这种情况中,该解释器组件的解释结果可以提供没有形成解释的指示,例如,通过提供一些空的结果信息(显式地或隐式地)。因此,当本说明书陈述排序组件114接收第一中间结果116和第二中间结果120两者时,该陈述将被宽泛地解释为包括其中一些结果可以传达空值信息的情况。实际上,在一些情况中,仅独立于端点的子系统110或依赖于端点的子系统112提供一个或多个非空CIR项,但不是两者。在其他情况中,两个子系统(110、112)都贡献非空CIR项。
两个或更多个CIR项可能冲突,例如当命令“回家”的第一解释反映导航到用户家的请求并且命令“回家”的第二解释反映前进到主页的请求时。排序组件114为每个可能的CIR项指派得分值,以对应于CIR项反映语言项的真实含义的可能性。排序最高的CIR项对应于最可能的解释。总之,排序组件114生成最终解释结果,其反映全部或一些上述得分值。
在其他实现方式中,LU系统104省略了排序组件114。在这种情况中,最终解释结果对应于由独立于端点的子系统110和依赖于端点的子系统112提供的中间解释结果。
做动作组件124基于最终解释结果执行某个动作。做动作组件124可以表示任何应用的一部分。例如,做动作组件124可以表示由LU系统104和/或某个其他系统提供的应用功能。备选地或附加地,做动作组件124可以表示由语言项所源自的特定端点机构提供的应用功能。虽然未示出,但是排序组件114可以经由接口组件108向做动作组件124发送最终解释结果(在做动作组件124不是LU系统104本身的一部分的那些实现方式中)。
仅举几个示例,一种类型的做动作组件可以基于解释的用户查询来执行搜索或知识库查找操作。另一种类型的做动作组件可以响应于解释的用户命令生成导航路线。另一种类型的做动作组件可以响应于用户命令而发送消息。另一种类型的做动作组件可以响应于用户命令而控制媒体项的回放,或者控制某个其他设备或应用,等等。
备选地或附加地,做动作组件124可以执行系统功能。例如,假定LU系统104断定用户的语言项的最可能解释指示用户希望执行不能使用用户当前与之交互的端点机构立即执行的某个任务。例如,用户可以发出“打开手电筒”的命令,但是用户当前使用的端点机构缺少光机构。或者,用户可以发出“将报告发送给Jim”的命令,但是用户当前使用的端点机构没有消息发送功能。做动作组件124可以按照不同方式解决这种情况,诸如通过:向用户呈现错误消息;向用户提供关于如何执行期望任务的指令;基于用户的语言、项目执行搜索(例如,以提供关于用户的查询或命令的主题的信息);指示另一端点机构执行期望任务;将关于期望任务的信息保存在远程中央存储器(未示出)中,远程中央存储器使得信息稍后能够由可以执行任务的端点机构检索,等等。
总之,LU系统104提供各种益处。首先,在某些情况中,LU系统104基于用于提供那些项目的端点机构来修改其对语言项的解释。这个特征提高了LU系统的解释的整体准确性。例如,LU系统104可以基于被用于录入该命令的端点机构的知识正确地解释命令“回家”。提高的准确性增强了用户体验。
第二,LU系统104提供用于处理用户提交的语言项的单个集成框架。当与每个特定的分析域交互时,该单个框架有助于跨不同的端点机构提供一致的用户体验。例如,考虑执行媒体搜索功能的应用。用户将以相同的基本方式感知应用,而无论用户使用什么端点机构与应用交互,除非如上所述,关于端点信息确实影响语言项的解释的那些特定情况。
第三,LU系统104以可扩展且有效的方式处理对环境102的改变。例如,如将在B部分中更全面地描述的,开发者可以添加新的解释器组件和/或适应新的端点机构而无需整体上重新设计LU系统104。
图2示出了图1的环境102的一个特定实现方式。这里,该组端点机构106与各种用户计算设备(例如,台式个人计算设备端点机构、智能手机端点机构202、游戏控制台端点机构等)对应。端点机构106还可以包括一个或多个程序组件,诸如浏览器组件204、消息传送工作流组件206(例如,视频会议组件)等。
LU系统104可以与关于端点机构106远程的计算功能对应,例如,与包括一个或多个服务器计算设备的云计算环境对应。服务器计算设备可以设置在单个站点处,或者可以分布在多个站点上。每个端点机构可以经由一个或多个通信渠道208与LU系统104交互。通信渠道208可以对应于局域网、广域网(例如,因特网)、一个或多个点到点链接等、或其任何组合。
LU系统104可以按照不同方式检测用户正在使用的端点机构。在一种方法中,端点机构将语言项与字段值一起发送,字段值标识正在使用的端点机构的类型。端点机构可以发送标识正在使用的端点机构的其他功能(诸如端点机构的硬件功能等)的一个或多个其他字段值。LU系统104可以读取这些字段值以确定正在使用的端点机构的性质。LU系统104还可以可选地以不同方式确定用户的身份,例如,基于接口组件108已经与端点机构建立的认证用户会话,和/或基于通过端点机构与语言项一起提交的用户标识信息。
可选简档管理系统210可以维护与不同的相应用户相关联的用户简档。数据存储器212存储用户简档。每个用户简档提供关于特定用户的信息,诸如用户偏好、用户人口统计信息、用户历史信息等。每个用户简档还可以包括与用户有关的定制语言理解信息,诸如一个或多个用户特定语言理解模型、偏好值、规则、先前语言项(由用户提交的)等。LU系统104可以基于数据存储器212中提供的用户简档以定制方式解释用户的语言项。在其他情况中,LU系统104以用户不可知的方式解释用户的语言项,即,不参考任何用户特定信息。
图2还描绘了一个说明性端点机构202的组件,例如,其可以与智能手机端点机构对应。端点机构202包括用于从用户接收语言项的一个或多个输入设备214(例如,键输入机构、麦克风、触摸屏接口机构等)。端点机构202还包括用于显示输出结果的一个或多个输出设备216,包括显示屏、扬声器、打印机等。端点机构202还包括用于与LU系统104交互的通信组件218,例如,对应于网卡等。
端点机构202还包括用于执行各种任务的一个或多个客户端程序组件220。例如而非限制,客户端程序组件220可以包括用于执行导航功能的导航程序组件、用于控制媒体项的呈现的媒体访问程序组件、用于执行搜索功能的搜索程序组件等。或者,端点机构202可以与一个或多个远程实现方式的程序组件222交互。远程实现方式的程序组件222可以与由一个或多个远程服务器计算设备提供的应用功能对应。或者,端点机构202可以访问的任何程序组件可以通过由(本地)端点机构202提供的一些应用功能和由远程服务器计算设备(或多个设备)提供的一些应用功能以分布式方式而被实现。
在其他情况中,端点机构与在用户计算设备上运行的程序组件对应。例如,这样的端点机构可以与浏览器组件204或消息传送工作流组件206等对应。或者,端点机构与在一个或多个服务器计算设备上和/或在某个其他计算平台上运行的程序组件对应。或者,端点机构可以与由用户计算设备(对应于本地功能)和一个或多个服务器计算设备(对应于远程功能)以分布式方式而被实现的程序组件对应。
最后,图2指示端点机构202可以可选地包括任何客户端侧语言理解(LU)组件224。在一种情况中,客户端侧LU组件224在本地执行上面描述为由远程LU系统104执行的一个或多个任务。在另一种情况中,客户端侧LU组件224执行LU系统104的所有任务,从而完全消除对(远程)LU系统104的使用。例如,智能手机端点机构可以使用其自己的资源在本地解释输入语言项,而无需与LU系统104交互。换言之,在该实现方式中,每个用户计算设备可以实现LU系统104的自己的实例化。
图3示出了图1的依赖于端点的子系统112的一个实现方式的更详细的图示。依赖于端点的子系统112包括一个或多个依赖于端点的解释器组件(302、304、306)。图4示出了一个这样的说明性依赖于端点的解释器组件402。依赖于端点的解释器组件402接收输入语言项、端点信息和/或其他上下文信息。端点信息描述已经提供语言项的端点机构的类型。其他上下文信息可以描述已经提供语言项的上下文的其他方面,诸如端点机构的位置、一天中的时间、端点机构的运动状态等。依赖于端点的解释器组件402生成表达语言项的解释的解释器结果。
独立于端点的子系统112可选地还包括后处理组件308。后处理组件308生成第二中间结果120(而独立于端点的系统110生成第一中间结果116)。或者,如果省略后处理组件308,则解释器结果的各种实例(由依赖于端点的解释器组件(302、304、306)提供)与第二中间结果120对应。
当使用时,后处理组件308可以执行各种后处理任务。例如,鉴于端点信息,后处理组件308可以过滤掉不可行的解释器结果的一个或多个实例。例如,假定用户在使用游戏控制台端点机构的同时发出命令“打开手电筒”。进一步假定依赖于端点的解释器组件之一将语言项解释为打开与端点机构相关联的光机构的请求。后处理组件308可以禁用该解释(及其相关联的解释器结果),因为游戏控制台端点机构不包括光机构。然而,如果用户已经经由智能手机端点机构提供了相同的命令,则后处理组件308将不会禁用该解释;这是因为智能手机端点机构通常包括光机构。在另一实现方式中,后处理组件308可以向上述解释指派概率权重,而不是直接消除它。在又一实现方式中,解释命令“打开手电筒”的解释器组件可以并入后处理组件308的上述功能,例如,通过抑制不太可能的解释或向不太可能的解释指派低的得分。该实现方式将消除关于该特定功能的后处理组件308的使用。
注意,依赖于开发者如何配置,各个依赖于端点的解释器组件可以具有任何范围。例如,一种依赖于端点的解释器组件可以关于单个端点机构以及关于特定域来分析语言项。另一种依赖于端点的解释器组件可以关于特定域关于两个或更多个端点机构分析语言项。
尽管未示出,但是图1的独立于端点的系统110可以具有与上述依赖于端点的子系统112相同的架构和行为,除了独立于端点的系统110没有考虑到端点信息。此外,独立于端点的子系统110可以(可选地)省略后处理组件308。
通常,注意,图1指示LU系统104中的不同组件可以考虑端点信息(其指示已经使用什么端点机构来提供语言项),包括任何依赖于端点的解释器组件(例如,解释器组件302、304、306)、后处理组件308(如果使用的话)和排序组件114。例如,依赖于端点的解释器组件可以部分地基于端点信息来进行输入查询的第一级解释。排序组件114可以做出第二级决策来处理由各个解释器组件提供的结果。在这样做时,排序组件114可以确定输入查询的最佳解释是由独立于端点的解释器组件还是依赖于端点的解释器组件给出。或者,排序组件114可以基于由两个或更多个解释器组件提供的结果的某种组合来生成最终解释结果。
图5示出了任何解释器组件502的第一实现方式,例如,对应于独立于端点的解释器组件或依赖于端点的解释器组件。解释器组件502包括域确定组件504、意图确定组件506和槽值(slot value)确定组件508。
域确定组件504确定与输入语言项相关联的最可能域。如上所述,域涉及语言项所属的一般主题,其可以与由特定应用或这些任务的子集处理的一组任务对应。例如,域确定组件504可以确定命令“查找Mission Impossible”属于媒体搜索域。
意图确定组件506确定与输入语言项相关联的意图。意图与用户可能希望通过提交语言项来实现的目标对应。例如,提交命令“查找Mission Impossible”的用户打算找到名为“Mission Impossible”的特定电影。提交命令“购买Mission Impossible”的用户打算购买电影“Mission Impossible”,等等。在域仅包括单个意图的情况中,解释器组件502可以省略域确定组件504。意图确定组件506还可以将其分析基于由域确定组件504提供的分类结果。
槽值确定组件508确定语言项中的槽值。槽值与应用在解释语言项时执行所请求的任务所需要的信息项对应。例如,命令“在喜剧类型中查找Jack Nicolson电影”包括标识名为“Jack Nicolson”的演员的槽值“Jack Nicolson”以及与所请求的电影类型对应的槽值“喜剧”。槽值确定组件508还可以将其分析基于由域确定组件504和/或意图确定组件506提供的分类结果。
域确定组件504、意图确定组件506和槽值确定组件508中的任何一个可以使用任何技术来执行它们各自的功能。例如,这些组件(504、506、508)中的任何组件可以使用一个或多个机器学习(统计)模型。这样的模型使用一组机器学习的权重值将输入特征值的集合映射到模型输出值。训练系统(未示出)基于标记的语言项的训练集导出权重值。某些特征值描述语言项的特性。其他特征值描述与语言项有关的上下文因素,例如,其描述已经提交语言项的情况。在依赖于端点的解释器组件的特定情况中,一个或多个上下文相关的特征值可以描述已经用于提供语言项的端点机构的类型。另外,一个或多个其他上下文相关特征值可以描述端点机构的硬件和/或软件能力。例如,一个上下文相关特征值可以指示端点机构是否具有光机构等。
仅举一个说明性和非限制性情况,域确定组件504可以与机器学习的分类模型对应,诸如线性模型、深层结构神经网络模型、聚类模型、决策树模型、支持向量机模型等。意图确定组件506同样可以与这些模型中的任何一个对应。
例如,一个线性模型可以生成由公式y=w1*f1+w2*f2+…wn*fn给出的分类得分值y,其中wi对应于机器学习的权重值,并且fi对应于特征值。得分值y映射到特定分类结果。一个神经网络模型可以包括将输入矢量z1映射到输出矢量y的N个神经元层。输入矢量z1描述输入语言项。任何层j中的值可以由公式zj=f(Wjzj-1+bj)给出,j=2,...N。符号Wj表示由训练系统(未示出)产生的第j权重矩阵,并且符号bj指的是也由训练系统产生的可选的第j偏置矢量。被称为激活函数的函数f(x)可以按照不同的方式而被表达,诸如双曲正切函数。得分矢量y映射到特定分类结果。
槽值确定组件508可以与机器学习的条件随机场(CRF)模型对应。在这种方法中,CRF模型提供由下式定义的最可能的槽序列:
在该等式中,术语X指的是检测到的语言项(x1,x2,...,xT)中的标记序列,并且Y指的是指派给标记的标签序列(y1,y2,...yT),其中标签选自一组可能的标签C。标签对应于槽变量,诸如媒体搜索域中的标签、“演员姓名”、“发行日期”、“类型”等。在上面的示例中,CRF模型将确定术语“Jack Nicolson”对应演员的名字,其具有特定值“Jack Nicolson”。
备选地或附加地,域确定组件504、意图确定组件506和槽值确定组件508中的任何一个可以使用规则应用引擎来执行它的相应的分析。例如,这些组件(504、506、508)中的任何组件可以应用将输入语言项中的某些关键字映射到适当的分类结果的规则。例如,意图确定组件506可以应用指示与模板“buy<x>”匹配的任何语言项是指购买特定产品的意图的规则,其中该产品由变量x的值标识。
其他规则可以考虑端点信息。例如,一个规则可以指示读出“回家”的语言项指示用户希望找到去往他(物理)家的路线,但仅当用户经由他或她的智能手机端点机构或汽车导航端点机构发出该命令时。否则,规则可以指示语言项“回家”指示用户希望返回到某个应用的主页。任何规则都可以按照任何方式而被表达,诸如通过IF-THEN表达式、REGEX表达式、查找表或函数等。
引用上述技术是为了说明而非限制;解释器组件502可以使用其他策略来解释语言项,诸如使用解析树来分析语言项并且用描述性标签标记其部分的语言解析器。
图6示出了包括域确定组件604、意图确定组件606和槽值确定组件608的另一解释器组件602。解释器组件602具有与图5的解释器组件502相同的构造和操作,除了在图6中,意图确定组件606与槽值确定组件608而不是串行而是并行地执行其操作。
图7示出了包括组合组件704的另一解释器组件702,组合组件704组合上述域确定组件、意图确定组件和槽值确定组件(或其某个子集)的功能。组合组件704可以使用任何上述技术来执行其任务,诸如机器学习模型、规则应用引擎、语言解析器等。
同样,排序组件114(图1)可以使用任何上述技术来对候选解释结果(CIR)项进行排序。例如,排序组件114可以使用机器学习模型。例如,排序组件114可以使用线性模型、决策树模型(或增强的决策树模型)、支持向量机模型、概率相关性模型等或其任何组合而被实现。
在操作中,机器学习排序组件114接收描述要排序的CIR项的一个或多个特征值作为输入。例如,CIR项可以与由特定解释器组件提供的解释器结果对应;在这种情况中,机器学习模型可以接收描述这些解释器结果的一个或多个特征值。机器学习模型还可以接收描述端点信息和/或其他上下文信息的一个或多个其他特征值。如上所述,端点信息描述已经提供语言项的端点机构的类型。其他上下文信息可以描述已经提供语言项的上下文的其他方面,诸如但不限于:用户的当前位置;一天中的当前时间;用户的运动状态;用户的当前用户会话(例如,描述用户在当前用户会话中执行的其他查询和动作)等。LU系统104还可以从一个或多个外部源(诸如知识库等)检索上下文信息。排序组件114使用其模型将所有输入特征值映射到与所考虑的CIR相关联的概率值。在为每个解释器组件(和相应的CIR项)生成概率值之后,排序组件114可以标识具有最高似然性的CIR项,其对应于语言项的最可能含义。
前进到图8,该图一般性地示出了在训练示例的语料库(在数据存储器804中)上操作以产生训练模型806的机器学习组件802。解释器组件808与LU系统104的任何解释器组件或其一部分对应。解释器组件808使用经训练的模型806来分析输入语言项(连同诸如端点信息等上下文信息)以提供解释器结果。机器学习组件802可以使用任何机器学习技术来产生任何相应的机器学习的模型,其非限制性示例如上所述。
数据存储器804中的训练示例与标记的语言项对应。例如,考虑用于生成意图模型的语言项集合。每个这样的训练示例可以包括语言项(例如,查询、命令等)、该语言项的解释(指定特定意图)、以及该解释是正确还是不正确的指示。解释及其评估(正确或不正确)构成语言项的标签。被指定为正确的训练示例构成肯定训练示例,而被指定为不正确的训练示例构成否定训练示例。专家可以提供意图标签。备选地或附加地,由终端用户提供的反馈信息可以构成意图标签。备选地或附加地,可以使用某种自动机构来生成推断的意图标签。
图9示出了规则应用引擎902和用于实现与解释器组件906相关联的逻辑的相关联的规则集合(在数据存储库904中)。解释器组件906再次与LU系统104的任何解释器组件或其部分对应。规则应用引擎902可以使用任何基于规则的技术而被实现,诸如应用IF-THEN规则集合的引擎、人工智能引擎、专家系统等。IF-THEN规则将特定语言项(以及与之相关联的上下文信息)映射到解释器结果。例如,一个IF-THEN规则可以指示“如果”用户的输入命令包含短语“回家”,并且如果用户当前正在与游戏控制台端点机构交互,“则”正确的解释应当反映用户想要前进到主页呈现。
在其他情况中,任何解释器组件都可以并入图8中所示的机器学习技术类型和图9中所示的基于规则的技术。例如,解释器组件可以使用机器学习的模块来生成第一解释器结果。相同的解释器组件可以使用基于规则的模块来生成第二解释器结果,例如,与机器学习的模块的操作并行地。然后,解释器组件可以使用组合器模块以基于第一解释器结果和第二解释器结果来生成最终解释器结果。例如,组合器组件可以连结(组合)第一解释器结果和第二解释器结果,或者可以在第一解释器结果与第二解释器结果之间选择,或者可以根据由第一解释器结果和第二解释器结果提供的证据生成第三解释器结果,等等。组合器组件本身可以使用机器学习和/或基于规则的技术来执行其任务。在另一实现方式中,任何解释器组件可以与基于规则的模块串联地应用机器学习的模块,例如,其中基于规则的模块从机器学习的模块接收解释器结果,反之亦然。
排序组件114可以使用图8或图9的技术或它们的组合。关于机器学习技术,数据存储器804中的训练示例可以包括反映来自终端用户的反馈信息的标签。例如,在接收到最终解释结果时,终端用户可以明确地或隐含地指示答案(由那些结果传达的)是正确的还是不正确的。结果,机器学习的排序组件114关于不同端点机构的使用隐含地考虑不同解释结果的历史流行度。这进一步表示,当面对模糊情况时,机器学习的排序组件114通常将历史上流行的解释排序为高于不太流行的解释。关于基于规则的技术,排序组件114可以应用经验上反映端点特定的流行度信息的一个或多个规则。
最后,注意,任何机器学习的模型或规则应用引擎可以与用户特定功能或用户不可知功能对应。在前一种情况中,模型或引擎提供针对单个用户定制的结果。例如,可以基于与特定用户提交的先前查询对应的训练样本的语料库来开发用户特定的机器学习模型。在后一种(用户不可知)情况中,模型或引擎提供独立于与模型或引擎交互的特定用户的结果。在第三实现方式中,任何模型或引擎可以对应于混合功能,其包括用户特定组件和用户不可知组件。
B.说明性过程
图10和图11示出了以流程图的形式解释A部分的语言理解(LU)系统104的操作的说明性过程(1002、1102)。由于已经在A部分中描述了LU系统104的操作的基本原理,因此本部分将以概要的方式解决某些操作。如“具体实施方式”的前言部分所述,每个流程图表示为以特定顺序执行的一系列操作。但是这些操作的顺序仅仅是代表性的,并且可以按照任何方式变化。
在图10的框1004中,LU系统104响应于用户与关联于特定端点机构的输入设备的交互,从特定设备实现的端点机构接收语言项。特定端点机构与一组不同类型的端点机构106中的一个对应。在框1006中,LU系统104处理语言项以生成最终解释结果。LU系统104包括独立于端点的子系统110,其用于以独立于语言项所源自的特定端点机构的方式解释语言项,其产生第一中间结果;以及依赖于端点的子系统112,其用于以依赖于特定端点机构的方式解释语言项,其产生第二中间结果。在框1008中,做动作组件124响应于最终解释结果而执行计算机实现的动作。
图11示出了用于解决对环境102(图1)的改变的过程1102。开发者关于所考虑的应用(以下被简称为“应用”)执行这种分析。例如,应用可以与开发者提供的新的或现有的应用对应。开发者可以在具有或没有统计分析工具(下面描述)的帮助下以手动方式执行图1的过程1102。
在框1104中,开发者确定环境102是否已经发生可能保证对LU系统104的改变的改变。例如,开发者可在以下情况中得出该结论:新的应用已经(或将要)被引入环境102;或现有应用已经(或将要)从环境102中去除;或现有应用的已修改版本已经(或将要)被引入环境102;或者新的端点机构已经(或将要)被引入环境102,现有应用与之交互(或被预期要与之交互)。
在框1106中,开发者确定现有LU系统104是否可以处理在框1104中标识的改变。开发者可以基于经验信息进行该确定,例如通过标识现有LU系统104是否向应用提供足够的服务。例如,开发者可以基于与应用交互的终端用户的显式或隐式反馈来做出该确定。备选地或附加地,开发者可以按照手动方式做出框1106的确定,例如,通过关于LU系统104的当前能力来推理应用。例如,开发者可以得出结论:当前LU系统104不处理应用,因为应用是新的并且属于新的域,而现有解释器组件都不属于该域。
在框1108中,如果确定当前LU系统104可以处理应用,则开发者将不对现有LU系统104进行任何改变。然后处理流程返回到框1104。例如,开发者可以得出结论:一个或多个现有的独立于端点的解释器组件充分地处理新的应用或新的端点机构。然后,开发者将继续依赖于这些现有的独立于端点的解释器组件来处理环境102的当前状态。
或者,假定对LU系统104进行了改变,在框1110中,开发者确定与应用的交互是否根据被用于录入语言项的端点机构而变化。对于新的或已修改的应用的情况,框1110需要确定是否根据经验已知(或者可以合理地得出结论)用户的语言项的解释基于被用于录入语言项的端点机构而变化(或将要变化)。对于现有应用的情况,框1110可能需要确定是否根据经验已知(或者可以合理地得出结论)用户的语言项的解释基于一个或多个新的端点机构(诸如新的用户计算设备、新的浏览器组件、新的消息传送工作流组件等)的引入而变化(或将要变化)。
开发者可以通过收集与不同端点机构有关的多组语言项来做出框1110的决定,并且然后手动(和/或自动)用其实际的相应含义标记语言项。然后,开发者可以执行统计分析以确定语言项的含义是否根据端点信息(标识被用于录入语言项的端点机构)而变化。例如,当开发者发现经由不同的相应端点机构录入的相同的语言项具有不同的含义时,开发者可以得出上述结论。
首先考虑框1110以否定方式被回答的情况。然后,在框1112中,开发者创建一个或多个新的独立于端点的解释器组件以处理用户与应用的交互。备选地或附加地,开发者可以修改一个或多个现有的独立于端点解释器组件。开发者可以按照不同方式对现有解释器组件进行更改,诸如通过基于已更新的训练集重新训练现有的机器学习的解释器组件,修改由规则应用引擎使用的规则集,等等。
接下来假定框1110以肯定方式被回答。然后,在框1114中,开发者创建一个或多个依赖于端点的解释器组件。备选地或附加地,开发者可以修改一个或多个现有的依赖于端点的解释器组件。备选地或附加地,开发者可以将一个或多个现有的依赖于端点的解释器组件指定为适合于处理新的端点机构。最后被提及的选项可以适用于开发者断定现有的依赖于端点的解释器组件可以充分处理一类端点机构并且应当将新端点机构添加到该类的情况。
最后,在框1116中,开发者可以(如果认为合适的话)对排序组件114进行一个或多个改变,例如,考虑引入(或去除)新的或已修改的应用、新的端点机构等。同样,这种修改可以构成重新训练机器学习的模型,调整由规则应用引擎使用的规则,等等。
注意,图11对应于其中作为整体关于应用做出二元决策的简化的情况。在其他情况中,所考虑的应用可以被视为具有不同的部分。在这种情况中,开发者可以针对每个这样的部分应用图11的过程1102,以将其视为应用本身。在框1106的上下文中,开发者可以得出结论:现有的独立于端点的解释器组件可以充分地处理应用的第一部分,并且因此对于该第一部分不保证LU系统104的改变。但是开发者可以得出结论:对LU系统104的改变适合于应用的第二部分。
作为整体应用于过程1102的一个一般结论可以陈述如下。LU系统104以可扩展的方式适应对环境102的改变。这表示开发者可以按照零散的方式将新的应用引入环境102或者考虑影响现有应用的新的端点机构的引入,而不必(必然)改变整个LU系统104。
C.代表性计算功能
图12示出了可以被用于实现在上述附图中阐述的机构的任何方面的计算功能1202。例如,图12中所示的计算功能1202的类型可以被用于实现语言理解(LU)系统104的任何方面。也就是说,例如,计算功能1202可以与至少一个服务器计算设备对应。或者,图12中所示的计算功能1202的类型可以被用于实现端点机构的任何方面。也就是说,例如,计算功能1202备选地与用户计算设备对应。在所有情况中,计算功能1202表示一个或多个物理和有形处理机构。
计算功能1202可以包括一个或多个硬件处理器设备1204,诸如一个或多个中央处理单元(CPU)、和/或一个或多个图形处理单元(GPU)等。计算功能1202还可以包括用于存储诸如机器可读指令、设置、数据等任何种类的信息的任何存储资源(也被称为计算机可读存储介质或计算机可读存储介质设备)1206。例如而非限制,存储资源1206可以包括任何类型的RAM、任何类型的ROM、闪存设备、硬盘、光盘等中的任何一种或多种。更一般地,任何存储资源可以使用用于存储信息的任何技术。此外,任何存储资源都可以提供信息的易失性或非易失性保留。此外,任何存储资源可以表示计算功能1202的固定或可移除组件。当(多个)硬件处理器设备1204执行被存储在任何存储资源或存储资源的组合中的计算机可读指令时,计算功能1202可以执行上述功能中的任何功能。计算功能1202还包括用于与任何存储资源交互的一个或多个驱动机构1208,诸如硬盘驱动器机构、光盘驱动器机构等。
计算功能1202还包括用于接收各种输入(经由输入设备1212)并且用于提供各种输出(经由输出设备1214)的输入/输出组件1210。说明性输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化垫、一个或多个摄像机、一个或多个深度相机、自由空间手势识别机构、一个或多个麦克风、语音识别机构、任何移动检测机构(例如,加速度计、陀螺仪等)等。一个特定输出机构可以包括显示设备1216和相关联的图形用户界面呈现(GUI)1218。显示设备1216可以对应于电荷耦合的显示设备、阴极射线管设备、投影机构等。其他输出设备包括打印机、模型生成机构、触觉输出机构、存档机构(用于存储输出信息)等。计算功能1202还可以包括用于经由一个或多个通信渠道1222与其他设备交换数据的一个或多个网络接口1220。一个或多个通信总线1224将上述组件通信地耦合在一起。
(多个)通信渠道1222可以按照任何方式被实现,例如,通过局域计算机网络、广域计算机网络(例如,因特网)、点对点连接等、或它们的任何组合。(多个)通信渠道1222可以包括由任何协议或协议的组合管理的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
备选地或附加地,前面部分中描述的功能中的任何功能可以至少部分地由一个或多个硬件逻辑组件执行。例如而非限制,计算功能1202(及其硬件处理器)可以使用以下各项中的一个或多个而被实现:现场可编程门阵列(FPGA);专用集成电路(ASIC);应用特定的标准产品(ASSP);片上系统(SOC);复杂可编程逻辑器件(CPLD)等。在这种情况中,机器可执行指令被体现在硬件逻辑本身中。
以下概述提供可本文所述的技术的说明性方面的非详尽列表。
根据第一方面,描述了一种由一个或多个计算设备实现的用于处理语言项的系统。语言项对应于以自然语言被表达的信息。该系统包括接口组件,其被配置为响应于由用户与关联于特定设备实现的端点机构的输入设备的交互,来从特定端点机构接收语言项。特定端点机构与一组不同类型的端点机构之一对应。该系统还包括用于以独立于语言项所源自的特定端点机构的方式解释语言项的独立于端点的子系统,独立于端点的子系统生成第一中间结果。该系统还包括用于以依赖于语言项所源自的特定端点机构的方式解释语言项的依赖于端点的子系统,依赖于端点的子系统输出第二中间结果。该系统还包括排序组件,其被配置为基于第一中间结果和第二中间结果来生成最终解释结果的。最终解释结果表示对输入的语言项的含义的解释。
根据第二方面,特定端点机构与用户通过其录入语言项的特定类型的用户计算设备对应。
根据第三方面,特定端点机构与如由计算设备实现的、用户通过其录入语言项的程序组件对应。
根据第四方面,上述程序组件对应于浏览器组件或消息传送流组件。
根据第五方面,独立于端点的子系统包括一个或多个独立于端点的解释器组件。此外,依赖于端点的子系统包括一个或多个依赖于端点的解释器组件。每个独立于端点的解释器组件被配置为以独立于指向特定域的语言项所源自的端点机构的方式解释语言项。每个依赖于端点的解释器组件被配置为以依赖于指向特定域的语言项所源自的端点机构的方式解释语言项。
根据第六方面,一个特定独立于端点的或依赖于端点的解释器组件包括被配置为确定已经被接收的语言项是否对应于特定域的域确定组件。
根据第七方面,一个特定独立于端点的或依赖于端点的解释器组件包括意图确定组件,其被配置为确定与语言项相关联的意图。
根据第八方面,一个特定独立于端点的或依赖于端点的解释器组件包括槽值确定组件,其被配置为从语言项提取一个或多个槽值。
根据第九方面,与依赖于端点的子系统相关联的一个或多个依赖于端点的解释器组件生成解释器结果的一个或多个实例。依赖于端点的子系统还包括被配置为基于端点信息来过滤解释器结果的后处理组件,端点信息标识已经被用于提供语言项的特定端点机构。
根据第十方面,排序组件标识从第一中间结果和第二中间结果中选择的、被认为是语言项的最可能解释的候选解释结果(CIR)项。排序组件至少基于标识已经被用于提供语言项的特定端点机构的端点信息来标识CIR项。
根据第十一方面,独立于端点的子系统和/或依赖于端点的子系统和/或排序组件至少部分地使用一个或多个机器学习模型而被实现。
根据第十二方面,独立于端点的子系统和/或依赖于端点的子系统和/或排序组件至少部分地使用一个或多个规则应用引擎而被实现。
根据第十三方面,做动作组件被配置为响应于最终解释结果,来执行计算机实现的动作。
根据第十四方面,提供了一种由一个或多个计算设备实现的用于处理语言项的方法。语言项对应于以自然语言被表达的信息。该方法包括响应于由用户与关联于特定端点机构相关联的输入设备的交互,从设备实现的端点机构接收语言项。特定端点机构与一组不同类型的端点机构中的一个端点机构对应。该方法还包括通过语言理解(LU)系统处理语言项,以生成最终解释结果。LU系统包括:用于以独立于语言项所源自的特定端点机构的方式解释语言项以生成第一中间结果的独立于端点的子系统;以及用于以依赖于特定端点机构的方式解释语言项以生成第二中间结果的依赖于端点的子系统。该方法还包括响应于最终解释结果来执行计算机实现的动作。
根据第十五方面,特定端点机构(在以上第十四方面中被提及)与用户通过其录入语言项的特定类型的用户计算设备和/或程序组件对应。
根据第十六方面,LU系统(在以上第十四方面中被提及)还包括排序组件,其被配置为基于第一中间结果和第二中间结果来生成最终解释结果。
根据第十七方面,独立于端点的子系统(在以上第十六方面中被提及)包括一个或多个独立于端点的解释器组件。此外,依赖于端点的子系统(在上面的第十六方面中被提及)包括一个或多个依赖于端点的解释器组件。每个独立于端点的解释器组件被配置为以独立于指向特定域的语言项所源自的端点机构的方式解释语言项。每个依赖于端点的解释器组件被配置为以依赖于指向特定域的语言项所源自的端点机构的方式解释语言项。
根据第十八方面,该方法还包括适应新的端点机构或应用而不影响LU系统的至少一个现有解释器组件的操作。
根据第十九方面,描述了一种用于存储计算机可读指令的计算机可读存储介质。计算机可读指令在由一个或多个处理器设备执行时,提供语言理解(LU)系统。LU系统包括独立于端点的子系统,其被配置为以独立于已经从其接收到语言项的特定设备实现的端点机构的方式解释语言项,独立于端点的子系统生成第一中间结果。(语言项对应于以自然语言被表达的信息。)独立于端点的子系统本身包括一个或多个独立于端点的解释器组件。每个独立于端点的解释器组件被配置为以独立于指向特定域的语言项所源自的特定端点机构的方式解释语言项。该系统还包括被配置为以依赖于特定端点机构的方式解释语言项的依赖于端点的子系统,依赖于端点的子系统生成第二中间结果。依赖于端点的子系统本身包括一个或多个依赖于端点的解释器组件。每个依赖于端点的解释器组件被配置为以依赖于指向特定域的语言项所源自的特定端点机构的方式解释语言项。该系统还包括排序组件,其被配置为标识从第一中间结果和第二中间结果中选择的、被认为是语言项的最可能解释的候选解释结果(CIR)项。
根据第二十方面,特定端点机构(在第十九方面中被提及)与用户通过其录入语言项的特定类型的用户计算设备和/或程序组件对应。
第二十一方面对应于上述第一至第二十方面的任何组合(例如,任何置换或子集)。
第二十二方面对应于例如与第一至第二十一方面相关联的任何方法对应物、设备对应物、系统对应物、装置加功能对应物、计算机可读存储介质对应物、数据结构对应物、制品对应物、图形用户界面演示对应物等。
最后,本文中描述的功能可以采用各种机制来确保任何用户数据以符合可适用法律、社会规范以及个体用户的期望和偏好的方式而被处理。例如,该功能可以允许用户明确地选择加入(并且然后明确地选择退出)功能的规定。该功能还可以提供合适的安全机制以确保用户数据的隐私(诸如数据清理机制、加密机制、密码保护机制等)。
尽管用结构特征和/或方法动作专用的语言描述了本主题内容,但是应理解,所附权利要求书中定义的主题内容不必限于上述具体特征或动作。相反,上述具体特征和动作被公开作为实现权利要求的示例形式。

Claims (15)

1.一种由一个或多个计算设备实现的用于处理语言项的系统,所述语言项对应于以自然语言被表达的信息,所述系统包括:
接口组件,其被配置为响应于由用户与关联于特定设备实现的端点机构的输入设备的交互,来从特定端点机构接收语言项,
所述特定端点机构与一组不同类型的端点机构中的一个端点机构对应;
独立于端点的子系统,其用于以独立于所述语言项所源自的所述特定端点机构的方式解释所述语言项,所述独立于端点的子系统生成第一中间结果;
依赖于端点的子系统,其用于以依赖于所述语言项所源自的所述特定端点机构的方式解释所述语言项,所述依赖于端点的子系统生成第二中间结果;以及
排序组件,其被配置为基于所述第一中间结果和所述第二中间结果来生成最终解释结果,
所述最终解释结果表示对输入的所述语言项的含义的解释。
2.根据权利要求1所述的系统,其中所述特定端点机构与所述用户通过其录入所述语言项的特定类型的用户计算设备对应。
3.根据权利要求1所述的系统,其中所述特定端点机构与由计算设备实现的、所述用户通过其录入所述语言项的程序组件对应。
4.根据权利要求1所述的系统,
其中所述独立于端点的子系统包括一个或多个独立于端点的解释器组件,
其中所述依赖于端点的子系统包括一个或多个依赖于端点的解释器组件,
其中每个独立于端点的解释器组件被配置为以独立于指向特定域的语言项所源自的端点机构的方式解释所述语言项,并且
其中每个依赖于端点的解释器组件被配置为以依赖于指向特定域的语言项所源自的端点机构的方式解释所述语言项。
5.根据权利要求4所述的系统,
其中与所述依赖于端点的子系统相关联的所述一个或多个依赖于端点的解释器组件生成解释器结果的一个或多个实例,并且
其中所述依赖于端点的子系统还包括后处理组件,所述后处理组件被配置为基于端点信息来过滤所述解释器结果,所述端点信息标识已经被用于提供所述语言项的所述特定端点机构。
6.根据权利要求1所述的系统,
其中所述排序组件标识从所述第一中间结果和所述第二中间结果中选择的、被认为是所述语言项的最可能解释的候选解释结果(CIR)项,并且
其中所述排序组件至少基于标识已经被用于提供所述语言项的所述特定端点机构的端点信息来标识所述CIR项。
7.根据权利要求1所述的系统,其中做动作组件被配置为响应于所述最终解释结果来执行计算机实现的动作。
8.一种由一个或多个计算设备实现的用于处理语言项的方法,所述语言项对应于以自然语言被表达的信息,所述方法包括:
响应于由用户与关联于特定端点机构的输入设备的交互,来从设备实现的端点机构接收语言项,
所述特定端点机构与一组不同类型的端点机构中的一个端点机构对应;
通过语言理解(LU)系统处理所述语言项以生成最终解释结果,
所述LU系统包括:
独立于端点的子系统,其用于以独立于所述语言项所源自的所述特定端点机构的方式解释所述语言项,以生成第一中间结果;以及
依赖于端点的子系统,其用于以依赖于所述特定端点机构的方式解释所述语言项,以生成第二中间结果;以及
响应于所述最终解释结果来执行计算机实现的动作。
9.根据权利要求8所述的方法,其中所述LU系统还包括排序组件,所述排序组件被配置为基于所述第一中间结果和所述第二中间结果来生成最终解释结果。
10.一种用于存储计算机可读指令的计算机可读存储介质,所述计算机可读指令在由一个或多个处理器设备执行时,提供语言理解(LU)系统,所述LU系统包括:
独立于端点的子系统,其被配置为以独立于已经从其接收到语言项的特定设备实现的端点机构的方式解释所述语言项,所述独立于端点的子系统生成第一中间结果,所述语言项对应于以自然语言被表达的信息,
所述独立于端点的子系统包括一个或多个独立于端点的解释器组件,
每个独立于端点的解释器组件被配置为以独立于指向特定域的语言项所源自的特定端点机构的方式解释所述语言项;
依赖于端点的子系统,其被配置为以依赖于特定端点机构的方式解释所述语言项,所述依赖于端点的子系统生成第二中间结果,
所述依赖于端点的子系统包括一个或多个依赖于端点的解释器组件,
每个依赖于端点的解释器组件被配置为以依赖于指向特定域的语言项所源自的所述特定端点机构的方式解释所述语言项;
以及
排序组件,其被配置为标识从所述第一中间结果和所述第二中间结果中选择的、被认为是所述语言项的最可能解释的候选解释结果(CIR)项。
11.根据权利要求4所述的系统,其中一个特定独立于端点的或依赖于端点的解释器组件包括域确定组件,所述域确定组件被配置为确定已经被接收的所述语言项是否对应于特定域。
12.根据权利要求4所述的系统,其中一个特定独立于端点的或依赖于端点的解释器组件包括意图确定组件,所述意图确定组件被配置为确定与所述语言项相关联的意图。
13.根据权利要求4所述的系统,其中一个特定独立于端点的或依赖于端点的解释器组件包括槽值确定组件,所述槽值确定组件被配置为从所述语言项提取一个或多个槽值。
14.根据权利要求1所述的系统,其中所述独立于端点的子系统和/或所述依赖于端点的子系统和/或所述排序组件至少部分地使用一个或多个机器学习的模型而被实现。
15.根据权利要求1所述的系统,其中所述独立于端点的子系统和/或所述依赖于端点的子系统和/或所述排序组件至少部分地使用一个或多个规则应用引擎而被实现。
CN201780016162.6A 2016-03-10 2017-03-03 可扩展设备和依赖于域的自然语言理解 Active CN108780444B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/067,082 US10229687B2 (en) 2016-03-10 2016-03-10 Scalable endpoint-dependent natural language understanding
US15/067,082 2016-03-10
PCT/US2017/020552 WO2017155792A1 (en) 2016-03-10 2017-03-03 Scalable device- and domain dependent natural language understanding

Publications (2)

Publication Number Publication Date
CN108780444A true CN108780444A (zh) 2018-11-09
CN108780444B CN108780444B (zh) 2022-09-23

Family

ID=58358922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780016162.6A Active CN108780444B (zh) 2016-03-10 2017-03-03 可扩展设备和依赖于域的自然语言理解

Country Status (4)

Country Link
US (1) US10229687B2 (zh)
EP (1) EP3427162A1 (zh)
CN (1) CN108780444B (zh)
WO (1) WO2017155792A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6677614B2 (ja) * 2016-09-16 2020-04-08 株式会社東芝 会議支援システム、会議支援方法及びプログラム
US10565989B1 (en) * 2016-12-16 2020-02-18 Amazon Technogies Inc. Ingesting device specific content
US11853884B2 (en) 2017-02-10 2023-12-26 Synaptics Incorporated Many or one detection classification systems and methods
US11100932B2 (en) * 2017-02-10 2021-08-24 Synaptics Incorporated Robust start-end point detection algorithm using neural network
US10957313B1 (en) * 2017-09-22 2021-03-23 Amazon Technologies, Inc. System command processing
US10600419B1 (en) * 2017-09-22 2020-03-24 Amazon Technologies, Inc. System command processing
US10861451B2 (en) * 2018-03-22 2020-12-08 Lenovo (Singapore) Pte. Ltd. Modification of user command
CN109522348A (zh) * 2018-09-25 2019-03-26 南京中新赛克科技有限责任公司 一种融合多个智能分析语言的数据处理系统和方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369830A (zh) * 2001-01-31 2002-09-18 微软公司 歧义消除语言模型
CN1610346A (zh) * 2003-10-20 2005-04-27 国际商业机器公司 提供对话定位并且能够进行会话式通信的系统和方法
US20060074670A1 (en) * 2004-09-27 2006-04-06 Fuliang Weng Method and system for interactive conversational dialogue for cognitively overloaded device users
CN1828723A (zh) * 2005-03-03 2006-09-06 台达电子工业股份有限公司 分散式语言处理系统及其所使用的输出中介信息的方法
CN1871597A (zh) * 2003-08-21 2006-11-29 伊迪利亚公司 利用一套消歧技术处理文本的系统和方法
CN101014952A (zh) * 2004-06-02 2007-08-08 捷迅研究有限公司 具有文本歧义消解功能的手持电子设备
CN101203906A (zh) * 2005-05-31 2008-06-18 罗伯特·博世公司 使用脚本的对话管理
CN101339551A (zh) * 2007-07-05 2009-01-07 日电(中国)有限公司 自然语言查询需求扩展设备及其方法
CN101847405A (zh) * 2009-03-23 2010-09-29 索尼公司 语音识别装置和方法、语言模型产生装置和方法及程序
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
JP2011257790A (ja) * 2010-06-04 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 関係情報抽出装置、その方法及びプログラム
CN103425640A (zh) * 2012-05-14 2013-12-04 华为技术有限公司 一种多媒体问答系统及方法
US20150149152A1 (en) * 2013-11-28 2015-05-28 Soundhound, Inc. Method for combining a query and a communication command in a natural language computer system
US20150227845A1 (en) * 2014-02-13 2015-08-13 Microsoft Corporation Techniques for Inferring the Unknown Intents of Linguistic Items
US20180254044A1 (en) * 2010-08-06 2018-09-06 Google Llc Disambiguating Input Based on Context

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615002A (en) * 1983-03-30 1986-09-30 International Business Machines Corp. Concurrent multi-lingual use in data processing system
US5729659A (en) * 1995-06-06 1998-03-17 Potter; Jerry L. Method and apparatus for controlling a digital computer using oral input
US20020193989A1 (en) * 1999-05-21 2002-12-19 Michael Geilhufe Method and apparatus for identifying voice controlled devices
JP2001100781A (ja) * 1999-09-30 2001-04-13 Sony Corp 音声処理装置および音声処理方法、並びに記録媒体
US7809574B2 (en) * 2001-09-05 2010-10-05 Voice Signal Technologies Inc. Word recognition using choice lists
US7313526B2 (en) * 2001-09-05 2007-12-25 Voice Signal Technologies, Inc. Speech recognition using selectable recognition modes
US7689410B2 (en) * 2004-04-23 2010-03-30 Microsoft Corporation Lexical semantic structure
US8095364B2 (en) * 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US7299181B2 (en) * 2004-06-30 2007-11-20 Microsoft Corporation Homonym processing in the context of voice-activated command systems
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8326637B2 (en) 2009-02-20 2012-12-04 Voicebox Technologies, Inc. System and method for processing multi-modal device interactions in a natural language voice services environment
US8660847B2 (en) * 2011-09-02 2014-02-25 Microsoft Corporation Integrated local and cloud based speech recognition
US20120296638A1 (en) 2012-05-18 2012-11-22 Ashish Patwa Method and system for quickly recognizing and responding to user intents and questions from natural language input using intelligent hierarchical processing and personalized adaptive semantic interface
US9619459B2 (en) 2012-10-01 2017-04-11 Nuance Communications, Inc. Situation aware NLU/NLP
US9171066B2 (en) 2012-11-12 2015-10-27 Nuance Communications, Inc. Distributed natural language understanding and processing using local data sources
US10282419B2 (en) 2012-12-12 2019-05-07 Nuance Communications, Inc. Multi-domain natural language processing architecture
US9271111B2 (en) 2012-12-14 2016-02-23 Amazon Technologies, Inc. Response endpoint selection
US9361884B2 (en) 2013-03-11 2016-06-07 Nuance Communications, Inc. Communicating context across different components of multi-modal dialog applications
US9431008B2 (en) 2013-05-29 2016-08-30 Nuance Communications, Inc. Multiple parallel dialogs in smart phone applications
KR20140143034A (ko) * 2013-06-05 2014-12-15 삼성전자주식회사 다양한 입력 기반의 서비스 제공 방법 및 그 전자 장치
US20150052231A1 (en) * 2013-08-19 2015-02-19 Qualcomm Incorporated Providing custom names for headless devices
CN112989840A (zh) 2013-08-30 2021-06-18 英特尔公司 用于虚拟个人助理的可扩展上下文感知的自然语言交互
US10162813B2 (en) 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US9698999B2 (en) * 2013-12-02 2017-07-04 Amazon Technologies, Inc. Natural language control of secondary device
US9892208B2 (en) 2014-04-02 2018-02-13 Microsoft Technology Licensing, Llc Entity and attribute resolution in conversational applications
US10191999B2 (en) 2014-04-30 2019-01-29 Microsoft Technology Licensing, Llc Transferring information across language understanding model domains
US9318107B1 (en) * 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
CN105487663B (zh) 2015-11-30 2018-09-11 北京光年无限科技有限公司 一种面向智能机器人的意图识别方法和系统

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369830A (zh) * 2001-01-31 2002-09-18 微软公司 歧义消除语言模型
CN1871597A (zh) * 2003-08-21 2006-11-29 伊迪利亚公司 利用一套消歧技术处理文本的系统和方法
CN1610346A (zh) * 2003-10-20 2005-04-27 国际商业机器公司 提供对话定位并且能够进行会话式通信的系统和方法
CN101014952A (zh) * 2004-06-02 2007-08-08 捷迅研究有限公司 具有文本歧义消解功能的手持电子设备
US20060074670A1 (en) * 2004-09-27 2006-04-06 Fuliang Weng Method and system for interactive conversational dialogue for cognitively overloaded device users
CN1828723A (zh) * 2005-03-03 2006-09-06 台达电子工业股份有限公司 分散式语言处理系统及其所使用的输出中介信息的方法
CN101203906A (zh) * 2005-05-31 2008-06-18 罗伯特·博世公司 使用脚本的对话管理
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
CN101339551A (zh) * 2007-07-05 2009-01-07 日电(中国)有限公司 自然语言查询需求扩展设备及其方法
CN101847405A (zh) * 2009-03-23 2010-09-29 索尼公司 语音识别装置和方法、语言模型产生装置和方法及程序
JP2011257790A (ja) * 2010-06-04 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 関係情報抽出装置、その方法及びプログラム
US20180254044A1 (en) * 2010-08-06 2018-09-06 Google Llc Disambiguating Input Based on Context
CN103425640A (zh) * 2012-05-14 2013-12-04 华为技术有限公司 一种多媒体问答系统及方法
US20150149152A1 (en) * 2013-11-28 2015-05-28 Soundhound, Inc. Method for combining a query and a communication command in a natural language computer system
US20150227845A1 (en) * 2014-02-13 2015-08-13 Microsoft Corporation Techniques for Inferring the Unknown Intents of Linguistic Items

Also Published As

Publication number Publication date
CN108780444B (zh) 2022-09-23
US10229687B2 (en) 2019-03-12
WO2017155792A1 (en) 2017-09-14
US20170263255A1 (en) 2017-09-14
EP3427162A1 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
US11823289B2 (en) User controlled task execution with task persistence for assistant systems
US11231946B2 (en) Personalized gesture recognition for user interaction with assistant systems
CN108780444A (zh) 可扩展设备和依赖于域的自然语言理解
US11874861B2 (en) Retraining a conversation system based on negative feedback
US11538468B2 (en) Using semantic frames for intent classification
CN115398437A (zh) 改进的域外(ood)检测技术
CN110088773A (zh) 具有可分离卷积层的图像处理神经网络
US20230222114A1 (en) Crowdsourced Validation of Electronic Content
EP3557505A1 (en) Contextual auto-completion for assistant systems
US11658835B2 (en) Using a single request for multi-person calling in assistant systems
US11240313B2 (en) Contextually assigning user input to personal electronic devices
CN116802629A (zh) 用于自然语言处理的多因素建模
US20230100508A1 (en) Fusion of word embeddings and word scores for text classification
US20220358225A1 (en) Variant inconsistency attack (via) as a simple and effective adversarial attack method
JP2023551859A (ja) 自然言語処理のための強化されたロジット
CN116490879A (zh) 用于神经网络中过度预测的方法和系统
CN118140230A (zh) 对经预训练的语言模型的单个转换器层的多头网络进行微调

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant