条件任务的自动提取和应用的制作方法

文档序号:21108494发布日期:2020-06-16 21:32阅读:189来源:国知局
条件任务的自动提取和应用的制作方法



背景技术:

计算设备用户通常使用多种工具来管理其个人和职业生活中的任务,例如日历应用、待办事项列表、或任务列表应用的使用,设置警报,或使用通过计算设备操作系统、数字助理或应用提供的提醒功能。这样的工具通常要求用户明确地创建任务项目,例如,经由用户选择新任务项目命令,用户输入待办事项或任务列表中的任务项目条目,将任务项目分配给另一个体,与另一个体共享任务项目,集成来自另一个应用或服务的任务列表,输入任务详细信息(例如,开始日期、截止日期、提醒信息、优先级)。此外,当前的工具通常还允许个体基于诸如时间(例如,提醒我在下午6:00拿起水果盘)、位置(例如,提醒我在杂货店时购买牛奶)之类的条件来设置任务提醒,或者基于个体与联系人的交互(例如,当bill打电话给我时,提醒我谈论项目x)设置任务提醒,其中在检测到触发事件(例如,日期、时间、用户的位置、用户与联系人的交互)后会提供提醒通知。

尽管这样的工具是有用的,但是被实施为承诺或请求的条件任务常常是在人际交流或其他文档中传达的。对于用户而言以下情况是有利的,使得计算设备能够识别人际通信或其他文档中的任务并识别和理解任务上下文中的条件(例如,“我将在[条件]被满足之后完成[任务]”)以便在合适和相关的时间启用提醒。



技术实现要素:

提供了该发明内容以用简化的形式引入对以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在排他地标识所要求保护主题的关键特征或必要特征,也不旨在帮助确定所要求保护的主题的范围。

各个方面针对用于提供从内容中自动提取和应用条件任务的自动化系统、方法和计算机可读存储设备。例如,以一组属性(例如,事件、动作、时间、位置的发生)为条件的任务可以被明确地编码在用户的任务列表中,或者可以在电子通信介质或其他内容项中表达。条件任务提供了在触发条件被满足时智能地提醒用户的机会。各方面提供了训练分类器,该分类器可操作或被配置为识别条件任务,并且学习合适的时间和方法来使用户参与以关于条件任务提醒用户。例如,条件任务系统包括用于进行以下操作的组件:使得能够检测条件任务、提取表征与任务动作相关联的条件的属性、使用关于条件的信息来确定如何监视条件的满足以及确定何时和如何使得用户参与任务动作,以及在条件被满足时在合适的时间和使用合适的方法通知用户。

示例被实现为计算机过程、计算系统,或者诸如设备、计算机程序产品或计算机可读介质之类的制品。根据一个方面,计算机程序产品是能够由计算机系统读取并且对包括用于执行计算机过程的指令的计算机程序进行编码的计算机存储介质。在附图和以下的描述中阐述了一个或多个方面的细节。通过对以下的详细描述的阅读以及对相关联的附图的浏览,其他的特征和优点将是显而易见的。应当理解的是,以下的详细描述对权利要求仅仅是解释性的而非限制性的。

附图说明

被并入该公开并且构成该公开的一部分的附图示出了各种方面。在附图中:

图1是示出了用于实现本公开的示例操作环境的框图;

图2是示出了用于实现本公开的各方面的示例计算架构的框图;

图3a-3b示出了示例用例场景;

图4是流程图,其示出了在用于提供从内容中对条件任务的自动提取和应用的示例方法中涉及的一般阶段;

图5是示出了计算设备的示例物理组件的框图;

图6a和6b是移动计算设备的简化框图;并且

图7是分布式计算系统的简化框图。

具体实施方式

以下的详细描述对附图进行了参考。在可能的情况下,在附图和以下的描述中使用相同的附图标记来指代相同或类似的元素。尽管描述了多个示例,但修改、改编、和其他实现是可能的。例如,可以对在附图中所示出的元素进行替代、增加、或修改,并且可以通过对所公开的方法进行替代、重排序、或者增加步骤来修改在本文中所描述的方法。由此,以下详细描述是非限制性的,但替代地,合适的范围是由所附权利要求定义的。示例可以采取硬件实现的形式、或者完全软件实现的形式、或者结合了软件和硬件方面的实现的形式。因此,以下的详细描述不被理解为是限制性意义。

本公开的各方面针对一种用于提供从诸如电子通信、文档等的内容项中对条件任务的自动提取和应用的方法、系统和计算机可读存储设备,其中条件任务可以是被表达为自然语言,其中条件任务的含义可能很容易被人理解,但可能不容易被计算机理解。如本文所使用的,条件任务是自然语言短语或表达,其包括任务动作和在采取动作之前要满足的条件。通常而言,在本文中公开的方面旨在分析自然语言短语(从内容项中提取),检测包括用户打算采取或已被要求采取的任务动作的任务,确定该任务动作是有条件的(即,条件任务)还是无条件的,如果任务动作是有条件的,则识别条件任务的条件触发,监视确定的条件触发,以确定何时条件被满足,以及确定何时以及如何使用户参与任务动作。

有利地,所公开的方面实现了以下技术效果的益处,所述技术效果包括但不限于增加的用户交互性能和改善的用户体验。例如,通过从内容(例如,从任务项目或电子通信)中自动识别和提取条件任务,使用户能够进行更高效的用户交互,从而用户不必显式地创建任务或为条件任务设置提醒。此外,本公开的方面使得能够基于对与任务相关联的条件的满足的检测来自动对用户进行提醒或关于任务进行通知。由此,用户不必记住与条件任务相关联的条件或监视那些条件的满足以对任务采取动作。

现在参考图1,提供了示出其中可以采用本公开的方面的示例操作环境100的框图。应该理解的是,本文描述的这种布置和其他布置作为示例被提供。除了或代替图1中所示的那些,可以使用其他布置和元件。本文描述为由一个或多个元件或组件执行的各种功能可以由硬件、固件和/或软件来实行。例如,某些功能可以由处理器执行存储在存储器中的指令来实行。如图所示,示例操作环境100包括一个或多个计算设备102a-n(一般为102)、多个数据源104a-n(一般为104)、至少一个服务器106、传感器108a,b,c(一般为108),以及网络110或网络的组合。可以经由任何类型的计算设备(例如,参考图5、6a、6b和7描述的计算设备500、600、705a,b,c)来实现图1所示的每个组件。一个或多个计算设备102可以是各种类型的计算设备之一,例如平板计算设备、台式计算机、移动通信设备、膝上型计算机、膝上型/平板混合计算设备、大屏幕多点触摸显示器、车辆计算系统、游戏设备、智能电视、可穿戴设备、物联网(iot)设备等。

组件可以经由网络110彼此进行通信,所述网络可以包括但不限于一个或多个局域网(lan)或广域网(wan)。在一些示例中,在各种可能的公共或私有网络中的任何一个中,网络110包括因特网和/或蜂窝网络。应当意识到,在本公开的范围内,可以在示例操作环境100内采用任何数量的计算设备102、数据源104和服务器106。其中每个可以包括单个设备或在分布式环境中协作的多个设备。例如,可以经由布置在分布式环境中的多个设备来提供服务器106,这些设备共同提供本文所述的各种功能。在一些示例中,未示出的其他组件可以被包括在分布式操作环境100内。

根据一个方面,一个或多个数据源104可以包括数据源或数据系统,所述数据源或数据系统被配置为使数据可用于操作环境100或以下参考图2所述的示例系统200的各种组件中的任何一个。在一些示例中,一个或多个数据源104与一个或多个计算设备102和至少一个服务器106分离。在其他示例中,一个或多个数据源104被合并或集成到计算设备102或服务器106中的至少一个中。

根据一个方面,传感器108可以包括各种类型的传感器,包括但不限于:相机、麦克风、全球定位系统(gps)、运动传感器、加速度计、陀螺仪、网络信号系统、生理传感器、和温度或其他环境因素传感器。例如,传感器108可用于检测数据并使检测到的数据可用于其他组件。检测到的数据可以包括例如家用传感器数据、设备数据、gps数据、车辆信号数据、交通数据、天气数据、可穿戴设备数据、网络数据、陀螺仪数据、加速计数据、支付或信用卡使用数据、购买历史数据或可以由传感器108(或其他检测器组件)感测或以其他方式检测到的其他传感器数据。根据一个方面,如本文所使用的,术语“上下文信息”描述了表征与实体或与用户、应用或周围环境之间的交互有关的情况的任何信息。

所公开的系统200可以可选地包括隐私组件,该隐私组件使用户能够选择暴露或选择不暴露个人信息。隐私组件使能够经授权且安全地处理可能已经获得、保存和/或可访问的用户信息。可以向用户提供有关个人信息部分收集的通知,以及加入或退出收集过程的机会。同意可以采取几种形式。选择加入同意可以迫使用户在收集数据之前采取肯定行动。可替代地,选择退出同意可以迫使用户采取肯定行动,以防止在收集数据之前收集数据。

示例操作环境100可用于实现图2中描述的示例条件任务系统200的一个或多个组件,包括用于提供从内容中自动提取和应用条件任务的组件。根据一个方面,本文使用的术语“有条件的任务”或“条件任务”描述了以一组属性为条件的任务动作,例如事件、动作、人、时间、或位置的发生中的一个或组合。“如果susan向我发送文档,我将负责处理任务”是示例条件任务,其包括任务动作(负责处理任务)和任务动作所取决于的条件(如果susan向[用户]发送文档)。“除非我堵车并且无法在晚上6点之前回家,否则计划去取牛奶”是一个条件任务的示例,该任务在任务动作(取牛奶)的上下文中包括两个条件(除非[用户]堵车)和(除非[用户]无法在晚上6点之前回家)。条件任务可以被实施为用户做出的承诺(例如,“如果满足[条件],我将执行[任务动作]”),也可以被实施为针对用户的请求(有时由用户明确同意)(例如,“当[条件]被满足时,您可以[任务动作]吗?”)。

示例条件任务系统200的各方面提供了对条件任务的自动化检测,对表征与任务动作相关联的条件的属性的提取,对关于条件的信息和上下文数据的使用以确定如何监视条件的满足且确定何时以及如何使用户参与任务动作,以及在条件被满足时以合适的时间并以合适的方式通知用户。提供了框图,其示出了适合于实现本公开的各个方面的示例计算系统架构的各方面。条件任务系统200仅代表合适的计算系统架构的一个示例。除了或代替所示的元件,可以使用其他布置和元件。应当意识到,本文描述的元件是功能实体,其可以被实现为离散或分布式组件,或与其他组件结合,并且以任何合适的组合或位置来实现。

现在参考图2,示例条件任务系统200包括模型训练引擎210、条件分类器212、触发监视引擎218、参与引擎220、和用户反馈引擎222。条件任务系统200可以在一个或多个计算设备102、服务器106上运行,可以分布在一个或多个计算设备102和服务器106之间,或者可以在云中实现。在一些示例中,条件任务系统200的一个或多个组件分布在网络110或网络的组合上。在一些示例中,由条件任务系统200的组件执行的功能是经由api(应用编程接口)暴露的。

根据一个方面,模型训练引擎210示出了可操作或配置为构建条件分类器212以识别条件任务的软件模块、软件包、系统或设备。在一些示例中,模型训练引擎210使用机器学习、统计分析、行为分析、数据挖掘技术和手动调节中的一种或组合来训练条件分类器212。例如,包括已经标记为条件任务或非条件任务的任务的训练数据可用于训练条件分类器212以基于以下项来识别或预测条件任务:学习的条件任务表征特征(例如,任务文本字符串中的n元(n-gram)和其他属性,例如文字字符串的长度,包含指示条件的关键字或关键短语(例如,“何时”、“曾经”、“除非”、“之后”、“如果”、“尽快”、“规定”、“假如”、“无论何时”),条件关键字或关键短语的相对放置位置(例如,句子的开头、句子的中间),从属子句的包含等等。

根据一个方面,条件分类器212示出了可操作或配置为检测任务并识别该任务是条件任务还是非条件任务的软件模块、软件包、系统或设备。例如,条件分类器212接收由一个或多个自然语言短语组成的内容项202,其中该内容项可以是电子通信项目(例如,电子邮件、文本消息、即时消息、会议请求、语音消息转录)、日历项目、任务项目、文档、会议记录或其他可以在其中明确编码或表达任务的内容项。内容项202可以从诸如应用204或数字个人助理206之类的任务源208中提取或接收。另外,诸如元数据和上下文信息之类的其他数据也可以从任务源208、计算设备102和/或从一个或多个数据源104中提取或接收。根据一个方面,其他数据可以包括从一个或多个传感器108收集的数据。

合适的应用204的示例包括但不限于电子邮件应用、消息传送应用、日历应用、提醒应用、待办事项列表应用、社交网络应用、文字处理应用、电子表格应用、幻灯片演示应用、笔记应用、web浏览器应用、导航应用、游戏应用、移动应用等。在一些示例中,应用204是胖客户端应用,其被本地存储在计算设备102上。在其他示例中,应用204是驻留在远程服务器106上并且可以通过网络110或网络的组合访问的瘦客户端应用(即,web应用)。瘦客户端应用可以被托管在浏览器控制的环境中或以浏览器支持的语言编码,并且可以依赖于通用的web浏览器来使瘦客户端应用在计算设备102上可执行。在其他示例中,应用204是第三方应用,其可操作或配置为采用经由api通过条件任务系统200的组件执行的功能。

以用户经由电子邮件应用接收或发送电子邮件(内容项202)或通过笔记记录应用记录会议笔记(内容项202)为例。在一些示例中,应用204可以调用条件分类器212以解析内容项202(例如,电子邮件、电子邮件字符串、会议记录)和其他数据(例如,元数据、上下文信息)以识别在项目中表达的任务,例如用户声明的承诺(例如,“我要写报告”,“如果一会要下雨,请收起垫子”)或用户明确或隐含同意的请求(例如,在收到的文本消息:“如果您要在我之前回家,请将烤架点火”中或在收到的电子邮件:“您可以接ann吗?”中,以及在随后的回复电子邮件:“是的,除非bob需要我来管理员工大会。”中)。在其他示例中,应用204可操作或配置为解析内容项202并识别任务或调用第三方应用来执行任务识别。在这样的情况下,应用204可以将所识别的任务和其他提取的数据(例如,上下文信息)传递给条件分类器212。

数字个人助理功能可以作为独立的数字个人助理206应用、应用204的一部分或计算设备102的操作系统的一部分被提供或由它们来提供。在一些示例中,数字个人助理206采用自然语言用户界面(ui),其可以从用户那里接收用语音或话音识别技术处理过的口头话语。例如,自然语言ui可以包括内部或外部麦克风、相机以及各种其他类型的传感器108。数字个人助理206可以支持各种功能,其可以包括与用户交互(例如,通过自然语言ui或gui);执行任务(例如,记录用户日历中的约会,发送消息和电子邮件,提供提醒);提供服务(例如,回答来自用户的问题,将方向映射到目的地,数字个人助理206所支持的其他应用或服务功能);收集信息(例如,查找用户要求的有关书籍或电影的信息,找到最近的意大利餐馆);操作计算设备102(例如,设置偏好,调整屏幕亮度,打开和关闭无线连接);以及其他各种功能。上面列出的功能并不是穷举性的,并且其他功能可以由数字个人助理206提供。

根据一个方面,在识别内容项中包括的任务时,条件分类器212可操作或被配置为对内容项202执行自然语言处理(nlp),以在语义上和/或上下文上理解用户的可能意图,例如执行一项任务动作的一个或多个意图。在一些示例中,上下文信息用于解析任务动作意图。在一些示例中,条件分类器212应用自然语言处理和机器学习技术来识别实体、实体属性以及与其他实体的实体关系。此外,在一些示例中,条件分类器212调用另一个数据源104,例如搜索引擎或知识图谱,以解析任务中的实体。例如,知识图谱将实体和属性表示为节点,将实体之间的属性和关系表示为边,因此提供了实体及其属性以及它们与用户的关系的结构化示意图。

如上所述,任务指示用户承诺采取、被请求采取、或者被请求采取且隐式或显式同意采取的经定义的动作(任务动作)。在一个示例中,条件分类器212解析接收到的自然语言内容项202,并且基于在任务中使用的词语来确定可能的任务动作意图。例如,条件分类器212可以将统计置信度分配给与任务中的一个或多个词语相关联的潜在任务动作意图,并且当统计置信度达到或超过预确定的阈值时,将相关联的潜在任务动作意图确定为可能的任务动作意图。在一些示例中,条件分类器212是在一组任务和非任务上训练的机器学习模型,以使得经机器学习的模型可以确定文本字符串是否包括执行任务动作的承诺或执行任务动作的请求。可替代地,条件分类器212是基于规则的。

根据一个示例,条件分类器212可操作或配置为针对从内容项202提取的承诺短语生成选区解析树。例如,选区树提供有关承诺短语的语法结构的另外的信息层。对于每个承诺短语,条件分类器212可以遍历选区树,并且与当前内部或外部节点相关联的标签可以在精心设计的状态机上引发转换。例如,转换为特定状态可能引起相关联的令牌被捕获为任务动作或任务动作的对象的一部分。动作-对象对可以定义用户的意图。可以意识到,这是一种示例方法。各种其他方法是可能的,并且在本公开的范围内。

根据一个方面,当识别出任务时,条件分类器212还可操作或配置为确定任务是否包括被条件化的任务动作。即,确定该任务是条件任务还是非条件任务。根据一个示例,条件分类器212的特征可以在任务的文本中包括n元以及其他属性,例如文本的长度,包含指示条件的关键字或关键短语(例如,“何时”、“曾经”、“除非”、“之后”、“如果”、“尽快”、“规定”、“假如”、“无论何时”),条件关键字或关键短语的相对布置位置(例如,句子、句子中部),对从属子句的包含等等。

根据另一个示例,可以在一组条件任务上训练机器学习条件分类器212,以使得机器学习模型可以确定条件任务的各个部分。例如,条件分类器212可以被操作或配置为解释条件任务表达并将文本短语划分为至少一个条件和在满足至少一个条件时承诺执行的至少一个任务动作,以及将至少一个条件和至少一个任务动作标记为与条件部分、与任务动作部分、与条件部分和任务动作部分两者有关,既不与条件部分也不与任务动作部分有关,或者被标记为未解析。在一些示例中,确定条件任务表达的一部分与条件部分还是任务动作部分有关是基于统计置信度的(例如,条件分类器212分配将一个部分标识为条件或任务动作的统计置信度,并且统计置信度达到或超过预确定的阈值)。应当意识到,这仅是从条件任务中提取条件的方法的一个示例。条件分类器212可以使用一种方法或其他方法的组合(例如,与语法分析树匹配的正则表达式)来从条件任务中提取条件。此外,可以采用另外的方法(例如,字典查找)来识别所识别的条件部分中的不同实体类型(例如,人、地点、时间)。根据一个方面,条件分类器212还可操作或配置为使用上下文信息来识别条件。

根据一个方面,条件分类器212可操作或配置为基于过去的用户交互来识别隐式触发条件。例如,可以收集和分析用户交互数据,以学习与特定用户、群组(cohort)或群体对某些任务动作的行为方式相关联的模式,并且学习某些任务动作通常取决于何种条件。

条件分类器212还可操作或配置为识别一个或多个触发条件意图并且基于识别的触发条件意图来对条件进行分类。根据一个方面,条件可以是基于时间的(例如,中午之前、下一个日落、星期二凌晨),基于位置的(例如,当我回家时,如果我经过亚特兰大),基于时间表的(例如,在我下次与老板会面时,如果我有空),基于运动的(例如,下次我的行驶速度超过60mph时,除非我遇到交通阻塞),基于环境的(例如,第二天预报显示下雨时),基于人员的(例如,如果我看到bob),基于事件的(例如,如果susan向我发送了文档,如果我没有收到您的回复),或其他任何类型的条件。其他触发条件意图是可能的,并且在本公开的范围内。

条件分类器212可操作或配置为以各种方式识别触发条件意图。在一些示例中,触发条件意图是基于特定或显式的关键字、关键短语、或实体的。条件分类器212可操作或被配置为通过分析和标记条件部分中的词语的功能来识别自然语言条件任务的条件部分中的关键字、关键短语或实体。例如,条件任务的条件部分可以是“当我回家时”。条件分类器212用于识别词语“家”具有特定含义。在一些示例中,上下文信息用于解析触发条件意图。

根据一个方面,条件分类器212可操作或被配置为识别用于分类条件的显式定义的触发条件意图。例如,可以在示例条件“当我到达acme公司建筑物44时”或示例条件“当我到baycounty医院时”中识别基于位置的触发条件意图,其中触发条件意图与具有已知地址和地理位置坐标的特定或显式定义的位置相关联。由此,示例条件可以被分类为基于位置的触发条件。

在其他示例中,触发条件意图是基于语义关键字、关键短语、或实体的,其中,关键字、关键短语、或实体的含义是基于上下文信息来推断的。根据一个方面,条件分类器212可操作或配置为识别隐式隐含的触发条件意图。例如,可以在示例条件“当我回家时”中识别基于位置的触发条件意图,其中基于位置的触发条件意图是基于对词语“家”的分析,并且其中,“家”是根据用户活动来解析的位置(例如,用户通常从午夜到6:00am花费时间在的地方)。在一些示例中,条件分类器212可操作或配置为访问或请求上下文信息和其他相关信息以解析意图或实体(例如,访问联系人信息以标识人或昵称,访问日历信息以识别“空闲时间”,访问gps坐标以识别“家”或“工作”地点)。

根据一个方面,在识别触发条件意图并基于识别的触发条件意图来对条件进行分类时,条件分类器212还可操作或配置为确定条件语义框架(例如,形成识别意图、条件执行方224以及条件部分的参量(argument)和每个参量之间的关系的构造)和任务动作语义框架(例如,形成识别意图、任务动作执行方226以及任务部分的参量和每个参量之间的关系的构造)。在一些示例中,条件分类器212提取相关的动作相关信息并且触发条件相关信息。例如,相关的触发条件相关信息可以用于确定一个或多个触发条件或条件参量以及一个或多个条件执行方224以监视收听关于一个或多个触发条件的更新或事件。

在一些示例中,条件分类器212组合通过识别条件任务、识别触发条件意图、以及对条件进行分类所得出的信息,以创建诸如触发监视引擎218和/或执行方(即条件执行方224或任务动作执行方226)之类的其他组件能够理解的条件语义框架和动作语义框架,这些组件可以包括应用204、数字个人助理206、或一个或多个数据源104。语义框架可以指定一个或多个执行方和对解析条件满足有用的参量(例如,以检查条件是否已满足)。例如,条件执行方224被识别为针对所识别的触发条件进行监视的系统或资源。可以使用条件执行方224来向参量填充数据,其中条件执行方224提供确定触发条件是否被满足所需的信息。

作为示例,可以通过识别条件执行方224和用于解析该条件的任何参量来解析短语“当我回家时”。例如,可以通过识别出将该条件归类为基于位置的条件来解析条件语句“当我回家时”。由此,可以将条件执行方224确定为位置或地图应用204。参量可以指定用户设备的位置以及用户的家庭住所的位置。因此,短语“当我回家时”可以被解析为以下语义框架:

·条件执行方(conditionactor)=地图应用;

·参量(arguments)=“家”的地理坐标;当前位置。

作为另一示例,可以通过识别出条件被分类为基于时间的条件来解析条件语句“当我有空闲时间时”。由此,可以将条件执行方224确定为日历应用204。例如,可以基于来自用户日历的信息做出以下推断:即在用户计划表中的特定日期的中午12:00到下午4:00之间有可用时间块。因此,可以将“空闲时间”推断为特定日期的中午12:00到下午4:00之间。这些参量可以指定用户日历中的开放时间段和当前时间。因此,短语“当我有空闲时间时”可以被解析为以下语义框架:

·条件执行方(conditonactor)=日历应用;

·参量(argument)=用户日历中的开放时间段;当前时间。

根据另一个示例,可以通过识别出条件被分类为基于事件的条件来解析条件语句“如果susan给我发送了文档”。由此,可以将条件执行方224确定为一个或多个通信应用204(例如,电子邮件应用、消息传送应用)。该参量可以指定来自susan的包括附件的新消息。

·条件执行方(conditionactor)=电子邮件应用或消息传送应用;

·参量(argument)=来自发件人“susan”的新消息,包括文档附件。

作为另一个示例,可以通过识别出条件被分类为基于位置的条件和基于环境的条件来解析条件语句“如果我回家时正在下雨”。这样,可以将条件执行方224确定为位置或地图应用204和天气应用204。参量可以指定用户设备的位置以及用户的家庭住址的位置。因此,短语“如果我回家时正在下雨”可以被解析为以下语义框架:

·条件执行方(conditionactor)=地图应用;

·参量(argument)=“家”的地理坐标;当前位置,以及

·条件执行方(conditionactor)=天气应用;

·参量(argument)=“家”的天气状况。

根据一个方面,在识别意图、条件执行方224、以及用于条件部分的参量和每个参量之间的关系并且形成条件语义框架时,条件分类器212可操作或配置为将信息传递给触发监视引擎218以用于监视各种条件执行方224。触发监视引擎218示出了可操作或配置为监视条件执行方224并且确定触发条件何时被满足的软件模块、软件包、系统或设备。在一些示例中,触发监视引擎218将条件语义框架传递给条件执行方224以用于解析参量。在其他示例中,触发监视引擎218请求对参量的回答/更新,并确定触发条件是否被满足。

在确定满足了条件任务的所有触发条件后,触发监视引擎218可操作或配置为将信息传递给参与引擎220。参与引擎220还从与条件任务的动作部分相关联的条件分类器212接收信息。例如,参与引擎220可以接收由条件分类器212形成的动作语义框架,所述动作语义框架识别意图、任务动作执行方226、以及条件任务的动作部分的参量和每个参量之间的关系,其中针对该条件任务的触发条件已经由触发监视引擎218确定为满足。

根据一个方面,参与引擎220示出了可操作或配置为关于条件任务来使用户参与的软件模块、软件包、系统或设备。在一些示例中,使用户参与包括:提醒用户关于任务动作,该用户动作是在采取动作之前响应于条件被满足而由该用户承诺采取的动作。例如,可以经由诸如推送通知、电子邮件消息、文本消息、或其他类型的通知或警报之类的通知来向用户提醒条件任务。提供给参与引擎220的信息可以包括标识任务动作执行方226的信息以及用于解析任务动作意图的参量。

作为示例并且如图3a所示,在用户与用户的妈妈之间的文本消息对话302中,用户承诺或同意如果今天不下雨则在用户回家时给植物浇水的条件任务304。对于条件任务,可以将用户的动作意图识别为给植物浇水,可以将任务动作执行方226确定为通知系统,并且可以使用与要通知用户有关的信息来填充参量。例如,条件任务的动作部分可以被解析为以下语义框架:

·任务动作执行方(taskactionactor)=通知引擎

·意图(intent)=给植物浇水

·参量(argument)=“给植物浇水”;满足条件。

在该示例中,参与引擎220可操作或配置为使通知引擎(例如,在用户的计算设备102上,与应用204集成,与数字个人助理206集成)参与以向用户提供通知306“取干洗的衣物”。例如,通知306包括对任务动作308的提醒。在一些示例中并且如图所示,通知306包括已经满足的条件310。

在其他示例中,使用户参与包括使任务动作执行方226参与以代表用户执行该动作或发起该动作,例如,当该动作是计算机执行的任务时(例如,设置警报,发送消息,执行交易)。例如,提供给参与引擎220的信息可以包括标识任务动作执行方226的信息以及用于解析任务动作意图的参量。如上所述,任务动作执行方226可以包括应用204、数字个人助理206、或计算设备102的操作系统。在一些示例中,在代表用户执行或发起动作之前,参与引擎220或任务动作执行方226可以寻求来自用户的确认。作为示例并且如图3b所示,在用户和联系人john之间的文本消息对话312中,当用户回家时,用户承诺或同意条件任务314以给john发文本。对于条件任务314,可以将用户的动作意图识别为发送文本,可以将任务动作执行方226确定为文本消息传送应用204,并且可以利用与向谁发送文本以及要发送什么文本相关联的信息来填充参量。如上所述,上下文信息可用于解析任务动作意图,例如识别与用户交谈的人,以解析向其发送文本消息的人并确定该人的联系信息。例如,条件任务的动作部分可以被解析为以下语义框架:

·任务动作执行方(taskactionactor)=文本消息传送应用

·意图(intent)=将文本发送给john

·参量(argument)=john的文本编号;“我在家。”

在该示例中,参与引擎220可操作或配置为使文本消息传送应用204参与,以向john发出包括文本“我在家”的文本消息316。在一些示例中,参与引擎220可以指示任务动作执行方224(例如,文本消息传送应用204)完全执行任务动作(例如,发送文本消息)。

在其他示例中,参与引擎220可操作或配置为使得被实施为任务管理或任务列表应用204的任务动作执行方224参与。例如,参与引擎220可以使任务管理或任务列表应用204参与以生成未决任务的列表,该列表指示其中确定所述触发条件被满足的条件任务。

根据一个方面,参与引擎220还可操作或配置为使用其他数据(例如相关的与动作有关的信息和/或上下文信息)来确定参与参数(例如,如何以及何时使用户参与)。参与参数可以是基于在条件任务的动作部分中识别的实体(例如,人、地点、时间、主题)的。在一些示例中,参与参数可以部分地基于所识别的任务动作意图。例如,对于基于位置的任务动作,参与引擎220可以确定使用户参与被设计为当用户到达特定的物理目的地时向用户通知任务动作的提醒。作为另一示例,对于基于人的任务动作,参与引擎220可以确定使用户参与被设计成当从感兴趣的人接收到电子邮件或电话呼叫时实时通知用户的提醒。

根据一个方面,参与引擎220可以使用相关的动作相关信息和/或上下文信息来确定用户是否能够在满足任务的条件时对条件任务采取动作。如果确定在满足任务的条件时用户不能对条件任务采取行动,则参与引擎220可以还关于使用户参与条件任务动作的合适时间进行确定。例如,考虑条件任务“在分数被发布时呼叫mark”。还考虑在用户开会时或在电话会议中时,满足“分数发布”的触发条件。使用用户的当前状态(例如,在会议中,在电话会议中)的知识,参与引擎220可以进行以下确定:尽管与条件任务相关联的条件已经被满足,但是在用户的会议或电话会议之后使用户参与、被通知、或关于“呼叫mark”的任务动作被提醒将更合适或相关。

在一些示例中,参与引擎220可以确定向用户呈现触发条件,例如,作为识别未决任务的先决条件的方式。根据一个方面,参与引擎220还可操作或配置为确定要呈现给用户的一个或多个动作选项。例如,当使用户参与“呼叫mark”的通知时,参与引擎220可以可选地指示通知引擎在图形用户界面(gui)中呈现一个按钮,该按钮在被选中后将给mark打电话。在一些示例中,用于确定参与参数的另外的信息可以包括用户偏好数据,实施用户偏好数据可以由用户显式设置或基于先前的用户交互来推断。基于用户偏好数据的用户设置参与参数的一个示例包括用户在关注任务的同时抑制通知或自动化动作。由此,参与引擎220可以确定等待以使用户或任务动作执行方224参与,直到用户打开通知和自动化动作功能为止。

根据一个方面,条件任务系统200包括用户反馈引擎222,该用户反馈引擎222表示可操作或配置为接收隐式或显式用户反馈的软件模块、软件包、系统或设备。用户反馈可以包括与单个用户、群组、或群体中的一个或多个相关联的用户交互数据或显式用户反馈。反馈引擎222可操作或被配置为基于反馈来确定用户偏好。反馈引擎222还可操作或配置为将用户偏好信息传递给模型训练引擎210,以基于用户反馈来调整条件分类器212。

已经相对于图1、图2和图3a-b描述了操作环境100、示例系统200和示例用例场景,图4是流程图,示出了用于提供从内容中自动提取和应用条件任务的示例性方法400所涉及的一般阶段。现在参考图4,方法400在开始操作402处开始,并且进行到操作404,在操作404中训练条件分类器212(例如,机器学习、手动调节、或组合)以识别或预测条件任务,从条件任务中自动提取动作和条件数据,并且识别和提取与动作和条件相关的实体。

方法400进行到操作406,其中条件任务系统200接收内容项202或包含一个或多个自然语言短语的内容项的至少一部分,其中,实施内容项可以是电子通信项目(例如,电子邮件、文本消息、即时消息、会议请求、语音消息记录)、日历项目、任务项目、文档、会议记录、或者可以在其中明确地编码或表达任务的其他内容项。

在操作408处,检测到任务。根据一个方面,对接收到的内容项202执行nlp以识别承诺或请求,并且在语义或上下文上理解用户的可能意图,例如执行任务动作的一个或多个意图。

方法400进行到决策操作410,在此确定该任务是条件任务还是非条件任务。例如,可以基于任务是否包括任务动作部分和条件部分来进行确定,其中,任务动作部分标识任务动作,条件部分标识在执行任务动作之前要满足的一个或多个条件。作为另一示例,可以根据过去的用户交互来基于隐式识别的触发条件来确定何时任务是有条件的。

当确定任务不是条件任务时,该方法可选地进行到操作412,在操作412中,基于所识别的任务来创建任务项目。当确定任务是条件任务时,该方法进行到操作414,在操作414中,提取相关数据,识别触发条件意图和动作条件意图,基于所识别的意图来对条件任务进行分类,并且开发条件语义框架和任务动作语义框架。例如,在识别条件意图并分类条件(例如,基于时间、基于位置、基于时间表、基于运动、基于环境、基于人、基于事件)时,识别发生在一个或多个条件执行方224上的一个或多个触发条件以进行监视。

方法400进行到操作416,在操作416处,监视所识别的一个或多个条件执行方224,以确定一个或多个触发条件是否被满足(操作418)。如果确定与条件任务相关联的触发条件未被满足,则方法400返回操作416以继续监视。

当确定与条件任务相关联的触发条件被满足时,方法400进行到操作420,在操作420处,确定参与参数。在一些示例中,在操作414处确定参与参数。例如,参与参数定义何时以及如何使用户参与。在操作420处,可以基于上下文信息、用户偏好或其他信息来确定在当前时刻使用户参与是否合适。如果确定在当前时刻不使用户参与,则可以确定使用户参与的合适时间。

方法400进行到操作422,在操作422处,基于任务动作语义框架而发生参与。在一些示例中,参与包括例如当任务动作是计算机实现的任务时(例如,设置警报,发送消息,执行交易),使任务动作执行方226参与执行任务动作或者代表用户发起所述任务动作。在其他示例中,参与包括使得被实施为通知引擎的任务动作执行方226参与以向用户提供通知306,从而关于该任务动作提醒用户。方法400在结束操作498处结束。

尽管已经在与在计算机上的操作系统上运行的应用一起执行的程序模块的一般上下文中描述了实现,但是本领域技术人员将认识到,这些方面也可以与其他程序模块一起实现。通常而言,程序模块包括例程、程序、组件、数据结构和执行特定任务或实现特定抽象数据类型的其他类型的结构。

本文描述的方面和功能可以经由多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板或板式计算机、笔记本计算机、以及膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机和大型计算机。

另外,根据一个方面,本文描述的方面和功能在分布式系统(例如,基于云的计算系统)上进行操作,其中应用功能、存储器、数据存储和获取以及各种处理功能通过分布式计算网络(例如,因特网或内联网)彼此远程地进行操作。根据一个方面,通过车载计算设备显示器或通过与一个或多个计算设备相关联的远程显示单元显示各种类型的用户界面和信息。例如,各种类型的用户界面和信息是在各种类型的用户界面和信息所投射到的墙面上显示的并且与这样的墙面进行交互。与利用其来实践实施例的多种计算系统的交互包括:键击录入、触摸屏录入、语音或其他音频录入、手势录入(其中,相关联的计算设备装备有用于捕获和解译用于控制计算设备的功能的用户手势的检测(例如,相机)功能),等等。

图5-7和相关描述提供了对其中实践示例的各种操作环境的讨论。然而,关于图5-7示出和讨论的设备和系统是出于示例和说明的目的,而不是限制用于实践本文所述方面的大量计算设备配置。

图5是示出了利用其可以实践本公开的示例的计算设备500的物理组件(即,硬件)的框图。在基本配置中,计算设备500包括至少一个处理单元502和系统存储器504。根据一个方面,取决于计算设备的配置和类型,系统存储器504包括但不限于易失性存储设备(例如,随机存取存储器)、非易失性存储设备(例如,只读存储器)、闪速存储器、或这些存储器的任何组合。根据一个方面,系统存储器504包括操作系统505以及适合于运行软件应用550、204的一个或多个程序模块506。根据一个方面,系统存储器504包括数字个人助理206。根据另一方面,系统存储器504包括条件任务系统200的一个或多个组件。例如,操作系统505适合于控制计算设备500的操作。此外,方面是结合图形库、其他操作系统或任何其他应用来实践的,并且不限于任何特定应用或系统。该基本配置在图5中由虚线508内的那些组件示出。根据一个方面,计算设备500具有另外的特征或功能。例如,根据一个方面,计算设备500包括另外的数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种另外的存储设备在图5中由可移动存储设备509和不可移动存储设备510示出。

如上所述,根据一个方面,多个程序模块和数据文件被存储在系统存储器504中。当在处理单元502上执行时,程序模块506(例如,应用204、数字个人助理206、条件任务系统200的一个或多个组件)执行的过程包括但不限于图4所示的方法400的一个或多个阶段。根据一个方面,根据示例使用其他程序模块,并且包括诸如电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等的应用。

根据一个方面,各方面是在包括离散电子元件的电路、包含逻辑门的封装或集成电子芯片、使用微处理器的电路或在包含电子元件或微处理器的单个芯片上实践的。例如,各方面是经由片上系统(soc)来实践的,其中在图5中所示的每个或许多组件被集成到单个集成电路上。根据一个方面,这种soc设备包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、和各种应用功能,所有这些都作为单个集成电路被集成(或“烧制”)到芯片基板上。当经由soc操作时,本文所述的功能经由与计算设备500的其他组件集成在单个集成电路(芯片)上的专用逻辑单元来操作。根据一个方面,可以使用能够执行诸如例如与(and)、或(or)、和非(not)之类的逻辑操作的其他技术来实践本公开的实施例,所述技术包括但不限于:机械、光学、流体、和量子技术。另外,可以在通用计算机内或者在任何其他电路或系统中实践本公开的实施例。

根据一个方面,计算设备500具有一个或多个输入设备512,例如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面,还包括诸如显示器、扬声器、打印机等之类的输出设备514。上述设备是示例,并且可以使用其他设备。根据一个方面,计算设备500包括允许与其他计算设备518通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于射频(rf)发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。

在本文中使用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构或程序模块之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器504、可移动存储设备509、和不可移动存储设备510都是计算机存储介质示例(即,存储器存储设备)。根据一个方面,计算机存储介质包括ram、rom、电可擦除可编程只读存储器(eeprom)、闪速存储器、或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储设备、盒式磁带、磁带、磁盘存储设备或其他磁存储设备、或者可以用于存储信息并且可以由计算设备500访问的任何其他制品。根据一个方面,任何这样的计算机存储介质是计算设备500的一部分。计算机存储介质不包括载波或其他传播的数据信号。

根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(诸如载波或其他传输机制)来实施的,并且包括任何信息传递介质。根据一个方面,术语“已调制数据信号”描述了具有以对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(rf)、红外和其他无线介质之类的无线介质。

图6a和6b示出了其中可以实践这些方面的移动计算设备600,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图6a,示出了用于实现这些方面的移动计算设备600的示例。在基本配置中,移动计算设备600是具有输入元件和输出元件的手持式计算机。移动计算设备600通常包括显示器605和一个或多个输入按钮610,其允许用户将信息输入到移动计算设备600中。根据一个方面,移动计算设备600的显示器605充当输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧输入元件615允许进一步的用户输入。根据一个方面,侧输入元件615是旋转开关、按钮、或任何其他类型的手动输入元件。在可替代的示例中,移动计算设备600包含更多或更少的输入元件。例如,在一些示例中,显示器605可以不是触摸屏。在可替代示例中,移动计算设备600是便携式电话系统,例如蜂窝电话。根据一个方面,移动计算设备600包括可选的小键盘635。根据一个方面,可选的小键盘635是物理小键盘。根据另一方面,可选的小键盘635是在触摸屏显示器上生成的“软”小键盘。在各个方面中,输出元件包括用于示出图形用户界面(gui)的显示器605、视觉指示器620(例如,发光二极管)、和/或音频换能器625(例如,扬声器)。在一些示例中,移动计算设备600包括振动换能器,以用于向用户提供触觉反馈。在又一示例中,移动计算设备600结合了输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口),以用于向外部设备发送信号或从外部设备接收信号。在又一个示例中,移动计算设备600合并外围设备端口640,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口),以用于向外部设备发送信号或从外部设备接收信号。

图6b是示出了移动计算设备的一个示例的架构的框图。也就是说,移动计算设备600包含用于实现一些示例的系统(即,架构)602。在一个示例中,系统602被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏、和媒体客户端/播放器)的“智能电话”。在一些示例中,系统602被集成为计算设备,例如集成的个人数字助理(pda)和无线电话。

根据一个方面,一个或多个应用650,204被加载到存储器662中并在操作系统664上或与其相关联地运行。应用的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息传送程序等。根据一个方面,数字个人助理206被加载到存储器662中并且在操作系统664上或与操作系统664相关联地运行。根据另一方面,条件任务系统200的一个或多个组件被加载到存储器662中。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668用于存储如果系统602断电而不应该丢失的持久信息。应用650可以使用非易失性存储区域668中的信息并且将信息存储在非易失性存储区域668中,例如电子邮件或电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统602上,并且被编程为与驻留在主计算机上的相应同步应用交互,以使得存储在非易失性存储区域668中的信息与存储在主计算机中的对应信息保持同步。应当意识到的是,其他应用可以被加载到存储器662中并在移动计算设备600上运行。

根据一个方面,系统602具有电源670,其被实现为一个或多个电池。根据一个方面,电源670还包括外部电源,例如ac适配器或对电池进行补电或充电的电源对接托架。

根据一个方面,系统602包括执行发送和接收射频通信的功能的无线电设备672。无线电设备672经由通信运营商或服务提供商来促进系统602与“外部世界”之间的无线连接。在操作系统664的控制下进行去往和来自无线电设备672的传输。换句话说,无线电设备672接收的通信可以经由操作系统664被传播到应用650,反之亦然。

根据一个方面,视觉指示器620用于提供视觉通知和/或音频接口674用于经由音频换能器625产生可听见的通知。在所示的示例中,视觉指示器620是发光二极管(led),并且音频换能器625是扬声器。这些设备可以直接耦合到电源670,以使得当被激活时,即使处理器660和其他组件可能关闭以节省电池电量,它们也保持开启以持续由通知机制指示的持续时间。led可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态为止。音频接口674用于向用户提供可听信号以及从用户接收可听信号。例如,除了耦合到音频换能器625之外,音频接口674还可以耦合到麦克风以接收可听输入,例如以便于电话交谈。根据一个方面,系统602还包括视频接口676,其使得板载相机630的操作能够记录静止图像、视频流等。

根据一个方面,实现系统602的移动计算设备600具有另外的特征或功能。例如,移动计算设备600包括另外的数据存储设备(可移动和/或不可移动),例如磁盘、光盘、或磁带。这样另外的存储设备在图6b中由非易失性存储区域668示出。根据一个方面,由移动计算设备600生成或捕获并经由系统602存储的数据/信息被本地地存储在移动计算设备600上,如上所述。根据另一方面,数据被存储在设备能够经由无线电设备672或经由移动计算设备600与同移动计算设备600相关联的单独计算设备(例如,例如因特网的分布式计算网络中的服务器计算机)之间的有线连接可访问的任何数量的存储介质上。应当意识到,可以经由无线电设备672或经由分布式计算网络经由移动计算设备600来访问这样的数据/信息。类似地,根据一个方面,根据公知的数据/信息传输和存储装置,包括电子邮件和协作数据/信息共享系统,这样的数据/信息在计算设备之间容易地传输以用于存储和使用。

图7示出了如上所述的用于提供从内容中自动提取和应用条件任务的系统的架构的一个示例。与条件任务系统200的一个或多个组件相关联地开发,交互或编辑的内容能够被存储在不同的通信渠道或其他存储类型中。例如,可以使用目录服务722、web门户724、邮箱服务726、即时消息传送存储728或社交网站730来存储各种文档。条件任务系统200的一个或多个组件可操作或配置为使用这些类型的系统等中的任何一个来提供基于计算设备状态或活动的任务提醒以及与任务相关的活动的状态的自动跟踪,如本文所述。根据一个方面,服务器720将条件任务系统200的一个或多个组件提供给客户端计算设备705a,b,c。作为一个示例,服务器720是web服务器,其通过web提供条件任务系统200的一个或多个组件。服务器720通过网络740经过web将条件任务系统200的一个或多个组件提供给客户端705。作为示例,计算设备被实现并实施在个人计算机计算设备705a、平板计算设备705b、或移动计算设备705c(例如,智能手机)或其他计算设备中。计算设备的这些示例中的任何示例都可用于从存储716中获取内容。

例如,以上参考根据各方面的方法、系统和计算机程序产品的框图和/或操作图示描述了实现方式。框中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。

本申请中提供的一个或多个示例的描述和说明不旨在以任何方式限制或限制所要求保护的范围。本申请中提供的方面、示例和细节被认为足以传达所有权并使其他人能够制作和使用最佳模式。实现方式不应被解释为限于本申请中提供的任何方面、示例或细节。无论是组合地还是单独地示出和描述,都旨在选择性地包括或省略各种特征(结构上的和方法上的)以产生具有特定特征集的示例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入不脱离更广泛范围的本申请中体现的总体发明构思的更广泛方面的精神内的变型、修改和替换示例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1