使用上下文创建日历事件的制作方法

文档序号:11814700阅读:168来源:国知局
使用上下文创建日历事件的制作方法与工艺

人们用很多方式计划与朋友、家人和商业伙伴的事件,包括使用邮件、SMS文本消息和即时消息通信。但是,当一个人计划并安排事件时,这个人一般被要求手动向她的电子日历输入事件。为这样做,这个人被要求找到她的日历中的日期和时间并且输入关于该事件的详情,诸如持续时间、主题和位置。因此,向电子日历中输入日历事件,即使是例如通过邮件、SMS文本消息和即时消息来计划的,对于这些应用的用户也是困难和效率低下的。

这关于实施例已经做出的这些和其它一般考虑。并且,虽然已经讨论了相对特殊的问题,但是应该理解的是,实施例应该不仅限于解决所述

背景技术:
中识别出的特殊问题。



技术实现要素:

总的来讲,本公开内容一般涉及创建日历事件。更具体地,本公开内容涉及用于使用来自自然语言表达的文本的环境上下文创建日历事件的方法和系统。可以在日历事件创建模块处从应用接收包括文本的单词、词语和短语中的至少一个的自然语言表达。该日历事件创建模块可以从该自然语言表达的文本检测至少一个日历事件。来自该自然语言表达的文本的至少一个日历事件可以通过使用第一语法模块和第二语法模块识别该自然语言表达的文本中关于该日历事件的一个或多个槽(slot)来检测。由第一语法模块识别出的一个或多个槽可以与由第二语法模块识别出的一个或多个槽进行比较。当由第一语法模块识别出的一个或多个槽与由第二语法模块识别出的一个或多个槽相匹配时,可以创建至少一个日历事件。具有从该自然语言表达的文本识别出的一个或多个槽的自动填写数据的提出日历事件可以被显示在用户接口上,这样用户可以将提出的日历事件保存在他们的来自该应用的日历上。

提供此发明内容以便介绍以下面在具体实施方式中进一步描述的以简化方式的概念的选集。此发明内容并不意在识别所要求保护的主题的关键特征或必要特征,也并不意在用于限制所要求保护的主题的范围。

附图说明

参照下面的附图描述了非限制性且非穷举性的实施例。

图1根据一个示例性实施例示出了用于创建日历事件的示例性系统。

图2根据一个示例性实施例示出了包括视觉指示符和提出的日历事件的用户接口。

图3根据一个示例性实施例示出了包括编辑提出的日历事件的选项的用户接口。

图4根据一个示例性实施例示出用于创建日历事件的示例性方法。

图5根据一个示例性实施例示出用于从自然语言表达检测至少一个日历事件的示例性方法。

图6根据一个示例性实施例示出用于处理识别为提出的日历事件的自然语言表达的示例性方法。

图7是示出了本公开内容的实施例可以用其实践的计算设备的示例性物理组件的框图。

图8A和8B是本公开内容的实施例可以用其实践的移动计算设备的简化框图。

图9是本公开内容的实施例可以用其实践的分布式计算系统的简化框图。

图10示出了用于执行本公开内容的一个或多个实施例的平板电脑。

具体实施方式

在下面的详细描述中,参考构成说明书的一部分的附图,并且其中以举例说明具体实施例或示例的方式示出。这些方面可以被组合起来,可以使用其它方面,并且可以在不脱离本公开内容的精神或范围的前提下做出任何结构化变化。因此下面的详细描述并不被视为一种限制,本公开内容的范围由所附权利要求及其等效物定义。

本公开内容一般涉及创建日历事件,例如日历应用(诸如Outlook或某种其它电子日历应用,下文称为日历)中的事件对象。具体来讲,本公开内容涉及使用两个或更多个独立于上下文的语法来实现依赖于上下文的语法能力,以识别自然语言表达中的涉及日历事件的部分。例如,自然语言表达可以包括涉及日历事件的有歧义的和/或缩写的短语、单词和词语。在另一个示例中,自然语言表达可以有具有丢失的信息的文本。在又另一个示例中,自然语言表达可以有指示过去的事件和/或否定的事件的文本。一些实施例因此将自然语言表达中的部分标记为是特定类型,例如主题、位置、日期、事件等等,其中,对所述类型的标识依赖于环境上下文。进而,涉及日历事件的值可以被识别出来并自动填充到提出的日历事件中。

两个或更多个独立于上下文的语法可以包括上下文无关(context-free)语法、有限态语法、正则表达语法等等。因此,本申请中公开的实施例的实现可以适用于任何类型的独立于上下文的语法,诸如上下文无关语法、有限态语法、正则表达语法等等。

应用(例如,电子邮件应用、SMS文本消息应用、即时消息、互联网和其它应用)的用户可以使用该应用来计划事件,并且可能想要自动地并且高效地通过该应用将所计划的事件输入到他们的来自该应用的日历中。因此,在实施例中,可以使用计算机系统创建日历事件。该计算机系统可以包括用于计划事件的应用,用于对从该应用接收到的自然语言表达的文本进行处理以便创建日历事件的日历事件创建模块,以及用于将提出的日历事件显示给该计算机系统的用户使得该用户可以将提出的日历事件输入到他们的日历中的用户接口。

图1根据一个或多个实施例示出用于创建日历事件的示例性计算机系统100。该计算机系统100可以是具有日历应用的任何设备的一部分,所述设备诸如移动电话、智能手机、可穿戴计算机(诸如智能手表或其它可穿戴设备)、平板计算机、膝上型计算机、个人计算机等等。在一些实施例中,该计算机系统100包括应用110、日历事件创建模块105和用户接口160。该应用110可以包括适用于辅助诸如电子邮件应用112、文本消息应用114(例如,SMS、MMS)、即时消息应用116(例如,Windows Messenger)及其它118之类的设备之间的通信的任何应用。所述适用于辅助设备之间的通信的应用可以实现在能够支持这些应用的任何计算设备上,诸如移动电话、智能手机、可穿戴计算机、平板个人计算机、膝上型计算机、个人计算机等等。

用户接口160可以是适用于辅助在用户和计算机系统的操作环境之间的交互的任何用户接口。例如,该用户接口160可以辅助在应用110中创建自然语言表达,以便由日历事件创建模块105进行后续处理。在另一个示例中,该用户接口160可以将提出的日历事件(proposed calendar event)显示给用户,这样该用户可以将提出的日历事件添加到该用户的日历。

日历事件创建模块105可以是计算机系统100的操作环境的一部分。例如,该日历事件创建模块105被配置为处理自然语言表达的文本以创建日历事件。以此来看,在实施例中,该日历事件创建模块105包括提取模块120、融合模块130和后处理模块140。该提取模块120可以包括意图语法模块122、槽语法模块124和核心语法模块126。该意图语法模块122和槽语法模块124可以基于核心语法模块126构造。该核心语法模块126可以基于对大量的自然语言表达的分析(例如,独立于上下文的语法)。例如,该核心语法模块126可以包括用于自然语言表达定义的规则,诸如处理缩写和简写单词的规则。本领域技术人员应该认识到核心语法模块126的基础和该核心语法模块126的相应定义的规则。该意图语法模块122和槽语法模块124包括定义的与涉及日历事件的一个或多个槽相关联的规则。这一意图语法模块122可以包括定义的用于处理文本的规则,在该文本中可以检测到日期和时间槽,并且将它们链接到涉及日历事件的其它槽(例如,位置和主题槽)。该意图语法模块122可以处理指示过去的事件的文本以及指示对事件的否定的文本。该槽语法模块124包括定义的用于标记槽的类型、用于确定所述槽位于文本中的什么地方以及用于将日期/时间值转换为标准化格式的规则。意图语法模块122和槽语法模块124二者都包括定义的用于处理有歧义的文本的规则,下面将更详细地描述。

在实施例中,提取模块120配置为接收一个或多个自然语言表达。该自然语言表达可以包括文本的单词、词语和短语中的至少一个。可以在提取模块120处从应用110(例如,电子邮件应用112、文本消息应用114、即时消息应用116,以及其它118)接收自然语言表达。例如,当用户在应用110中输入自然语言表达时,该自然语言表达可以通过任何适当的通信介质发送给提取模块120。例如,如图1中所示,应用110是计算机系统100的一部分。在这一示例中,该通信介质可以是计算机总线(未示出)。但是,在其它实施例中,应用110可以是与计算机系统100通信的不同计算机系统(未示出)的一部分。在这一示例中,该通信介质可以是无线网络。

当提取模块120从应用110接收一个或多个自然语言表达时,该提取模块120从该自然语言表达的文本检测至少一个日历事件。在一个实施例中,该提取模块120可以通过识别与日历事件有关的文本中的一个或多个槽,来从该文本检测至少一个日历事件。所述文本中的一个或多个槽可以包括,举几个来说,日期、时间、日期/时间、主题、位置、持续时间和可用性查询的至少一个。日期槽可以包括与日期相关联的任何单词、词语和/或短语。在一个示例中,日期可以是某事件已发生的或将要发生的具体的日、月或年。时间槽可以包括与时间相关联的任何单词、词语和/或短语。在一个示例中,时间可以是相对于某事件已发生的或将要发生的日期的时间。时间/日期槽可以包括将时间和日期两者包括在内的单词、词语和/或短语。主题槽可以包括指示事件的存在的任何单词、词语和/或短语。位置槽可以包括与位置(例如,事件已发生或将要发生的地方)相关联的单词、词语和/或短语。持续时间槽可以包括指示时间段的单词、词语和/或短语。可用性查询槽可以包括与关于可用性的问题相关联的单词、词语和短语。

涉及日历事件的文本中的一个或多个槽可以至少部分基于从该文本导出的上下文来识别。可以通过至少使用提取模块120的意图语法模块122和槽语法模块124,从该文本导出该上下文。在一个示例中,意图语法模块122和槽语法模块124可以被构造为描述用于日历事件的感兴趣的槽(例如,时间、日期、时间/日期、位置、主题、持续时间和可用性查询)。例如,该意图语法模块122可以包括定义的用于对有歧义的单词、词语和短语进行围绕/支持的上下文的规则,下面将更详细地描述。在另一个示例中,槽语法模块124可以包括定义的用于围绕/支持指示日历事件的槽的上下文的规则,所述上下文否定指示日历事件的所述槽,下面将更详细地描述。

创建日历事件的过程包括执行解析算法。该解析算法可以是适合于对事物(例如,规则、文本等)集合进行搜索的任何算法。例如,该解析算法可以至少对意图语法模块122和/或槽语法模块124进行搜索以便识别该文本中涉及日历事件的一个或多个槽。该解析算法可以包括与对事物集合进行搜索相关联的任何分析,诸如识别文本中涉及日历事件的一个或多个槽、标记该文本中识别出的一个或多个类型的槽、处理有歧义的文本、以及确定一个槽位于该文本中的什么地方。在一个示例中,该解析算法可以是上下文无关解析器,其解析上下文无关语言。该解析算法还可以是有限态解析器,其解析形式语言(例如,字符串集合)。因此,对意图语法模块122和槽语法模块124的至少一个进行搜索和/或解析以寻找自然语言表达中的单词、词语和短语,包括执行解析算法。例如,所定义的意图语法模块122和槽语法模块124的规则可以被解析和/或搜索和/或测试,以便找到单词、词语和/或短语和定义的规则之间的匹配。如果找到一个匹配,则匹配定义的规则的单词、词语和/或短语可以被标记为与所定义的规则相关联的类型的槽。例如,如果文本包括单词“tomorrow”,并且定义日期槽的规则包括“tomorrow”,则该文本中的单词“tomorrow”可以被标记为日期类型槽。

可以执行解析算法以便对该意图语法模块122和槽语法模块124进行搜索和/或解析以找到所定义的规则之间的匹配。例如,如果该文本中的单词“tomorrow”基于定义的用于日期槽的规则(例如,DateItem规则)被标记为日期值,并且DateItem规则是定义的用于日历事件的规则(例如,CalEvent规则)的一部分,则该解析算法可以搜索CalEvent规则以寻找DateItem规则。在这一示例中,如果CalEvent规则被定义为包括DateItem规则,则单词“tomorrow”(由于在DateItem规则中找到了匹配)可以被标记为潜在的日历事件。因此,当在该文本中标识日期和/或时间槽时,可能检测到潜在日历事件。在上述示例中,描述了定义的用于日期槽的规则。能够了解的是,意图语法模块122和槽语法模块124可以包括,但并不仅限于定义的与时间、日期/时间、位置、主题、持续时间和可用性查询槽相关联的规则。因此,可以执行解析算法以便搜索和/或解析该意图语法模块122和槽语法模块124以识别该文本中除了日期槽之外的时间、日期/时间、位置、主题、持续时间和可用性查询槽。进而,在创建提出的日历事件时,与识别出的槽相关联的除了日期和/或时间值(例如,主题和位置值)之外的一个或多个值可以被自动填充到提出的日历事件中,下面将更详细地描述。

如上所讨论的,意图语法模块122可以基于核心语法模块126构造。因此,该意图语法模块122可以包括定义的用于识别对已识别出的日历事件的否定和用于识别过去的日历事件的规则。在一个示例中,在一些情况中,即使当日期和/或时间槽已经被识别以指示该文本中的提出的日历事件,该意图语法模块122还是可以定义指示对该日历事件的否定的规则。例如,在文本“I can’t go to the movies on Saturday”中,“Saturday”可以被识别为日期槽,“movies”可以被识别为主题槽。因此,这一文本可以被识别为潜在的日历事件。但是,定义的用于对日历事件的否定的规则可以包括单词“can’t”。在这个示例中,定义的用于对日历事件的否定的规则可以优先于指示该文本包括日历事件的规则,并且该文本可以被标记为“其它”。

在另一个示例中,意图语法模块122可以包括定义的用于识别过去的日历事件的规则。例如,在文本“The movie on Saturday was fun”中,“Saturday”可以被识别为日期槽,“movie”可以被识别为主题槽。因此,这一文本可以被识别为潜在的日历事件。但是,定义的用于过去的日历事件的规则可以包括单词“was”。如上所讨论的,当解析算法在文本中既识别出日历事件又识别出对日历事件的否定和/或过去的日历事件时,该解析算法会将所述否定或过去的日历事件规则优先于所述日历事件规则,以使得该文本最终不会被标记为日历事件和/或可以被标记为“其它”。

在又另一个示例中,意图语法模块122可以包括定义的用于围绕/支持有歧义的单词、词语和短语的上下文的规则。例如,字符串“sat”和“sun”可能对应于“Saturday”和“Sunday”的缩写(如在短语“on sat eve or sun morn”)中,或者可能是单词“sat”和“sun”的示例(如在短语“sat in the sun”)中。在这一示例中,意图语法模块122可以只在存在其它支持上下文(例如,该示例中的“eve”或“morn”)时将“sat”和“sun”识别为有效日期槽。因此,文本“sat”和“sun”是意图语法模块122中定义的规则的一部分,除非有表明其是日期的支持上下文,否则假设其不是日期。

当意图语法模块122检测到潜在日历事件时,可以执行槽语法模块124。在实施例中,该意图语法模块122和槽语法模块124可以同时执行。在又其它实施例中,槽语法模块124可以在意图语法模块122之前执行。如上所讨论的,槽语法模块124可以基于核心语法模块126构造。例如,槽语法模块124可以定义用于在文本中标记槽类型和定位所标记的槽的规则。例如,在文本“pick up the kids from school tomorrow evening”中,解析算法可以识别并标记“tomorrow evening”为日期/时间槽类型,“school”为位置槽类型。以此来看,槽语法模块124可以有定义的用于在表达“pick up the kids from school tomorrow evening”中确定“tomorrow evening”和“school”的位置的规则。例如,该表达“pick up the kids from school tomorrow evening”跨越45个字符。解析算法可以确定单词“school”开始于第22字符并跨越6个字符,以及短语“tomorrow evening”开始于第29字符并跨越16个字符。

确定一个或多个识别并标记的槽类型在文本中的位置可以有助于找到文本中的例外,其对原本识别出的涉及日历事件的槽类型进行否定,下面将更详细讨论。确定涉及该日历事件的一个或多个识别出的并且标记的槽类型在文本中的位置,有助于在创建所提出的日历事件时自动填充涉及日历事件的一个或多个值,下面将更详细地讨论。另外,确定涉及该日历事件的一个或多个识别出的并且标记的槽类型的位置可以指示在哪里呈现与所述一个或多个识别出的槽相关联的视觉指示符,下面也将更详细地描述。

在另一个示例中,槽语法模块124可以定义用于将一个或多个识别出的值转换为标准化规范形式的规则。例如,日期/时间表达“fri@7p”可以被转换为“Friday 7:00PM”。在另一个示例中,日期/时间表达“3/7at 7pm”可以被转换为“March 7th 7:00PM”。因此,解析算法可以搜索槽语法模块124以便将时间和日期表达转换为标准化表层形式,以准备规范化为正式的日期/时间表达。在一些实施例中,所述最终规范化形式可以遵循ISO 8601日期和时间规范,虽然并不是必须的。

在又另一个示例中,槽语法模块124可以定义用于围绕/支持识别出的指示日历事件的槽类型的上下文的规则,该上下文否定指示日历事件的所述槽类型。这些规则可以被定义为使得,如果一个槽跨越比另一个槽更多的字符(以及,例如槽重叠)时,所述跨越更多字符的槽将会被标记为其对应的槽类型。例如,在文本“meeting on the first floor”中,解析语法可以基于意图语法模块122中定义的指示“on the first”是日期类型的规则将“on the first”识别为日期槽。但是,槽语法模块124可以包括定义的用于否定这一发现的环境/支持上下文的规则,诸如将“on the first floor”识别为位置类型的槽。因此,在这一示例中,槽语法模块124将“on the first floor”标记为位置槽,而不是将“on the first”标记为日期槽,因为“on the first floor”比“on the first”跨越更多字符。以此来看,该规则可以为先前被识别为日期的短语“on the first”提供环境/支持上下文,以使得确定“on the first”实际上不是日期。

如上所讨论的,日历事件创建模块105可以包括融合模块130。该融合模块130可以被配置为将来自意图语法模块122和槽语法模块124二者的结果融合为单个输出结构。该结果可以包括,在意图语法模块122和槽语法模块124二者都从接收并处理来自自然语言表达的文本之后从所述意图语法模块122和槽语法模块124的每一个识别出的和/或标记的槽类型。因此,所述结果位于要由后处理器模块140处理的一个地方(例如,单个结构中)。

在融合模块130将来自意图语法模块122和槽语法模块124二者的结果融合到单个输出结构之后,可以执行后处理器模块140。该后处理器模块140配置为执行创建要存储在的用户的日历中的实际日历事件所需要的额外处理。该后处理器模块140用于创建实际的日历事件并确定创建该实际的日历事件可能需要的任何剩余信息。该后处理器模块140用于解决冲突和/或预期或推断什么潜在数据应该用于确定剩余信息。例如,如果已经在来自意图语法模块122和槽语法模块124的结果中识别出的日期和时间槽,则后处理器模块140将会评估所述识别出的槽以便创建一个连贯的日历事件。在一个示例中,后处理器模块140可以配置为将来自意图语法模块122和槽语法模块124二者的结果进行比较以确定该意图语法模块122识别出的一个或多个槽和该槽语法模块124识别出的一个或多个槽是否匹配。例如,在短语“meeting on the first floor”中,如果意图语法模块122将“on the first”识别为日期槽,而槽语法模块124将“on the first floor”识别为位置槽,则后处理器模块140将确定由该意图语法模块122识别出的槽不匹配由槽语法模块124识别出的槽。因此,后处理模块140将不会从短语“meeting on the first floor”检测出日历事件。以此来看,达到了依赖于上下文的结果。

在另一个示例中,在文本中识别出多于一个相同类型的槽时,后处理器模块140可以将一个或多个所述相同类型的识别出的槽链接起来。例如,在表达“Let’s meet tomorrow in Waltham for breakfast at 7 at McDonalds”中,后处理器模块140可以基于该文本中的完整上下文将“Waltham”和“McDonalds”链接到单独一个位置槽中,并将“tomorrow”和“7”链接为日期/时间槽。在一个示例中,后处理器模块140可以包括定义的简单地将两个识别出的位置槽合并到一个位置槽中的规则。在另一个示例中,该后处理器模块140可以具有定义何时将一个日历事件中发现的两个位置链接起来的规则集合。在这一示例中,所述规则可以被定义为使得如果在文本中由单词“in”在第一位置之前和由单词“at”在第二位置之前以及只识别出一个日历事件,则该第一和第二位置应该被链接起来。以此来看,当创建了日历事件时,该位置槽可以被自动填充以便包括Waltham中的McDonald’s,并且日期和时间槽可以被相应地自动填充。

在又另一个后处理的示例中,后处理器模块140可以基于从该文本导出的上下文推断一个或多个识别出的槽中的信息。该后处理器模块140可以包括具有一批用于推断信息的公共单词、词语和/或短语的规则集合。使用如上所述的示例,“breakfast at 7”不指示时间值是AM还是PM。因此,识别出的时间槽“7”可能需要推断信息以便将“7”识别为“7AM”或“7PM”。关于“7”是推断为AM还是PM的推断可以使用后处理器模块140中的规则集合来进行。在一个示例中,所述规则集合可以包括时间信息。因此,当需要作出AM/PM判决时,可以测试与时间信息相关联的规则集合。在一个示例中,规则可以是“如果主题包含“breakfast”则时间是AM”。在这一示例中,推断:7意味着7AM。如果在作出AM/PM判决时没有找到规则,则后处理器模块140可以基于默认条件挑选AM/PM。例如,8:00-11:59可以默认定义为AM,而12-7:59默认定义为PM。在另一个示例中,在文本“let’s meet after work at 8 tomorrow”中,可以推断8意味着8PM而非8AM,因为短语“after work”基于该后处理器模块140中收集的时间信息规则指示其是8PM。

在后处理的又另一个示例中,该后处理器模块140可以配置为将识别出的日期槽转发在具有不同时间值的多个日历事件上。例如,在文本“Saturday the movie starts at 8pm so let’s get dinner at 6pm”中,可以推断日期槽“Saturday”指的是“movie”日历事件和“dinner”日历事件二者。如上所述,关于基于上下文的识别出的槽中的推断信息,该后处理器模块140可以包括用于将识别出的日期槽转发在多个具有不同时间槽的日历事件的规则集合上。

图2示出了包括视觉指示符210和提出的日历事件220的用户接口160。该视觉指示符210可以与至少一个识别出的日历事件相关联。在已经完成任何要求的后处理之后,与所述至少一个识别出的日历事件相关联的视觉指示符210可以被显示在用户接口160上。在一个实施例中,该视觉指示符210可以与日期和/或时间槽相关联。如图2中所示,用户接口160上显示的文本对“6:30 tomorrow night”加了下划线。因此,该视觉指示符210与该文本中识别出的日期/时间槽相关联。在这一示例中,该视觉指示符210通过对相关联的值加下划线来示出。该视觉指示符210可以是适合于指示可以从该文本创建一个日历事件的任何视觉指示符。例如,该视觉指示符210可以包括实线下划线、高亮、虚线下划线、加粗、斜体等等。在一个实施例中,该视觉指示符210可以包括超链接。以此来看,用户可以通过,例如在该视觉指示符210上轻敲和/或点击而打开该超链接。

当用户调用该视觉指示符210时,可以显示具有来自文本中识别出的一个或多个识别出的槽的自动填充数据的提出的日历事件220。在图2中示出的示例中,所述一个或多个识别出的槽包括主题、位置、日期和时间。主题是“meet for drinks and food”,位置是“The Landing in Renton”,日期是“Friday,July 26,2014”,而时间是“6:30PM”。用户可以调用保存按钮225或取消按钮230。如果保存按钮225被调用,则提出的日历事件被添加到用户的日历240。

图3示出了包括对提出的日历事件220的选项330进行编辑的用户接口160。该用户接口160包括如上参考图2所讨论的视觉指示符210。因此,如上所讨论的,当用户调用视觉指示符210时,可以显示具有来自该文本中识别出的一个或多个识别出的槽的自动填充数据的提出的日历事件220。用户被显示用于编辑提出的日历事件220中的主题字段的选项330。因此,用户可以选择选项330以便向该日历事件220中的主题字段编辑/添加主题槽。用户可以使用用户接口160上的小键盘345输入文本340,这样主题就被添加到提出的日历事件220上。

如上参考图2所描述的,时间、日期、主题和位置槽被自动填充并显示在提出的日历事件220中。以此来看,在自然语言表达的文本中识别出了时间、日期、主题和位置。相反,在图3中,时间、日期、主题和位置槽被自动填充并显示在提出的日历事件220中,但是主题字段没有自动填充的值。以此来看,在自然语言表达的文本中识别出了时间、日期和位置。如图2和3中所示,图2中的自然语言表达包括主题槽“meeting for drinks and food”,而图3中的自然语言表达不包括主题槽。因此,在图3中,用户具有在提出的日历事件220中添加/编辑主题字段的选项330。应该了解的是,即使在图2中示出的场景中,用户也可以编辑提出的日历事件220中的一个或多个字段。

图4示出根据本公开内容的一个或多个实施例的创建日历事件的方法。方法400开始于操作402,在此接收到自然语言表达。例如,该自然语言表达可以由提取模块从任何适合于辅助设备之间的通信的应用(诸如电子邮件应用、文本消息应用(例如,SMS、MMS)、即时消息应用(例如,Windows Messenger)等等)接收到的。所述适合于辅助设备之间的通信的应用可以实现在能够支持这些应用的任何计算设备上,诸如移动电话、智能手机、可穿戴计算机(诸如智能手表)、平板个人计算机、膝上型计算机等等。在一个示例中,该自然语言表达可以包括文本的单词、词语和短语中的至少一个。

当在提取模块处接收到自然语言表达时,流程继续进行到操作404,在此使用第一语法模块和第二语法模块识别出该自然语言表达的文本中指示日历事件的一个或多个槽。该文本中的一个或多个槽可以包括,例如日期、时间、日期/时间、主题、位置、持续时间和可用性查询中的至少一个。

当使用第一语法模块和第二语法模块识别出该自然语言表达的文本中的指示日历事件的一个或多个槽时,流程继续进行到操作406,在此由第一语法模块识别出的指示一个日历事件的一个或多个槽与该第二语法模块识别出的指示一个日历事件的一个或多个槽进行比较,以确定由该第一语法模块识别出的所述一个或多个槽是否与由该第二语法模块识别出的一个或多个槽相匹配。例如,如果由第一语法模块识别出的一个或多个槽包括日期、时间和位置类型的槽,而由第二语法模块识别出的一个或多个槽包括日期、时间和位置类型的槽,将检测到的从该第一语法模块识别出的槽与检测到的从第二语法模块识别出的槽进行比较,以确定这两个槽的集合是否构成一个日历事件的有效匹配。

在操作408处,确定由第一语法模块识别出的一个或多个槽是否匹配由第二语法模块识别出的一个或多个槽。如果由所述第一语法模块识别出的一个或多个槽与由所述第二语法模块识别出的一个或多个槽不匹配,则流程继续进行回到操作406,在此可以比较更多的槽。如果由所述第一语法模块识别出的一个或多个槽与由所述第二语法模块识别出的一个或多个槽相匹配,流程继续进行到操作410,在此使用所述第一语法模块和第二语法模块识别出的一个或多个槽创建至少一个日历事件。例如,如果匹配的所述一个或多个槽是日期、时间、位置和主题槽,则通过将具有这些槽的值自动填充到该日历事件中来创建一个日历事件。

图5示出了根据本公开内容的一个或多个实施例用于从自然语言表达的文本检测至少一个日历事件的方法500。在一个实施例中,方法500开始于操作502,其中,执行解析算法。该解析算法可以是任何适合于对事物集合(例如,规则、文本等)进行搜索的算法。例如,该解析算法可以至少搜索意图语法模块和/或槽语法模块以便在该文本中识别涉及日历事件的一个或多个槽。该解析算法可以包括与搜索事物集合相关联的任何分析,诸如识别文本中涉及日历事件的一个或多个槽、标记该文本中识别出的槽的一个或多个类型、处理有歧义的文本以及确定槽位于该文本中的什么地方。

执行解析算法时,可以执行多个操作。在操作504处,针对该自然语言表达中的单词、词语和短语进行搜索和/或解析以寻找意图语法模块和槽语法模块的至少一个。在一个示例中,该意图语法模块可以在槽语法模块之前被搜索以识别涉及日历事件的一个或多个槽。如果没有识别到涉及日历事件的槽,则跳过该意图语法模块。如果识别出一个或多个涉及日历事件的槽,则搜索和/或解析该槽语法模块以识别所述一个或多个识别出的槽的位置、标记一个或多个识别出的槽,并且基于围绕涉及日历事件的所述一个或多个识别出的槽的上下文将所述一个或多个识别出的槽识别为无效的。

在操作506处,识别该自然语言表达的文本中指示日历事件的一个或多个槽。所述该文本中涉及日历事件的一个或多个槽可以至少部分基于从该文本导出的上下文而被识别出。可以通过至少使用该提取模块的意图语法模块和槽语法模块从该文本获取该上下文。在一个示例中,该意图语法模块和槽语法模块可以被构造以描述对日历事件感兴趣的槽(例如,时间、日期、时间/日期、位置、主题、持续时间和可用性查询)。例如,该意图语法模块可以包括定义的用于围绕/支持有歧义的单词、词语和短语的上下文的规则。在另一个示例中,该槽语法模块可以包括定义的用于围绕/支持指示日历事件的槽的上下文的规则,该上下文否定指示日历事件的所述槽。

方法500继续进行到操作508,其中,将所定义的规则中找到/识别出的该自然语言表达中的每个单词、词语和短语标记为与找到所述单词、词语或短语的所定义的规则相关联的槽类型。例如,如果自然语言表达包括单词“tomorrow”,并且定义日期槽的规则包括“tomorrow”,则该自然语言表达中的单词“tomorrow”可以被标记为日期槽。

在操作510处,对原本有歧义的单词、词语和短语进行消歧。例如,使用如上所描述的示例“on the first floor”,该短语“on the first”是规则的一部分,除非有具体的环境上下文存在以指示其不是日期,否则假设其为日期(例如,由意图语法模块)。在这一示例中,该槽语法模块包括用于会否定该短语是日期短语的上下文的规则。在第二示例中,使用如上所描述的示例“on sat eve or sun morn”,字符串“sat”和“sun”是定义的除非有支持上下文指示其是日期否则假设其不是日期的规则(例如,在意图语法模块中定义的指示其是日期的规则)的一部分。在这一示例中,槽语法模块可以具有定义的指示“sat”和“sun”可能是日期的规则,但是关于“sat”和“sun”是否是日期的判决可以由该意图语法模块中定义的要求该支持上下文的某些类型以确认其是日期的规则来确定。

图6示出了根据本公开内容的一个或多个实施例用于处理识别为提出的日历事件的自然语言表达的文本的方法600。在一个实施例中,方法600开始于操作602处,其中,基于从该自然语言表达的文本获取的上下文推断所述一个或多个识别出的槽中的信息。例如,该后处理器模块可以包括具有一批用于确定丢失信息的常见单词、词语和/或短语的规则集合。在一个示例中,“breakfast at 7”没有指示该时间值是AM还是PM。因此,所识别出的时间槽“7”有丢失的信息。可以使用后处理器模块中的规则集合做出关于7指的是AM还是PM的确定。在一个示例中,该规则集合可以包括时间信息。因此,当需要做出AM/PM判决时,可以测试与时间信息相关联的规则集合。在一个示例中,规则可以是“如果主题包含‘breakfast’则该时间是AM”。在这一示例中,确定7意味着7AM。

接下来,在操作604处,当在该自然语言表达的文本中识别出多于一个相同类型的槽时,将一个或多个识别出的相同类型的槽链接起来。例如,在表达“Let’s meet tomorrow in Waltham for breakfast at 7 at McDonalds”中,后处理器140可以基于该文本的完整上下文,将“Waltham”和“McDonalds”链接到单独一个位置槽中,并将“tomorrow”和“7”链接为日期/时间槽。例如,后处理器模块140可以有定义何时将一个日历事件中发现的两个位置链接起来的规则集合。在这一示例中,该规则可以被定义为使得如果由单词“in”在第一位置之前,由单词“at”在第二位置之前,并且在该文本中只识别出一个日历事件,则该第一和第二位置应该被链接起来。以此来看,当创建日历事件时,该位置槽可以被自动填充为在Waltham中包括McDonald’s,并且日期和时间槽可以相应地自动填充。

在操作606处,识别出的日期槽被转发(forward)在多个具有不同时间槽的日历事件上。例如,在文本“Saturday the movie starts at 8pm so let’s get dinner at 6pm”中,可以推断日期槽“Saturday”指的是“movie”日历事件和“dinner”日历事件二者。该后处理器模块可以包括定义的用于将识别出的日期槽转发在多个具有不同时间槽的日历事件上的规则的集合。

图7-10和相关联的描述提供对可以在其中实践本公开内容的实施例的不同操作环境的讨论。但是,关于图7-10示出和讨论的设备和系统是为了示例和解释说明的目的,而非限制可以用于实践本申请中描述的本公开内容的实施例的大量计算设备配置。

图7是示出了可以用其实践本公开内容的实施例的计算设备700的物理组件(例如,硬件)的框图。下面描述的计算设备组件可以有用于通信应用713(例如,客户端的)的计算机可执行指令,和/或用于日历事件创建模块711(例如,客户端的)的计算机可执行指令,它们可以被执行以使用本申请中公开的方法400到600。在基本配置中,计算设备700可以包括至少一个处理单元702和系统存储器704。根据计算设备的配置和类型,该系统存储器704可以包括,但并不仅限于易失性存储器(例如,随机访问存储器)、非易失性存储器(例如,只读存储器)、闪存或这些存储器的任意组合。系统存储器704可以包括操作系统705和适合于运行诸如关于图1-3的创建日历事件之类的软件应用720的一个或多个程序模块706,尤其是通信应用713或日历事件创建模块711。操作系统705,例如可以适合于控制计算设备700的操作。此外,本公开内容的实施例可以结合图形库、其它操作系统或任何其它应用程序来实践,并且并不仅限于任何特定应用或系统。这一基本配置在图7中由虚线7-8中的那些组件示出。计算设备700可以有另外的特征或功能。例如,计算设备700还可以包括另外的数据存储设备(可移动的和/或不可移动的),诸如磁盘、光盘或磁带。这一另外的存储在图7中由可移动存储设备709和不可移动存储设备710示出。

如上所声明的,若干程序模块和数据文件可以存储在系统存储器704中。在处理单元702上执行时,该程序模块706(例如,日历事件创建模块711或通信应用713)可以执行处理,包括但并不仅限于本申请中所描述的实施例。可以根据本公开内容的实施例使用的其它程序模块,尤其是要生成屏幕内容,可以包括电子邮件和联系人应用、单词处理应用、电子表格应用、数据库应用、幻灯片展示应用、绘图、消息应用和/或计算机辅助应用程序等。

此外,本公开内容的实施例可以在包括分立电子元件、包含逻辑门的包装好的或集成的电子芯片、使用微处理器的电路、或包含电子元件或微处理器的单个芯片的电路中实践。例如,本公开内容的实施例可以通过片载系统(SOC)实践,其中,图7中示出的每个或很多组件可以集成到单个集成电路上。这一SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能体,它们全部集成到(或“烧制到”)该芯片基板上作为单个集成电路。当通过SOC工作时,本申请中描述的关于客户端切换协议的能力的功能体可以通过与计算设备600的其它组件一起集成到单个集成电路(芯片)上的专用逻辑工作。本公开内容的实施例还可以使用能够执行诸如与、或和非之类的逻辑操作的其它技术来实践,包括但并不仅限于机械的、光学的、流体的和量子的技术。另外,本公开内容的实施例可以在通用计算机或任何其它电路或系统中实践。

计算设备700还可以有一个或多个输入设备712,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滚动输入设备等等。还可以包括诸如显示器、扬声器、打印机等输出设备714。上面提到的设备是示例,也可以使用其它设备。计算设备700可以包括允许与其它计算设备718通信的一个或多个通信连接716。合适的通信连接716的示例包括,但并不仅限于RF发射机、接收机和/或收发机电路、通用串行总线(USB)、并行和/或串行端口。

本申请中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括实现在用于诸如计算机可读指令、数据结构或程序模块之类的信息存储的任何方法或技术中的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器704、可移动存储设备709和不可移动存储设备710都是计算机存储介质示例(例如,内存存储)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储技术、CD-ROM、数字化视频盘(DVD)或其它光存储器、磁带盒、磁带、磁盘存储或其它磁存储设备,或者任何其它能够用于存储信息并且可由计算设备700访问的制造品。任何这种计算机存储介质可以是计算设备700的一部分。计算机存储介质不包括载波或其它传播的或调制的数据信号。

通信介质可以具体由计算机可读指令、数据结构、程序模块或调制的数据信号(诸如载波或其它传输机制)中的其它数据具体实现,并且包括任何信息交付介质。术语“调制的数据信号”可以描述具有一个或多个特征集合的信号或者以这种方式变化以便将信息编码到该信号中的信号。举例来讲,但并不非限制性的,通信介质可以包括诸如有线网络或在直接有线连接之类的有线介质,以及诸如声音的、射频(RF)、红外之类的无线介质和其它无线介质。

图8A和8B示出了可以用其实践本公开内容的实施例的移动计算设备800,例如移动电话、智能手机、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等等。在一些实施例中,客户端可以是移动计算设备。参考图8A,示出了用于实现实施例的移动计算设备800的一个实施例。在基础配置中,该移动计算设备800是具有输入元件和输出元件二者的手持计算机。该移动计算设备800通常包括显示器805和一个或多个输入按钮810,它们允许用户向移动计算设备800中输入信息。该移动计算设备800的显示器805还可以用作输入设备(例如,触摸屏显示器)。如果包括的话,可选的侧面输入元件815也允许用户输入。该侧面输入元件815可以是旋转开关、按钮或任何其它类型的手动输入元件。在替代实施例中,移动计算设备800可以合并更多的或更少的输入元件。例如,显示器805在一些实施例中可以不是触摸屏。在又另一个替代实施例中,该移动计算设备800是便携式电话系统,诸如蜂窝电话。该移动计算设备800还可以包括可选的小键盘835。可选的小键盘835可以是物理小键盘或在该触摸屏显示器上生成的“软”小键盘。在各个实施例中,输出元件包括用于显示图形用户接口(GUI)的显示器805、视觉指示符820(例如,发光二极管)和/或音频传感器825(例如,扬声器)。在一些实施例中,移动计算设备800合并振动传感器以便为用户提供触觉反馈。在又另一个实施例中,移动计算设备800合并输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)用于向外部设备发送信号或从其接收信号。

图8B是示出了移动计算设备的一个实施例的架构的框图。也就是,该移动计算设备800能够合并系统(例如,架构)802以便实现一些实施例。在一个实施例中,系统802实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能手机”。在一些实施例中,系统802被集成为计算设备,诸如集成式个人数字助理(PDA)和无线电话。

一个或多个应用程序866可以被加载到存储器862中并且运行在操作系统864上或与之相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息程序等等。系统802还包括存储器862中的非易失性存储设备区域868。该非易失性存储设备区域868可以用于存储如果系统802被关闭也不应该丢失的永久性信息。应用程序866可以使用并将信息存储在非易失性存储设备区域868中,诸如电子邮件应用使用的电子邮件或其它消息等等。同步应用(未示出)也驻留在系统802上,并且被编程为与主机上驻留的相应同步应用交互以保持该非易失性存储设备区域868中存储的信息与主机上存储的相应信息同步。应该了解的是,其他应用可以被加载到存储器862中并且运行在移动计算设备800上,包括如本申请中所描述的创建日历事件的指令(例如,和/或可选的日历事件创建模块711)。

系统802有电源870,其可以实现为一个或多个电池。电源870还可以包括外部电源,诸如AC适配器或补充电池或对其重新充电的供电底座。

系统802还可以包括无线电872,其执行发送和接收无线电频率通信的功能。无线电872有助于系统802和“外部世界”之间通过通信载波或服务供应商的无线连接。向和从无线电872的传输是在操作系统864的控制下进行的。换句话说,无线电872接收到的通信可以通过操作系统864被散播到应用程序866,反之亦然。

视觉指示符820可以用于提供视觉通知,和/或音频接口874可以用于通过音频传感器825提供可听见的通知。在示出的实施例中,视觉指示符820是发光二极管(LED),音频传感器825是扬声器。这些设备可以直接地耦接到电源870,这样当被激活时,它们在通知机制所指定的持续时间内保持开启,即使该处理器860和其它组件可能为了节省电量而关闭。该LED可以被编程为无限期地保持开启直到用户采取动作指示该设备的开启状态。音频接口874用于向用户提供音频信号和从其接收音频信号。例如,除了耦接到音频传感器825,该音频接口874还可以耦接到麦克风以便接收音频输入,以便辅助电话交谈。根据本公开内容的实施例,麦克风还可以用作音频传感器以辅助通知的控制,如下面将描述的。系统802还可以包括视频接口876,其能够使板载摄像头830的操作生效以便记录静态图片、视频流等等。

实现系统802的移动计算设备800可以有另外的特征或功能例如,该移动计算设备800还可以包括另外的数据存储设备(可移动的和/或不可移动的),诸如磁盘、光盘或磁带。这些另外的存储器在图8B中由非易失性存储器区域868示出。

如上所述,移动计算设备800生成或捕捉到的并且通过系统802存储的数据/信息可以本地地存储在移动计算设备800上,或者所述数据可以存储在可由该设备通过无线电872或通过该移动计算设备800和与该移动移动计算设备800相关联的不同计算设备(例如,分布式计算网络(诸如互联网)中的服务器计算机)之间的有线连接访问的任意数量的存储介质上。应该了解的是,这些数据/信息可以由移动计算设备800通过无线电872或通过分布式计算网络访问。同样,这些数据/信息可以根据公知的数据/信息转移和存储单元(包括电子邮件和协作式数据/信息共享系统)容易地在用于存储和使用的计算设备之间转移。

图9示出了用于处理在计算系统处从远程源接收到的数据的系统的架构的一个实施例,该远程源可以是诸如如上所述的计算设备904、平板电脑906或移动设备908。服务去设备902处呈现的内容可以被存储在不同通信信道或其它存储类型中。例如,各种文件可以使用目录服务922、web门户924、邮箱服务926、即时消息存贮928或社交网站930来存储。通信应用913可以由与服务器902通信的客户端使用。该服务器902可以通过网络915向和从诸如个人计算机904、平板计算设备906和/或移动计算设备908(例如,智能手机)之类的客户端计算设备提供数据。举例来讲,如上关于图1-3所描述的计算机系统可以嵌入在个人计算机904、平板计算设备906和/或移动计算设备908(例如,智能手机)中。除了接收可用于图形原始系统处的预处理或用于接收计算系统处的后处理的图形数据之外,计算设备的任何这些实施例都可以从存贮916获取内容。

图10示出了可以执行本申请中公开的一个或多个实施例的示例性平板计算设备1000。另外,本申请中所描述的实施例和功能可以在分布式系统(例如,基于云的计算系统)上工作,其中,应用功能、存储器、数据存储和取回以及各种处理功能可以从分布式计算网络(诸如互联网或企业内网)上互相远程工作。各种类型的用户接口和信息可以通过板载计算设备显示器或者通过与一个或多个计算设备相关联的远程显示单元显示。例如,各种类型的用户接口和信息可以显示在各种类型用户接口和信息被投射在的墙面上并与之交互。与可以用其实践本发明的实施例的大量计算系统交互包括,键盘输入、触摸屏输入、语音或其它音频输入、相关联的计算设备配备有用于捕捉并解释用户手势以控制该计算设备的功能的检测功能体(例如,摄像头)时的手势输入等等。

本公开内容的实施例是,例如如上参考根据本公开内容的实施例的方法、系统和计算机程序产品的框图和/或操作示例描述的。方框中表示的功能/动作可以不按照任何流程图中示出的顺序发生。例如,根据涉及的功能/动作,连续示出的两个方框可以实际上基本同时执行或者所述方框有时可以按照相反的顺序执行。

本申请中提供的一个或多个实施例的描述和举例说明并不意在将本公开内容的范围限制或约束为以任何方式声明的那样。本申请中提供的实施例、示例和细节被认为足够传达所有权并且使其他人能够制造和使用所声明公开内容的最佳模式。所声明的公开内容不应该解释为限制于这一申请中提供的任何实施例、示例或细节。无论是组合起来还是单独地示出和描述的,各个特征(结构上的和方法上的二者)意在被选择性地包括或省略以产生具有特定特征集合的实施例。已经提供了对本申请的描述和举例说明,本领域的技术人员可以想象落在这一申请书中实现的一般发明概念的广泛方面的精神范围内的变形、修改和替代实施例,它们并不脱离所声明公开内容的广泛范围。

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