CN108268587A - 场境感知人机对话 - Google Patents

场境感知人机对话 Download PDF

Info

Publication number
CN108268587A
CN108268587A CN201710891157.1A CN201710891157A CN108268587A CN 108268587 A CN108268587 A CN 108268587A CN 201710891157 A CN201710891157 A CN 201710891157A CN 108268587 A CN108268587 A CN 108268587A
Authority
CN
China
Prior art keywords
theme
user
natural language
data structure
themes
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
CN201710891157.1A
Other languages
English (en)
Other versions
CN108268587B (zh
Inventor
彼得·塔基尔
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Priority to CN202210018083.1A priority Critical patent/CN114490977A/zh
Publication of CN108268587A publication Critical patent/CN108268587A/zh
Application granted granted Critical
Publication of CN108268587B publication Critical patent/CN108268587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • 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
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请涉及场境感知人机对话。描述了涉及利用正进行的人机对话的场境来增强自动化助理在用户在不同的域(主题)之间突然转换时进行解释和响应的能力的方法、设备、和计算机可读介质。在各种实现方式中,可在与自动化助理的正在进行的人机对话期间接收来自用户的自然语言输入。可选择语法以解析所述自然语言输入。该选择可以是基于作为与正在进行的人机对话相关联的场境数据结构的一部分存储的主题。可基于所选择的语法来解析所述自然语言输入,以生成解析。基于所述解析,可生成自然语言响应,并且通过使用输出装置将所述自然语言响应输出至用户。可识别由所述解析或者所述自然语言响应提出的任何主题,并且可将其添加至所述场境数据结构。

Description

场境感知人机对话
技术领域
本申请涉及场境感知人机对话。
背景技术
用户越来越有能力使用自然语言与计算机交互,例如,本文中将这种情况称为“人机对话”。例如,许多移动计算装置(诸如,智能电话、平板、智能手表、独立式智能扬声器等)包括称为“自动化助理”(也称为“交互式助理模块”、“移动助理”等)的软件程序。自动化助理可以被配置为解析和解释自然语言输入(例如,首先口语表达,然后转换成文本,或者最初以文本形式接收)并且提供响应输出(诸如,对问题的回答、任务开始等)。现有的自动化助理通常难以在会话的域之间切换。例如,如果用户和自动化助理已经关于一个主题或者域(例如,玩游戏)中的对象交换对话,并且然后用户突然将会话转向不相关的域(例如,天气)中的另一主题,则自动化助理可能不会完全地响应和/或可能需要附加对话来进行合适地响应。
发明内容
本文中描述了用于利用正在进行的人机对话的场境(context)来增强自动化助理(或者更一般地,交互式语音响应“IVR”部件)以在用户在不同的域之间突然转换人机对话时进行解释和响应的能力的技术。在各种实现方式中,可以使用所谓的“场境数据结构”以保持与正在进行的人机对话相关的各种“主题”。例如,可以使用这些主题来选择用于解析用户的自然语言输入的一个或多个语法。
基于由所选择的语法产生解析,并且在某些情况下,进一步基于表示正在进行的人机对话的动态对话树,可以由自动化助理生成并且提供响应(例如,自然语言响应、启动任务等)。同时,可以将由用户和/或由自动化助理添加至正在进行的对话的任何新主题添加至场境数据结构。可以丢弃在一段时间内尚未提到或者提及的主题。以这种方式,如果用户提供与正在进行的对话的一些先前的主题不直接有关,但是与自然语言输入有关,则自动化主题可能能够无缝地转回到先前主题。因此,自动化助理更能够理解用户在给定时刻正在讲的是什么,并且由此在缺乏清楚陈述的情况下更能够提供用户需要的信息或服务。
在一些实现方式中,本文中描述的技术可以被实现在包括解析器子***和响应子***的***上。解析器子***可以负责解释自然语言输入并且将解释(例如,“解析”和/或主题)提供给响应子***。响应子***可以通过生成并且输出自然语言响应或者通过采取一些其它响应动作(例如,启动特定应用)来负责接收解释并且适当地进行响应。
在一些实现方式中,解析器子***可以被配置为基于在与正在进行的人机对话相关联的前述场境数据结构中存储的一个或多个主题来选择一个或多个语法以解析接收到的自然语言输入。例如,在一些实现方式中,可以与一个或多个适用主题相关联地存储多个语法(例如,可能非常大的语法库)中的每个语法。如果语法的相关联主题中的一个或多个当前与人机对话有关(和/或足够有关),则可以选择/应用该语法,否则,可以不应用该语法。因此,当用户提供自然语言输入时,仅选择和应用与当前相关主题相关联的这些语法。本文偶尔将这种技术称为“场境过滤”。场境过滤提供了避免在会话的场境中没有任何意义,从而可能会导致无意义输出的语法的技术优点。在某些情况下,(与向每个自然语言输入应用潜在庞大的库的所有语法相反)这可以减少向从人类接收的每个自然语言输入应用的语法的数目。减少所应用的语法数目减低了计算资源(诸如,处理器周期、存储器、和/或网络带宽)的利用。这对于人机对话可能尤为有利,因为最小化了自动化助理的延迟(即,确保其自动化助理尽可能快地对用户输入做出响应)对用户而言可能是至关重要的。如果人机对话刚刚开始(因此,还没有一个主题是有关的),则解析器子***可以使用会话技术对接收到的自然语言输入进行处理。解析器子***然后可以在人机对话期间基于由人或者由自动化助理提出的主题开始填写场境数据结构。
与解析器子***和响应子***交互是前述场境数据结构。场境数据结构可以采用在存储器中存储的各种形式的数据结构,并且可以被用于保持与正在进行的人机对话相关或者最近已经与正在进行的人机对话相关的主题。当由用户或者由自动化助理中任一个提出主题时,例如,可以通过响应子***将该主题添加至场境数据结构。如果提出了在场境数据结构中已经存在的主题,则可以“触动”该主题,例如,可以将该主题再次带到会话的最前端。
为此,在各种实现方式中,在场境数据结构中储持续存在的每个主题可以与主题与正在进行的人机对话的关联性的度量相关联。例如,在一些实现方式中,可以至少部分地基于自最后提出主题起的正在进行的人机对话的回合的计数来确定与每个主题相关联的关联性的度量。自提出(例如,添加或者触动)主题起的回合的计数越多,针对那个主题的关联性的度量就越低。假设的是用户关于天气的问题开始了人机对话(使主题“天气”能够添加进来),但是然后对话涵盖了与天气无关的各种主题。自提出天气的主题起的进入对话的回合的计数越多,就越多与主题天气相关联的相关性评分减少。在一些实现方式中,如果主题的相关性的度量缩减到阈值以下,则可以从场境数据结构完全丢弃那个主题。从场境数据结构中丢弃“失效的”主题可以提供各种技术优点。由解析器子***选择的(即,如以上描述的场境过滤)并且向从用户接收的每个自然语言输入应用的语法越多,就越多计算资源被消耗。通过丢弃失效的主题,可以减少由解析器子***向每个自然语言输入应用的语法的数目,从而降低计算资源消耗。另外,通过将解析器子***的重点放在与和当前人机对话相关的主题相关联语法上,将不太可能会产生偏离主题或者其它无意义的解析(这可能会导致自动化助理提供类似地无意义输出)。因此,可以减少实现用户的特定目标需要的人机对话回合的数目(因此,用户提供的自然语言输入),这可以使用户获得提供多个输入的有限物理或者情境能力的益处。
关联性的度量还可以是基于其它因素。例如,在一些实现方式中,可以至少部分地基于主题与场境数据结构中的一个或多个其它主题之间的相关性(例如,语义)的度量,确定与每个主题相关联的关联性的度量。如果已经在一段时间内未提出第一主题,但是稍后提出了语义上相关的第二主题,则可以提升第一主题的关联性度量。
在一些实现方式中,场境数据结构可以采用无向图的形式,该无向图包括多个节点以及连接该多个节点的多个边。无向图的每个节点可以表示作为场境数据结构的一部分存储的一个或多个主题中的给定主题。在一些实现方式中,每个节点还可以存储自最后提出给定主题起正在进行的人机对话的回合的计数。在一些实现方式中,连接两个节点的每个边可以表示在分别由这两个节点表示的两个主题之间的相关性的度量(例如,语义等)。当然,本文中还考虑了其它数据结构。
在一些实现方式中,每个语法可以与主题以及那个主题的阈值关联性评分相关联。如果主题持续存在在场境数据结构中,但其关联性评分不满足阈值,则可以不选择语法。这使对何时应用语法以及何时不应用语法能够精细调整。
在各种实现方式中,响应子***可以从由解析器子***选择并且应用的语法接收解释(或者“解析”)。在一些实现方式中,例如,解析器子***还可以向响应子***提供主题,作为解析/解释的部分和/或单独地作为解析/解释。在一些实现方式中,这些主题可能已经持续存在在场境数据结构中,并且可能已经凭借已经应用的这些主题的相关联语法而被触动。在各种实现方式中,响应子***可以采用对话树来在看似无关的主题之间操纵正在进行的人机对话。本质上,响应子***从解析器子***接收一个或多个解析(或者解释)和主题,并且基于解析和主题沿对话树操纵会话。
例如,在一些实现方式中,在对话树中的每个节点表示自然语言过程。对话树的根节点可以被配置为对任何自然语言输入进行处理(通过发起过程或者通过从用户请求消除歧义)并且发起与响应于来自用户的自然语言输入而发起的过程相对应的一个或多个子节点。子过程本身可以添加附加的子过程以对其自身内部对话的每个方面进行处理。因为每个过程可以是被配置为实现本文中描述的技术的模块化过程,这可以简化代码维护和重新使用。
每当响应子***为用户生成响应(例如,自然语言响应、响应动作、或者任务等)时,响应子***可以将任何相关话题添加至场境数据结构。在一些实现方式中,对话树的每个节点可以与一个或多个主题(例如,该一个或多个主题可以由在节点下面的过程的开发者来选择)相关联。如上文提到的,每个语法还可以与一个或多个主题相关联。因此,通过将这些主题添加至场境数据结构,响应子***有效地添加了可以由解析器子***在任何时间点处是可应用的语法的数目。因此,如果用户谈论关于一个主题,改变过程,然后返回到原始主题(或者返回到语义上相关的主题),则因为语法的相关联主题仍然持续存在在场境数据结构中,与原始主题相关联的语法仍然可以是可应用的。但是如上文提到的是,如果人机对话在足够长的时间内从给定主题偏离,则在一些实现方式中,例如,可以从场境数据结构中丢弃该主题,以防止解析器子***向每个自然语言输入应用超过数目的语法,如上所述,这些语法可能在计算方面会变得很昂贵。
作为示例,假设的是用户利用短语“让我们一起玩游戏吧”来发起人机对话。响应子***可以在根节点处启动对话树。解析器子***可以解析/解释用户的自然语言输入,并且向响应子***提供有解析/解释和任何提出的主题(例如,游戏)。基于接收到的解析和(多个)主题,响应子***可以提供对话(诸如,“好,你想玩什么游戏?”)以在根节点下方发起游戏子过程。响应子***还可以将主题(诸如,“游戏”和“游戏选择”)(该主题可以由解析器子***基于接收到的输入和/或由响应子***基于与游戏子过程相关联的主题来确定)添加至场境数据结构。游戏子过程可以与一个或多个主题(例如,由其开发者)相关联,每个主题可以与和游戏(诸如,“游戏”、“游戏选择”)相关的一个或多个主题相关联。例如,可以与这种主题相关联的一个语法可以是list_available_games grammar。例如,与这种主题相关联的另一个语法可以是“number_of_players”grammar。假设的是用户现在说出“你有什么游戏?”。因为其主题(游戏、游戏选择)当前处于具有相对较高的关联性的度量的场境数据结构中(因为最近刚提出了该主题),所以解析器子***可以选择list_available_games grammar。list_available_games grammar可以解析用户的语句并且将其解释(例如,命令“LIST GAMES”)提供给响应子***。因此,自动化助理(例如,借助于响应子***)可以列出可用的游戏,诸如,“我有Sports Trivia和Historical Trivia”。响应子***还可以将主题(诸如,“小游戏”、“运动”、和“历史”)添加至场境数据结构,并且可以将与SportsTrivia和Historical Trivia游戏相对应的子过程节点添加至对话树。
现在,假设的是用户突然变化主题,诸如,通过说出“今天天气预报怎么样?”。目前可能不存在在场境数据结构中存储的与主题“天气”有关的任何主题。在一些实现方式中,解析器子***可以识别(例如,从语法的大型储存库的场境过滤)与由该话语提出的每个主题(诸如,“天气”)相关联的一个或多个语法。解析器子***可以向响应子***提供有由一个或多个识别到的语法所得到的一个或多个解析以及相对应主题。响应子***可以试图将现有对话树节点与由解析器子***返回的解析/主题相关联(例如,相匹配)。在一些情况下,如果(i)与对话树节点相关联的主题与解析/主题的主题相匹配,并且(ii)对话树节点能够对解析/主题的解析进行处理,则由解析器子***提供的解析/主题可以使对话树节点相关联(例如,相匹配)。如果不满足一个或者两个条件,则控制可以传递回到对话树的根节点。因为主题“天气”可能不会与已经添加至对话树的任何前述主题相匹配,所以这可能是在该示例中的这种情况。因此,响应子***可以加载与主题“天气”相关联的子过程节点,并且可以提供响应,诸如“下雨的几率为30%的多云天气”。响应子***还可以将主题“天气”添加至场境数据结构,并在一些情况下,可以减少与已经包含在场境数据结构中的和天气无关的主题(诸如,“游戏”、“游戏选择”、“知识问答”、“运动”、和“历史”)相关联的关联性的度量。
假设的是用户现在说出“Sports Trivia”。虽然用户最近将人机对话的主题更改为“天气”,虽略微减少了关联性的度量,但是“游戏”、“游戏选择”、“知识问答”、“运动”、和“历史”的主题仍然都被存储在场境数据结构中。因此,解析器子***仍然可以选择(例如,从语法的大型储存库场境滤波)与这些主题相关联的一个或多个语法来解析用户的话语。解析器子***然后可以将所选择的语法应用到该输入,并且可以将所得到的解析和相关联的主题提供给响应子***。响应子***然后可以将控制传递给先前添加至对话树的SportsTrivia子过程节点。
本文中描述的技术可以给出超出已经提到的那些技术优点之外的各种附加的技术优点。例如,本文中描述的技术使能够在不需要(例如,单独的IVR过程的)单独的开发者花费对这种主题改变进行处理的大量资源的情况下而平滑地改变会话主题。附加地或者可替选地,因为语法仅在特定主题相关(并且在一些情况下,必须具有满足各种阈值的关联性的度量)时才是可应用的,所以使用本文中描述的技术还将生成的解析/解释的数目限制于仅在当前对话场境中有意义的那些技术。这可以节省计算资源,诸如,存储器、处理器周期、网络带宽等。
在一些实现方式中,本文中描述的技术有助于要由自动化助理实现的IVR对话的模块化设计。这种模块化设计(包括本文中描述的对话树的层级结构)可以更容易维持,并且还可以对简单的代码允许重新使用。一些实现方式的附加技术优点是本文中描述的对话树允许所有业务逻辑以单一编程语言(诸如,C++)容易地开发。因此,与涉及几种编程语言的解决方案相比,减少了开发时间。
在一些实现方式中,提供了包括以下操作的由一个或多个处理器执行的方法:接收来自用户的自然语言输入作为用户与由一个或多个处理器操作的自动化助理之间的正在进行的人机对话的一部分;选择一个或多个语法来解析自然语言输入,其中,该选择是基于作为与正在进行的人机对话相关联的场境数据结构的一部分、在存储器中存储的一个或多个主题;基于所选择的一个或多个语法来解析自然语言输入,以生成一个或多个解析;基于解析中的一个或多个解析,生成自然语言响应;使用一个或多个输出装置将该自然语言响应输出至用户;识别由解析中的一个或多个解析或者自然语言响应提出的一个或多个主题;以及将识别到的一个或多个主题添加至场境数据结构。
可选地,这些本文中公开的技术和其它实现方式可以包括以下特征中的一个或多个特征。
在各种实现方式中,一个或多个语法是从多个语法中选择的,以及其中,所述多个语法中的每个语法是与一个或多个能够应用的主题相关联地存储的。在各种实现方式中,作为场境数据结构的一部分、在存储器中存储的每个主题可以与该主题的与正在进行的人机对话的关联性的度量相关联。在各种实现方式中,可以至少部分地基于自最后提出主题起正在进行的人机对话的回合的计数来确定与每个主题相关联的关联性的度量。
在各种实现方式中,可以至少部分地基于主题与场境数据结构中的一个或多个其它主题之间的相关性的度量来确定与每个主题相关联的关联性的度量。
在各种实现方式中,场境数据结构可以包括无向图,该无向图包括多个节点以及连接该多个节点的多个边。在各种实现方式中,无向图的每个节点可以表示作为场境数据结构的一部分存储的一个或多个主题中的给定主题、以及自最后提出给定主题起的正在进行的人机对话的回合的计数。在一些实现方式中,连接两个节点的每个边可以表示在分别由这两个节点表示的两个主题之间的相关性的度量。
在各种实现方式中,该方法可以进一步包括:生成具有一个或多个节点的对话树,该一个或多个节点表示在正在进行的人机对话期间已经调用的一个或多个交互式语音过程。在各种实现方式中,节点中的一个或多个节点可以与一个或多个主题相关联。在各种实现方式中,所述选择可以包括:从与一个或多个主题相关联的一个或多个语法中选择一个或多个语法。
另外,一些实现方式包括一个或多个计算装置的一个或多个处理器,其中,该一个或多个处理器是可操作的,以执行在相关联的存储器中存储的指令,以及其中,该指令被配置为执行任何前述方法。一些实现方式还包括一种或多种非暂时性计算机可读存储介质,该一种或多种非暂时性计算机可读介质存储计算机指令,该计算机指令能够由一个或多个处理器实行,以执行任何前述方法。
应当显而易见的是,本文更详细地描述的前述构思和附加构思的所有组合都被视作本文中公开的主题的一部分。例如,出现在本公开结束处的所要求的主题的所有组合都被视作本文中公开的主题的一部分。
附图说明
图1是其中可以实现本文中公开的实现方式的示例环境的框图。
图2描绘了根据各种实现方式的可以在人机对话期间应用的示例语法。
图3、图4、和图5描绘了根据各种实现方式的示例场境数据结构。
图6描绘了根据本文中公开的实现方式的示例对话树。
图7A、图7B、和图7C描绘了根据各种实现方式的在人机对话期间如何动态地生长对话树的示例。
图8描绘了实践本文中描述的各种技术的示例过程。
图9图示了计算装置的示例架构。
具体实施方式
现在参照图1,图示了其中可以实现本文中公开的技术的示例环境。示例环境包括多个客户端计算装置1061-N和自动化助理120。尽管在图1中自动化助理120被图示为与客户端计算装置1061-N分开,但是在一些实现方式中,自动化助理120的全部或者多个方面可以由客户端装置1061-N中的一个或多个实现。例如,客户端装置1061可以实现自动化助理120的一个实例或者多个方面,并且客户端装置106N还可以实现自动化助理120的那些一个或多个方面的单独的实例。在其中自动化助理120的一个或多个方面由远离客户端计算装置1061-N的一个或多个计算装置来实现的实现方式中,客户端计算装置1061-N和自动化助理120的那些方面可以经由一个或多个网络(诸如,局域网(LAN)和/或广域网(WAN)(例如,互联网))进行通信。
例如,客户端装置1061-N可以包括以下装置中的一个或多个:台式计算装置、膝上型计算装置、平板计算装置、移动电话计算装置、用户的车辆的计算装置(例如,车载通信***、车载娱乐***、车载导航***)、和/或用户的包括计算装置的可穿戴设备(例如,用户的具有计算装置的手表、用户的具有计算装置的眼镜、虚拟或者增强现实显示计算装置)。可以提供附加和/或可替选客户端计算装置。在一些实现方式中,给定用户可以利用共同来自计算装置的协调“生态***”的多个客户端计算装置与自动化助理120通信。然而,为了简洁起见,在本说明书中描述的一些示例将会聚焦在操作单个客户端计算装置106的用户上。
客户端计算装置1061-N中的每个可以操作各种不同的应用,诸如消息交换客户端1071-N中的相对应的一个。消息交换客户端1071-N可以以各种形式进行,并且这些形式可以跨客户端计算装置1061-N而变化和/或多个形式可以在客户端计算装置1061-N中的单个一个上运行。在一些实现方式中,消息交换客户端1071-N中的一个或多个可以具有以下形式:短消息服务(“SMS”)和/或多媒体消息服务(“MMS”)客户端、在线聊天客户端(例如,即时通讯工具、互联网中继聊天、或者“IRC”等)、与社交网络相关联的消息传送应用、专用于与自动化助理120对话的个人助理消息服务等。在一些实现方式中,消息交换客户端1071-N中的一个或多个可以经由通过web浏览器(未描绘)或者客户端计算装置106的其它应用呈现的网页或者其它资源来实现。
如本文中更详细地描述的是,自动化助理120经由一个或多个客户端装置1061-N的用户接口输入和输出装置与一个或多个用户一起参与人机对话会话。在一些实现方式中,响应于由用户经由客户端装置1061-N中的一个的一个或多个用户接口输入装置提供的用户接口输入,自动化助理120可以与用户一起参与对话会话。在这些实现方式中的一些中,用户接口输入被明确地指向自动化助理120。例如,消息交换客户端1071-N中的一个可以是专用于与自动化助理120对话的个人助理消息服务,并且可以将经由该个人助理消息服务提供的用户接口输入提供给自动化助理120。另外,例如,可以基于指示将要调用自动化助理120的特定用户接口输入来将用户接口输入明显地指向消息交换客户端1071-N中的一个或多个中的自动化助理120。例如,特定用户接口输入可以是一个或多个类型的字符(例如,@AutomatedAssistant),用户与硬件按钮和/或虚拟按钮(例如,轻敲、长轻敲)的交互、口头命令(例如,“你好,自动化助理”)、和/或其它特定用户接口输入。在一些实现方式中,即使在未将用户接口输入明显地指向自动化助理120时,自动化助理120也可以响应于用户接口输入而参与对话会话。例如,自动化助理120可以检查用户接口输入的内容并且响应于用户接口中存在的特定项和/或基于其它提示而参与对话会话。在许多实现方式中,自动化助理120可以参与交互式语音响应(“IVR”),使得用户能够说出(utter)命令、搜索等,以及自动化助理可以利用一个或多个语法来将发音转换成文本,并且可以相应地响应于该文本。
客户端计算装置1061-N中的每个和自动化助理120可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据并且执行应用的一个或多个处理器、以及促进通过网络通信的其它部件。由客户端计算装置1061-N中的一个或多个和/或由自动化助理120执行的操作可以跨多个计算机***被分布。例如,自动化助理120可以被实现为在通过网络彼此耦合的一个或多个位置中的一个或多个计算机上运行的计算机程序。
自动化助理120可以包括解析器子***130、响应子***140、对话场境引擎150、和应用引擎160。在一些实现方式中,在与自动化助理120分开的部件中可以省略、组合、和/或实现自动化助理120的引擎和/或子***中的一个或多个。自动化助理120可以经由相关联的客户端装置1061-N与一个或多个用户一起参与人机对话会话,以获得信息(例如,回答问题、获得搜索结果等)、发起任务(电话应用、日历应用、杂项应用等)、参与对话等。
如本文所使用的是,“对话会话”可以包括用户与自动化助理120之间的一个或多个消息的逻辑上自包含交换,作为人机对话的一部分。自动化助理120可以基于以下各种信号在与用户一起的多个对话会话之间区分:诸如,会话之间经过的时间、会话之间改变用户场境(例如,在预定会议之前/期间/之后等的位置)、检测除了用户与自动化助理之间的对话之外的在用户与客户端之间的一个或多个中间交互(例如,用户在一段时间内切换应用、用户从独立式语音激活产品离开,并且稍后返回到该独立式语音激活产品)、会话之间锁定客户端装置/使客户端装置休眠、改变用于与自动化助理120的一个或多个实例接口连接的客户端装置等。
在一些实现方式中,当自动化助理120提供请求用户反馈的提示时,自动化助理120可以抢先启动客户端装置(经由该客户端装置提供提示)的一个或多个部件,该一个或多个部件被配置为响应于该提示而要接收的用户接口输入处理。例如,在用户接口输入要经由客户端装置1061的麦克风而提供的情况下,自动化助理120可以提供一个或多个命令以使:麦克风能够抢先“打开”(从而免除了对命中接口元件或者说出“热词”以打开麦克风的需要),客户端装置1061的文本处理器的本地语音被抢先启动、客户端装置1061与对文本处理器的远程语音之间的通信会话被抢先建立、和/或图形用户接口(例如,包括可以被选择为提供反馈的一个或多个可选择元件的接口)被呈现在客户端装置1061上。与如果未抢先启动部件相比,这可以使用户接口输入能够更被快速地提供和/或使用户接口输入能够被快速地处理。
自动化助理120的解析器子***130可以经由客户端装置1061-N对由用户生成的自然语言输入进行处理,并且可以基于使用场境过滤选择的一个或多个语法来生成可以包括“解析”或者“解释”以供自动化助理120的一个或多个其它部件(诸如,响应子***140)使用的注释的输出。例如,解析器子***130可以对由用户经由客户端装置1061的一个或多个用户接口输入装置生成的自然语言自由形式输入进行处理。生成的注释的输出包括自然语言输入的一个或多个注释(例如,一个或多个主题)并且可选地包括自然语言输入的项中的一个或多个(例如,全部)。
在一些实现方式中,解析器子***130可以被配置为识别和注释自然语言输入中的各种类型的语法信息。例如,解析器子***130可以包括被配置为利用其语法角色来注释项的词性标注器。例如,词性标注器可以利用其词性(诸如,“名词”、“动词”、“形容词”、“代词”等)来标记每个项。另外,例如,在一些实现方式中,附加地和/或可替选地,解析器子***130可以包括被配置为确定自然语言输入中的这些项之间的句法关系的依赖解析器。例如,依赖解析器可以确定哪些项修饰句子的其它项、主语、和动词等(例如,对话树)--并且可以对这种依赖性做出注释。
在一些实现方式中,附加地和/或可替选地,解析器子***130可以包括实体标注器,该实体标注器被配置为注释一个或多个片段中的实体引用,诸如,对人(包括:例如,文学人物)、组织、位置(真实和虚构)、主题等的引用。实体标注器可以以高层级粒度(例如,以能够识别对实体类别(诸如,人)的所有引用)和/或较低层级的粒度(例如,以能够识别对特定实体(诸如,特定的人)的所有引用)来注释对实体的引用。实体标注器可以依赖于自然语言输入的内容以解析特定实体或主题,并且/或者可以可选地与知识图或其它实体数据库进行通信,以解析特定实体和/或主题。在一些实现方式中,附加地和/或可替选地,解析器子***130可以包括被配置为基于一个或多个场境线索而对相同实体的引用进行分组或者“集群”的共指解析器。
在一些实现方式中,解析器子***130的一个或多个部件可以依赖于来自解析器子***130的一个或多个其它部件的注释。例如,在一些实现方式中,已命名的实体标注器可以在注释对特定实体的所有提及中依赖于来自指代解析程序和/或依赖解析器的注释。另外,例如,在一些实现方式中,共指解析器可以在集群对相同实体的引用中依赖于来自依赖解析器的注释。在一些实现方式中,在对特定自然语言输入处理时,解析器子***130的一个或多个部件可以使用在特定自然语言输入的外部的所相关的先前输入和/或其它相关数据(例如,由对话场境引擎150维持的主题),以确定一个或多个注释。
在各种实现方式中,对话场境引擎150可以被配置为保持客户端装置106的用户与自动化助理120之间的当前人机对话会话期间已经提出的一个或多个主题。在一些实现方式中,对话场境引擎150可以将所谓的“场境数据结构152”维持在计算机存储器中。场境数据结构152可以采用在存储器中存储的各种形式的数据结构,并且可以被用于保持与正在进行的人机对话会话相关或者最近已经与正在进行的人机对话相关的主题。当由用户或者由自动化助理120任一提出主题时,可以例如通过对话场境引擎150或者通过自动化助理120的另一部件将该主题添加至场境数据结构。如果提出了在场境数据结构154中已经存在的主题,则该主题可以被“触动”,例如,可以有效地将该主题再次带到谈话的最前端。换言之,在场境数据结构152中存在的主题可以表示用户在特定人机对话会话期间(或者在一些实现方式中,跨在时间上相对接近发生的不同的人机会话)很有可能关注的主题。通过至少暂时地将这些主题维持在场境数据结构152中,自动化助理120能够更好地解释来自用户的、与最近讨论的主题无关的自然语言输入,因此更好地能够适应于改变人机对话的主题的用户。
为此,在场境数据结构152中存在的每个主题可以与正在进行的人机对话的主题的关联性的度量相关联。例如,在一些实现方式中,可以至少部分地基于自最后提出主题起的正在进行的人机对话的回合的计数来确定与每个主题相关联的关联性的度量。自提出主题(例如,添加或者触动)起的回合的计数越多,针对那个主题的关联性的度量就越低。假设的是用户关于天气的问题开始了人机对话(使主题“天气”被添加),但是对话然后覆盖了与天气无关的宽泛范围的主题。自提出天气的主题起进入对话的回合的计数越多,与主题天气相关联的关联性评分缩减的就越多。在一些实现方式中,如果主题的关联性的度量缩减到阈值以下,则那个主题可以从场境数据结构152完全地被丢弃。
关联性的度量还可以基于其它因素。例如,在一些实现方式中,可以至少部分地基于主题与场境数据结构152中的一个或多个其它主题之间的相关性的度量(例如,语义)来确定与场境数据结构152中的每个主题相关联的关联性的度量。如果在一些时间内未提出第一主题,但是稍后提出了语义上相关的第二主题,则可以提升或增加相关性的第一主题的度量。
在一些实现方式中,场境数据结构152可以采用无向图的形式,该无向图包括多个节点以及连接该多个节点的多个边。无向图中的每个节点可以表示作为场境数据结构152的一部分而存储的一个或多个主题中的给定主题。在一些实现方式中,每个节点还可以存储自最后提出给定主题起的正在进行的人机对话的回合的计数。在一些实现方式中,连接两个节点的每个边可以表示在分别由这两个节点表示的两个主题之间的相关性的度量(例如,语义等)。当然,在本文中考虑了其它数据结构。
在各种实现方式中,解析器子***130可以包括语法引擎132。语法引擎132可以具有对包括多个语法的语法数据库134访问的权限。在各种实现方式中,在语法数据库134中存储的每个语法可以与主题以及那个主题的阈值关联性评分相关联。如果主题持续存在在场境数据结构152中,但其关联性评分不满足阈值,则可以不由解析器子***130来选择语法。这使对何时应用语法以及何时不应用语法能够精细调整。
例如,假设的是以下语法规则为有效:
这些语法规则可以规定在用户可以使用各种形式的自然语言输入以重新开始游戏下的情况。顶层规则仅要求主题“游戏”是稍微相关的。例如,只要主题“游戏”具有满足一些最小阈值(例如,>0)的关联性的度量,顶层规则就可以维持有效。这个在用户正在玩游戏时任何点可以为真,同时游戏在后台中是被启动等。因为满足顶层语法的自然语言输入(“请重新开始游戏”)是受到高度关注的且无歧义的陈述,所以使顶层语法是可广泛地应用是有意义的。
相比之下,底层规则要求主题“game_restart_confirmation”为高度相关,例如,通过具有满足一些相对严格的阈值的关联性的度量。例如,当用户做出以下陈述时,诸如,“请重新开始游戏”、“可能我们应当重新设置游戏”、“我想重新开始”等,才可以提出主题“game_restart_confirmation”。因此,如果用户仅高度关注重新开始游戏时,则底层规则允许用户通过提供各种形式的简单的肯定响应(例如,$PT_Yes可以包括“是”、“好”、“确定”等)来重新开始游戏。用户响应于来自自动化助理120的请求(诸如,“你确定你想重新开始游戏?”)而提供这种肯定输入。如果用户在不需要首先提出这种主题的情况下说出“是”,则自动化助理120可以提供输出诸如“很抱歉,我不明白”或者“你同意什么?”。虽然不是必须的,但是一般来说,由特定语法预期更多关注的自然语言输入,较高的主题关联性要求与将会是那个语法相关联。
在一些实现方式中,例如,当各种主题与当前人机对话相关时,在语法数据库134中存储的语法规则可以应用在各种情况中。例如,用于解释肯定响应(例如,“是”、“好”、“确定”、“肯定”等)的简单语法规则可以应用在宽泛范围的情况。以下语法规则演示了其中可以应用这种语法规则的一些示例场境:
利用这种语法规则,每当主题“pizza_order_confirmation”、“quiz_quit_game_question”、“quiz_add_player_question”、或者“phone_call_retry_question”中的任何具有高关联性的度量时,用户可以能够提供简单的肯定响应(例如,“是”、“好”、“对”、“确定”等)。该语法要求高度关注这些主题(即,相对高的关联性的度量),以便为可适用的。这是因为只有在自动化助理120询问寻求简单的是响应或者否响应的问题时仅提出这些主题中的每个。这些主题中的一个以上的主题将不会具有以要应用在任何给定场境中的足够高的关联性的度量。即使这些主题中的一个以上的主题当前被持续存在在场境数据结构152中,但是仅最近提出的主题有可能满足严格的关联性要求。
在一些实现方式中,在语法数据库134中存储的语法规则可以与多个主题相关联。例如,采用以下语法规则:
(allow_if(medium person)(medium person))
(rule$were_married(were they ever married)
(=(event_name were_married)))
当多个不同的人至少具有关联性的中等度量时,该规则可以是可应用的。因此,例如,可以使以下人机对话能够:
USER: 铁娘子的主唱是谁?
AA:Bruce Dickinson。
USER: 谁演奏了歌曲Paparazzi?
AA:Lady Gaga。
USER: 他们结过婚吗?
AA:不,他们没有。
提出了主题“人”的两个不同实例:一个为“Bruce Dickinson”,并且另一个为“Lady Gaga”。因此,当用户询问问题“他们结婚了吗?”时,自动化助理120可以应用以上的语法规则,以获得指示这两个人实际上没有结婚的信息。
在一些实现方式中,语法规则可以应用于可以由除了用户或自动化助理120之外的源提出的主题。假设的是以下语法规则有效:
(allow_if(point_of_interest))
(rule$who_built(*** who built it)
(=(event_name who_built)))
无论关联性的度量可以是高或是低,这个语法规则可以在任何兴趣点当前继续存在在场境数据结构152中时是可应用的。另外,“point_of_interest”主题可以由用户或者由自动化助理120添加,也可以由用户携带的计算装置中的部件(诸如,位置坐标传感器(例如,全球定位***,或者“GPS”))添加。假设的是用户站在埃菲尔铁塔之前(使主题“point_of_interest”被添加至场境数据结构152)并且询问“谁建造了埃菲尔铁塔?”。自动化助理120可以应用以上语法规则以解析用户的自然语言输入,并且可以返回答案“埃菲尔铁塔是由Gustave Eiffel建造的”。
响应子***140可以从由解析器子***130选择和应用的语法接收解析和主题。在各种实现方式中,响应子***140可以包括对话引擎142,该对话引擎142采用对话树144以操纵(steer)在看似不相关的主题之间的正在进行的人机对话。本质上,响应子***从解析器子***接收一个或多个解析(或解释)和主题,并且基于这些解析和主题沿对话树操纵会话。
例如,在一些实现方式中,对话树144中的每个节点表示自然语言过程。对话树144的根节点可以被配置为处理任何自然语言输入(通过发起过程或者通过从用户请求消除歧义)并且被配置为发起与响应于来自用户的自然语言输入而发起的、与过程相对应的一个或多个子节点。子过程本身可以附加地添加子过程以处理各种方面的其自身内部对话。因为每个过程可以是被配置为实现本文中描述的技术的模块化过程,所以这个可以简化代码维护并重新使用。
每当响应子***140为用户生成响应(例如,自然语言响应、响应动作、或者任务等)时,响应子***140可以将任何相关主题添加至场境数据结构152。在一些实现方式中,对话树的每个节点可以与一个或多个主题(例如,该一个或多个主题可以由在节点下面的过程的开发者来选择)相关联。如上文提到的是,每个语法还可以与一个或多个主题相关联。因此,通过将这些主题添加至场境数据结构,响应子***实际上添加了可以由解析器子***130在任何时间点处是可应用的的语法的数目。因此,如果用户谈论关于一个主题、改变进程、然后返回到原始主题(或者返回到语义上相关的主题),则因为语法的相关联主题仍然继续存在在场境数据结构152中,所以与那个原始主题相关联的语法仍然可以是可应用的。但是如上文提到的是,如果人机对话在足够长的时间内从给定主题偏离,则在一些实现方式中,例如,可以从场境数据结构152中将该主题丢弃,以防止解析器子***130将过多数目的语法应用到每个自然语言输入,如上所述的是,这在计算上可能变得很昂贵。
除了使用本文中描述的技术简单地与用户谈话之外或者代替使用本文中描述的技术简单地与用户谈话,自动化助理120还可以基于由用户提供的自然语言输入来发起一个或多个任务。因此,应用引擎160可以维持应用库162或者以其它方式具有对应用库162的访问。应用库162中的应用可以被安装在一个或多个客户端装置106上、可以是可用于自动化助理120的过程(例如,web过程、云过程等)、和/或可以是内置到自动化助理120中的过程。更一般地,应用库162中的应用可以是在人机对话期间可用于自动化助理120的过程。
如以下将会更详细描述的是,响应子***140可以维持与在人机对话会话期间已经由自动化助理120发起和/或访问的交互式自然语言过程相对应的节点图,例如,作为对话树144。当自动化助理120访问新过程时,可以将表示这些过程的节点作为子节点添加至前述根节点。在一些实现方式中,子节点过程在需要时同样可以添加附加子节点过程。
在一些实现方式中,每个子节点过程可以与本文中描述的技术和框架兼容。例如,每个子节点过程可以与一个或多个主题相关联。这些主题有效地将每个子节点与语法相关联,该语法还与相同主题相关联。如果接收到不满足最新添加的子节点过程的自然语言输入(即,自然语言输入提出不应用到最新添加的子节点过程的任何主题的主题),则能够的是其它的、先前添加的子节点过程可以具有可应用到(相匹配)新提出的主题的相关联主题。按照这种方式,在不必须需要自动化助理120追溯与先前提出的子节点过程相关联的状态机的情况下,用户能够无缝地返回到人机对话会话的先前主题。
图2描绘了一个或多个语法270在用户与自动化助理120(图中的“AA”)之间的人机对话会话272期间如何应用的简单示例。在该示例中,如果“人”的主题具有被视作“高”的关联性的度量(例如,满足阈值),则最顶层语法270可以是可应用的。对话开始于以问题“这首音乐叫什么?”的形式提供自然语言输入的用户(假设的是存在由自动化助理120播放的或者检测为环境声音的音乐)。如由粗体字指示的是,在一些实现方式中,例如,可以由解析器子***130和/或对话场境引擎150分析用户的自然语言输入,以确定应当将主题“音乐”添加至当前场境数据结构152中存在的主题。在该时间点处,因为刚刚添加了该主题,所以与主题“音乐”相关联的关联性的度量可以相对较高/较强。
自动化助理120通过陈述“这是肖邦的升C小调夜曲”来做出响应。例如,因为自动化助理120本身发起了音乐回放,或者通过利用各种声音处理技术,基于一个或多个可听特征来识别音乐,所以自动化助理120可以确定该答案。如由粗体字指示的是,在各种实现方式中,可以将主题(诸如,“人”、“艺术家”、“作曲家”、和/或“肖邦”)添加至当前继续存在在场境数据结构152中的主题。在该时间点处,因为刚刚添加了该主题,所以与主题“人”和/或“肖邦”相关联的关联性的度量可以是相对较高的/较强的。在一些实现方式中,例如,因为目前自提出音乐主题起已经过了一回合,所以可以减少/减弱与先前添加的“音乐”主题相关联的关联性的度量。然而,在其它实现方式中,因为主题“肖邦”(作曲家)与主题“音乐”具有紧密的语义关系,所以由主题“音乐”明显地仍与人机对话相关而不可以减少/减弱与主题“音乐”相关联的关联性的度量。
接下来,用户提供自然语言输入,除了其它事物之外,该自然语言输入包括问题“他是在哪里出生的?”。因为在紧靠先前一回合期间刚刚提出了主题“人”(并且从而添加至场境数据结构152),所以主题“人”仍然可以具有关联性的较强或者较高的度量。因此,例如,可以由解析器子***130应用语法270,以确定自然语言输入“他在哪里出生”应当触发称为“where_person_born”的事件,该事件使解析器子***130将解析和/或解释提供给响应子***140,该解析和/或解释使响应子***140确定在对话(肖邦)期间最新引用的人的出生地,并且返回响应“他的出生地在Wola”。同时,响应子***140还可以将主题(诸如,“城市”和/或“Wola”)添加至场境数据结构152或者使对话引擎150将主题(诸如,“城市”和/或“Wola”)添加至场境数据结构152。如前所述,例如,根据先前几回合期间提出的主题(例如,“音乐”、“人”、“肖邦”)在语义上是否与新添加的主题相关,可以或不可以减少与在先前几回合期间提出的主题(例如,“音乐”、“人”、“肖邦”)相关联的关联性的度量。
接下来,用户提供自然语言输入,该自然语言输入询问问题“在哪里?”。应当注意的是,在无从获益于任何先前的对话场境情况下,用户通过询问这种模糊问题发起了与自动化助理120的新的人机对话会话,自动化助理120可能已经不能够在不需要从用户进一步请求消除歧义的信息的情况下而提供对这个问题的响应。然而,因为刚刚在前一回合中将主题“城市”添加至场境数据结构152,因此该主体“城市”具有相关性的相对较高的度量,从而解析器子***130可以能够将语法270中的第二语法应用到用户的自然语言输入。解析器子***130可以将所得到的解析或者解释(例如,event_name=“where_city_located”)提供给响应子***140以及任何新应用主题。基于该解析(和主题),响应子***140可以(例如,从诸如知识图、可搜索文档等的各种源)获得响应信息并提供自然语言输出“Wola是波兰Masovian地区的一个城市。”与之前相类似的是,例如,可以由响应子***140和/或对话场境引擎150将主题(诸如,“地区”、“国家”、和/或“波兰”)添加至场境数据结构152。
用户然后提供自然语言输入,该自然语言输入询问问题“距离首都有多远?”。此外,在不需要先前的场境的情况下,不可能的是,自动化助理120在不需要从用户请求消除歧义的信息的情况下来回答这种问题。然而,利用在该特定人机对话会话中的仍然相对“新的”(即,仍然具有关联性的相对较高的度量)主题“Wola”和“波兰”,自动化助理120能够更直接地回答问题。例如,解析器子***130可以将第三语法向下应用到用户的自然语言输入,以触发返回当前相关的国家或地区的首都(在该示例中,“华沙”)的事件“identify_capitol”。另外,在一些实现方式中,可以将主题(诸如“首都”)添加至场境数据结构152。然后,解析器子***130可以将第四语法向下应用到用户的自然语言输入和识别到的首都的组合。可以将所得到的解析或解释(例如,event_name=“distance_between_cities”)提供给响应子***140。基于这个解析,响应子***140可以获得响应信息并且提供自然语言输入“距离为39英里”。
人机对话272的接下来两回合特别地强调了由本文中描述的技术提供的一个技术优点,即,突然变化谈话的域。用户提供自然语言输入,该自然语言输入询问“你知道任何类似的艺术家吗?”。如上文提到的是,在人机对话272期间相对较早地将“艺术家”的主题添加至场境数据结构152,并且在多个对话回合中未提出该主题。因此,可以显著地减少/减弱与主题“艺术家”相关联的关联性的度量。尽管如此,语法270的底层语法指定的是,即使主题“艺术家”与关联性的相对较低的度量相关联,但那个语法也可以是可应用的。因此,解析器子***130可以应用那个语法,以为响应子***140生成解析。响应于该解析,响应子***140然后可以触发发起对其它类似艺术家(例如,该其它类似艺术家创造出美学上类似的艺术,在人口统计上类似的、在类似的时间段内操作的等)的搜索的事件“find_similar_artists”。响应子***140然后可以提供自然语言输出“当然,我推荐Franz Liszt、Ludwigvan Beethoven、或者Franz Schubert”。
图3描绘了如何逻辑上实现场境数据结构152的一个示例。在该示例中,场境数据结构152被形成为具有多个节点以及连接该多个节点的多个边的无向图364。这些无向图364的每个节点可以表示作为场境数据结构152的一部分持续存在的一个或多个主题中的给定主题。在一些实现方式中,每个节点还可以存储自最后提出给定主题起正在进行的人机对话的回合的计数。
无向图364包括与在图2的人机对话272期间可能已经添加至场境数据结构152的主题相对应的节点。每个主题之前的方括号表示其中最后提出该主题的回合的计数,该方括号还在图2中被指示。因此,例如,在第一([0])回合期间(尽管这不是必需的,但是在此期间包括用户的自然语言输入和来自自动化助理120的响应)提出了“音乐”和“艺术家”的主题。当自动化助理120提到“Wola”时,在第二([1])回合期间提出了主题“城市”。当自动化助理120分别提到“波兰”和“Masovian地区”时,在第三([2])回合期间提出了主题“国家”和“地区”。当用户请求到首都的距离时,在第四([3])回合期间提出了主题“距离”和“城市”。当自动化助理120提供与肖邦类似的艺术家的三个示例时,在第五([4])回合期间三次提出主题“艺术家”。
在一些实现方式中,可以通过从当前回合的计数中减去其相关联的对话回合的数目(如果存在表示主题的多个节点的最新对话回合的数目)来简单地确定特定主题的关联性的度量。结果越小,主题与当前对话就越相关。然而,另外如上面提到的是,在其它实现方式中,考虑了其它因素,诸如主题的相关性。例如,在一些实现方式中,可以识别表示在当前对话回合中提出的主题(无论该主题是新添加的或是更新的)的节点,例如,如节点A。可以通过针对有向图364中的每个节点计算到属于A的任何节点的最短距离di来在当前对话回合期间确定给定主题的关联性的度量。另外,还可以计算当前对话回合数目与节点的回合数目之间的差ai。可以将节点的(因此,主题的)关联性的度量设置为ai和di中的最小值。
图4描绘了类似的无向图464(如图3描绘的)。对于该示例假设的是:图2中描绘的人机对话272现在正在进入第六([5])对话回合,并且在当前对话回合的计数([5])期间提出了阴影节点(“艺术家”)。无向图464的每个节点在方括号的左侧上包括当前对话回合数目([5])与提出该主题的最近对话回合之间的差di。无向图464的每个节点在方括号的右侧上还包括该节点与最新添加的节点A之间的最短路径ai。图5描绘了基于ai和di的最小值对每个节点/主题确定的关联性的度量。以这种方式确定关联性的度量可以考虑其中最近未提到特定主题,但是最近仍然已经提到紧密相关的主题的场境。在这种场境中,特定主题仍然可以至少间接地与人机对话相关,并且因此,可能对调和减少与特定主题相关联的关联性的多少度量的是有意义的。
如上文提到的是,响应子***140(例如,凭借对话引擎142)可以控制自动化助理120如何与用户一起参与人机对话。在一些实现方式中,可以将用户的自然语言输入的解析(或解释)提供给由对话引擎142实现的层级决策过程(例如,凭借使用对话树144)。在某些情况下,层级决策过程可以包括过程层级(例如,对话树144的根和子过程节点),在过程层级中,较大的过程管理一些较小的过程。
图6示意性地描绘了在人机对话670期间可以使用的对话树644的简单示例。该示例示出了如何使可用的场境越多(即,在场境数据结构152中持续存在的主题越多),用户为了实现某些目标(例如,从自动化助理120获得响应回复、使自动化助理发起任务等)而需要说出的话越少。假设如下示例的是:针对可以是小游戏的GAME A定义了以下语法规则:
从这些语法规则能够显而易见的是,用户能够始终开始时明确地陈述他或她想与三名玩家一起玩GAME A。这种陈述包括由GAME A以开始玩游戏需要的所有参数。如果主题“game_A”至少具有关联性的中间的度量(例如,玩家说:“我想玩GAME A”,但是未提供附加信息),则玩家能够说“我需要<非零整数>名玩家”以开始玩游戏。另外,如果自动化助理120刚刚已经询问:“有多少名玩家?”,则主题“player_question”可以具有用户能够简单地提供数字响应的关联性的足够高的度量。
在人机对话672中,用户通过陈述“我想玩GAME A”开始。可以将主题“game_A”(并且潜在地是诸如“游戏”的其它主题)添加至场境数据结构152,并且将GAME A子节点添加至根节点。GAME A子节点可以表示与GAME A相关联的子节点过程。当开发这种子节点过程(或者指定针对特定应用的对话的多个子节点过程)时,开发者可以定义(并且在一些实现方式中,在语法数据库134中存储的)诸如上述的语法规则。在该示例中,GAME A包括三个子节点过程:游戏模式(GAME MODE)(控制实现是单人模式还是多人游戏模式)、玩家(PLAYER)(如果实现多人游戏模式,则控制有多少名玩家)、以及多名玩家循环(MULTIPLAYER LOOP)(控制多名游戏者玩游戏)。
根据GAME MODE子过程,自动化助理120回复:“好的,单人游戏还是多人游戏?”。多人游戏做出响应:“多人游戏”。在一些实现方式中,与节点GAME MODE相关联的子过程可以解释用户的输入(例如,使用与GAME MODE节点相关联地提供的语法规则)并且将解析/解释提供给由GAME A节点表示的过程。接下来,根据与PLAYERS节点相关联的子过程,自动化助理120可以询问:“有多少名玩家?”。玩家做出响应“三名”。在一些实现方式中,与节点PLAYERS相关联的子过程可以解释用户的输入(例如,使用与PLAYERS节点相关联地提供的语法规则)并且将解析/解释提供给由GAME A节点表示的过程。一旦与GAME A节点相关联的过程获知了游戏模式(多人游戏)和玩家数目(三名),则其然后可以将控制传递给MULTIPLAYER LOOP节点,该节点控制游戏期间的对话。
在一些实现方式中,对话树的每个子节点过程可以被设计为执行三种功能:处理特定用户解释(即,解析)、与其最接近的父节点通信、以及与其最接近的子节点通信。例如,子节点过程可以通过与在(例如,在场境数据结构中存储的)当前场境中是可应用的一个或多个主题相关联来执行处理特定用户解释的功能。在图6中,与GAME A相关联的节点可以能够从多个源(诸如,用户直接地(例如,通过提供由与GAME A节点相关联的语法解释的自然语言输入的用户))和/或从一个或多个子节点接收玩游戏需要的参数(例如,从GAME MODE节点接收玩游戏的模式、从PLAYERS节点接收玩家的数目)。
图7A-图7C演示了在以下的人机对话期间如何动态地生成对话树744:
USER:我想玩GAME A
AA:好的,有多少名玩家?
USER:首先,告诉我现在的时间。
AA:现在是下午7点15分。
USER:Roses的游戏今天什么时候开始?
AA:45分钟之后,下午8点开始。
USER:好的。我需要三名玩家。
AA:好,开始玩游戏吧。第一个问题……
如上所述,因为在场境数据结构中不存在任何其它主题,所以由根节点解释用户的第一陈述(“我想玩GAME A”)。如图7A所描绘的是,用户的请求可以使子节点过程GAME A被发起,以及,在某些情况下的MULTIPLAYER LOOP被发起。在一些实现方式中,自动化助理的响应(“好的,有多少名玩家?”)可以使一个或多个附加子节点过程被添加到节点GAME A的下面,诸如,PLAYERS。
图7B描绘了在用户通过说出“首先,告诉我现在的时间”而突然变化主题之后的对话树744。当用户提供该陈述时,尚未将主题“时间”添加至场境数据结构152。因此,控制被传递回到根节点,该根节点在没有与任何有源子过程节点相关联的主题对新提出的主题是可应用的(例如,相匹配)时处理自然语言输入。根节点能够解释用户的请求并且发起称为TIME的另一子过程节点,该另一子过程节点可以被配置为返回当前时间。
图7C描绘了在用户再次突然变化主题之后的对话树744。这次,用户询问:“Roses的游戏今天什么时候开始?”。在场境数据结构152中不持续存在潜在地可应用的主题(诸如,“电视”、“系列”等)。因此,再次将控制传递回到根节点,该根节点解释用户的自然语言输入并且响应:“45分钟之后,下午8点开始”。然后,用户将主题操纵回GAME A,说出“好的,我需要三名玩家”。因为主题“GAME A”仍然持续存在在场境数据结构152中,所以与主题“GAME A”相关联的语法可以对由GAME A子节点过程是可应用的。
从上述说明和示例应当清楚地的是,在一些实现方式中,对话树中的子节点过程与主题相关联。场境数据结构152中存在的主题是根据正在进行的人机对话的场境的,该场境随着时间而变化。因此,对话树中存在的子节点过程可以是根据正在进行的人机对话的场境的。因此,随着正在进行的人机对话的场境变化,对话树也随着时间而动态地变化。
在一些实现方式中,子节点过程可以被实现为各种编程语言(例如,C++、Java等)的类别。每个子节点过程可以被配置为与其父节点和子节点(若存在)交换信息,对用户提供的自然语言输入的解析/解释的反应、持续存在某些状态,并且在一些情况下,与远程过程通信等,诸如,可以返回几条信息(像,天气、运动评分、新闻、电视节目、一般信息(例如,与知识图中的实体相关联的信息)等)的远程过程调用。
在一些实现方式中,子节点过程可以包括静态定义的接口的方法。在单工通信中,该响应没有被预期。只有被叫方暴露出接口,如以下样本代码所示:
void SomeChildClass::set_difficulty(int level);
另一方面,在双工通信中,接收方必须能够将结果返回至主叫方。
因此,双方可以暴露出接口:
void SomeChildClass::ask_for_game_settings();
void ParentClass::game_settings_callback(const GameSettings&settings);
如果(例如,在C++中)使用模板编程,则可能能够确保父过程实现由其子过程需要的接口,例如,以使能双工通信。因此,可以在编译时间处检测到由主叫方与被叫方之间的通信协议中的不一致而导致的错误。
这种明确定义的通信接口可以促进代码的重新使用。例如,假设的是过程A旨在使用由过程B提供的逻辑件。如果过程B没有将任何数据返回至其父过程,则过程A可以简单地添加过程B作为子过程。另一方面,如果过程B被配置为将数据返回至其父过程(例如,通过接口IB),则过程A可以被配置为实现接口IB,并且然后可以添加过程B作为子过程。
在一些实现方式中,实现过程的每个类别可以实现负责处理从用户接收到的自然语言输入的解析/解释的方法。可以将类别实例的状态保持在与该类别实例相关联的主题对象内。每个类别可以具有对向外部世界提供用于进行各种调用(例如,远程过程调用)的接口的继承构件的权限。
图8是图示了根据本文中公开的实现方式的示例方法800的流程图。为了方便起见,流程图的操作参照执行这些操作的***被描述。这个***可以包括各种计算机***的各种部件,诸如,自动化助理120的一个或多个部件。另外,虽然以特定顺序示出了方法800的操作,但是这并不旨是限制性的。可以重新排序、省略、或添加一个或多个操作。
在框802处,***可以接收来自用户的自然语言输入。可以经由各种类型的输入装置以各种形式接收自然语言输入。例如,在一些实现方式中,输入装置可以是麦克风,并且自然语言输入可以是由用户提供的可听话语。在一些这种实现方式中,可以从音频信号中提取令牌和其它信息,并且令牌和其它信息可以被用于生成与口语输入相对应的文本。在其它实现方式中,例如,可以接收自然语言输入,作为由用户使用消息交换客户端107在消息交换线程中提供的键入的或口语的输入。
在框804处,***可以选择一个或多个语法,以解析自然语言输入。该选择可以是基于作为场境数据结构152的一部分而持续存在的一个或多个主题,和/或是基于与这些主题相关联的关联性的度量。在其中对话树由响应子***140被采用的实现方式中,如果在场境数据结构152中尚不持续存在任何主题,或者如果没有当前与任何任何子过程节点相关联的主题对于最新提出的主题是可应用的(例如,相匹配),则控制可以传递到根节点。根节点然后可以解析自然语言输入并且相应地做出反应(例如,获得信息并且提供自然语言响应、发起一个或多个应用/过程等)。如果在根节点处,则用户的自然语言输入不被理解,则自动化助理120可以要求用户阐明。
在框806处,***可以基于框804处选择的语法来解析框802处接收到的自然语言输入。在一些实现方式中,能够的是多个语法是可应用的,并且因此,可以生成自然语言输入的解析/解释。***可以以各种方式从这些多个(潜在冲突的)解释中进行选择。在一些实现方式中,***可以选择由要求其相关联的主体是最多的关注(例如,与相关性的最高度量相关联)的语法生成的解析。例如,假设的是,第一语法与主题“游戏”相关联,但仅要求主题“游戏”具有关联性的中等或者甚至轻微的度量。进一步假设的是,还与主题“游戏”相关联的第二语法需要关联性的相对较高的度量。如果主题“游戏”当前地与关联性的高度量相关联—例如,因为该主体被最近刚刚提出或者该主题在语义上与其它最近提出的主题相关—则这两个语法可以是可应用的。然而,由于第二语法的高关注阈值,因此***可以选择由第二语法生成的解析。在其它实现方式中,***可以基于其它信号(诸如,每个解析的概率是用户的真实意图)从多个解析/解释中进行选择。例如,在一些实现方式中,可以使用日志、相关性的度量、或者其它类似的数据点来计算多个解析中的每个与用户的真实意图相匹配的概率。在其中多个解析看起来具有是正确的类似概率的情况下,***可以从用户寻求附加阐明和/或消除歧义。
在一些实现方式中,在框808处,***可以基于框806处生成的一个或多个解析来生成自然语言响应。在一些这种实现方式中,自然语言响应可以伴随还发起一些过程(诸如,上述的小游戏)的***。另外,虽然提到以上作为示例提供的小游戏与自动化助理形成整体(即,将它们描述为无缝地集成成正在进行的人机对话中的IVR应用),但这并不旨在作为限制性的。在各种实现方式中,***可以发起不涉及IVR的任务,诸如,打开不必须通过使用口语的或键入的自然语言输入来控制的应用(例如,电话应用、日历应用、社交网络应用、图形视频游戏、健身应用等)。在框810处,***可以输出框808处生成的自然语言响应。例如,自动化助理可以回答用户的问题、寻找过程的另一参数、与用户一起参与对话、提供指示自动化助理正在发起另一应用的输出等。
在框812处,***可以识别由在框806处生成的解析和/或在框808处生成的自然语言响应而提出的主题。在框814处,***可以基于识别到的主题来更新场境结构。如果尚未将主题添加至场境数据结构,则它们可以被添加。如果主题已经作为场境数据结构的一部分而持续存在,则可以“触动”这些主题,例如,通过增加与这些主题相关联的关联性的度量。另外,在一些实现方式中,还可以“触动”(例如,在与所添加的主题相同的程度上,或者在一些情况下,在更低的程度上)场境数据结构152中的在语义上与新提出的主题相关的其它主题。
图9是可以可选地利用示例计算装置910的框图以执行本文中描述的技术的一个或多个方面。在一些实现方式中,客户端计算装置、自动化助理120、和/或其它部件中的一个或多个可以包括示例计算装置910的一个或多个。
计算装置910通常包括经由总线子***912与数个***装置通信的至少一个处理器914。这些***装置可以包括存储子***924,该存储子***926包括例如存储器子***925和文件存储子***926;用户接口输出装置920;用户接口输入装置922;和网络接口子***916。输入和输出装置允许用户与计算装置910交互。网络接口子***916提供到外部网络的接口,并且被耦合至其它计算装置中的相对应的接口装置。
用户接口输入装置922可以包括键盘、指向装置(诸如,鼠标、轨迹球、触摸板、或者绘图板)、扫描器、并入到显示器中的触摸屏幕、音频输入装置(诸如,语音识别***、麦克风)、和/或其它类型的输入装置。一般而言,术语“输入装置”的使用旨在以将信息输入到计算装置910中或输入到通信网络上的所有可能类型的装置和方式。
用户接口输出装置920可以包括显示子***、打印机、传真机、或者诸如音频输出装置的非视觉显示器。显示子***可以包括用于创建可视图像的阴极射线管(CRT)、平板装置(诸如,液晶显示器(LCD))、投影仪装置、或者一些其它机构。显示子***还可以提供诸如经由音频输出装置的非可视显示器。一般而言,术语“输出装置”的使用旨在包括用于将来自计算装置910的信息输出至用户或者输出至另一机器或者计算装置的所有可能类型的装置和方法。
存储子***924存储提供本文中描述的一些或所有模块的功能的编程和数据构造。例如,存储子***924可以包括逻辑件,以执行图8的方法的所选择的方面以及实现图1中描绘的部件。
这些软件模块通常由处理器914单独执行或者由处理器914与其它处理器结合来执行。在存储子***924中使用的存储器925能够包括数个存储器,这些数个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)930和其中存储固定指令的只读存储器(ROM)932。文件存储子***926能够为程序和数据文件提供永久性存储,并且可以包括硬盘驱动器、具有相关联的可移动介质的软盘驱动器、CD-ROM驱动器、光学驱动器、或者可移动介质盒。可以由文件存储子***926将实现特定实现方式的功能的模块存储在存储子***924中,或者存储在可由处理器914访问的其它机器中。
总线子***912提供用于让计算装置910的各种部件和子***作为意图来与彼此通信的机构。尽管将总线子***912示意性地示出为单条总线,但是总线子***的可替选实现方式可以使用多条总线。
计算装置910能够是不同类型的计算装置,这些不同类型的计算装置包括工作站、服务器、计算集群、刀片式服务器、服务器群、或者任何其它数据处理***或计算装置。由于计算机和网络的不断变化的性质,出于图示一些实现方式之目的,对图9中描绘的计算装置910的描述仅仅旨在作为特定示例。与图9中描绘的计算装置相比,计算装置910的许多其它配置能够具有更多的或者更少的部件。
在其中本文所讨论的特定实现方式可以收集或使用关于用户的个人信息(例如,从其它电子通信提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物信息、以及用户的活动和人口信息),用户被提供有一个或多个机会以控制是否收集信息、是否存储个人信息、是否使用个人信息、以及如何收集、存储、和使用关于用户的信息。即,本文中讨论的***和方法仅在接收到来自相关用户对此的明确授权之后收集、存储、和/或使用用户个人信息。例如,用户被提供有对程序或者特征是否收集关于该特定用户或者与程序或特征相关的其它用户的用户信息的控制。针对要收集个人信息的每个用户被呈现有一个或多个选项,以允许对与那个用户相关的信息收集的控制,以提供关于是否收集信息以及要收集信息的哪些部分的许可或授权。例如,用户能够被提供有对通信网络的一个或多个这种控制选项。另外,在存储或者使用某些数据之前,可以以一种或多种方式来处理这某些数据,使得个人身份信息被去除。作为一个示例,用户的身份可以被处理,使得不能够确定个人身份信息。作为另一示例的是,可以将用户的地理位置一般化到更大的区域,使得不能够确定用户的特定地理位置。
虽然本文中已经描述并且图示了若干实现方式,但是可以利用用于执行功能和/或获得结果和/或本文中描述的优点中的一个或多个的各种其它手段和/或结构,并且这些变型和/或修改中的每个都被视为在本文中描述的实现方式的范围内。更一般地,本文中描述的所有参数、尺寸、材料、和配置意旨是示例性的,并且实际参数、尺寸、材料、和/或配置将会根据用于使用本教导的特定应用。本领域的技术人员将会认识到或者能够使用常规实验就确定与本文中描述的特定实现方式等效的若干实现方式。因此,要理解的是,前述实现方式通过仅是示例的方式被呈现,并且在随附权利要求书及其等效物的范围内,实现方式可以按照特定描述并且要求保护的其它方式来实践。本公开的实现方式涉及本文中描述的每个单独的特征、***、物品、材料、工具箱、和/或方法。另外,如果这种特征、***、物品、材料、套件、和/或方法没有互相冲突,则两个或者更多个这种特征、***、物品、材料、套件、和/或方法的任何组合被包括在本公开的范围内。

Claims (21)

1.一种计算机实现的方法,所述方法包括:
接收来自用户的自然语言输入作为所述用户与由一个或多个处理器操作的自动化助理之间的正在进行的人机对话的一部分;
基于在存储器中存储的一个或多个主题选择一个或多个语法,作为与所述正在进行的人机对话相关联的场境数据结构的一部分;
基于所选择的一个或多个语法解析所述自然语言输入,以生成一个或多个解析;
基于所述一个或多个解析,生成自然语言响应;
使用一个或多个输出装置,将所述自然语言响应输出至所述用户;
识别由所述一个或多个解析或者所述自然语言响应提出的一个或多个主题;以及
将所识别到的一个或多个主题添加至所述场境数据结构。
2.根据权利要求1所述的计算机实现的方法,其中,所述一个或多个语法是从多个语法中选择的,以及其中,所述多个语法中的每个语法是与一个或多个能够应用的主题相关联地存储的。
3.根据权利要求1所述的计算机实现的方法,其中,在所述存储器中存储的每个主题作为所述场境数据结构的一部分是与所述主题的与所述正在进行的人机对话的关联性的度量相关联的。
4.根据权利要求3所述的计算机实现的方法,其中,与每个主题相关联的关联性的度量是至少部分地基于自最后提出所述主题起的所述正在进行的人机对话的回合的计数来确定的。
5.根据权利要求3所述的计算机实现的方法,其中,与每个主题相关联的关联性的度量是至少部分地基于所述主题与所述场境数据结构中的一个或多个其它主题之间的相关性的度量来确定的。
6.根据权利要求1所述的计算机实现的方法,其中,所述场境数据结构包括无向图,所述无向图包括多个节点和连接所述多个节点的多个边。
7.根据权利要求6所述的计算机实现的方法,其中,所述无向图的每个节点表示作为所述场境数据结构的一部分存储的所述一个或多个主题中的给定主题、以及自最后提出所述给定主题起的所述正在进行的人机对话的回合的计数。
8.根据权利要求7所述的计算机实现的方法,其中,连接所述无向图中的两个节点的每个边表示在分别由所述两个节点表示的两个主题之间的相关性的度量。
9.根据权利要求1所述的计算机实现的方法,进一步包括生成具有一个或多个节点的对话树,所述一个或多个节点表示在所述正在进行的人机对话期间已经调用的一个或多个交互式语音过程。
10.根据权利要求9所述的计算机实现的方法,其中,所述一个或多个节点中的每个节点与相应的主题相关联。
11.根据权利要求10所述的计算机实现的方法,其中,所述选择包括从各自与一个或多个能够应用的主题相关联的多个语法中选择所述一个或多个语法。
12.一种***,所述***包括一个或多个处理器以及与所述一个或多个处理器操作地耦合的存储器,其中,所述存储器存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器:
接收来自用户的自然语言输入作为所述用户与由所述一个或多个处理器操作的自动化助理之间的正在进行的人机对话的一部分;
基于在存储器中存储的一个或多个主题选择一个或多个语法,作为与所述正在进行的人机对话相关联的场境数据结构的一部分;
基于所选择的一个或多个语法解析所述自然语言输入,以生成一个或多个解析;
基于所述一个或多个解析,生成自然语言响应;
使用一个或多个输出装置,将所述自然语言响应输出至所述用户;
识别由所述一个或多个解析或者所述自然语言响应提出的一个或多个主题;以及
将所识别到的一个或多个主题添加至所述场境数据结构。
13.根据权利要求12所述的***,其中,所述一个或多个语法是从多个语法中选择的,以及其中,所述多个语法中的每个语法是与一个或多个能够应用的主题相关联地存储的。
14.根据权利要求12所述的***,其中,在所述存储器中存储的每个主题作为所述场境数据结构的一部分是与所述主题的与所述正在进行的人机对话的关联性的度量相关联的。
15.根据权利要求14所述的***,其中,与每个主题相关联的关联性的度量是至少部分地基于自最后提出所述主题起的所述正在进行的人机对话的回合的计数来确定的。
16.根据权利要求14所述的***,其中,与每个主题相关联的关联性的度量是至少部分地基于所述主题与所述场境数据结构中的一个或多个其它主题之间的相关性的度量来确定的。
17.根据权利要求12所述的***,其中,所述场境数据结构包括无向图,所述无向图包括多个节点和连接所述多个节点的多个边。
18.根据权利要求17所述的***,其中,所述无向图的每个节点表示作为所述场境数据结构的一部分存储的所述一个或多个主题中的给定主题、以及自最后提出所述给定主题起的所述正在进行的人机对话的回合的计数。
19.根据权利要求18所述的***,其中,连接所述无向图中的两个节点的每个边表示在分别由所述两个节点表示的两个主题之间的相关性的度量。
20.至少一种非暂时性计算机可读存储介质,所述至少一种非暂时性计算机可读介质存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
接收来自用户的自然语言输入作为所述用户与由一个或多个处理器操作的自动化助理之间的正在进行的人机对话的一部分;
基于在存储器中存储的一个或多个主题选择一个或多个语法,作为与所述正在进行的人机对话相关联的场境数据结构的一部分;
基于所选择的一个或多个语法解析所述自然语言输入,以生成一个或多个解析;
基于所述一个或多个解析,生成自然语言响应;
使用一个或多个输出装置,将所述自然语言响应输出至所述用户;
识别由所述一个或多个解析或者所述自然语言响应提出的一个或多个主题;以及
将所识别到的一个或多个主题添加至所述场境数据结构。
21.一种装置,所述装置被配置为执行如权利要求1-11中任一项所述的方法。
CN201710891157.1A 2016-12-30 2017-09-27 场境感知人机对话 Active CN108268587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210018083.1A CN114490977A (zh) 2016-12-30 2017-09-27 场境感知人机对话

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662440856P 2016-12-30 2016-12-30
US62/440,856 2016-12-30
US15/446,908 US10268680B2 (en) 2016-12-30 2017-03-01 Context-aware human-to-computer dialog
US15/446,908 2017-03-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210018083.1A Division CN114490977A (zh) 2016-12-30 2017-09-27 场境感知人机对话

Publications (2)

Publication Number Publication Date
CN108268587A true CN108268587A (zh) 2018-07-10
CN108268587B CN108268587B (zh) 2022-01-28

Family

ID=60270219

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210018083.1A Pending CN114490977A (zh) 2016-12-30 2017-09-27 场境感知人机对话
CN201710891157.1A Active CN108268587B (zh) 2016-12-30 2017-09-27 场境感知人机对话

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210018083.1A Pending CN114490977A (zh) 2016-12-30 2017-09-27 场境感知人机对话

Country Status (8)

Country Link
US (2) US10268680B2 (zh)
EP (3) EP4152314B1 (zh)
JP (1) JP6912579B2 (zh)
KR (2) KR102355988B1 (zh)
CN (2) CN114490977A (zh)
DE (2) DE202017105864U1 (zh)
GB (1) GB2558352A (zh)
WO (1) WO2018125332A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704595A (zh) * 2019-09-27 2020-01-17 百度在线网络技术(北京)有限公司 对话的处理方法、装置、电子设备及可读存储介质
CN111223477A (zh) * 2018-11-23 2020-06-02 珠海格力电器股份有限公司 一种人机交互时话题上移的方法及设备
CN112017662A (zh) * 2019-05-31 2020-12-01 阿里巴巴集团控股有限公司 控制指令确定方法、装置、电子设备和存储介质
CN112667795A (zh) * 2021-01-04 2021-04-16 北京百度网讯科技有限公司 对话树构建方法和装置、对话树运行方法、装置以及***

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
WO2014182820A2 (en) * 2013-05-07 2014-11-13 Haley Paul V System for knowledge acquisition
US20190129941A2 (en) * 2013-05-21 2019-05-02 Happify, Inc. Systems and methods for dynamic user interaction for improving happiness
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10872289B2 (en) * 2017-04-08 2020-12-22 Geun Il Kim Method and system for facilitating context based information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10176808B1 (en) * 2017-06-20 2019-01-08 Microsoft Technology Licensing, Llc Utilizing spoken cues to influence response rendering for virtual assistants
US10387463B2 (en) 2017-07-06 2019-08-20 International Business Machines Corporation Dialog agent for conducting task-oriented computer-based communications
US11436469B2 (en) * 2017-07-31 2022-09-06 Microsoft Technology Licensing, Llc Knowledge graph for conversational semantic search
EP3663940A4 (en) * 2017-08-04 2020-07-29 Sony Corporation INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING PROCESS
US20210065708A1 (en) * 2018-02-08 2021-03-04 Sony Corporation Information processing apparatus, information processing system, information processing method, and program
WO2019161229A1 (en) 2018-02-15 2019-08-22 DMAI, Inc. System and method for reconstructing unoccupied 3d space
US11468885B2 (en) * 2018-02-15 2022-10-11 DMAI, Inc. System and method for conversational agent via adaptive caching of dialogue tree
US11018997B2 (en) * 2018-04-12 2021-05-25 Disney Enterprises, Inc. Systems and methods for maintaining a conversation
US10699708B2 (en) * 2018-04-24 2020-06-30 Accenture Global Solutions Limited Robotic agent conversation escalation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10891950B2 (en) * 2018-09-27 2021-01-12 International Business Machines Corporation Graph based prediction for next action in conversation flow
EP3859568A4 (en) * 2018-09-28 2021-09-29 Fujitsu Limited DIALOGUE DEVICE, DIALOGUE PROCEDURE AND DIALOGUE PROGRAM
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11714965B2 (en) * 2018-11-09 2023-08-01 Genesys Telecommunications Laboratories, Inc. System and method for model derivation for entity prediction
JP7160116B2 (ja) * 2018-12-25 2022-10-25 富士通株式会社 対話装置、対話方法及び対話プログラム
US11295213B2 (en) * 2019-01-08 2022-04-05 International Business Machines Corporation Conversational system management
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11423910B2 (en) * 2019-03-19 2022-08-23 Servicenow, Inc. Systems and method for third party natural language understanding service integration
US11790176B2 (en) * 2019-03-19 2023-10-17 Servicenow, Inc. Systems and methods for a virtual agent in a cloud computing environment
US11544475B2 (en) 2019-03-22 2023-01-03 Predictika Inc. System and method for providing a model-based intelligent conversational agent
CN110188190B (zh) * 2019-04-03 2023-07-14 创新先进技术有限公司 对话解析方法、装置、服务器及可读存储介质
US10964324B2 (en) * 2019-04-26 2021-03-30 Rovi Guides, Inc. Systems and methods for enabling topic-based verbal interaction with a virtual assistant
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11256868B2 (en) 2019-06-03 2022-02-22 Microsoft Technology Licensing, Llc Architecture for resolving ambiguous user utterance
CN111177310B (zh) * 2019-12-06 2023-08-18 广西电网有限责任公司 电力服务机器人智能场景会话方法及装置
US11195534B1 (en) * 2020-03-30 2021-12-07 Amazon Technologies, Inc. Permissioning for natural language processing systems
CN111506292B (zh) * 2020-04-15 2021-06-15 思必驰科技股份有限公司 用于人机对话的语音技能跳转方法、电子设备及存储介质
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
DE102021109265A1 (de) 2020-08-31 2022-03-03 Cognigy Gmbh Verfahren zur Optimierung
US11790173B2 (en) * 2020-10-22 2023-10-17 Google Llc Recommending action(s) based on entity or entity type
US20220351741A1 (en) * 2021-04-29 2022-11-03 Rovi Guides, Inc. Systems and methods to alter voice interactions
US11984112B2 (en) 2021-04-29 2024-05-14 Rovi Guides, Inc. Systems and methods to alter voice interactions
US11962455B2 (en) 2021-11-29 2024-04-16 T-Mobile Usa, Inc. Prioritizing multiple issues associated with a wireless telecommunication network
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses
WO2024020065A1 (en) * 2022-07-20 2024-01-25 Cerence Operating Company Collaboration between a recommendation engine and a voice assistant

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306271A (zh) * 1999-12-28 2001-08-01 索尼公司 会话处理设备、方法及其记录介质
US20060074671A1 (en) * 2004-10-05 2006-04-06 Gary Farmaner System and methods for improving accuracy of speech recognition
JP2008009552A (ja) * 2006-06-27 2008-01-17 Nippon Telegr & Teleph Corp <Ntt> インデクス生成装置、インデクス生成方法およびインデクス生成プログラム

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725307B2 (en) 1999-11-12 2010-05-25 Phoenix Solutions, Inc. Query engine for processing voice based queries including semantic decoding
US6985852B2 (en) * 2001-08-21 2006-01-10 Microsoft Corporation Method and apparatus for dynamic grammars and focused semantic parsing
US20030061029A1 (en) 2001-08-29 2003-03-27 Efraim Shaket Device for conducting expectation based mixed initiative natural language dialogs
US7197460B1 (en) * 2002-04-23 2007-03-27 At&T Corp. System for handling frequently asked questions in a natural language dialog service
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
WO2004012431A1 (en) * 2002-07-29 2004-02-05 British Telecommunications Public Limited Company Improvements in or relating to information provision for call centres
US7987091B2 (en) 2002-12-02 2011-07-26 Sony Corporation Dialog control device and method, and robot device
US8645122B1 (en) * 2002-12-19 2014-02-04 At&T Intellectual Property Ii, L.P. Method of handling frequently asked questions in a natural language dialog service
US20090018829A1 (en) * 2004-06-08 2009-01-15 Metaphor Solutions, Inc. Speech Recognition Dialog Management
TWI237991B (en) 2004-06-28 2005-08-11 Delta Electronics Inc Integrated dialogue system and method thereof
US7716056B2 (en) * 2004-09-27 2010-05-11 Robert Bosch Corporation Method and system for interactive conversational dialogue for cognitively overloaded device users
CA2981426A1 (en) * 2004-10-05 2006-04-05 Inago Corporation System and methods for improving accuracy of speech recognition
KR100755677B1 (ko) 2005-11-02 2007-09-05 삼성전자주식회사 주제 영역 검출을 이용한 대화체 음성 인식 장치 및 방법
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US20080221892A1 (en) * 2007-03-06 2008-09-11 Paco Xander Nathan Systems and methods for an autonomous avatar driver
US20090030697A1 (en) 2007-03-07 2009-01-29 Cerra Joseph P Using contextual information for delivering results generated from a speech recognition facility using an unstructured language model
WO2010045375A1 (en) * 2008-10-14 2010-04-22 Honda Motor Co., Ltd. Improving dialog coherence using semantic features
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
US20120245925A1 (en) * 2011-03-25 2012-09-27 Aloke Guha Methods and devices for analyzing text
US8880406B2 (en) * 2011-03-28 2014-11-04 Epic Systems Corporation Automatic determination of and response to a topic of a conversation
US9495962B2 (en) 2011-09-19 2016-11-15 Personetics Technologies Ltd. System and method for evaluating intent of a human partner to a dialogue between human user and computerized system
US9214157B2 (en) * 2011-12-06 2015-12-15 At&T Intellectual Property I, L.P. System and method for machine-mediated human-human conversation
US8458197B1 (en) * 2012-01-31 2013-06-04 Google Inc. System and method for determining similar topics
US8346563B1 (en) * 2012-04-10 2013-01-01 Artificial Solutions Ltd. System and methods for delivering advanced natural language interaction applications
US20140278427A1 (en) 2013-03-13 2014-09-18 Samsung Electronics Co., Ltd. Dynamic dialog system agent integration
US9189742B2 (en) * 2013-11-20 2015-11-17 Justin London Adaptive virtual intelligent agent
US10079013B2 (en) * 2013-11-27 2018-09-18 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
RU2014111971A (ru) * 2014-03-28 2015-10-10 Юрий Михайлович Буров Способ и система голосового интерфейса
EP3164806A1 (en) * 2014-07-04 2017-05-10 Intelligent Digital Avatars, Inc. Systems and methods for assessing, verifying and adjusting the affective state of a user
US9678946B2 (en) * 2014-11-10 2017-06-13 Oracle International Corporation Automatic generation of N-grams and concept relations from linguistic input data
US9466297B2 (en) * 2014-12-09 2016-10-11 Microsoft Technology Licensing, Llc Communication system
US10061867B2 (en) * 2014-12-30 2018-08-28 Genesys Telecommunications Laboratories, Inc. System and method for interactive multi-resolution topic detection and tracking
CN104573028B (zh) 2015-01-14 2019-01-25 百度在线网络技术(北京)有限公司 实现智能问答的方法和***
US10418032B1 (en) * 2015-04-10 2019-09-17 Soundhound, Inc. System and methods for a virtual assistant to manage and use context in a natural language dialog
US10599644B2 (en) * 2016-09-14 2020-03-24 International Business Machines Corporation System and method for managing artificial conversational entities enhanced by social knowledge
US9953650B1 (en) * 2016-12-08 2018-04-24 Louise M Falevsky Systems, apparatus and methods for using biofeedback for altering speech

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306271A (zh) * 1999-12-28 2001-08-01 索尼公司 会话处理设备、方法及其记录介质
US20060074671A1 (en) * 2004-10-05 2006-04-06 Gary Farmaner System and methods for improving accuracy of speech recognition
JP2008009552A (ja) * 2006-06-27 2008-01-17 Nippon Telegr & Teleph Corp <Ntt> インデクス生成装置、インデクス生成方法およびインデクス生成プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111223477A (zh) * 2018-11-23 2020-06-02 珠海格力电器股份有限公司 一种人机交互时话题上移的方法及设备
CN112017662A (zh) * 2019-05-31 2020-12-01 阿里巴巴集团控股有限公司 控制指令确定方法、装置、电子设备和存储介质
CN112017662B (zh) * 2019-05-31 2023-07-07 阿里巴巴集团控股有限公司 控制指令确定方法、装置、电子设备和存储介质
CN110704595A (zh) * 2019-09-27 2020-01-17 百度在线网络技术(北京)有限公司 对话的处理方法、装置、电子设备及可读存储介质
CN110704595B (zh) * 2019-09-27 2022-08-23 百度在线网络技术(北京)有限公司 对话的处理方法、装置、电子设备及可读存储介质
CN112667795A (zh) * 2021-01-04 2021-04-16 北京百度网讯科技有限公司 对话树构建方法和装置、对话树运行方法、装置以及***
CN112667795B (zh) * 2021-01-04 2023-07-28 北京百度网讯科技有限公司 对话树构建方法和装置、对话树运行方法、装置以及***

Also Published As

Publication number Publication date
JP6912579B2 (ja) 2021-08-04
CN114490977A (zh) 2022-05-13
EP4152314B1 (en) 2024-06-12
US11227124B2 (en) 2022-01-18
EP3563258B1 (en) 2021-11-03
GB201715746D0 (en) 2017-11-15
EP3563258A4 (en) 2020-05-20
KR20190099061A (ko) 2019-08-23
US20190205379A1 (en) 2019-07-04
JP2020503620A (ja) 2020-01-30
US10268680B2 (en) 2019-04-23
GB2558352A (en) 2018-07-11
EP3563258A1 (en) 2019-11-06
DE102017122357A1 (de) 2018-07-05
KR102355988B1 (ko) 2022-01-26
US20180189267A1 (en) 2018-07-05
KR102394289B1 (ko) 2022-05-04
DE202017105864U1 (de) 2018-01-10
EP4152314A1 (en) 2023-03-22
EP3958254A1 (en) 2022-02-23
DE102017122357B4 (de) 2022-10-20
WO2018125332A1 (en) 2018-07-05
CN108268587B (zh) 2022-01-28
EP3958254B1 (en) 2023-05-10
KR20220016286A (ko) 2022-02-08

Similar Documents

Publication Publication Date Title
CN108268587A (zh) 场境感知人机对话
KR102580322B1 (ko) 컨퍼런스 기능을 갖는 자동화된 어시스턴트
KR102640308B1 (ko) 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의전환
US20200395008A1 (en) Personality-Based Conversational Agents and Pragmatic Model, and Related Interfaces and Commercial Models
RU2637874C2 (ru) Генерирование диалоговых рекомендаций для чатовых информационных систем
US11113481B2 (en) Adapting automated assistants for use with multiple languages
JP2020535452A (ja) ユーザプログラマブル自動アシスタント
MXPA04005122A (es) Entendimiento sincronico de objeto semantico implementado con etiquetas de lenguaje de aplicacion del habla.
MXPA04005121A (es) Entendimiento sincronico de objeto semantico para interfase altamente interactiva.
Fang et al. Sounding board–university of washington’s alexa prize submission
CN111870935B (zh) 业务数据处理方法、装置、计算机设备以及存储介质
Longoria Designing software for the mobile context: a practitioner’s guide
CN111095397A (zh) 自然言语数据生成***和方法
EP4343493A1 (en) Presenting attention states associated with voice commands for assistant systems
Gustafson Developing multimodal spoken dialogue systems
Gruenstein Toward widely-available and usable multimodal conversational interfaces
CN117101122A (zh) 虚拟交互对象的控制方法、装置、终端及存储介质
Srivastava et al. Chat Box: A computer program on Android which converses with Humans
JP2018198097A (ja) 文生成装置、文生成方法及びプログラム
Crawford Attunement and Theology: Resonations with David Tracy
Miyazaki Discussion Board System with Multimodality Variation: From Multimodality to User Freedom.

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