CN112487790A - 包括粗略语义解析器和精细语义解析器的改进语义解析器 - Google Patents
包括粗略语义解析器和精细语义解析器的改进语义解析器 Download PDFInfo
- Publication number
- CN112487790A CN112487790A CN202010928486.0A CN202010928486A CN112487790A CN 112487790 A CN112487790 A CN 112487790A CN 202010928486 A CN202010928486 A CN 202010928486A CN 112487790 A CN112487790 A CN 112487790A
- Authority
- CN
- China
- Prior art keywords
- logical form
- semantic parser
- utterance
- training
- fine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Abstract
本公开涉及包括粗略语义解析器和精细语义解析器的改进语义解析器。描述了用于通过将对话系统的语义解析器分解成粗略语义解析器和精细语义解析器来改进所述语义解析器的技术。本文描述的方法包括访问在对话系统中接收到的话语。所述话语是基于文本的自然语言表达。所述方法进一步包括将粗略语义解析器应用于所述话语以确定针对所述话语的中间逻辑形式。所述中间逻辑形式指示所述话语中的一个或多个意图。所述方法进一步包括将精细语义解析器应用于所述中间逻辑形式以确定针对所述话语的逻辑形式。所述逻辑形式是所述话语的根据已建立的语法的句法表达,并且所述逻辑形式包括所述一个或多个意图的一个或多个参数。所述逻辑形式可以用于与所述对话系统的用户进行对话。
Description
相关申请的交叉引用
本公开要求于2019年9月11日提交的美国临时申请序列号62/898,683,“Techniques for an Improved Semantic Parser Including a Coarse Parser and aFine Parser[用于包括粗略解析器和精细解析器的改进的语义解析器的技术]”以及2020年8月13日提交的美国非临时申请序列号16/992,343,“IMPROVED SEMANTIC PARSERINCLUDING A COARSE SEMANTIC PARSER AND A FINE SEMANTIC PARSER”[包括粗略语义解析器和精细语义解析器的改进语义解析器]的优先权,前述申请通过引用以其全文结合在此。
技术领域
本公开涉及对话系统,并且更具体地涉及用于确定改进的语义解析器的技术或用于在对话系统中使用改进的语义解析器的技术,改进的语义解析器包括粗略语义解析器和精细语义解析器,这两个语义解析器一起使用以基于话语确定中间逻辑形式、并且基于中间逻辑形式和话语确定逻辑形式。
背景技术
现在,越来越多的设备使得用户能够直接使用话音或口述语音与设备进行交互。例如,用户可以用自然语言对这种设备说话,并且在这样做时,用户可以询问问题或进行请求执行某个动作的陈述。作为响应,设备执行所请求的动作或使用音频输出来对用户的问题做出响应。由于直接使用话音进行交互是人类与其周围环境进行交流的更自然且更直观的方式,因此这种基于语音的系统的普及正以天文数字的速率增长。
发明内容
本公开涉及用于确定用于对话系统的改进的语义解析器的技术和用于在对话系统中使用改进的语义解析器的技术,其中,改进的语义解析器包括串联的粗略语义解析器和精细语义解析器。在一些实施例中,粗略语义解析器将话语映射到中间逻辑形式,并且精细语义解析器将话语和中间逻辑形式映射到表示话语的逻辑形式。中间逻辑形式可以充当逻辑形式的模板、或者在话语与逻辑形式之间的某种其他中间状态或中间表达。
在一些实施例中,粗略语义解析器和精细语义解析器中的一者或两者都是机器学习模型。可以利用第一组元组来训练粗略语义解析器,每个这样的元组包括话语和对应的中间逻辑形式。在训练期间,话语被标记为输入,并且逻辑形式被标记为输出。鉴于这种训练,粗略语义解析器学习将话语映射到中间逻辑形式。可以利用第二组元组来训练精细语义解析器,每个这样的元组包括话语、中间逻辑形式和逻辑形式。在训练期间,话语和中间逻辑形式被标记为输入,并且逻辑形式被标记为输出。鉴于这种训练,精细语义解析器学习将话语和对应的中间逻辑形式映射到逻辑形式。
在对话系统的操作期间,粗略语义解析器可以接收表示语音输入的话语,并且可以基于话语来确定中间逻辑形式。精细语义解析器可以接收话语以及通过粗略解析确定的中间逻辑形式,并且可以基于该输入来确定表示话语的逻辑形式。此逻辑形式可以用于实现与提供了语音输入的用户的对话。
在参考以下说明书、权利要求和附图之后,前述内容以及其他特征和实施例将变得更加显而易见。
附图说明
图1是根据本文描述的一些实施例的结合有粗略语义解析器和精细语义解析器作为改进的语义解析器的对话系统的图。
图2是根据本文描述的一些实施例的用于在对话系统中使用的改进的语义解析器的图。
图3是根据本文描述的一些实施例的被配置为训练粗略语义解析器和精细语义解析器以充当对话系统的改进的语义解析器的训练系统的图。
图4是根据本文描述的一些实施例的训练对话系统中的改进的语义解析器的方法的图。
图5是根据本文描述的一些实施例的训练改进的语义解析器中的粗略语义解析器的方法的图。
图6是根据本文描述的一些实施例的训练改进的语义解析器中的精细语义解析器的方法的图。
图7是用于实施本文描述的一些实施例的分布式系统的图。
图8是根据本文描述的一些实施例的基于云的系统环境的图,在所述基于云的系统环境中,训练这两个解析器以充当改进的语义解析器可以至少部分地作为云服务来提供。
图9是可以用于实施本文描述的一些实施例的示例计算机系统的图。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”或“示例”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
能够经由语音输入和音频输出(也被称为话音输出)与用户进行对话的支持话音的系统可以以各种形式出现。例如,这种系统可以被提供为独立式设备、数字助理或虚拟助理、具有话音功能的服务等。在这些形式中的每一种形式中,系统能够接收语音输入、理解语音输入、生成响应或者响应于语音输入而采取动作、以及使用音频输出来输出响应。在某些实施例中,在这种支持话音的系统中的对话功能由对话系统或基础设施(“对话系统”)来提供。对话系统被配置为接收语音输入、解释语音输入、维持对话、可能地基于对语音输入的解释来执行一个或多个动作或使一个或多个动作被执行、准备适当的响应、并且使用音频输出将响应输出给用户。
传统地,对话系统包括各种机器学习(ML)模型,并且需要大量训练数据来训练对话系统的各种机器学习模型。这样的ML模型之一是语义解析器子系统,也被称为语义解析器。通常,语义解析器接收表示由用户提供的语音输入的话语,其中,所述话语是自然语言的文本表示。语义解析器将该话语映射到逻辑形式,所述逻辑形式是话语的句法表达(如被转译成遵循已建立的语法的基于逻辑的语言),并且因此可由对话系统的对话管理器子系统解析。然后,对话管理器子系统解析并处理逻辑形式以确定如何做出响应。
传统的语义解析器子系统通常是被配置为将话语映射到对应的逻辑形式的神经网络。语义解析器的任务很艰难,因为逻辑形式可能相当复杂或详细,特别是对于复杂的话语而言。随着话语变得更加复杂或更不像用于训练语义解析器的数据,由语义解析器在对话系统的操作期间生成的逻辑形式可能会偏离被认为准确的逻辑形式。换言之,存在数据稀疏性问题,使得所使用的训练数据的量可能不足以使语义解析器学习生成足够的逻辑形式分布。这可能导致对话管理器子系统接收到不准确的输入,并且因此确定出与话语所表示的语音输入不相符的响应。结果是,对话管理器子系统可能无法实现对用户而言有用的对话。
然而,根据本文描述的一些实施例,改进的语义解析器被实施为粗略语义解析器和精细语义解析器的组合。粗略语义解析器可以将话语映射到对应的中间逻辑形式(也被称为模板),并且精细语义解析器可以将话语和中间逻辑形式映射到逻辑形式,所述逻辑形式可以适合于输入到对话系统的对话管理器子系统。在一些实施例中,在对话系统的操作期间,将话语输入到粗略语义解析器中,所述粗略语义解析器输出中间逻辑形式,所述中间逻辑形式用于与话语一起输入到精细语义解析器中,所述精细语义解析器输出逻辑形式。
通过将粗略语义解析器与精细语义解析器组合使用,本文描述的一些实施例减轻了数据稀疏性问题,因为粗略语义解析器和精细语义解析器中的每一个仅需要学习较小的输出分布。例如,考虑到中间逻辑形式可能比逻辑形式更一般化,因此可能存在比逻辑形式数量更少的可能的中间逻辑形式。因此,对于粗略语义解析器而言,相比于学习足够的逻辑形式分布,可能更易于学习足够的中间逻辑形式分布。类似地,与传统的语义解析器相比,精细语义解析器的工作也减少了,因为起始点(即,中间逻辑形式)更接近逻辑形式的期望输出。更一般地,本文描述的实施例将从话语确定逻辑形式的艰难任务分解为两个较小的任务:从话语确定中间逻辑形式以及从中间逻辑形式和话语确定逻辑形式。因此,语义解析器的工作被分成两个解析器,这两个解析器中的每个解析器可以更有效地学习其相应的输出分布,从而得到整体更好的结果。
现在参考附图,图1是根据本文描述的某些实施例的使用包括粗略语义解析器152和精细语义解析器154的改进的语义解析器150的对话系统100的示例的图。对话系统100被配置为从用户102接收语音输入104(也被称为话音输入)。对话系统100然后可以解释语音输入104。对话系统100可以维持与用户102的对话,并且可以基于对语音输入104的解释来执行一个或多个动作或使一个或多个动作被执行。对话系统100可以准备适当的响应,并且可以使用话音输出或语音输出(也被称为音频输出)将响应输出给用户。对话系统100是专用计算系统,所述专用计算系统可以用于潜在地使用大量计算机处理循环来处理大量数据。图1中描绘的设备的数量被提供用于说明性的目的。可以使用不同数量的设备。例如,虽然图1中的每个设备、服务器和系统被示出为单个设备,但是也可以替代地使用多个设备。
在某些实施例中,可以由部件或子系统的流水线来实施由对话系统100执行的处理,所述部件或子系统的流水线包括语音输入部件105、唤醒词检测(WD)子系统106、自动语音识别(ASR)子系统108、包括命名实体识别器(NER)子系统112和语义解析器子系统150在内的自然语言理解(NLU)子系统110、对话管理器(DM)子系统116、自然语言生成器(NLG)子系统118、文本到语音(TTS)子系统120和语音输出部件124。以上列出的子系统可以仅在软件中(例如,使用可由一个或多个处理器或核执行的代码、程序或指令)、硬件中或硬件与软件的组合中实施。在某些实施方式中,一个或多个子系统可以被组合成单个子系统。另外地或可替代地,在一些实施方式中,可以由多个子系统来实施本文所描述的、如由特定子系统执行的功能。
语音输入部件105包括被配置为接收语音输入104的硬件和软件。在一些实例中,语音输入部件105可以是对话系统100的一部分。在一些其他实例中,语音输入部件105可以与对话系统100分离并且通信地耦接至所述对话系统。语音输入部件105可以例如包括耦接至软件的麦克风,所述软件被配置为对语音输入104进行数字化并将其传输到唤醒词检测子系统106。
唤醒词检测(WD)子系统106被配置为监听并监测音频输入流,以获得与特殊声音或词语或一组词语(被称为唤醒词)相对应的输入。在检测到对话系统100的唤醒词时,WD子系统106被配置为激活ASR子系统108。在某些实施方式中,可以向用户提供激活或去激活WD子系统106(例如,通过按下按钮)以使WD子系统106监听或停止监听唤醒词的能力。当被激活时或者当在激活模式下操作时,WD子系统106被配置为连续地接收音频输入流,并且对所述音频输入流进行处理以识别出与唤醒词相对应的音频输入(如语音输入104)。当检测到与唤醒词相对应的音频输入时,WD子系统106激活ASR子系统108。
如上所述,WD子系统106激活ASR子系统108。在对话系统100的一些实施方式中,可以使用除唤醒词检测以外的机制来触发或激活ASR子系统108。例如,在一些实施方式中,可以使用设备上的推压型按钮来触发ASR子系统108而不需要唤醒词。在这种实施方式中,不需要提供WD子系统106。当推压型按钮被按下或激活时,在按钮激活后接收到的语音输入104被提供给ASR子系统108以进行处理。另外地或可替代地,在一些实施方式中,在接收到要处理的输入时,ASR子系统108可以被激活。
ASR子系统108被配置为在触发信号或唤醒信号(例如,可以在检测到语音输入104中的唤醒词时由WD子系统106发送唤醒信号,或者可以在激活按钮时接收唤醒信号)之后接收和监测语音输入104,并且将语音输入104转换为文本。作为其处理的一部分,ASR子系统108执行语音到文本的转换。语音输入104可以呈自然语言形式,并且ASR子系统108被配置为用语音输入104的语言生成对应的自然语言文本。此对应的自然语言文本在本文中被称为话语。例如,由ASR子系统108接收的语音输入104可以包括一个或多个词语、短语、从句、句子、问题等。ASR子系统108被配置为针对每个口述从句生成话语,并将所述话语馈送到NLU子系统110,以进行进一步处理。
NLU子系统110接收由ASR子系统108生成的话语。由NLU子系统110从ASR子系统108接收的话语可以包括与口述词语、短语、从句等相对应的文本话语。NLU子系统110将每个话语(或一系列话语)转译成对应的逻辑形式。
在某些实施方式中,NLU子系统110包括命名实体识别器(NER)子系统112和语义解析器子系统150。NER子系统112接收话语作为输入、识别话语中的命名实体、并且利用与所识别出的命名实体相关的信息来标记话语。然后将经标记的话语馈送到语义解析器子系统150,所述语义解析器子系统被配置为针对每个经标记的话语、或针对一系列经标记的话语生成逻辑形式。针对话语生成的逻辑形式可以标识与话语相对应的一个或多个意图。话语的意图标识话语的目的。意图的示例包括“order pizza(订购披萨)”和“find directions(查找方向)”。意图可以例如标识被请求执行的动作。除了意图之外,针对话语生成的逻辑形式还可以标识所识别出的意图的槽位(slot)(也被称为参数或自变量)。例如,对于语音输入“我想订购带有蘑菇和橄榄的大份意大利辣香肠披萨”,NLU子系统110可以识别出意图——订购披萨。NLU子系统还可以识别并填充槽位,例如,披萨_尺寸(用大份来填充)和披萨_配料(用蘑菇和橄榄来填充)。NLU子系统110可以使用基于机器学习的技术、规则(其可能是领域特定的)或机器学习技术和规则的组合来生成逻辑形式。然后将由NLU子系统110生成的逻辑形式馈送到DM子系统116,以进行进一步处理。
在一些实施例中,NLU子系统110的语义解析器子系统150包括粗略语义解析器152和精细语义解析器154,这两个语义解析器一起将话语映射到逻辑形式。粗略语义解析器152接收可能已经被NER子系统112标记的话语,并且粗略语义解析器152生成与话语相对应的中间逻辑形式。精细语义解析器154接收话语和中间逻辑形式,并且基于话语和中间逻辑形式生成逻辑形式。由精细语义解析器154确定的逻辑形式可以对应于话语、并且因此对应于语音输入104,所述语音输入的话语是文本表示。
DM子系统116被配置为基于从NLU子系统110接收的逻辑形式来管理与用户的对话。作为对话管理的一部分,DM子系统116被配置为跟踪对话状态、发起对一个或多个动作或任务的执行或自身执行一个或多个动作或任务、并且确定如何与用户进行交互。这些动作可以包括例如查询一个或多个数据库、产生执行结果或其他动作。例如,DM子系统116被配置为对在从NLU子系统110接收的逻辑形式中识别出的意图进行解释。基于这些解释,DM子系统116可以发起其解释为通过由用户提供的语音输入104所请求的一个或多个动作。在某些实施例中,DM子系统116基于当前的和过去的语音输入104并基于为DM子系统116配置的一组规则(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态、状态之间转变的条件、处于特定状态时要执行的动作等。这些规则可以是领域特定的。DM子系统116还生成要被传送回对话中所涉及的用户的响应。这些响应可以基于由DM子系统116发起的动作以及这些动作的结果。将由DM子系统116生成的响应馈送到NLG子系统118,以进行进一步处理。
NLG子系统118被配置为生成与由DM子系统116生成的响应相对应的自然语言文本。所述文本可以以使得所述文本能够由TTS子系统120转换为语音的形式生成。TTS子系统120从NLG子系统118接收文本,并将这些文本中的每个文本转换为语音或话音音频,然后可以经由对话系统的音频或语音输出部件124(例如,扬声器或耦接至外部扬声器的通信信道)将所述语音作为音频输出给用户。在一些实例中,语音输出部件124可以是对话系统100的一部分。在一些其他实例中,语音输出部件124可以与对话系统100分离并且通信地耦接至所述对话系统。
如上所述,对话系统100的各个子系统协作地工作提供了以下功能:使得对话系统100能够接收语音输入104,并使用语音输出122做出响应,并且从而使用自然语言语音来维持与用户的对话。可以使用单个计算机系统或使用协作地工作的多个计算机系统来实施上述各个子系统。例如,对于实施支持话音的系统的设备,可以完全在用户与之交互的设备上实施上述对话系统100的子系统。在一些其他实施方式中,对话系统100的一些部件或子系统可以在用户与之交互的设备上实施,而其他部件可以远离设备实施、可能在一些其他计算设备、平台或服务器上实施。
图2是根据本文描述的一些实施例的用于在对话系统100中使用的语义解析器150(本文中也被称为改进的语义解析器150)的图。在一些实施例中,改进的语义解析器150用作对话系统100的语义解析器子系统,潜在地代替了传统的语义解析器子系统。如图2中所示,改进的语义解析器150可以包括两个ML模型或两个预测模型,这两个模型可以串联连接。特别地,语义解析器150可以包括粗略语义解析器152和精细语义解析器154。根据一些实施例,在训练粗略语义解析器和精细语义解析器之后,粗略语义解析器152将话语215映射到对应的中间逻辑形式225,并且精细语义解析器154将中间逻辑形式225映射到逻辑形式235。在一些实施例中,如图2中所示,精细语义解析器154将话语215连同中间逻辑形式一起作为附加的输入,并且因此基于话语215和中间逻辑形式225的组合来确定逻辑形式235。中间逻辑形式225(本文中也被称为模板)是对应的逻辑形式235的框架或模板。换言之,中间逻辑形式225是逻辑形式235的更一般化的版本。
更特别地,在一些实施例中,粗略语义解析器152确定中间逻辑形式225,所述中间逻辑形式指示对应的话语215中的每个意图,并且指示将细化每个意图的细节的参数的一个或多个槽位。在这样的实施例中,精细语义解析器154确定这样的参数的值,以便细化意图并因此基于中间逻辑形式225来细化总体逻辑形式235。因此,所产生的逻辑形式235包括一个或多个意图、以及完整地表达正用这样的意图表示的对应话语215所需的参数。
传统地,语义解析器子系统必须学习从话语215到逻辑形式235的映射。本文描述的一些实施例将此映射分为多个阶段(特别地,两个阶段),以使得粗略语义解析器152和精细语义解析器154中的每一个仅完成该任务的一部分。在对话系统100中,粗略语义解析器152和精细语义解析器154位于语义解析器子系统的位置,特别地,处在ASR子系统108与对话管理器子系统116之间。例如,输入到粗略语义解析器152的话语215可能已经被ASR子系统108确定、并且潜在地被NER子系统112标记,并且由精细语义解析器154输出的逻辑形式235可以被输入到对话管理器子系统116以进行处理。
在一些实施例中,粗略语义解析器152和精细语义解析器154中的每一个被实施为硬件、软件或这两者的组合。例如,粗略语义解析器152和精细语义解析器154中的每一个可以被实施为一个或多个软件功能、或专用硬件设备或这些软件功能和专用硬件设备的组合。在一些实施例中,粗略语义解析器152是ML模型;例如,粗略语义解析器152可以是如序列到序列(seq2seq)模型等神经网络。进一步地,在一些实施例中,精细语义解析器154是ML模型;例如,精细语义解析器154可以是如seq2seq模型等神经网络。
图3是根据某些实施例的被配置为训练两个解析器以充当用于在对话系统中使用的改进的语义解析器150的训练系统300的图。特别地,训练系统300可以训练粗略语义解析器152和精细语义解析器154,这两个语义解析器一起形成改进的语义解析器150。在一些实施例中,训练系统300被实施为计算设备(如服务器)或其一部分。训练系统300可以被实施为硬件、软件或这两者的组合;更特别地,训练系统300可以被实施为专用硬件设备、或程序代码或这两者的组合。虽然训练系统300被图示为在图3中的单个框,但是在一些实施例中,训练系统300跨一个或多个功能、设备或计算系统分布。例如,训练系统300的第一计算系统可以训练粗略语义解析器152,并且训练系统300的第二计算系统可以训练精细语义解析器154。
通过使用包括话语215、中间逻辑形式225和逻辑形式235的训练数据305,训练系统300可以训练粗略语义解析器152和精细语义解析器154。特别地,训练系统300可以训练粗略语义解析器152以将话语215映射到其对应的中间逻辑形式225,并且训练系统300可以训练精细语义解析器154以将中间逻辑形式225映射到其对应的逻辑形式235,或者在一些实施例中,将话语215和中间逻辑形式225的组合映射到其对应的逻辑形式235。
下表提供了话语215、其对应的中间逻辑形式225和其对应的逻辑形式235的几个示例。将理解的是,这些示例仅用于说明性的目的,并且不限制各种实施例。
通常,中间逻辑形式225可以遵循第一语言,所述第一语言比逻辑形式235所遵从的第二语言细节更少(即,更粗略)。在以上示例中,X、X1和X2是由粗略语义解析器152输出以表示参数或自变量的字符,所述字符的值由精细语义解析器154生成,并且因此以逻辑形式235示出。因此,第一语言可以是第二语言的子集,使得在第一语言中使用变量来代替无法用第一语言表达的细节。然后,可以由精细语义解析器154确定这样的细节,并将所述细节结合到所产生的逻辑形式235中。
更特别地,在一些实施例中,粗略语义解析器152被训练用于确定中间逻辑形式225,所述中间逻辑形式指示对应的话语215中的每个意图,并且指示将细化每个这样的意图的细节的参数的一个或多个槽位。因此,在这样的实施例中,中间逻辑形式225指示一个或多个意图,并且提供槽位以供精细语义解析器154填充参数的值。这样,精细语义解析器154被训练用于确定这样的参数的值,以便基于中间逻辑形式225来细化逻辑形式235。因此,所产生的逻辑形式235包括一个或多个意图、以及完整地表达正用这样的意图表示的对应话语215所需的参数。
图4是根据本文描述的一些实施例的训练改进的语义解析器150,或者换言之,训练粗略语义解析器152和精细语义解析器154的方法400的图。在一些实施例中,训练系统300利用此方法400或类似方法来在对话系统100中的粗略语义解析器152和精细语义解析器154的操作之前训练改进的语义解析器150。
图4中描绘的方法400以及本文描述的其他方法可以在由一个或多个处理单元(例如,处理器、处理器核)执行的软件(例如,如代码、指令、或程序)中、硬件中或其组合中实施。软件可以存储在非暂态存储介质上,如存储器设备上。此方法400旨在是说明性的并且是非限制性的。尽管图4描绘了以特定序列或顺序发生的各种活动,但这并不旨在是限制性的。在某些实施例中,例如,可以以不同的顺序来执行活动,或者可以并行地执行方法400的一个或多个活动。在某些实施例中,可以由训练系统300来执行方法400。
如图4中所示,在框405处,训练系统300访问一组训练数据305,该组训练数据可以用于训练粗略语义解析器152和精细语义解析器154。训练数据305可以包括一组元组,每个元组包括话语215、与话语215相对应的中间逻辑形式225、以及与话语215和中间逻辑形式225相对应的逻辑形式235。存在用于访问此训练数据305的各种技术,并且训练系统300可以使用一种或多种这样的技术。
例如,可以至少部分地手动地(如通过众包)生成训练数据305。在一个示例中,基于逻辑形式235的语法来自动生成一组逻辑形式235,或者由团队基于逻辑形式235的语法手动生成一组逻辑形式235。如以上描述的,在一些实施例中,中间逻辑形式225指定一个或多个意图,以及针对每个意图指定待填充的一个或多个槽位。因为逻辑形式235被设计成可易于解析以实现由对话管理器子系统116进行的处理,所以可以使用自动化过程来识别逻辑形式235中的意图和槽位。这样,自动化过程可以从槽位移除参数值,从而针对每个逻辑形式235产生对应的中间逻辑形式225。然后,将每个逻辑形式235与其对应的中间逻辑形式225进行配对。
在一些实施例中,然后将成对的逻辑形式235和中间逻辑形式225提供给一群人(即,人群),所述人群手动地确定与每对中间逻辑形式225和逻辑形式235相对应的一个或多个话语215。人群对于确定话语215而不是确定逻辑形式235而言可以是有用,因为与逻辑形式235的语法相比,人们可能对自然语言更加熟悉;然而,期望人群的成员对于逻辑形式235的语法足够适应,以便能够解释所提供的逻辑形式235。
因为自然语言提供了多种传达信息的方式,所以人群在一些情况下可能会针对一对中间逻辑形式225和逻辑形式235确定出多个话语。在训练数据305中包括的元组中,每个话语215可以与其对应的中间逻辑形式225和逻辑形式235相组合。如果针对一对产生了多个话语215,则每个这样的话语215可以在其自己的相应元组中与该话语215所对应的对相组合。
话语215、中间逻辑形式225和逻辑形式235的各种元组可以被保存为训练数据305。然后,训练系统300可以访问所产生的训练数据305。例如,管理员可以将训练数据305复制到可由训练系统300访问的存储器设备。
在框410处,训练系统300基于训练数据305训练粗略语义解析器152。在一些实施例中,训练系统300针对元组中的每对话语和中间逻辑形式225,使用标记为输入的话语215和标记为输出的中间逻辑形式225来训练粗略语义解析器152。在一些实施例中,对粗略语义解析器152的训练的附加细节在图5中示出并且在下文中进一步描述。
在框415处,训练系统300基于训练数据305训练精细语义解析器154。在一些实施例中,训练系统300针对每个元组使用标记为输入的话语215和中间逻辑形式以及标记为输出的逻辑形式235来训练精细语义解析器154。在一些实施例中,对精细语义解析器154的训练的附加细节在图6中示出并且在下文中进一步描述。
虽然在此示例中在框415之前执行框410,但是将理解的是,此顺序仅用于说明性的目的。在一些实施例中,例如,训练系统300可以在训练粗略语义解析器152之前训练精细语义解析器154,或者可以并行地训练粗略语义解析器152和精细语义解析器154。
在框420处,训练系统300在对话系统100中提供粗略语义解析器152和精细语义解析器154。例如,如果训练系统300和对话系统100在同一计算系统上执行,则训练系统300在训练期间更新粗略语义解析器152和精细语义解析器154,使得对话系统100可以访问经训练的粗略语义解析器152和精细语义解析器154。另外地或可替代地,管理员可以将粗略语义解析器152和精细语义解析器154复制到可由对话系统100访问的存储器设备,从而使得对话系统100能够使用粗略语义解析器152和精细语义解析器154。在对话系统中,粗略语义解析器152和精细语义解析器154可以串联地使用来代替传统的语义解析器。
图5是根据本文描述的一些实施例的训练改进的语义解析器150中的粗略语义解析器152的方法500的图。在一些实施例中,训练系统300在以上方法400的框410处利用此方法500或类似方法。图5中描绘的方法500以及本文描述的其他方法可以在由一个或多个处理单元(例如,处理器、处理器核)执行的软件(例如,如代码、指令、或程序)中、硬件中或其组合中实施。软件可以存储在非暂态存储介质上,如存储器设备上。此方法500旨在是说明性的并且是非限制性的。尽管图5描绘了以特定序列或顺序发生的各种活动,但这并不旨在是限制性的。在某些实施例中,例如,可以以不同的顺序来执行活动,或者可以并行地执行方法500的一个或多个活动。在某些实施例中,可以由训练系统300来执行方法500。
在框505处,训练系统300初始化粗略语义解析器152。通常,训练神经网络(在一些实施例中,如粗略语义解析器152)涉及使用训练数据集(如训练数据305)来更新神经网络中的节点的权重,以产生良好的输入到输出映射。为此,在训练期间使用损失函数将来自神经网络的输出与预期输出进行比较。使用来自损失函数的输出来更新神经网络中的权重,从而训练神经网络,或者换言之,使得神经网络学习期望的映射。在这种情况下,粗略语义解析器152的期望的映射是从话语215到中间逻辑形式225的映射。为了初始化粗略语义解析器152以进行训练,在一些实施例中,训练系统300可以为充当粗略语义解析器152的神经网络中的每个节点选择相应的初始权重。
在框510处,训练系统300访问训练数据305。如以上描述的,训练数据305可以包括元组,每个元组包括话语215和中间逻辑形式225。虽然训练数据305还可以在元组中包括逻辑形式235,但是在一些实施例中,对粗略语义解析器152的训练不需要逻辑形式235,并且训练系统300可以在训练粗略语义解析器152时忽略逻辑形式235。
在框515处,训练系统300从训练数据305选择元组,其中,所选元组在训练期间、或者在使用了多个轮次(即,多次重启)的情况下在当前训练轮次期间还未被考虑过。框515开始迭代循环,在所述迭代循环中考虑训练数据305的每个元组,其中,循环的每次迭代考虑一个所选元组。
在框520处,训练系统300利用粗略语义解析器152基于等于所选元组中的话语215的输入来确定预测的中间逻辑形式。换言之,在一些实施例中,训练系统300将来自所选元组的话语215作为输入提供给粗略语义解析器152,所述粗略语义解析器基于话语215对预测的中间逻辑形式进行预测。
在框525处,训练系统300基于对预测的中间逻辑形式与所选元组中的中间逻辑形式225的比较来更新粗略语义解析器152。例如,将预测的中间逻辑形式与中间逻辑形式225进行比较可以包括将损失函数应用于预测的中间逻辑形式和中间逻辑形式225,使得损失函数的输出表示这两个值之间的方差。在一些实施例中,所选元组中的中间逻辑形式225是针对作为输入的话语215的预期输出,并且因此,训练系统300基于如由粗略语义解析器152预测出的预测的中间逻辑形式与作为正确输出的中间逻辑形式225之间的方差来修改粗略语义解析器152。
在决策框530处,训练系统300确定训练数据305中是否还剩下任何元组以供考虑。如果剩下了这样的元组,则方法500返回到框515以选择另一元组。然而,如果没有剩下这样的元组以供考虑,则方法500继续进行到框535。在框535处,此训练结束,并且粗略语义解析器152准备好在对话系统100中使用。粗略语义解析器152已经学习了从话语215到其对应的中间逻辑形式225的映射。
以上方法500是用于训练粗略语义解析器152的简化方法,并且可以对其中的技术进行各种修改。例如,训练系统300可以基于多批元组来更新粗略语义解析器152,而不是在通过粗略语义解析器152处理每个元组之后更新粗略语义解析器152。进一步地,训练系统300可以在训练期间实施一次或多次重启,其中,每次重启包括将粗略语义解析器152的权重重新初始化为新的初始值,以便确定是否可以通过在初始化时使用的不同权重来改进所学习的映射。另外地或可替代地,可以对这些内容进行各种其他改变。
图6是根据本文描述的一些实施例的训练改进的语义解析器150中的精细语义解析器154的方法600的图。在一些实施例中,训练系统300在以上方法400的框415处利用此方法600或类似方法。图6中描绘的方法600以及本文描述的其他方法可以在由一个或多个处理单元(例如,处理器、处理器核)执行的软件(例如,如代码、指令、或程序)中、硬件中或其组合中实施。软件可以存储在非暂态存储介质上,如存储器设备上。此方法600旨在是说明性的并且是非限制性的。尽管图6描绘了以特定序列或顺序发生的各种活动,但这并不旨在是限制性的。在某些实施例中,例如,可以以不同的顺序来执行活动,或者可以并行地执行方法600的一个或多个活动。在某些实施例中,可以由训练系统300来执行方法600。
在框605处,训练系统300初始化精细语义解析器154。通常,训练神经网络(在一些实施例中,如精细语义解析器154)涉及使用训练数据集(如训练数据305)来更新神经网络中的节点的权重,以产生良好的输入到输出映射。为此,在训练期间使用损失函数将来自神经网络的输出与预期输出进行比较。使用来自损失函数的输出来更新神经网络中的权重,从而训练神经网络,或者换言之,使得神经网络学习期望的映射。在这种情况下,精细语义解析器154的期望的映射是从话语215到中间逻辑形式225的映射。为了初始化精细语义解析器154以进行训练,在一些实施例中,训练系统300可以为充当精细语义解析器154的神经网络中的每个节点选择相应的初始权重。
在框610处,训练系统300访问训练数据305。如以上描述的,训练数据305可以包括元组,每个元组包括中间逻辑形式225和逻辑形式235。训练数据305还可以在元组中包括话语215,并且对精细语义解析器154的训练也可以或可以不使用这些话语215。精细语义解析器154的一些实施例如基于本文描述的训练而被配置为将一对话语215和中间逻辑形式225映射到对应的逻辑形式235,并且在这种情况下,训练系统300可以使用话语215、中间逻辑形式225和逻辑形式235来训练精细语义解析器154。然而,精细语义解析器154的一些实施例如基于本文描述的训练而被配置为将中间逻辑形式225映射到对应的逻辑形式235,并且在这种情况下,在一些实施例中,训练系统300可以使用中间逻辑形式225和逻辑形式235而不使用话语215来训练精细语义解析器154。
在框615处,训练系统300从训练数据305选择元组,其中,所选元组在训练期间、或者在使用了多个轮次(即,多次重启)的情况下在当前训练轮次期间还未被考虑过。框615开始迭代循环,在所述迭代循环中考虑训练数据305的每个元组,其中,循环的每次迭代考虑一个所选元组。
在框620处,训练系统300利用精细语义解析器154基于等于来自所选元组的中间逻辑形式225(以及在一些实施例中还有话语215)的输入来确定预测的逻辑形式。换言之,在一些实施例中,训练系统300将来自所选元组的中间逻辑形式225、或者话语215和中间逻辑形式225作为输入提供给精细语义解析器154,所述精细语义解析器基于该输入对预测的逻辑形式进行预测。
在框625处,训练系统300基于对预测的逻辑形式与所选元组中的逻辑形式235的比较来更新精细语义解析器154。例如,将预测的逻辑形式与逻辑形式235进行比较可以包括将损失函数应用与预测的逻辑形式和逻辑形式235,使得损失函数的输出表示这两个值之间的方差。在一些实施例中,所选元组中的逻辑形式235是针对给定输入(即,中间逻辑形式225、或者可替代地话语215和中间逻辑形式225)的预期输出。因此,训练系统300基于如由精细语义解析器154预测出的预测的逻辑形式与作为正确输出的逻辑形式235之间的方差来修改精细语义解析器154。
在决策框630处,训练系统300确定训练数据305中是否还剩下任何元组以供考虑。如果剩下了这样的元组,则方法600返回到框615以选择另一元组。然而,如果没有剩下这样的元组以供考虑,则方法600继续进行到框635。在框635处,此训练结束,并且精细语义解析器154准备好在对话系统100中使用。精细语义解析器154已经学习了从话语215和中间逻辑形式225到其对应的逻辑形式235的映射。
以上方法600是用于训练精细语义解析器154的简化方法,并且可以对其中的技术进行各种修改。例如,训练系统300可以基于多批元组来更新精细语义解析器154,而不是在每次通过精细语义解析器154处理每个元组之后更新精细语义解析器154。进一步地,训练系统300可以在训练期间实施一次或多次重启,其中,每次重启包括将精细语义解析器154的权重重新初始化为新的初始值,以便确定是否可以通过在初始化时使用的不同权重来改进所学习的映射。另外地或可替代地,可以对这些内容进行各种其他改变。
图7是用于实施某些实施例的分布式系统700的简化图。在图示的实施例中,分布式系统700包括经由一个或多个通信网络710耦接到服务器712的一个或多个客户端计算设备702、704、706和708。客户端计算设备702、704、706和708可以被配置为执行一个或多个应用程序。
在各种实施例中,服务器712可以适于运行一个或多个服务或软件应用程序,所述服务或软件应用程序使得能够如本文描述地那样训练粗略语义解析器152或精细语义解析器154,或者能够在对话系统100中使用粗略语义解析器152或精细语义解析器154。例如,服务器712可以执行训练系统300的一些或全部方面或者对话系统100的一些或全部方面。
在某些实施例中,服务器712还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些实施例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备702、704、706和/或708的用户。操作客户端计算设备702、704、706和/或708的用户进而可以利用一个或多个客户端应用程序来与服务器712交互以利用这些部件所提供的服务。更特别地,例如,客户端计算设备702、704、706和/或708中的每一个都可以是嵌入式设备,所述嵌入式设备被配置为执行对话系统100,并且进一步被配置为与服务器712通信以使得服务器712能够训练粗略语义解析器152或精细语义解析器154、或者能够在对话系统100中使用粗略语义解析器152或精细语义解析器154。
在图7所描绘的配置中,服务器712可以包括实施由服务器712执行的功能的一个或多个部件718、720和722。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应该理解的是,可以与分布式系统700不同的各种不同的系统配置是可能的。因此,图7所示出的实施例是用于实施实施例系统的分布式系统的一个示例并且不旨在是限制性的。
根据本公开的传授内容,用户可以使用客户端计算设备702、704、706和/或708与由服务器712提供的对话系统100的方面交互。客户端设备可以提供使得客户端设备的用户能够与客户端设备交互的接口(例如,语音接口)。客户端设备还可以经由此接口向用户输出信息。尽管图7描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,如PA设备、便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,MicrosoftApple或类UNIX操作系统、Linux或类Linux操作系统(如Google ChromeTMOS)),包括各种移动操作系统(例如,Microsoft WindowsWindowsAndroidTM、Palm)。便携式手持设备可以包括蜂窝电话、智能电话(例如,)、平板计算机(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有姿势输入设备的Microsoft游戏控制台、Sony系统、由提供的各种游戏系统以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序)并可以使用各种通信协议。
(多个)网络710可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、等。仅通过示例的方式,(多个)网络710可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)802.11协议组、和/或任何其他无线协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器712可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器712可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构(如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池)。在各种实施例中,服务器712可以适于运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
服务器712中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器712也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器712可以包括一个或多个应用程序以分析并合并从客户端计算设备702、704、706和708的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机(financial ticker)、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器712还可以包括一个或多个应用程序以经由客户端计算设备702、704、706和708的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统700还可以包括一个或多个数据储存库714、716。在某些实施例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库714、716中的一个或多个可以用于存储训练数据305、或者训练粗略语义解析器152或精细语义解析器154或在对话系统100中使用粗略语义解析器152或精细语义解析器154所需的其他数据。数据储存库714、716可以驻留在各个位置中。例如,服务器712所使用的数据储存库可以在服务器712本地或者可以远离服务器712并经由基于网络的或专用的连接与服务器712通信。数据储存库714、716可以是不同类型。在某些实施例中,服务器712所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以适于响应于SQL格式的命令来实现数据到数据库以及从数据库的存储、更新和取得。
在某些实施例中,数据储存库714、716中的一个或多个还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,如例如关键值存储库储存库、对象存储库储存库或由文件系统支持的通用存储储存库。
在某些实施例中,训练或使用如本文描述的对话系统100的粗略语义解析器152或精细语义解析器154的全部或一部分可以经由云环境作为服务提供。图8是根据某些实施例的基于云的系统环境的简化框图,在所述基于云的系统环境中,训练如本文描述的语义解析器130可以至少部分地作为云服务来提供。在图8所描绘的实施例中,云基础设施系统802可以提供可以由用户使用一个或多个客户端计算设备804、806和808请求的一个或多个云服务。云基础设施系统802可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器712所描述的那些计算机和/或服务器。云基础设施系统802中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
(多个)网络810可以促进客户端计算设备804、806和808与云基础设施系统802之间的数据通信和交换。(多个)网络810可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络810可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图8所描绘的实施例仅是云基础设施系统的一个示例并且不旨在是限制性的。应理解的是,在一些其他实施例中,云基础设施系统802可以具有比图8所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或可以具有不同的部件配置或布置。例如,尽管图8描绘了三个客户端计算设备,但是在替代性实施例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统802)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统不同于客户自己的室内服务器和系统。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle提供如中间件服务、数据库服务、Java云服务以及其他服务等几种云服务。
在某些实施例中,云基础设施系统802可以使用不同的模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统802可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够通过如因特网等通信网络作为服务输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施系统802托管的按需应用程序的访问。Oracle提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序以及其他等的各种服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统802提供的一个或多个服务。然后,云基础设施系统802执行处理以提供客户的订阅订单中请求的服务。例如,客户可以以会话形式订阅由对话系统100提供的信息服务或其他服务。云基础设施系统802可以被配置为提供一个或甚至多个云服务。
云基础设施系统802可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统802可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统802可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统802和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。
客户端计算设备804、806和808可以是不同类型的(如图7所描绘的客户端计算设备702、704、706和708)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端计算设备与云基础设施系统802交互,如请求由云基础设施系统802提供的服务。攻击者可能使用客户端设备来发送恶意请求。
在一些实施例中,由云基础设施系统802执行的处理可以涉及大数据分析。此分析可以涉及使用、分析并操纵大数据集以检测并可视化数据内的各种趋势、行为、关系等。此分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施系统802执行,以提供对如本文描述的粗略语义解析器152或精细语义解析器154的训练或使用。用于此分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型而结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图8中的实施例所描绘的,云基础设施系统802可以包括被用于促进供给由云基础设施系统802提供的各种云服务的基础设施资源830。基础设施资源830可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进对这些资源的高效供给以用于支持由云基础设施系统802为不同客户提供的各种云服务,基础设施资源830可以被捆绑成资源组或资源模块(也被称为“群(pod)”)。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(所述第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。
云基础设施系统802本身可以在内部使用由云基础设施系统802的不同部件共享并且促进云基础设施系统802供给服务的服务832。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统802可以包括多个子系统。这些子系统可以在软件或硬件或其组合中实施。如图8所描绘的,子系统可以包括使云基础设施系统802的用户或客户能够与云基础设施系统802交互的用户接口子系统812。用户接口子系统812可以包括各种不同的接口,如web接口814、在线商店接口816(其中,广告并且客户可购买由云基础设施系统802提供的云服务)和其他接口818。例如,客户可以使用客户端设备请求(服务请求834)由云基础设施系统802使用接口814、816和818中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统802提供的云服务并且针对客户希望订阅的由云基础设施系统802提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。
在某些实施例(如图8所描绘的实施例)中,云基础设施系统802可以包括被配置为处理新订单的订单管理子系统(OMS)820。作为此处理的一部分,OMS 820可以被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;以及策划各种工作流程来准备订单以进行供给。
一旦被正确地验证,那么,OMS 820就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(OPS)824。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS 824可以被配置为确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
云基础设施系统802可以向请求客户发送响应或通知844,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。
云基础设施系统802可以向多个客户提供服务。对于每个客户,云基础设施系统802负责管理与从客户接收的一个或多个订阅订单相关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统802还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用此使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统802可以并行地向多个客户提供服务。云基础设施系统802可以存储这些客户的信息(可能包括专有信息)。在某些实施例中,云基础设施系统802包括被配置为管理客户信息并提供对所管理信息的分离使得与一个客户相关的信息不能够被另一个客户访问的身份管理子系统(IMS)828。IMS 828可以被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关能力的服务等。
图9是可以用于实施某些实施例的示例计算机系统900的框图。例如,在一些实施例中,计算机系统900可以用于实施本文描述的系统、子系统和部件中的任何一者。例如,多个主机可以提供并实施对如本文描述的对话系统100的粗略语义解析器152或精细语义解析器154的训练或使用。如计算机系统900等计算机系统可以用作主机。如图9所示,计算机系统900包括各种子系统,包括经由总线子系统902与多个其他子系统通信的处理子系统904。这些其他子系统可以包括处理加速单元906、I/O子系统908、存储子系统918和通信子系统924。存储子系统918可以包括非暂态计算机可读存储介质,包括存储介质922和系统存储器910。
总线子系统902提供用于使计算机系统900的各个部件和子系统按预期彼此通信的机构。虽然总线子系统902被示意性地示出为单个总线,但是总线子系统的替代性实施例可以利用多个总线。总线子系统902可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围部件互连(PCI)总线(所述PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线)等。
处理子系统904控制计算机系统900的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机系统900的处理资源可以被组织成一个或多个处理单元932、934等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些实施例中,处理子系统904可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些实施例中,处理子系统904的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些实施例中,处理子系统904中的处理单元可以执行存储在系统存储器910中或计算机可读存储介质922上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器910中和/或计算机可读存储介质922上(潜在地包括驻留在一个或多个存储设备上)。通过适合的编程,处理子系统904可以提供以上所述的各种功能。在计算机系统900在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些实施例中,可以可选地提供处理加速单元906以用于执行定制处理或用于卸载处理子系统904所执行的处理中的一些处理,从而加速计算机系统900所执行的总体处理。
I/O子系统908可以包括用于向计算机系统900输入信息和/或用于从或经由计算机系统900输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统900输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft运动传感器、Microsoft360游戏控制器、提供用于使用姿势和口述命令接收输入的接口的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势变换为到输入设备(如Google)的输入的Google眨眼检测器。另外,用户接口输入设备可以包括使用户能够通过话音命令与话音识别系统(例如,导航器)交互的话音识别感测设备。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统900向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
存储子系统918提供用于存储计算机系统900所使用的信息和数据的储存库或数据存储设备。存储子系统918提供用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统918可以存储当由处理子系统904执行时提供以上所述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统904的一个或多个处理单元执行。存储子系统918还可以根据本公开的教导提供用于存储所使用的数据的储存库。
存储子系统918可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图9所示,存储子系统918包括系统存储器910和计算机可读存储介质922。系统存储器910可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含如在启动期间帮助在计算机系统900内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前正由处理子系统904操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器910可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图9所描绘的,系统存储器910可以加载正在执行的应用程序(application program)912(所述应用程序可以包括如Web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据914和操作系统916。通过示例的方式,操作系统916可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种可商购获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或如iOS、电话、OS、OS、OS操作系统等移动操作系统、以及其他操作系统。
在某些实施例中,可以在系统存储器910中执行实施对如本文描述的对话系统100的粗略语义解析器152和精细语义解析器154的训练或使用的软件指令或代码。
计算机可读存储介质922可以存储提供一些实施例的功能的编程和数据构造。计算机可读存储介质922可以为计算机系统900提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统904执行时提供以上所述的功能的软件(程序、代码模块、指令)可以存储在存储子系统918中。通过示例的方式,计算机可读存储介质922可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、盘或其他光学介质)等非易失性存储器。计算机可读存储介质922可以包括但不限于驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质922还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储器驱动器、固态ROM等基于非易失性存储器的SSD、如固态RAM、动态RAM、静态RAM等基于易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD、以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些实施例中,存储子系统918还可以包括可以进一步连接到计算机可读存储介质922的计算机可读存储介质读取器920。读取器920可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从所述存储器设备读取数据。
在某些实施例中,计算机系统900可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统900可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机系统900可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统900所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统900同时运行。
通信子系统924提供到其他计算机系统和网络的接口。通信子系统924用作用于从其他系统接收数据并从计算机系统900向其他系统发送数据的接口。例如,通信子系统924可以使计算机系统900能够经由因特网建立到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。
通信子系统924可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子系统924可以包括用于(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准)、或其他移动通信技术、或其任何组合)访问无线话音和/或数据网络的射频(RF)收发器部件、全球定位系统(GPS)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或替代无线接口,通信子系统924可以提供有线网络连接性(例如,以太网)。
通信子系统924可以接收并发送各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子系统924还可以接收结构化和/或非结构化数据馈送926、事件流928、事件更新930等形式的输入通信。例如,通信子系统924可以被配置为从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送926,如馈送、更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统924可以被配置为接收连续数据流形式的数据,所述连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流928和/或事件更新930。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子系统924还可以被配置为将数据从计算机系统900传送到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送926、事件流928、事件更新930等各种不同的形式传送到可以与耦接到计算机系统900的一个或多个流数据源计算机通信的一个或多个数据库。
计算机系统900可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板计算机、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、大型机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图9所描绘的计算机系统900的描述旨在仅作为具体示例。具有比图9所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本文提供的公开和教导,本领域普通技术人员将理解实施各种实施例的其他方式和/或方法。
虽然已经描述了具体实施例,但是各种修改、更改、替代性构造和等同物是可能的。实施例不局限于在某些具体数据处理环境内的操作,而是自由地在多个数据处理环境内操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用以上所述的实施例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、系统、部件或模块描述为被配置为执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各种实施例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
Claims (24)
1.一种方法,包括:
访问在对话系统中接收到的话语,其中,所述话语是基于文本的自然语言表达;
将粗略语义解析器应用于所述话语以确定针对所述话语的中间逻辑形式,其中,所述中间逻辑形式指示所述话语中的一个或多个意图;以及
将精细语义解析器应用于所述中间逻辑形式以确定针对所述话语的逻辑形式,其中,所述逻辑形式是根据已建立的语法的所述话语的句法表达,并且其中,所述逻辑形式包括所述一个或多个意图的一个或多个参数;以及
使用所述逻辑形式与所述对话系统的用户进行对话。
2.如权利要求1所述的方法,其中,将所述精细语义解析器应用于所述中间逻辑形式以确定针对所述话语的所述逻辑形式包括:将所述精细语义解析器应用于所述话语和所述中间逻辑形式以确定针对所述话语的所述逻辑形式。
3.如权利要求1所述的方法,其中:
所述粗略语义解析器是机器学习模型;以及
所述方法进一步包括:
访问包括话语和中间逻辑形式的元组的训练数据;以及
基于所述训练数据中的所述话语和所述中间逻辑形式来训练所述粗略语义解析器。
4.如权利要求3所述的方法,其中:
所述精细语义解析器是机器学习模型;
所述训练数据进一步包括逻辑形式;以及
所述方法进一步包括基于所述训练数据中的所述中间逻辑形式和所述逻辑形式来训练所述精细语义解析器。
5.如权利要求3所述的方法,其中:
所述精细语义解析器是机器学习模型;
所述训练数据进一步包括逻辑形式;
所述方法进一步包括:基于所述训练数据中的所述话语、所述中间逻辑形式和所述逻辑形式来训练所述精细语义解析器;以及
将所述精细语义解析器应用于所述中间逻辑形式以确定针对所述话语的所述逻辑形式包括:将所述精细语义解析器应用于所述话语和所述中间逻辑形式以确定针对所述话语的所述逻辑形式。
6.如权利要求1所述的方法,其中,所述粗略语义解析器是序列到序列神经网络,并且其中,所述精细语义解析器是附加的序列到序列神经网络。
7.如权利要求1所述的方法,进一步包括:
在所述对话系统中接收语音输入;以及
使用自动语音识别将所述语音输入转换为所述话语。
8.如权利要求7所述的方法,进一步包括:
分析所述逻辑形式以生成响应于所述语音输入的响应文本;以及
通过将文本到语音应用于所述响应文本来确定所述对话系统的音频输出。
9.一种对话系统,包括:
粗略语义解析器,所述粗略语义解析器被配置为:
访问在所述对话系统中接收到的话语,其中,所述话语是基于文本的自然语言表达;以及
基于所述话语来确定针对所述话语的中间逻辑形式,其中,所述中间逻辑形式指示所述话语中的一个或多个意图;以及
精细语义解析器,所述精细语义解析器被配置为:
基于所述中间逻辑形式来确定针对所述话语的逻辑形式,其中,所述逻辑形式是根据已建立的语法的所述话语的句法表达,并且其中,所述逻辑形式包括所述一个或多个意图的一个或多个参数,
其中,所述逻辑形式能够用于与所述对话系统的用户进行对话。
10.如权利要求9所述的对话系统,其中,所述精细语义解析器基于所述话语和所述中间逻辑形式两者来确定所述逻辑形式。
11.如权利要求9所述的对话系统,其中,所述粗略语义解析器是序列到序列神经网络。
12.如权利要求11所述的对话系统,并且其中,所述精细语义解析器是附加的序列到序列神经网络。
13.如权利要求9所述的对话系统,进一步包括自动语音识别子系统,所述自动语音识别子系统被配置为:
接收语音输入;以及
使用自动语音识别将所述语音输入转换为所述话语。
14.如权利要求13所述的对话系统,进一步包括:
对话管理器子系统,所述对话管理器子系统被配置为分析所述逻辑形式以生成响应于所述语音输入的响应文本;以及
文本到语音子系统,所述文本到语音子系统被配置为通过将文本到语音应用于所述响应文本来确定所述对话系统的音频输出。
15.一种方法,包括:
访问包括话语、中间逻辑形式和逻辑形式的训练数据;
利用所述话语作为训练输入并利用所述中间逻辑形式作为训练输出来训练粗略语义解析器,其中,所述粗略语义解析器学习将所述话语映射到所述中间逻辑形式;以及
利用所述中间逻辑形式作为训练输入并利用所述逻辑形式作为训练输出来训练精细语义解析器,其中,所述精细语义解析器学习将所述中间逻辑形式映射到所述逻辑形式,
其中,所述粗略语义解析器和所述精细语义解析器被配置为与对话系统集成。
16.如权利要求15所述的方法,其中,所述粗略语义解析器是序列到序列神经网络,并且其中,所述精细语义解析器是附加的序列到序列神经网络。
17.如权利要求15所述的方法,其中,训练所述精细语义解析器进一步包括使用所述话语作为训练输入。
18.如权利要求17所述的方法,进一步包括:
由所述对话系统中的所述粗略语义解析器将话语映射到中间逻辑形式;以及
由所述对话系统中的所述精细语义解析器将所述话语和所述中间逻辑形式映射到逻辑形式。
19.如权利要求15所述的方法,进一步包括:
由所述对话系统中的所述粗略语义解析器将话语映射到中间逻辑形式;以及
由所述对话系统中的所述精细语义解析器将所述中间逻辑形式映射到逻辑形式。
20.如权利要求19所述的方法,其中:
所述话语是基于文本的自然语言表达;
所述中间逻辑形式指示所述话语中的一个或多个意图;以及
所述逻辑形式是根据已建立的语法的所述话语的句法表达,并且其中,所述逻辑形式包括所述一个或多个意图的一个或多个参数。
21.一种训练系统,包括:
用于访问包括话语、中间逻辑形式和逻辑形式的训练数据的装置;
用于利用所述话语作为训练输入并利用所述中间逻辑形式作为训练输出来训练粗略语义解析器的装置,其中,所述粗略语义解析器学习将所述话语映射到所述中间逻辑形式;以及
用于利用所述中间逻辑形式作为训练输入并利用所述逻辑形式作为训练输出来训练精细语义解析器的装置,其中,所述精细语义解析器学习将所述中间逻辑形式映射到所述逻辑形式,
其中,所述粗略语义解析器和所述精细语义解析器被配置为与对话系统集成。
22.如权利要求21所述的训练系统,其中,所述粗略语义解析器是序列到序列神经网络,并且其中,所述精细语义解析器是附加的序列到序列神经网络。
23.如权利要求21所述的训练系统,其中,用于训练所述精细语义解析器的装置进一步使用所述话语作为训练输入。
24.如权利要求21所述的训练系统,其中:
所述话语是基于文本的自然语言表达;
所述中间逻辑形式指示所述话语中的一个或多个意图;以及
所述逻辑形式是根据已建立的语法的所述话语的句法表达,并且其中,所述逻辑形式包括所述一个或多个意图的一个或多个参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310311950.5A CN116341563A (zh) | 2019-09-11 | 2020-09-07 | 包括粗略语义解析器和精细语义解析器的改进语义解析器 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962898683P | 2019-09-11 | 2019-09-11 | |
US62/898,683 | 2019-09-11 | ||
US16/992,343 US11501065B2 (en) | 2019-09-11 | 2020-08-13 | Semantic parser including a coarse semantic parser and a fine semantic parser |
US16/992,343 | 2020-08-13 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310311950.5A Division CN116341563A (zh) | 2019-09-11 | 2020-09-07 | 包括粗略语义解析器和精细语义解析器的改进语义解析器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112487790A true CN112487790A (zh) | 2021-03-12 |
CN112487790B CN112487790B (zh) | 2023-04-28 |
Family
ID=74851198
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010928486.0A Active CN112487790B (zh) | 2019-09-11 | 2020-09-07 | 包括粗略语义解析器和精细语义解析器的改进语义解析器 |
CN202310311950.5A Pending CN116341563A (zh) | 2019-09-11 | 2020-09-07 | 包括粗略语义解析器和精细语义解析器的改进语义解析器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310311950.5A Pending CN116341563A (zh) | 2019-09-11 | 2020-09-07 | 包括粗略语义解析器和精细语义解析器的改进语义解析器 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11501065B2 (zh) |
CN (2) | CN112487790B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487945B2 (en) * | 2019-07-02 | 2022-11-01 | Servicenow, Inc. | Predictive similarity scoring subsystem in a natural language understanding (NLU) framework |
US11915131B2 (en) * | 2020-11-23 | 2024-02-27 | International Business Machines Corporation | Initializing optimization solvers |
EP4298547A1 (en) * | 2021-05-21 | 2024-01-03 | Google LLC | Machine-learned language models which generate intermediate textual analysis in service of contextual text generation |
CN113284508B (zh) * | 2021-07-21 | 2021-11-09 | 中国科学院自动化研究所 | 基于层级区分的生成音频检测系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716192A (zh) * | 2004-04-23 | 2006-01-04 | 微软公司 | 语义编程语言和语言对象模型 |
CN1839386A (zh) * | 2003-08-21 | 2006-09-27 | 伊迪利亚公司 | 使用语义歧义消除与扩展的因特网搜索 |
US20180307679A1 (en) * | 2017-04-23 | 2018-10-25 | Voicebox Technologies Corporation | Multi-lingual semantic parser based on transferred learning |
CN110110053A (zh) * | 2018-02-01 | 2019-08-09 | 国际商业机器公司 | 在间接话语和事务之间建立逻辑连接 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914279B1 (en) * | 2011-09-23 | 2014-12-16 | Google Inc. | Efficient parsing with structured prediction cascades |
US9026431B1 (en) * | 2013-07-30 | 2015-05-05 | Google Inc. | Semantic parsing with multiple parsers |
US10332631B2 (en) * | 2015-07-07 | 2019-06-25 | Seven Medical, Inc. | Integrated medical platform |
US10304444B2 (en) * | 2016-03-23 | 2019-05-28 | Amazon Technologies, Inc. | Fine-grained natural language understanding |
RU2646386C1 (ru) * | 2016-12-07 | 2018-03-02 | Общество с ограниченной ответственностью "Аби Продакшн" | Извлечение информации с использованием альтернативных вариантов семантико-синтаксического разбора |
-
2020
- 2020-08-13 US US16/992,343 patent/US11501065B2/en active Active
- 2020-09-07 CN CN202010928486.0A patent/CN112487790B/zh active Active
- 2020-09-07 CN CN202310311950.5A patent/CN116341563A/zh active Pending
-
2022
- 2022-10-26 US US17/974,393 patent/US20230061999A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1839386A (zh) * | 2003-08-21 | 2006-09-27 | 伊迪利亚公司 | 使用语义歧义消除与扩展的因特网搜索 |
CN1716192A (zh) * | 2004-04-23 | 2006-01-04 | 微软公司 | 语义编程语言和语言对象模型 |
US20180307679A1 (en) * | 2017-04-23 | 2018-10-25 | Voicebox Technologies Corporation | Multi-lingual semantic parser based on transferred learning |
CN110110053A (zh) * | 2018-02-01 | 2019-08-09 | 国际商业机器公司 | 在间接话语和事务之间建立逻辑连接 |
Also Published As
Publication number | Publication date |
---|---|
CN116341563A (zh) | 2023-06-27 |
US20210073465A1 (en) | 2021-03-11 |
CN112487790B (zh) | 2023-04-28 |
US20230061999A1 (en) | 2023-03-02 |
US11501065B2 (en) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210304075A1 (en) | Batching techniques for handling unbalanced training data for a chatbot | |
US20210082424A1 (en) | Reduced training intent recognition techniques | |
US11935521B2 (en) | Real-time feedback for efficient dialog processing | |
CN112487790B (zh) | 包括粗略语义解析器和精细语义解析器的改进语义解析器 | |
JP2022548064A (ja) | 動的なコンテキスト対話セッション延長 | |
US11810553B2 (en) | Using backpropagation to train a dialog system | |
US11790901B2 (en) | Task-oriented dialog suitable for a standalone device | |
CN114375449A (zh) | 使用上下文数据进行对话处理的技术 | |
US20220172021A1 (en) | Method and system for over-prediction in neural networks | |
CN112487137A (zh) | 使用集成共享资源来流线化对话处理 | |
CN112489632B (zh) | 实施校正模型以减少自动语音识别错误的传播 | |
US11908460B2 (en) | Using a generative adversarial network to train a semantic parser of a dialog system | |
EP3792912B1 (en) | Improved wake-word recognition in low-power devices | |
US20210081799A1 (en) | Compressing neural networks for natural language understanding |
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 |