CN109313527A - 自动生成提示并分析用户对提示的响应以确定动作的实体并且执行与动作和实体相关的一个或多个计算动作 - Google Patents

自动生成提示并分析用户对提示的响应以确定动作的实体并且执行与动作和实体相关的一个或多个计算动作 Download PDF

Info

Publication number
CN109313527A
CN109313527A CN201680085758.7A CN201680085758A CN109313527A CN 109313527 A CN109313527 A CN 109313527A CN 201680085758 A CN201680085758 A CN 201680085758A CN 109313527 A CN109313527 A CN 109313527A
Authority
CN
China
Prior art keywords
user
prompt
entity
movement
input
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.)
Pending
Application number
CN201680085758.7A
Other languages
English (en)
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
Publication of CN109313527A publication Critical patent/CN109313527A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • 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/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Computer Interaction (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

方法和装置涉及利用自动化消息递送系统以经由用户的计算设备参与与至少一个用户的对话以确定动作的特定服务实体。在一些实施方式中,自动化消息递送系统可以生成多个问题和/或其他提示以从用户征求用户界面输入以用于确定特定服务实体和/或确定动作的一个或多个准则。一些实施方式还涉及基于所确定的服务实体并且可选地基于经由对话的用户界面输入确定的动作的一个或多个准则,执行一个或多个计算动作。

Description

自动生成提示并分析用户对提示的响应以确定动作的实体并 且执行与动作和实体相关的一个或多个计算动作
背景技术
一些互联网平台可以使用户能够执行与特定服务实体相关联的一个或多个动作。然而,平台通常要求用户在选择一个或多个动作的准则之前明确地识别特定服务实体和/或在选择一个或多个动作的准则中选择结构化选项。例如,用户可以通过导航到该特定餐厅的web页面并且从web页面的下拉用户界面菜单中选择时间、日期和人数来预约特定餐厅。此外,例如,用户可以通过导航到该商家的web页面并且从在该web页面的用户界面元素中呈现的可用选项中选择约会的时间、日期和类型来预约商家。
然而,这些和/或其他技术可能遇到一个或多个缺点。例如,它们可能要求用户首先识别特定服务实体,然后提供针对执行用于该特定服务实体的动作的结构化输入。此外,例如,它们可能无法使得动作的一个或多个(例如,所有)准则的规范经由用户输入的自由形式自然语言输入执行。此外,例如,它们可以利用不适合用户的意图的固定结构化字段,所述意图诸如基于在尝试执行动作中的用户输入确定的意图和/或基于过去用户动作和/或其他来源确定的意图。可以呈现另外的和/或替代的缺点。
发明内容
本说明书的实施方式涉及利用自动化消息递送系统来经由用户的计算设备,参与与至少一个用户的对话,以确定动作的特定服务实体。在一些实施方式中,系统响应于指示动作但不指示与该动作相关联的特定服务实体的用户界面输入而参与对话。例如,系统可以接收由用户生成的模糊用户界面输入,其适用于许多服务实体和/或没有对执行动作指定一个或多个必要的和/或期望的准则。这可能是用户不熟悉哪些服务实体可用的情形。在这些实施方式中的一些中,自动化消息递送系统可以生成多个问题和/或其他提示以从用户征求用户界面输入来用于确定特定服务实体和/或用于确定动作的一个或多个准则。提供问题和/或提示可以减少用户必须对设备进行以执行特定动作的用户输入的次数。除了对不熟悉哪些服务实体可用的用户有益之外,这对于具有低灵活性的用户或者难以向设备进行用户输入的用户可能特别有益。至少对于这些用户,例如,通过避免用户因低灵活性而出错,提供问题和/或提示可以提高设备的使用的可靠性和速度。自动化消息递送系统可以基于例如在对话期间发生的用户界面输入、与用户相关联的所存储的属性、适用于所有候选实体的协议和/或特定于候选实体的子集(例如,特定于特定服务实体)的协议生成一个或多个提示。
在各种实施方式中,系统基于所确定的服务实体并且可选地,基于经由对话的用户界面输入确定的动作的一个或多个准则,进一步执行一个或多个计算动作。例如,系统可以在一个或多个计算机可读介质中生成与用户相关联、识别动作和所确定的特定实体、并且包括为该动作确定的一个或多个准则的任务。系统可以可选地将任务传送到一个或多个其他计算系统以发起执行该动作。
在一些实施方式中,自动化消息递送系统可以在从用户征求特定信息的对话期间生成问题或其他提示,并且可以基于在对话期间由用户提供的用户界面输入来主动地适应提示。由自动化消息递送系统生成的至少一些提示可以是自然语言提示,并且在对话期间,由用户提供的至少一些用户界面输入可以是自然语言自由形式输入。如本文所使用的,自由形式输入是由用户制定的输入,并且不限于为由用户选择而呈现的一组选项。在一些实施方式中,在参与与用户的对话中,自动化消息递送系统可以基于为一个或多个服务实体配置的一个或多个协议生成一个或多个提示。例如,协议可以包括适用于作为同一类的成员的多个服务实体的“通用”协议,并且“特定”协议适用于比通用协议更狭窄定制的组(例如,为该类的子集,诸如该类的特定服务实体定制的组)。
在一些实施方式中,提供一种由一个或多个处理器执行的方法,包括执行检查操作两个或两个以上消息交换客户端的两个或两个以上用户之间正在进行的消息交换线程。该方法进一步包括基于检查来确定与消息交换线程的一个或多个词项相关的多个候选服务实体,以及与候选服务实体相关联的至少一个动作。该方法进一步包括生成为动作和候选服务实体定制的提示,并且将提示合并到消息交换线程中,以经由消息交换客户端中的至少一个呈现给用户中的至少一个。该方法进一步包括识别对提示的至少一个响应并且基于特定实体与响应的符合性,确定候选服务实体中的特定实体。响应由消息交换线程中的用户中的至少一个提供。该方法进一步包括基于确定特定实体,将图形元素合并到消息交换线程中以呈现给两个或两个以上用户中的每一个。图形元素识别特定实体的一个或多个性质。
本文公开的技术的这些和其他实施方式可以可选地包括一个或多个下述特征。
在一些实施方式中,将图形元素合并到消息交换线程中包括请求消息交换客户端中的至少一个将图形元素插入到在消息交换客户端中的至少一个的图形用户界面中显示的正在进行的消息交换线程的转录中。在那些实施方式的一些中,图形元素包括文本和/或图像。
在一些实施方式中,该方法进一步包括:生成为该动作和候选服务实体中的至少一个定制的附加提示;将附加提示合并到消息交换线程中,以经由消息交换客户端中的至少一个呈现给用户中的至少一个;以及识别对附加提示的至少一个附加响应。附加响应由消息交换线程中的用户中的至少一个提供。在那些实施方式的一些版本中,该方法进一步包括在一个或多个计算机可读介质中,生成下述任务:与用户中的至少一个相关联的任务,针对动作和特定服务实体的任务,以及至少包括基于附加响应的动作的第一准则的任务。在那些实施方式的一些版本中,该方法进一步包括发起具有基于所述附加响应的所述动作的至少第一准则的所述特定服务实体的动作。
在一些实施方式中,将提示合并到消息交换线程中包括合并提示以呈现给消息交换线程的每个用户。
在一些实施方式中,识别对提示的至少一个响应包括至少识别用户中的第一用户对提示的第一响应以及用户中的第二用户对提示的第二响应,以及确定特定实体是基于第一响应和第二响应。
在一些实施方式中,识别对提示的至少一个响应包括识别来自每个用户的响应;以及确定特定实体是基于来自用户的每个响应。
在一些实施方式中,生成提示进一步基于所存储的消息交换线程的用户的属性。
在一些实施方式中,提供一种由一个或多个处理器执行的方法,包括接收第一自然语言输入,该第一自然语言输入是经由用户的计算设备的用户界面输入设备,由用户制定为用户与自动化消息递送系统之间的对话的一部分的自由形式输入。该方法进一步包括确定与第一自然语言输入相关的至少一个动作和动作的多个候选服务实体。所确定的动作可以由候选服务实体执行或为候选服务实体执行。该方法进一步包括生成为征求针对动作和/或候选服务实体的信息定制的提示,并且在对话的持续中,提供提示以经由用户的计算设备的用户界面输出设备呈现给用户。该方法进一步包括响应于提供提示,接收响应于提示并且由用户提供为用户和自动化消息递送系统之间的对话的一部分的第二输入。该方法进一步包括基于第二输入,生成为征求针对动作和/或候选服务实体的附加信息定制的附加提示;以及在对话的持续中,提供附加提示以经由用户的计算设备的用户界面输出设备呈现给用户。该方法进一步包括响应于提供附加提示,接收响应于附加提示并且由用户提供为用户和自动化消息递送系统之间的对话的一部分的第三输入。该方法进一步包括基于第二输入和第三输入确定:动作的一个或多个准则,以及候选服务实体中,待对其执行动作的特定实体。该方法进一步包括在一个或多个计算机可读介质中,响应于确定动作的一个或多个准则以及待对其执行动作的特定实体,生成下述任务:与用户相关联的任务,识别动作和特定实体的任务,以及包括动作的一个或多个准则的任务。
本文公开的技术的这些和其他实施方式可以可选地包括一个或多个下述特征。
在一些实施方式中,提示紧跟在第一自然语言输入之后,第二输入紧跟在提示之后,附加提示紧跟在第二输入之后,以及第三输入紧跟在附加提示之后。
在一些实施方式中,中间提示和响应中间输入被插入在第二输入和附加提示之间。
在一些实施方式中,生成提示是基于适用于动作的所有候选实体的通用协议的参数。在那些实施方式的一些中,基于第二输入,确定特定实体,以及生成附加提示是基于适用于特定实体的特定协议的附加参数。协议中不包括适用于动作的所有候选实体的附加参数。
在一些实施方式中,响应于提示而接收的第二输入识别候选实体中的初始候选实体,以及该方法进一步包括确定所述动作的所述准则中的至少一个准则对所述初始候选实体是不能够实现的。在那些实施方式的一些中,生成附加提示包括基于确定所述一个或多个准则对所述特定实体的所述动作是能够实现的,将特定实体的别名合并在附加提示中。
在一些实施方式中,生成提示进一步基于用户的所存储的属性。在那些实施方式的一些中,对话在用户、自动化消息递送系统和附加用户之间;以及生成提示进一步基于附加用户的附加存储的属性。
在一些实施方式中,提供提示以向用户呈现包括提供提示以经由用户的计算设备的消息交换客户端与第一自然语言输入同时显示。在那些实施方式的一些中,对话在用户、自动化消息递送系统和附加用户之间——并且该方法进一步包括提供提示以经由附加用户的附加计算设备的附加消息交换客户端,与第一自然语言输入同时显示。
在一些实施方式中,生成附加提示进一步基于将特定实体的性质与用户的当前位置、用户的时间约束和/或用户的用户简档比较。
此外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中,一个或多个处理器可操作以执行在相关联的存储器中存储的指令,以及其中,配置该指令以使得执行上述方法的任何一个。一些实施方式还包括一个或多个非瞬时计算机可读存储介质,其存储可由一个或多个处理器执行来实现上述方法的任何一个的计算机指令。
应当认识到,上述概念和本文更详细所述的附加概念的所有组合被设想为本文公开的主题的一部分。例如,出现在本公开结尾的所要求的主题的所有组合被设想为本文公开的主题的一部分。
附图说明
图1是可以实现本文公开的实施方式的示例环境的框图。
图2A和2B示出了经由用户的计算设备参与与至少一个用户进行对话以确定动作的特定服务实体和动作的多个准则,以及基于所确定的该动作的服务实体和一个或多个准则执行一个或多个计算动作的示例。
图3A示出了具有显示可以在客户端计算设备的用户与根据本文所述的实施方式的自动化消息递送系统之间发生的对话的示例的显示屏的示例客户端计算设备。
图3B示出了图3A的示例客户端计算设备,具有显示可以在客户端计算设备的用户与根据本文所述的实施方式的自动化消息递送系统之间发生的对话的另一示例的显示屏。
图4是示出经由用户的计算设备参与与至少一个用户进行对话以确定动作的特定服务实体和动作的多个准则,并且基于所确定的该动作的服务实体和一个或多个准则,执行一个或多个计算动作的示例方法的流程图。
图5示出了用户的示例客户端计算设备,具有显示用户与附加用户之间正在进行的消息交换的示例、并且显示用户和根据本文所述的实施方式的自动化消息递送系统之间发生的对话的显示屏。
图6是示出参与与参与正在进行的消息交换线程的多个用户中的至少一个用户进行对话以确定动作的特定服务实体和该动作的多个准则并且基于所确定的动作的服务实体和一个或多个准则执行一个或多个计算动作的示例方法的流程图。
图7示出计算设备的示例架构。
具体实施方式
本说明书的实施方式涉及利用自动化消息递送系统来经由用户的计算设备参与与至少一个用户的对话以确定动作的特定服务实体。该系统可以响应于指示动作但不指示与动作相关联的特定服务实体的用户界面输入来参与对话。在这些实施方式中的一些中,自动化消息递送系统可以生成多个提示以从用户征求用户界面输入以用于确定特定服务实体和/或用于确定动作的一个或多个准则。在各种实施方式中,系统基于所确定的服务实体并且可选地基于经由对话的用户界面输入确定的动作的一个或多个准则,进一步执行一个或多个计算动作。
在一些实施方式中,自动化消息递送系统可以接收由用户生成的适于许多服务实体和/或不指定执行动作的一个或多个必要和/或期望准则的模糊用户界面输入——以及自动化消息递送系统可以参与与用户的对话以选择动作的特定服务实体和/或确定动作的一个或多个准则。作为一个示例,假设用户通过说出或键入“book a table tonight(今晚预订一张桌子)”、“get me reservations at a steak house(让我在牛排馆预约)”或“book a flight to Chicago(预订飞往芝加哥的航班)”来发起与自动化消息递送系统的对话。在这些场景的每一个中,用户征求可以适用于许多服务实体(例如,可以在许多餐厅订位、可能有多个牛排馆,以及许多航空公司可能提供飞往芝加哥的航班)并且未指定一个或多个所需和/或必要的准则(例如,人数、时间、日期、哪个航空公司)。在这些实施方式中,在与用户对话期间,由自动化消息递送系统生成的问题可以被配置成从用户提取特定服务实体和/或必要和/或期望的准则,并且可以基于对话期间的用户响应在对话期间被改编。
现在转到图1,示出可以实现本文所述的技术的示例环境。示例环境包括多个客户端计算设备1061-N和自动化消息递送系统120。尽管在图1中,将自动化消息递送系统120示为与客户端计算设备1061-N分开,但在一些实施方式中,可以由客户端计算设备1061-N中的一个或多个实现自动化消息递送系统120的所有或方面。例如,客户端设备1061可以实现自动化消息递送系统120的一个实例或多个方面,以及客户端设备106N还可以实现自动化消息递送系统120的那些一个或多个方面的单独的实例。在由远离客户端计算设备1061-N的一个或多个计算设备实现自动化消息递送系统120的一个或多个方面的实施方式中,客户端计算设备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会话的个人助手消息递送服务等的形式出现。在一些实施方式中,可以经由Web浏览器(未示出)或客户端计算设备106的其他应用渲染的网页或其他资源,实现消息交换客户端1071-N中的一个或多个。
如本文更详细所述,自动化消息递送系统120经由一个或多个客户端设备1061-N的用户界面输入和输出设备参与与一个或多个用户的对话,以确定动作的特定服务实体。自动化消息递送系统120可以响应于指示动作但不指示与动作相关联的特定服务实体的用户界面输入而参与对话。在一些实施方式中,用户界面输入被明确地定向到自动化消息递送系统120。例如,消息交换客户端1071-N之一可以是专用于与自动化消息递送系统120对话的个人助理消息递送服务以及经由该个人助理消息递送服务提供的用户界面输入可以被自动地提供给自动化消息递送系统120。此外,例如,用户界面输入可以基于指示将调用系统120的特定用户界面输入,明确地定向到消息交换客户端1071-N中的一个或多个中的自动化消息递送系统120。例如,特定用户界面输入可以是一个或多个键入的字符(例如,@AutomatedMessagingSystem)、用户与虚拟按钮的交互(例如,点击、长按)、口头命令(例如,“Hey Automated Messaging System(嘿,自动化消息递送系统)”)等。在一些实施方式中,即使当该用户界面输入未被明确地定向到自动化消息递送系统120时,自动化消息递送系统120也可以响应于用户界面输入而参与对话。例如,自动化消息递送系统120可以检查用户界面输入的内容并且响应于出现在用户界面输入中的某些词项和/或基于其他暗示而参与对话。
客户端计算设备1061-N和自动化消息递送系统120中的每一个可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据和执行应用的一个或多个处理器,以及便于网络上通信的其他组件。由一个或多个客户端计算设备1061-N和/或由自动化消息递送系统120执行的操作可以被分布在多个计算机系统上。自动化消息递送系统120可以被实现为例如在通过网络彼此耦合的一个或多个位置中的一个或多个计算机上运行的计算机程序。
自动化消息递送系统120可以包括自然语言处理器122、用户属性引擎124、动作确定引擎126、实体确定引擎128、消息生成引擎130和任务管理模块132。在一些实施方式中,可以省略引擎122、124、126、128、130和/或模块132中的一个或多个。在一些实施方式中,可以组合引擎122、124、126、128、130和/或模块132中的一个或多个的全部或方面。在一些实施方式中,可以在与自动化消息递送系统120分开的组件中实现引擎122、124、126、128、130和/或模块132中的一个或多个。例如,可以在由客户端计算设备1061-N执行的组件中实现122、124、126、128、130和/或132中的一个或多个,或其任何操作部分。
自然语言处理器122处理由用户经由客户端计算设备1061-N生成的自然语言输入,并且可以生成注释输出以由自动化消息递送系统120的一个或多个其它组件使用。例如,自然语言处理器122可以处理由用户经由客户端设备1061的一个或多个用户界面输入设备生成的自然语言自由形式输入。所生成的注释输出包括自然语言输入的一个或多个注释,以及可选地,包括自然语言输入的一个或多个(例如,全部)词项。
在一些实施方式中,自然语言处理器122被配置成识别和注释自然语言输入中的各种语法信息。例如,自然语言处理器122可以包括词性标注器,其被配置成利用它们的语法角色来注释词项。例如,词性标注器可以通过其词性诸如“名词”、“动词”、“形容词”、“代词”等来标注该词项。同时,例如,在一些实施方式中,自然语言处理器122可以附加和/或替选地包括相关性解析器,其被配置成确定自然语言输入中的词项之间的句法关系。例如,相关性解析器可以确定哪些词项修饰句子的哪些词项、主语和动词等(例如,解析树)——并且可以做出这些相关性的注释。
在一些实施方式中,自然语言处理器122可以附加和/或替选地包括实体标注器,其被配置成在一个或多个段中注释实体参引,诸如对人、组织、位置等的参引。实体标注器可以以高颗粒度级注释对实体的参引(例如实现对实体类诸如人的所有参引的标识)和/或较低颗粒度级注释对实体的参引(例如实现对特定实体诸如特定人的参引的标识)。实体标注器可以依赖于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其他实体数据库(例如,实体数据库154)通信以解析特定实体。
在一些实施方式中,自然语言处理器122可以附加和/或替选地包括共参引解析器,其被配置成基于一个或多个上下文暗示分组或“聚合”对同一实体的参引。例如,共参引解析器可以被利用来将自然语言输入“I like Asia Village.Book it please(我喜欢亚洲村。请预订它)”中的词项“it(它)”解析成“Asia Village(亚洲村)”。
在一些实施方式中,自然语言处理器122的一个或多个组件可以依赖于来自自然语言处理器122的一个或多个其他组件的注释。例如,在一些实施方式中,命名实体标注器在注释对特定实体的所有记载中,依赖于来自共参引解析器和/或相关性解析器的注释。同时,例如,在一些实施方式中,共参引解析器在聚合对同一实体的参引时,依赖于来自相关性解析器的注释。在一些实施方式中,在处理特定自然语言输入中,自然语言处理器122的一个或多个组件可以使用相关的先前输入和/或除特定自然语言输入外的其他相关数据来确定一个或多个注释。例如,消息交换线程中的第一用户可以提供输入“I like AsiaVillage(我喜欢亚洲村)”,以及第二用户可以提供响应输入“Me too.Let's book it(我也是。让我们预订它)”。在处理“Me too.Let's book it”中,利用先前输入“I like AsiaVillage(我喜欢亚洲村)”,共参引解析器可以将“it(它)”解析成“Asia Village(亚洲村)”。
用户属性引擎124确定在与自动化消息递送系统120进行的对话中的至少一个用户的一个或多个属性,并且将这些属性提供给自动化消息递送系统120的一个或多个其他组件。例如,在确定动作的特定实体中、在确定动作的一个或多个准则中、和/或在生成与一个或多个用户的对话的输出中,可以由自动化消息递送系统120的其他组件利用这些属性。用户属性引擎124与可以存储一个或多个用户属性的用户属性数据库152通信。在各种实施方式中,用户属性引擎124和/或用户属性数据库152可以全部或部分地在客户端计算设备1061-N上实现和/或可以基于由客户端计算设备1061-N提供的数据确定一个或多个用户属性。可以由用户属性引擎124确定的用户属性的一些示例包括用户的当前位置(例如,基于GPS或其他位置数据)、用户的时间约束(例如,基于用户的电子日历),以及用户的用户简档(例如,基于跨多个互联网服务的用户活动)。
动作确定引擎126利用从客户端计算设备1061-N接收的自然语言输入和/或由自然语言处理器122提供的自然语言输入的注释来确定与自然语言输入相关的至少一个动作。在一些实施方式中,动作确定引擎126可以基于包括在自然语言输入中的一个或多个词项来确定动作。例如,动作确定引擎126可以基于在一个或多个计算机可读介质中,被映射到包括在自然语言输入中的一个或多个词项的动作来确定动作。例如,动作“making arestaurant reservation”可以被映射到一个或多个词项,诸如“book it”、“reserve”、“reservation”、“get me a table”等。
在一些实施方式中,动作确定引擎126可以至少部分地基于由实体确定引擎128确定的一个或多个候选实体来确定动作。例如,假设自然语言输入“book it(预订它)”并且“book it”被映射到多个不同的动作,诸如“making a restaurant reservation(做出餐厅预约)”、“making a hotel reservation(做出酒店预约)”、“making an appointment(做出约会)”等。在这种情况下,动作确定引擎126可以基于由实体确定引擎128确定的候选实体,确定哪个动作是正确的动作。例如,如果实体确定引擎128仅将多个餐厅确定为候选实体,则动作确定引擎126可以确定动作“making a restaurant reservation”是正确的动作。
实体确定引擎128基于经由用户界面输入设备由一个或多个用户提供的初始输入来确定候选实体,并且鉴于在用户和自动化消息递送系统120之间的对话期间由用户提供的进一步的输入,提炼(refine)那些候选实体。实体确定引擎128在确定候选实体中和/或提炼那些候选实体时利用一个或多个资源。例如,实体确定引擎128可以利用自然语言输入本身、由自然语言处理器122提供的注释、由用户属性引擎124提供的用户属性、实体数据库154、和/或来自实体协议数据库156的实体协议。
实体数据库154可以被提供在一个或多个非瞬时性计算机可读介质上,并且可以定义多个实体、每个实体的性质,以及可选地这些实体之间的关系。例如,实体数据库可以包括特定餐厅的标识符和该餐厅的一个或多个性质,诸如位置、烹饪类型、营业时间、别名、是否接受预约、该餐厅的评级、价格指示等。实体数据库154还可以包括实体的一个或多个动态性质的当前状态,诸如当前库存、一个或多个日期和/或时间的预期库存、附近交通状况等。
可以在一个或多个非暂时性计算机可读介质上提供实体协议数据库156,并且定义每个适用于一个或多个服务实体和/或一个或多个动作的多个协议。每个协议定义一个或多个必要和/或期望的参数以执行相关联的动作和/或执行与关联的服务实体相关联的动作。例如,第一协议可以是与餐厅预约动作相关联,并且与进行预约的所有餐厅相关联的通用协议。第一协议可以定义必要的参数,诸如预约日期、预约时间和预约人数。此外,例如,第二协议可以是与餐厅预约动作相关联并且与进行预约的餐厅子集,诸如特定餐厅相关联的第二协议。第二协议可以定义必要和/或期望的参数,诸如用户是否想要室内或室外座位、分隔用餐区或桌子、用户是否具有饮食限制等。
消息生成引擎130经由关联的客户端计算设备参与与一个或多个用户的对话,以使得能够解析特定实体以执行动作和/或解析特定动作的一个或多个准则。消息生成引擎130在生成问题或其他提示中使用一个或多个资源以从用户征求信息。例如,消息生成引擎130可以利用在对话期间用户的当前和/或过去的自然语言输入、由自然语言处理器122提供的该输入的注释、由用户属性引擎124提供的用户属性、由实体确定引擎128确定的一个或多个实体、由动作确定引擎126确定的一个或多个动作、和/或实体协议数据库156的实体协议。消息生成引擎130可以包括任务管理模块132,其确定在对话期间由用户提供的自然语言输入指定什么准则,并且与该动作相关联地存储该准则。消息生成引擎130可以利用这样存储的准则来防止生成以下自然语言输出,该自然语言输出提示用户指定已经指定的任何准则。任务管理模块132可以进一步在一个或多个计算机可读介质中生成与用户相关联、识别动作和所确定的特定实体、并且包括用于该动作的所确定的一个或多个准则的任务。任务管理模块132可以可选地将任务传送到一个或多个其他计算系统以发起动作的执行。
现在转向图2A和2B,提供了自动化消息递送系统120和消息交换客户端1071的各种组件的另外的描述。图2A和2B的一些描述提供来自图3A的示例。图3A示出了图1的计算设备1061,具有显示可能在客户端计算设备1061的用户与根据本文所述的实施方式的自动化消息递送系统120之间发生的对话的示例的显示屏140。特别地,该对话框包括用户输入380A-E并且包括可以由根据本文所述的实施方式的自动化消息递送系统120生成的提示390A-D。显示屏140进一步包括用户可以选择以经由虚拟键盘文本生成用户输入的文本回复界面元素384,和用户可以选择以经由麦克风生成用户输入的语音回复界面元素385。显示屏140还包括可以与用户交互以使计算设备1061执行一个或多个动作的系统界面元素381、382、383。
在图2A中,用户利用计算设备1061的一个或多个用户界面输入设备来向消息交换客户端1071提供自然语言输入201A,消息交换客户端1071将自然语言输入201A传送到自然语言处理器122。自然语言输入201A可以是如本文所述的自由形式并且可以是例如用户经由计算设备的物理或虚拟键盘提供的键入输入或者由用户提供给计算设备的麦克风的口头输入。在自然语言输入201B是口头输入的实施方式中,可以通过计算设备和/或通过自然语言处理器122可选地将其转录为文本输入。
作为一个工作示例,自然语言输入201B可以是“Book me a table tonight(今晚给我预订一张桌子)”,如由图3A的用户输入380A所示。
自然语言处理器122处理自然语言输入201A并且生成自然语言输入的各种注释。自然语言处理器向动作确定引擎126、实体确定引擎128和消息生成引擎130提供注释输出(例如,自然语言输入201A的词项和生成注释)202A。
继续该工作示例,自然语言输入201B可以是“Book me a table tonight”,如由图3A的用户输入380A所示,以及自然语言处理器122可以将“book”注释为动词、将“table”注释为名词、将“table”注释为“book”的对象,并且用日期(即今天的日期)和/或时间范围(例如,从下午5:00-12:00)注释“tonight”。自然语言处理器122可以将那些词项和/或注释中的一个或多个提供为注释输出202A。
动作确定引擎126利用词项和注释输出202A的生成的注释来确定与自然语言输入201A相关联的一个或多个动作203。动作确定引擎将所确定的动作203提供给消息生成引擎130。
继续该工作示例,动作确定引擎126可以基于来自自然语言处理器122的将“book”指示为动词并且“table”作为“book”的对象的输出来确定与“Book me a table tonight”相关联的“making a restaurant reservation”动作。将此与自然语言输入201A是“I'dlike to get a table and a book(我想要一张桌子和一本书)”的另一示例相比较。在这样的示例中,自然语言处理器将“table”和“book”均注释为名词,并且动作确定引擎126将不确定“making a restaurant reservation”动作(而是相反确定“purchase product(购买产品)”动作)。
实体确定引擎128确定与自然语言输入201A相关联的一个或多个候选实体205A。实体确定引擎128将所确定的候选实体205A提供给消息生成引擎130。在一些实施方式中,实体确定引擎128利用词项和注释输出202A的生成的注释来确定候选实体205A。例如,在输入201A为“reservation at seafood restaurant(在海鲜餐厅预约)”的情况下,实体确定引擎128可以由实体数据库154和/或其他资源确定具有“restaurant(餐厅)”性质并且具有“seafood(海鲜)”美食类型性质的多个候选服务实体。在一些实施方式中,实体确定引擎128可以基于由动作确定引擎126确定的动作203来确定候选实体205A。例如,对于所确定的动作“making a reservation”,实体确定引擎128可以确定作为接受预约的餐厅的候选实体。
在一些实施方式中,实体确定引擎128在确定候选实体时利用由用户属性引擎124确定的一个或多个用户属性204。例如,用户属性引擎124可以基于用户属性数据库152,确定用户属性204,所述用户属性204是与用户相关联的位置,诸如当前位置、工作位置、家庭位置等。实体确定引擎128可以在确定候选实体时利用该位置。例如,引擎128可以确定位于该位置的阈值距离内的候选实体。附加和/或替选的用户属性可以由引擎128在确定候选实体时利用,诸如用户的用户简档中的用户属性、用户的时间约束等。
继续该工作示例,实体确定引擎128可以基于自然语言输入201A“Book me atable tonight”,确定多个候选餐厅实体。例如,实体确定引擎128可以基于由动作确定引擎126确定的动作203,确定与自然语言输入201A相关联的餐厅,并且可以从实体数据库154识别营业时间“tonight”(基于存在词项“tonight”和/或由自然语言处理器122提供的相应时间注释)并且接受“tonight”的预约的多个餐厅。实体确定引擎128可以基于在由用户属性引擎124提供的用户位置用户属性204的阈值距离内来进一步确定那些餐厅。
消息生成引擎130利用动作203、候选实体205A、词项和注释202和/或来自实体协议数据库156的实体协议来生成自然语言输出206A。自然语言输出206A是从用户征求用户界面输入以用于确定特定服务实体和/或用于确定动作的一个或多个准则的提示。自然语言输出206A被提供给消息交换客户端1071,用于经由客户端计算设备1061的用户界面输出设备可听和/或视觉地呈现给用户。
在一些实施方式中,消息生成引擎130利用动作203和/或候选实体205A来确定用于生成自动消息的实体协议。例如,为了对餐厅候选实体进行餐厅预约动作,引擎130可以识别适用于所有餐厅以进行预约的一般实体协议。可以基于其被指定给“making arestaurant reservation”动作和/或实体协议数据库156中的“restaurant”实体来识别一般实体协议。一般实体协议可以定义执行关联动作的一个或多个必要和/或期望的参数,诸如预约日期、预约时间和预约人数。引擎130可以生成自然语言输出206A以征求关于那些参数中的一个或多个的信息和/或征求信息以实现确定执行该动作的特定服务实体(注意,在许多情况下,这些参数中的一个或多个也可以实现确定特定的服务实体)。在一些实施方式中,通用实体协议和/或其他协议的参数中的一个或多个可以包括或以其他方式指示用于包含在那些参数的提示中的文本。例如,与预约人数相关的参数可以包括诸如“for howmany(为几个)”或“how many people(几个人)”的文本。
在一些实施方式中,消息生成引擎130包括任务管理模块132,其确定由自然语言输入201A指定动作的准则(如果有的话),并且与动作相关联地存储该准则。例如,对于“Book me a table tonight”,模块132可以基于存在词项“tonight”(和/或基于来自自然语言处理器122的注释),确定当前日期,并且将当前日期存储为动作的准则。消息生成引擎130可以利用这样存储的准则来防止生成提示用户再次指定该准则的自然语言输出206A(例如,以防止询问“what day would you like the reservation?(你想在哪一天预约?)”)。例如,在消息生成引擎130利用定义包括用于“预约日期”的参数的参数的协议的情况下,模块132可以将基于用户界面输入确定的当前日期分配给协议的相应参数。基于该分配,引擎130可以忽略该参数,而是基于其他参数生成提示。
继续该工作示例,响应于所接收的自然语言输入201A“Book me a tabletonight”,消息生成引擎130可以生成提示“Gotcha.How many people and what time?(知道了。有多少人和什么时间?)”。在一些实施方式中,引擎130可以基于适用于接受预约的多个餐厅的通用协议来生成提示。例如,通用协议可以定义参数“预约日期、预约时间和预约人数”,并且可以由引擎130基于其与动作203和/或候选实体205A相关联来识别。此外,引擎130可以基于“人数”参数,将“How many people(有多少人)”包括在提示中,并且可以基于“预约时间”参数来包括“what time(什么时间)”。基于由自然语言输入201A指定的该参数的准则(即,今晚),引擎130可以不包括与“预约日期参数”相关的任何内容(例如,“whatday”、“for tonight?”)。
现在转到图2B,消息交换客户端1071提供用户响应于图2A中提供的自然语言输出206A生成的附加自然语言输入201B。例如,用户可以利用计算设备1061的一个或多个用户界面输入设备来向消息交换客户端1071提供自然语言输入201B,消息交换客户端1071将自然语言输入201B传送到自然语言处理器122。
继续该工作示例,自然语言输入201B可以是“4people.7PM.Asian café(4个人。晚上7点。亚洲咖啡馆)”,如由图3A的用户输入380B所示。
自然语言处理器122处理自然语言输入201A并且生成自然语言输入的各种注释。自然语言处理器向实体确定引擎128和消息生成引擎130提供注释输出202B。
继续该工作示例,自然语言输入201B可以是“4people.7PM.Asian Cafe”,如由图3A的用户输入380B所示,并且自然语言处理器122可以将“4”注释为数量、将“7PM”注释为时间,并且将“Asian Cafe”注释为命名实体(例如,实体类)。自然语言处理器122可以将那些词项和/或注释中的一个或多个提供为注释输出202B。
实体确定引擎128基于自然语言输入201B,提炼先前确定的候选实体205A,并且确定特定实体或提炼的候选实体集合205B。实体确定引擎128将所确定的特定实体或提炼的候选实体集合205B提供给消息生成引擎130。在提供提炼的候选实体集合的一些实施方式中,实体确定引擎128可以基于一个或多个准则,可选地排序该集合的候选实体。例如,它们可以基于总评级、由用户指定的评级、与用户的偏好(例如,如由用户属性引擎124提供)的符合性、与用户的位置的距离(例如,如由用户属性引擎124提供)等来排序。
继续该工作示例,实体确定引擎128可以基于包括“4people.7PM.Asian Cafe”的自然语言输入201B,提炼先前确定的候选实体。例如,实体确定引擎128可以基于与实体数据库154中的性质“Asian cuisine”、“Cafe”或“Asian Cafe”相关联的子集的实体,确定先前确定的候选实体的子集。此外,例如,实体确定引擎128可以基于与使能在下午7:00预约4人的(例如实体数据库154中)库存相关联的子集的实体,确定先前确定的候选实体的子集。
消息生成引擎130利用特定实体和/或提炼的候选实体205B和/或来自实体协议数据库156的实体协议来生成自然语言输出206B。自然语言输出206B被提供给消息交换客户端1071,用于经由客户端计算设备1061的用户界面输出设备可听和/或可视呈现给用户。
继续该工作示例,在由实体确定引擎128提供多个提炼的候选实体的情况下,自然语言输出206B可以向用户呈现图3A的提示用户从提炼的候选实体中选择的提示390B(“8Cafes...Which one?(8家咖啡馆......哪一家?)”),并且呈现示出那些提炼的候选实体中的四个的性质(别名/名称)并具有查看其他四个的选项(“…”)的图形元素。图形元素的呈现的显示顺序可以基于由实体确定引擎128提供的相应的实体的可选排序。用户可以通过与其相应的图形元素的交互(例如,通过点击图形元素)和/或通过进一步的自然语言输入诸如在图3A的用户输入380C中所示的“I like Asia Village(我喜欢亚洲村)”,选择候选实体之一。
继续该工作示例,假设实体确定引擎128已经确定了特定实体并且将特定实体提供给消息生成引擎130。例如,假设图2B的示例的另一实例发生在用户提供了指示“AsiaVillage”是特定实体的图3A的用户输入380C之后。在这些实施方式中的一些中,引擎130可以从实体协议数据库156中识别适用于特定实体的特定协议。消息生成引擎可以生成自然语言输出206B以征求用于还未由任务管理模块132确定的该协议的一个或多个附加参数的准则。例如,特定协议可以定义指示“是否预约靠窗的桌子以及是否预约休息室桌”的参数。基于特定协议的那些参数,引擎130可以生成如由图3A的提示390C所示的自然语言输出206B“Window table or lounge table?(靠窗的桌子或休息室桌?)”。
如由图3A的用户输入380D和提示390D所示,自动化消息递送系统120可以参与另外的对话以解析用于特定协议的“是否预约靠窗的桌子以及是否预约休息室桌”参数的准则。在提示390D处,基于确定已经为通用协议和特定协议的所有参数确定了准则并且可以完成动作,自动化消息递送系统120可以包括文本“book it”。响应于肯定用户输入380E“yes(是)”,任务管理模块132可以生成与用户相关联、识别所确定的动作和特定实体、并且包括为该动作确定的准则的任务。在一些实施方式中,任务管理模块132可以将任务传送到一个或多个其他计算系统以通过那些计算系统和/或通过从那些计算系统接收用户界面输出的一个或多个人发起动作的执行。
图3B示出了图1的计算设备1061,具有显示可能在客户端计算设备1061的用户与根据本文所述的实施方式的自动化消息递送系统120之间发生的对话的另一示例的显示屏140。特别地,图3B示出了由自动化消息递送系统120发起并且在图3A的对话之后发生的对话的示例。响应于系统120确定不能完成用户经由图3A的对话指定的任务,由自动化消息递送系统120发起图3B的对话。例如,自动化消息递送系统120可以确定对由图3A的对话指定的特定候选实体不可实现动作的至少一个准则。该确定可以基于尝试经由与一个或多个其他计算系统的通信来预订预约,并且作为响应接收失败消息和/或基于从与特定服务实体相关联的人类用户接收的单独通信。
在图3B中,自动化消息递送系统120通过提示390E发起对话,提示390E包括:为什么不能完成用户经由图3A的对话指定的任务的说明、对具有在图3A中指定的相同准则的相同动作能够预订其他餐厅的预约的指示,并且包括示出那些其他餐厅的性质(别名/名称)的图形元素。在确定包括在提示390E中的其他餐厅时,自动化消息递送系统120可以用经由图3A的对话指定的准则验证可以对那些其他餐厅执行餐厅预约动作。自动化消息递送系统120可以利用实体数据库154和/或实体协议数据库156来进行这样的确定。例如,系统120可以将数据库156的协议用于那些其他餐厅,以验证它们包括“休息室桌”和“靠窗的桌子”的一个或多个参数。此外,系统120可以可选地利用实体数据库154来确定其他餐厅是否具有可用性。自动化消息递送系统120还可以可选地利用用户属性引擎124提供的用户属性,以基于用户的一个或多个属性选择其他餐厅和/或基于用户的属性排名其他餐厅(这可能会影响它们在图3B中的显示顺序)。
响应于提示390E,用户通过提供指定在提示390E中呈现的其他实体之一(“GingerCafe”)并且指定用户想要关于该实体采取的动作(“Book it please.”)的用户输入380F来继续对话。在其他实施方式中,用户可以通过选择(例如,点击)对应于“Ginger Cafe”的提示390E的图形元素而不是提供自然语言用户界面输入380F来继续对话。
响应于用户界面输入380F,自动化消息递送系统120可以用图3A中指定的准则,创建用于对“Ginger Cafe”实体进行预约的新任务。自动化消息递送系统120可以进一步与一个或多个其他计算系统通信以实现该任务,并且提供向用户指示任务已经完成的另一输出390F。
图3A和3B以及本文的其他示例示出了用于参与与用户的对话的图形用户界面。然而,在一些实施方式中,可以将由自动化消息递送系统120提供的提示(经由用户的计算设备的扬声器)可听地传达给用户,而不必显示那些提示。此外,在那些实施方式的一些版本中,可以经由提供口头用户界面输入的用户来提供用户输入。作为一个特定示例,在一些实施方式中,用户可以利用不包括任何显示的计算设备与自动化消息递送系统进行对话。
图4是示出了经由用户的计算设备参与与至少一个用户的对话以确定动作的特定服务实体和动作的多个准则、并且基于所确定的该动作的服务实体和一个或多个准则执行一个或多个计算动作的示例方法400的流程图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统,诸如自动化消息递送系统120的各种组件。此外,虽然以特定顺序示出方法400的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框452处,系统接收第一自然语言输入。第一自然语言输入可以是由用户经由用户的计算设备的用户界面输入设备制定的自由形式输入。
在框454,系统基于第一自然语言输入来确定动作和候选实体。例如,系统可以基于第一自然语言输入的一个或多个词项来确定动作和多个候选服务实体。在一些实施方式中,系统可以利用实体数据库和/或在确定动作和多个候选服务实体中提供第一自然语言输入的用户的用户属性。
在框456处,系统基于在框454处确定的动作和/或候选实体来生成提示。在一些实施方式中,提示可以基于动作和/或候选实体的协议。例如,协议可以与动作和/或候选实体相关联,并且可以定义用于实现与候选实体相关联的动作的一个或多个期望的和/或必要的参数。系统可以在生成提示时利用为协议定义的参数。例如,系统可以生成提示以征求提供一个或多个参数的准则的用户输入。
在框458,系统提供所生成的提示。可以提供所生成的提示以经由用户的计算设备向用户可视和/或可听呈现。
在框460,系统响应于提示而接收进一步的输入。在一些实施方式中,进一步的输入可以是由用户经由用户的计算设备的用户界面输入设备制定的自由形式的自然语言输入。
在框462,系统基于已经接收的输入,确定是否可以解析特定实体。例如,系统可以鉴于在框460处接收的进一步的输入来提炼在框456处确定的候选实体,以确定是否可以将那些候选实体解析为特定实体。
如果系统确定不能解析特定实体,则系统进行到框464并且生成附加提示。在一些实施方式中,附加提示基于在框456处可选地确定的协议和/或基于在框454处确定的一个或多个候选实体。例如,系统可以生成附加提示以鉴于未由在框452和460处接收的输入指定的那些特定参数,征求用于在框456处确定的协议的一个或多个特定参数。在一些实施方式中,附加提示基于在框462处确定的提炼的候选实体组。例如,在框462处,可以基于框460的输入和/或其他因素,将在框454处确定的候选实体提炼为子集。可以生成附加提示以包括子集的实体的一个或多个性质(例如,别名)并且征求指定子集的特定实体和/或指定子集的另一子集的进一步的用户输入。
在框464处生成附加提示之后,然后系统进行到框458和460,然后,在框462处基于在框460的第二次迭代处接收的又一输入再次确定是否可以来解析特定实体。
如果系统确定可以在框462处(在框462的第一次迭代或随后的迭代)解析特定实体,则系统进行到可选框466,其中,系统基于特定实体的协议和基于所接收的输入,生成附加提示。例如,系统可以识别适用于特定实体的特定协议,并且生成自然语言输出以征求还未基于在框452处或框460的任一迭代处提供的用户输入确定的该协议的一个或多个参数的准则。
在可选框468处,系统提供在框466处生成的提示。在可选框470处,系统接收响应于在框468处生成的提示的进一步的输入。在一些实施方式中,系统可以在框470处确定基于框470的进一步的输入和/或基于框452和460的先前输入,是否可以确定用于由特定实体的协议定义的所有参数的准则。如果不能确定一个或多个参数的准则,则系统可以执行框466、468和470的一个或多个附加迭代以征求进一步的输入并且基于该进一步的输入确定那些参数。
在框472处,系统基于先前框中接收的输入生成任务。例如,系统可以生成与用户相关联、识别所确定的动作和特定实体、并且包括为该动作确定的准则的任务。在一些实施方式中,系统可以将任务传送到一个或多个其他计算系统以发起由那些计算系统和/或由从那些计算系统接收用户界面输出的一个或多个人执行该动作。
如本文所述,在一些实施方式中,可以在多个用户之间正在进行的消息交换线程中实现本文所述的技术。现在转向图5和6,提供了这些实施方式中的一些的进一步描述。例如,图5示出了图1的计算设备1061,具有显示用户和附加用户之间正在进行的消息交换线程的示例和显示可以在客户端计算设备1061的用户与根据本文所述的实施方式的自动化消息递送系统120之间发生的对话的显示屏140。图5的显示屏140还包括系统界面元素581、582、583,其可以与用户交互以使计算设备1061执行一个或多个动作。
如本文所述,在许多实施方式中,可以将由图5中的自动化消息递送系统120生成的提示和/或其他内容中的一个或多个(例如所有)作为消息交换线程的一部分不仅经由计算设备1061显示或以其他方式(例如可听地)呈现给用户——而且还可以作为消息交换线程的一部分,经由那些用户的计算设备显示给消息交换线程的其他用户。还如本文所述,在许多实施方式中,消息交换线程的其他用户还可以响应于由自动化消息递送系统120生成的提示来提供输入,并且自动化消息递送系统120可以基于由其他用户提供的输入,生成进一步的提示和/或其他内容。
在图5中,计算设备1061的用户在消息交换线程中提供消息580A,并且消息580A经由消息交换客户端被提供给消息交换线程中的其他用户的相应消息交换客户端(“Jack”、“Diane”、“Joe”)。其他用户用相应的消息582A、584A和586A响应消息580A。然后,计算设备1061的用户通过在消息中包括“@AMS”,在消息580B中明确地调用自动化消息递送系统120。在其他实施方式中,自动化消息递送系统120可以经由替选用户界面输入被明确地调用和/或可以在没有明确调用的情况下参与直接对话(例如,基于正在进行的消息交换线程的词项和/或其他暗示)。
消息580A进一步包括“get us a reservation between 7:00and 8:00.(在7:00到8:00之间帮我们预约)”。作为响应,自动化消息递送系统120提供用于插入消息交换线程中的提示590A,其中,提示590A指示自动化消息递送系统120已经识别动作(预约)的服务实体(餐厅)并且已经基于由消息580A、582A、584A和586A确定的准则识别出那些服务实体。提示590A进一步提示用户从所识别的服务实体中选择(“Which one?(哪一个?)”)并且呈现示出那些服务实体的性质(别名/名称)的图形元素。
在一些实施方式中,自动化消息递送系统120的实体确定引擎128可以基于消息580A、582A、584A和586A的分析来确定提示590B的服务实体,并且将那些服务实体提供给消息生成引擎130,以基于那些服务实体,由引擎130生成提示。例如,实体确定引擎128可以基于消息580A确定具有烹饪类型性质“seafood(海鲜)”的实体、基于消息580B确定在7:00和8:00之间可用的实体、以及基于确定消息交换线程中包括四个人并且用户之一(Joe)提供指示他不出席的消息586A确定对三个人在该时间可用的实体。在一些实施方式中,实体确定引擎128可以在确定服务实体时利用消息交换线程中的一个或多个(例如,所有)用户的用户属性。例如,实体确定引擎128可以确定对消息交换线程的每个用户在用户位置属性的阈值距离内的服务实体。
响应于提示590B,计算设备1061的用户提供指定提示590B的实体之一(“RiverHouse”)并且指定预约时间(“8:00”)的进一步的输入580C。在一些其他实施方式中,消息交换线程的另一用户可以提供进一步的输入。在其他实施方式中,消息交换线程的多个用户可以提供进一步的输入,并且自动化消息递送系统120可以基于这些输入中的每一个来确定特定实体。例如,自动化消息递送系统120可以选择由大多数输入指示的特定实体,或者可以基于一个或多个准则选择在输入中与另一个“绑定”的特定实体(例如,基于所选择的特定实体具有更好评级、更接近一个或多个用户等)。
自动化消息递送系统120提供进一步的提示590B以征求室内和室外座位之间的选择。在一些实施方式中,消息系统120的消息生成引擎130基于特定于“River House”实体的协议并且基于确定协议定义未由消息交换线程的先前消息指定的参数(例如,“Indoor oroutdoor seating(室内或室外座位)”)来生成提示590B。
响应于提示590B,计算设备1061的用户提供指定动作的准则(户外座位)的进一步的输入580D。在一些其他实施方式中,消息交换线程的另一用户可以提供进一步的输入。在其他实施方式中,消息交换线程的多个用户可以提供进一步的输入,并且自动化消息递送系统120可以基于这些输入中的每一个来确定特定实体。例如,计算设备1061的用户和/或消息交换线程中的另一用户可以征求自动化消息递送系统120进行“投票”,并且自动化消息递送系统120可以向计算设备1061的用户以及Jack和Diane(但可选地不是Joe,因为他表明他不出席)提供征求用户在室内和室外座位之间选择的提示。
响应于进一步的输入580D,自动化消息递送系统120提供进一步的内容590C,其是识别预约动作已经完成(“Booked”)、识别特定实体(“River House,123River Road”)和识别预约动作的准则(“8:00,3people,outdoor seating”)的图形元素。进一步的内容590C进一步包括当被选择时将导致执行特定于特定实体和/或动作的准则的一个或多个附加计算动作的深度链接(“Add to calendar(添加到日历)”和“Directions(导航)”)。例如,由用户之一选择“Add to calendar”可以使用户的计算设备向用户的日历添加包括特定实体的别名并且包括动作的准则的条目。此外,例如,由用户之一选择“Directions”可以使用户的计算设备使用参数打开地图应用,以获得从计算设备的当前位置到“123River Road”的导航。
尽管图5示出了在多个用户之间正在进行的消息交换线程中实现本文所述的技术的特定示例,但变型是可能的。例如,在一些实施方式中,自动化消息递送系统120可以与正在进行的消息交换线程的一个或多个用户进行对话以解析动作的特定实体,而无需主动创建任务或执行与该动作和特定实体相关的任务。例如,在图5中,响应于提示580C,自动化消息递送系统120可以将特定实体的一个或多个性质以及一个或多个链接(例如,深度链接)合并到消息交换线程中,一个或多个链接使得用户能够经由一个或多个单独的应用和/或系统选择链接并且执行任务。
图6是示出了与参与正在进行的消息交换线程的多个用户中的至少一个用户进行对话以确定动作的特定服务实体和动作的多个准则以及基于所确定的动作的服务实体和一个或多个准则执行一个或多个计算动作的示例方法600的流程图。为方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如自动化消息递送系统120。此外,虽然以特定顺序示出方法600的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框652,系统检查多个用户之间正在进行的消息交换线程。正在进行的消息交换线程可以经由那些多个用户的客户端计算设备的多个消息交换客户端在多个用户之间发生。在一些实施方式中,系统可以响应于系统的明确调用来检查消息交换线程。在一些实施方式中,系统可以响应于一个或多个暗示诸如来自消息交换线程本身的暗示来检查消息交换线程。在一些实施方式中,系统可以连续地或以规则或非规则的间隔来检查消息交换线程。
在框654,系统基于正在进行的消息交换线程来确定动作和候选实体。例如,系统可以基于出现在消息交换线程的一个或多个消息中的一个或多个词项来确定动作和多个候选服务实体。在一些实施方式中,系统可以利用实体数据库和/或参与消息交换线程的一个或多个用户的用户属性用于确定动作和/或多个候选服务实体。
在框656,系统基于在框654处确定的动作和/或候选实体来生成提示。在一些实施方式中,提示可以基于动作和/或候选实体的协议。例如,协议可以与动作和/或候选实体相关联,并且可以定义实现与候选实体相关联的动作的一个或多个期望的和/或必要的参数。系统可以在生成提示时利用对协议定义的参数。例如,系统可以生成提示以征求对一个或多个参数提供准则的用户输入。在一些实施方式中,提示可以基于候选实体并且可以呈现多个候选实体的一个或多个性质和/或提示由参与消息交换线程的一个或多个用户选择一个或多个候选实体。
在框658,系统将提示合并到消息交换线程中。提供生成的提示以经由用户的计算设备,向消息交换线程的至少一个用户可视和/或可听的呈现。在一些实施方式中,所生成的提示被合并到消息交换线程中,使得它被提供以呈现给参与消息交换线程的多个(例如,所有)用户。在一些实施方式中,系统通过请求消息交换客户端中的至少一个将提示插入到在消息交换客户端的至少一个的图形用户界面中显示的正在进行的消息交换线程的转录中来将提示合并到消息交换线程中。
在框660,系统识别响应于提示的进一步的输入。进一步的输入可以来自参与消息交换线程的一个或多个(例如所有)用户。在一些实施方式中,进一步的输入可以是由用户经由用户的计算设备的用户界面输入设备制定的自由形式的自然语言输入。
在框662,系统确定是否基于已经接收的输入来解析特定实体。例如,系统可以鉴于在框660处接收的进一步的输入来提炼在框656处确定的候选实体以确定是否可以将那些候选实体解析为特定实体。
如果系统确定不能解析特定实体,则系统进行到框664并且生成附加提示。在一些实施方式中,附加提示基于在框656处可选地确定的协议和/或基于在框654处确定的一个或多个候选实体。例如,系统可以鉴于在框652和660处接收的输入未指定的那些特定参数,生成附加提示以征求用于在框656处确定的协议的一个或多个特定参数。在一些实施方式中,附加提示基于在框662处确定的提炼的候选实体组。例如,在框662处,可以基于框460的输入和/或其他因素,将在框654处确定的候选实体提炼为子集。可以生成附加提示以包括子集的实体的一个或多个性质(例如,别名)并且征求指定子集的特定实体和/或指定子集的另一子集的附加用户输入。
在框664处生成附加提示之后,然后系统进行到框658和660,然后在框662处再次基于框660的第二迭代处接收的附加输入,确定是否解析特定实体。
如果系统确定可以在框662(在框662的第一迭代或随后的迭代)处解析特定实体,则系统进行到可选框666,其中,系统基于特定实体的协议和基于接收的输入生成附加提示。例如,系统可以识别适用于特定实体的特定协议,并且生成自然语言输出以征求对基于在框652处或在框660的任一迭代处提供的用户输入尚未确定的协议的一个或多个参数的准则。
在可选框668处,系统将在框666处生成的附加提示合并到消息交换线程中。可以合并附加提示以呈现给参与消息交换线程的一个或多个用户。在可选框670处,系统接收响应于在框668处生成的提示的进一步的输入。进一步的输入可以来自消息交换线程的一个或多个用户。在一些实施方式中,系统可以在框670处基于框670的进一步的输入和/或基于框652和660的先前输入,确定是否可以确定由特定实体的协议定义的所有参数的准则。如果不能确定一个或多个参数的准则,则系统可以执行框666、668和670的一个或多个附加迭代以征求进一步的输入并且基于进一步的输入来确定那些参数。
在框672,系统基于先前框中接收的输入来生成任务。例如,系统可以生成与消息交换线程的至少一个用户相关联、识别所确定的动作和特定实体、并且包括为该动作确定的准则的任务。在一些实施方式中,系统可以将任务传送到一个或多个其他计算系统以通过那些计算系统和/或通过从那些计算系统接收用户界面输出的一个或多个人来发起动作的执行。
图7是示例计算设备710的框图,该计算设备710可选地被用来执行本文所述的技术的一个或多个方面。在一些实施方式中,客户端计算设备1061-N、自动化消息递送系统120和/或其他组件中的一个或多个可以包括示例计算设备710中的一个或多个组件。
计算设备710通常包括至少一个处理器714,其经由总线子系统712与多个外围设备进行通信。这些外围设备可以包括存储子系统724,包括例如存储器子系统725和文件存储子系统726、用户接口输出设备720、用户接口输入设备722和网络接口子系统716。输入和输出设备允许用户与计算设备710进行交互。网络接口子系统716提供到外部网络的接口并且耦合至其它计算设备中相对应的接口设备。
用户接口输入设备722可以包括键盘、诸如鼠标、轨迹球、触控板或图形板的指示设备、扫描仪、整合到显示器中的触摸屏、诸如语音识别系统的音频输入设备、麦克风、和/或其它类型的输入设备。通常,使用术语“输入设备”旨在包括向计算设备710中或者通信网络上输入信息的所有可能类型的设备和方式。
用户接口输出设备720可以包括显示子系统、打印机、传真机,或者诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备,或者用于创建可见图像的一些其它机制。该显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,使用术语“输出设备”旨在包括从计算设备710向用户或者另一机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统724存储提供本文所述的一些或全部模块的功能的程序和数据结构。例如,存储子系统724可以包括执行图4和/或6的方法的被选方面的逻辑。
这些软件模块通常由处理器714单独或者结合其它处理器一起来执行。用在存储子系统724中的存储器725可以包括多种存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)730以及在其中存储固定指令的只读存储器(ROM)732。文件存储子系统726可以为程序和数据文件提供持久性存储,并且可以包括硬盘驱动器、带有相关联的可移动介质的软盘驱动器、CD-ROM驱动器、光学驱动器,或者可移动的介质卡盒。实施某些实施方式的功能的模块可以由文件存储子系统726存储在存储子系统724中,或者存储在可由处理器714访问的其它机器中。
总线子系统712提供了使得计算设备710的各个组件和子系统如所期望的那样互相通信的机制。虽然总线子系统712被示意性地示为单个总线,但是总线子系统的可替选实施方式可以使用多个总线。
计算设备710可以为各种类型,包括工作站、服务器、计算集群、刀锋服务器、服务器群,或者任意其它数据处理系统或计算设备。由于计算机和网络不断变化的属性,为了示出一些实施方式,图7中所图示的计算设备710的描述仅旨在具体示例。计算设备710的许多其它配置是可能的,它们具有比图7所图示的计算设备更多或更少的组件。
在本文所述的系统收集与用户有关的个人信息或利用个人信息的情况下,可以为用户提供控制程序或特征是否收集用户信息(例如,与用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置有关的信息),或是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。另外,在被存储或使用之前,某些数据可以以一种或多种方式来处理,使得移除个人可识别信息。例如,可以处理用户的身份,使得不能确定用户的个人可识别的信息,或者可以概括(诸如到城市、邮政编码或州级)获得地理位置信息的用户的地理位置,使得不能确定用户的特定地理位置。因此,用户可以控制如何收集关于用户的信息、如何使用该信息。
尽管本文已经描述和示出若干实施方式,但是可以使用用于执行功能和/或获得结果和/或本文所述的一个或多个优点的各种其它装置和/或结构,每一个这样的变型和/或改进被认为在本文所述的实施方式的范围内。更一般地,本文所述的所有参数、尺寸、材料和配置意在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的具体应用。本领域技术人员将认识到或者能够仅使用常规实验来确定本文所述的具体实现的许多等同物。因此,应当理解到,前述实施方式仅以示例的方式给出,并且在所附权利要求及其等同物的范围内,可以以与具体描述和要求保护的方式不同的方式实施实施方式。本公开的实施方式涉及本文所述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这些特征、系统、制品、材料、套件和/或方法不相互矛盾,则两个或两个以上此类特征、系统、制品、材料、套件和/或方法的任意组合被包括在本公开的范围内。

Claims (24)

1.一种方法,包括:
由一个或多个处理器检查操作两个或两个以上消息交换客户端的两个或两个以上用户之间正在进行的消息交换线程;
由所述处理器中的一个或多个基于所述检查来确定:
与所述消息交换线程的一个或多个词项相关的多个候选服务实体,以及
与所述候选服务实体相关联的至少一个动作;
由所述处理器中的一个或多个生成为所述动作和所述候选服务实体定制的提示;
由所述处理器中的一个或多个将所述提示合并到所述消息交换线程中以经由所述消息交换客户端中的至少一个消息交换客户端呈现给所述用户中的至少一个用户;
由所述处理器中的一个或多个识别对所述提示的至少一个响应,所述响应由所述消息交换线程中的所述用户中的至少一个用户提供;
由所述处理器中的一个或多个,基于特定实体与所述响应的符合性,确定所述候选服务实体中的所述特定实体;以及
由所述处理器中的一个或多个,基于确定所述特定实体,将图形元素合并到所述消息交换线程中以呈现给所述两个或两个以上用户中的每一个用户,所述图形元素识别所述特定实体的一个或多个性质。
2.如权利要求1所述的方法,其中,将所述图形元素合并到所述消息交换线程中包括:请求所述消息交换客户端中的至少一个消息交换客户端将所述图形元素插入到在所述消息交换客户端中的所述至少一个消息交换客户端的图形用户界面中显示的所述正在进行的消息交换线程的转录中。
3.如权利要求2所述的方法,其中,所述图形元素包括文本和图像中的一个或多个。
4.如前述权利要求中的任一项所述的方法,进一步包括:
由所述处理器中的一个或多个生成为所述动作和所述候选服务实体中的至少一个候选服务实体定制的附加提示;
由所述处理器中的一个或多个将所述附加提示合并到所述消息交换线程中,以经由所述消息交换客户端中的至少一个消息交换客户端呈现给所述用户中的至少一个用户;以及
由所述处理器中的一个或多个识别对所述附加提示的至少一个附加响应,所述附加响应由所述消息交换线程中的所述用户中的至少一个用户提供。
5.如权利要求4所述的方法,进一步包括:
在一个或多个计算机可读介质中,由所述处理器中的一个或多个生成下述任务:
与所述用户中的至少一个用户相关联的任务,
针对所述动作和所述特定服务实体的任务,以及
包括基于所述附加响应的所述动作的至少第一准则的任务。
6.如权利要求4或5所述的方法,进一步包括:
由所述处理器中的一个或多个,发起具有基于所述附加响应的所述动作的至少第一准则的所述特定服务实体的动作。
7.如前述权利要求中的任一项所述的方法,其中,将所述提示合并到所述消息交换线程中包括合并所述提示以呈现给所述消息交换线程的所述用户中的每个用户。
8.如前述权利要求中的任一项所述的方法,其中,识别对所述提示的至少一个响应包括:至少识别来自所述用户中的第一用户的对所述提示的第一响应以及来自所述用户中的第二用户的对所述提示的第二响应;以及其中,确定所述特定实体是基于所述第一响应和所述第二响应。
9.如前述权利要求中的任一项所述的方法,其中,识别对所述提示的至少一个响应包括识别来自所述用户中的每个用户的响应;以及其中,确定所述特定实体是基于来自所述用户的所述响应中的每个响应。
10.如前述权利要求中的任一项所述的方法,其中,生成所述提示进一步基于所述消息交换线程的所述用户的所存储的属性。
11.一种方法,包括:
由一个或多个处理器接收第一自然语言输入,所述第一自然语言输入是:
经由用户的计算设备的用户界面输入设备,由所述用户制定作为所述用户与经由所述一个或多个处理器实现的自动化消息递送系统之间的对话的一部分的自由形式输入;
由所述处理器中的一个或多个确定与所述第一自然语言输入相关的至少一个动作和所述动作的多个候选服务实体,其中,所述动作能够由所述候选服务实体执行或为所述候选服务实体执行;
由所述处理器中的一个或多个生成为征求针对所述动作和所述候选服务实体中的至少一个的信息定制的提示;
由所述处理器中的一个或多个在所述对话的持续中,提供所述提示以经由所述用户的所述计算设备的用户界面输出设备呈现给所述用户;
由所述处理器中的一个或多个响应于提供所述提示,接收响应于所述提示并且由所述用户提供作为所述用户与所述自动化消息递送系统之间的所述对话的一部分的第二输入;
由所述处理器中的一个或多个基于所述第二输入,生成为征求针对所述动作和所述候选服务实体中的至少一个的附加信息定制的附加提示;
由所述处理器中的一个或多个在所述对话的持续中,提供所述附加提示以经由所述用户的所述计算设备的用户界面输出设备呈现给所述用户;
由所述处理器中的一个或多个响应于提供所述附加提示,接收响应于所述附加提示并且由所述用户提供作为所述用户与所述自动化消息递送系统之间的所述对话的一部分的第三输入;
基于所述第二输入和所述第三输入确定:
所述动作的一个或多个准则,以及
所述候选服务实体中,待对其执行所述动作的特定实体;以及
在一个或多个计算机可读介质中,由所述处理器中的一个或多个响应于确定所述动作的一个或多个准则以及待对其执行所述动作的所述特定实体,生成下述任务:
与所述用户相关联的任务,
识别所述动作和所述特定实体的任务,以及
包括所述动作的所述一个或多个准则的任务。
12.如权利要求11所述的方法,其中,所述提示紧跟在所述第一自然语言输入之后,所述第二输入紧跟在所述提示之后,所述附加提示紧跟在所述第二输入之后,以及所述第三输入紧跟在所述附加提示之后。
13.如权利要求11或12所述的方法,其中,生成所述提示是基于适用于所述动作的所述候选实体中的所有候选实体的通用协议的参数。
14.如权利要求13所述的方法,其中,所述特定实体基于所述第二输入而确定,以及其中,生成所述附加提示是基于适用于所述特定实体的特定协议的附加参数,其中,所述附加参数不包括在适用于所述动作的所述候选实体中的所有候选实体的所述协议中。
15.如权利要求11-14中任一项所述的方法,其中,响应于所述提示而接收的所述第二输入识别所述候选实体中的初始候选实体,并且进一步包括:
确定所述动作的所述准则中的至少一个准则对所述初始候选实体是不能够实现的;
其中,生成所述附加提示包括基于确定所述一个或多个准则对所述特定实体的所述动作是能够实现的,将所述特定实体的别名合并在所述附加提示中。
16.如权利要求11-15中任一项所述的方法,其中,生成所述提示进一步基于所述用户的所存储的属性。
17.如权利要求16所述的方法,其中,所述对话在所述用户、所述自动化消息递送系统和附加用户之间;以及其中,生成所述提示进一步基于所述附加用户的附加存储的属性。
18.如权利要求11-17中任一项所述的方法,其中,提供所述提示以呈现给所述用户包括提供所述提示以经由所述用户的所述计算设备的消息交换客户端与所述第一自然语言输入同时显示。
19.如权利要求18所述的方法,其中,所述对话在所述用户、所述自动化消息递送系统和附加用户之间;并且进一步包括提供所述提示以经由所述附加用户的附加计算设备的附加消息交换客户端,与所述第一自然语言输入同时显示。
20.如权利要求11-19中任一项所述的方法,其中,生成所述附加提示进一步基于将所述特定实体的性质与下述中的至少一个比较:所述用户的当前位置、所述用户的时间约束以及所述用户的用户简档。
21.一种系统,包括存储器和一个或多个处理器,所述存储器存储指令,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行权利要求1至20中任一项所述的方法。
22.至少一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质包括指令,所述指令响应于所述一个或多个处理器执行所述指令,使得所述一个或多个处理器执行权利要求1至20中任一项所述的方法。
23.一种装置,所述装置被配置成执行权利要求1至20中任一项所述的方法。
24.一种计算机程序,包括机器可读指令,所述机器可读指令在由计算装置执行时,使得执行权利要求1至20中任一项所述的方法。
CN201680085758.7A 2016-05-17 2016-12-27 自动生成提示并分析用户对提示的响应以确定动作的实体并且执行与动作和实体相关的一个或多个计算动作 Pending CN109313527A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/157,027 US9699128B1 (en) 2016-05-17 2016-05-17 Automated generation of prompts and analyses of user responses to the prompts to determine an entity for an action and perform one or more computing actions related to the action and the entity
US15/157,027 2016-05-17
PCT/US2016/068645 WO2017200585A1 (en) 2016-05-17 2016-12-27 Automated generation of prompts and analyses of user responses to the prompts to determine an entity for an action and perform one or more computing actions related to the action and the entity

Publications (1)

Publication Number Publication Date
CN109313527A true CN109313527A (zh) 2019-02-05

Family

ID=57822081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680085758.7A Pending CN109313527A (zh) 2016-05-17 2016-12-27 自动生成提示并分析用户对提示的响应以确定动作的实体并且执行与动作和实体相关的一个或多个计算动作

Country Status (5)

Country Link
US (3) US9699128B1 (zh)
JP (1) JP6883050B2 (zh)
KR (3) KR102013925B1 (zh)
CN (1) CN109313527A (zh)
WO (1) WO2017200585A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168164B2 (en) 2016-06-11 2019-01-01 Apple Inc. Integrating ride hailing services into a navigation application
CN106415527B (zh) * 2016-08-31 2019-07-30 北京小米移动软件有限公司 消息通信方法及装置
US11341173B2 (en) 2017-04-12 2022-05-24 Meta Platforms, Inc. Techniques for personalized search for bots
US10846615B2 (en) 2017-04-12 2020-11-24 Facebook, Inc. Techniques for reinforcement for bots using capability catalogs
US20180300161A1 (en) * 2017-04-12 2018-10-18 Facebook, Inc. Techniques for multiple-user bot applications
US11494440B1 (en) 2017-04-12 2022-11-08 Meta Platforms, Inc. Proactive and reactive suggestions for a messaging system
US11025566B2 (en) 2017-04-12 2021-06-01 Facebook, Inc. Techniques for intent-based search for bots
US9998334B1 (en) * 2017-08-17 2018-06-12 Chengfu Yu Determining a communication language for internet of things devices
US11269666B2 (en) * 2017-08-22 2022-03-08 Google Llc Facilitating user device and/or agent device actions during a communication session
US11341431B2 (en) * 2017-12-28 2022-05-24 Pied Parker, Inc. Systems and methods for parking space selection based on weighted parameter comparison
JP7119662B2 (ja) * 2018-07-06 2022-08-17 富士通株式会社 チャット制御プログラム、チャット制御方法、チャット制御システム
EP4429193A1 (en) 2023-03-08 2024-09-11 FUJIFILM Business Innovation Corp. Program and information processing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325310A (en) * 1992-06-26 1994-06-28 International Business Machines Corporation Method and system for persistant electronic mail reply processing
WO2013040037A1 (en) * 2011-09-12 2013-03-21 Talkto, Inc. Multi-user communication system and method
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010111962A (ko) * 2000-06-14 2001-12-20 안종선 메뉴별로 예약 좌석을 지정하는 시스템 및 이를 이용한서비스방법
US7600048B2 (en) 2005-03-04 2009-10-06 Microsoft Corporation Web services processing using MAPI compliant mail applications
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US9560089B2 (en) * 2012-12-11 2017-01-31 Nuance Communications, Inc. Systems and methods for providing input to virtual agent

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325310A (en) * 1992-06-26 1994-06-28 International Business Machines Corporation Method and system for persistant electronic mail reply processing
WO2013040037A1 (en) * 2011-09-12 2013-03-21 Talkto, Inc. Multi-user communication system and method
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理

Also Published As

Publication number Publication date
KR20190099102A (ko) 2019-08-23
KR20190005224A (ko) 2019-01-15
US10826856B2 (en) 2020-11-03
US10225222B2 (en) 2019-03-05
KR20200106569A (ko) 2020-09-14
JP6883050B2 (ja) 2021-06-02
KR102013925B1 (ko) 2019-08-23
JP2019518279A (ja) 2019-06-27
KR102155764B1 (ko) 2020-09-14
US20190199669A1 (en) 2019-06-27
US20170339084A1 (en) 2017-11-23
WO2017200585A1 (en) 2017-11-23
KR102243994B1 (ko) 2021-04-23
US9699128B1 (en) 2017-07-04

Similar Documents

Publication Publication Date Title
CN109313527A (zh) 自动生成提示并分析用户对提示的响应以确定动作的实体并且执行与动作和实体相关的一个或多个计算动作
JP6956113B2 (ja) マルチユーザメッセージ交換スレッドにおける自動化アシスタントとのインタラクションのための提案を提供すること
CN109952572B (zh) 基于消息贴纸的建议响应
CN112997171B (zh) 分析网页以促进自动导航
CN109891446B (zh) 具有图形丰富的基于模板的日历事件
JP2021012384A (ja) 会議能力を有する自動アシスタント
US9418370B2 (en) Obtaining event reviews
CN108270843A (zh) 生成和传送对适当第三方代理的调用请求
CN110110302A (zh) 在消息中识别任务
US20180375805A1 (en) Collecting Information in a Messaging System
JP2021515938A (ja) 自動化されたアシスタントによる以前の対話コンテキスト間の遷移
CN109564578A (zh) 基于自然语言用户界面输入生成自然语言输出
WO2018085760A1 (en) Data collection for a new conversational dialogue system
CN109565461A (zh) 生成用于响应于用户接口输入而呈现的输出,其中输入和/或输出包括聊天语言
CN109643246A (zh) 经由用户的计算设备的用户界面设备自动发起和适配与用户的对话
CN107644053A (zh) 通知的场境信息
CN107391524A (zh) 增强消息交换话题
CN109564580A (zh) 使用消息交换线程促进有效搜索
CN109891410B (zh) 用于新的会话对话系统的数据收集
Černezel et al. A user-centric approach for developing mobile applications
Rekrut et al. Is co-creation superior to user centred design? preliminary results from user interface design for inclusive public transport
CN115374146A (zh) 用于根据关系数据编辑对话服务模块的方法和系统
Baloian Mobile Collaborative Technologies and Data Science for Smart Systems

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190205