自适应任务框架的制作方法

文档序号:6569566阅读:209来源:国知局

专利名称::自适应任务框架的制作方法自适应任务框架祖旦疼乐人类语言是丰富且复杂的,包括具有复杂语法和上下文意义的巨大词汇表。即使以非常有限的方式对人类语言的机器解释也是极其复杂的任务,并且始终是大量研究的主题。向用户提供将其期望传达给自动化系统而无需用户学习机器专用语言或语法的能力将降低学习成本并极大地改善系统可用性。然而,当自动化系统和机器无法正确地解释用户的输入,从而导致非预期的结果时,用户迅速变得沮丧。自然语言输入对于各种各样的应用程序,包括实际上人类想要与其交互的每一软件应用程序而言可能是有用的。通常,在自然语言处理期间,自然语言输入被分成句元(token)并被映射到由软件应用程序提供的一个或多个动作。每一应用程序可具有一组独特的动作。因此,对软件开发者而言,起草解释自然语言输入并将该输入映射到对每一应用程序适当的动作既是耗时又是重复性的。存在对向软件开发者提供用于向软件应用程序添加自然语言接口的标准化框架的方法或系统的需求。另外,存在对基于用户输入和动作来学习或自适应的自然语言接口的需求。概述以下提出了简要概述以便提供对所要求保护的主题的某些方面的基本理解。本概述并不是广泛综述。它并不旨在确定所要求保护的主题的关键/重要要素,也不旨在勾画其范围。其唯一的目的是以简化的形式提出某些概念,作为以后提出的更详细描述的序言。简言之,所提供的主题涉及用于支持将自然语言输入映射到任务的自然语言处理的系统和方法。该系统包括一用于定义任务、相关联的数据和解释任务数据的方式的任务接口。此外,该系统提供了一种管理任务以便于自然语言处理的框架。该任务接口和框架可用于向第三方应用程序提供自然语言处理能力。另外,该任务框架可基于从第三方应用程序接收到的反馈来学习或训练。为实现上述和相关目的,此处结合以下描述和附图来描述所要求保护的主题的某些说明性方面。这些方面指示了可实施本主题的各种方式,所有这些都旨在落入所要求保护的主题的范围之内。当结合附图考虑时,从以下详细描述中,其它优点和新颖特征将变得显而易见。附图简述图1示出了根据所公开的主题的一方面的利用自然语言处理器的应用程序。图2示出了根据所公开的主题的一方面的任务组件。图3示出了根据所公开的主题的一方面的槽组件。图4示出了根据所公开的主题的一方面的任务平台。图5是根据所公开的主题的用于初始化任务框架的方法的图示。图6是根据所公开的主题的用于生成任务的方法的图示。图7是根据所公开的主题的用于处理自然语言输入的方法的图示。图8是根据所公开的主题的用于基于用户输入来选择适当动作的方法的图示。图9是根据所公开的主题的用于任务执行的方法的图示。图10是根据所公开的主题的用于基于用户反馈来改进任务处理的方法的图示。图11是示出一合适操作环境的示意性框图。图12是一示例计算环境的示意性框图。详细描述现在参考附图来描述本发明的各方面,在全部附图中,相同的标号表示相同或相应的要素。然而,应当理解,附图和与其有关的详细描述并不旨在将所要求保护的主题限于所公开的具体形式。相反,本发明要覆盖落入所要求保护的主题的精神和范围之内的所有修改、等效技术方案和替换方案。如此处所使用的,术语"组件"、"系统"等指的是计算机相关的实体,无论其是硬件、硬件和软件的组合、软件还是执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在计算机上的应用程序和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程中,并且组件可位于一个计算机上和/或分布在两个或多个计算机之间。此处使用的词语"示例性"意味着用作示例、实例或说明。此处被描述为"示例性"的任何方面或设计不一定要被解释为相对于其它方面或设计是优选或有利的。另外,尽管所提供的示例利用了C弁和扩展标记语言(XML)编程语言,但是可使用众多替换的编程语言。此外,所公开的主题可使用标准编程和/或工程技术而被实现为系统、方法、装置或制品,这些技术产生控制计算机或基于处理器的设备实现此处所详细描述的各方面的软件、固件、硬件或其任何组合。如此处所使用的术语"制品"(或称为"计算机程序产品")旨在包含可从任何计算机可读设备、载波或介质访问的计算机程序。例如,计算机可读介质可包括但不限于,磁存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、智能卡、以及闪存设备(例如,卡、棒)。另夕卜,应当理解,载波可用于承载诸如在发送和接收电子邮件或访问诸如因特网或局域网(LAN)等网络时使用的那些计算机可读电子数据。当然,本领域的技术人员将认识到,可对此配置作出许多修改而不背离所要求保护的主题的范围或精神。一般而言,语义分析试图将自然语言输入匹配到由自动化系统提供的特定任务或动作。通常,语义处理将自然语言输入分解成称为句元(token)的字符串。自动化系统可分析这些句元以及用户上下文来确定适当的任务。用户上下文可包括指示用户的当前状态的任何信息,诸如最近的用户动作、用户的计算机上活动的任何软件应用程序、或指示用户的状态的任何其它信息。任务可需要来自自然语言输入的信息。通常,任务包括提供关于如何进行任务的信息的槽(slot)。例如,班机保留系统可包括"预定航班"任务,其中预定航班任务包括用于到达和出发城市、到达和出发日期以及旅客数的槽。这些任务槽所需的信息可从自然语言输入(例如,"我想要从波士顿到西雅图的航班,2005年5月8日出发,2005年5月25日返回,2个乘客")中检索。在另一示例中,文字处理应用程序可包括具有用于行数和列数以及线样式的槽的"创建表格"任务。这些槽可接收来自自然语言输入(例如,"插入2X4的虚线表格")的值。任务槽是用于保持可从自然语言输入中检索的数据或信息的保持物。确定从自然语言输入到适当任务槽的可能映射是一个复杂的问题,该问题可使用各种不同的数学技术来解决。常规的技术包括隐马尔可夫(Markov)模型(HMM)、最大熵/最小发散模型(MEMD)、单纯贝叶斯(NB)以及试探(即,基于规则的)方法。许多技术利用搜索或解码策略(例如,Viterbi搜索、Beam搜索、A—搜索或其它算法)来确定一组可能的解决方案中的最佳解决方案。I.系统概观图1示出了根据所公开的主题的一方面的利用任务框架组件102的应用程序100。任务框架组件102可以是向应用程序100提供用于解释自然语言输入的标准化方法的平台。任务框架组件102可向应用程序开发者提供定义该应用程序或系统能够执行的任务的标准方式。如此处所使用的,任务描述并定义了与用户相关的基本动作单元。任务框架组件102允许应用程序100定义并管理任务。该标准化简化并加速了应用程序开发。应用程序100可接收任何自然语言输入方式(例如,手写文本、图形输入板输入、语音和键入的文本)。应用程序100可处理该自然语言输入来生成供任务框架组件102处理的査询。查询可以是简单的文本字符串。任务框架组件102至少部分地基于该査询来选择一个或多个应用程序任务。任务框架组件102可向该任务提供来自査询的输入数据,并将该任务返回给应用程序以供执行。另外,任务框架组件102可被训练以提高性能。这一性能可通过在一个示例中采用反馈来调整排序算法以更好地匹配用户实际上从自然语言系统或组件中想要什么而得到增强。任务框架组件102可从应用程序100接收反馈。该反馈可包括诸如用户对该自然语言输入的解释的响应或反应等显式反馈,或诸如用户选择的动作等隐式反馈。任务框架组件102可利用任何算法来改进对自然语言输入的解释(例如,隐马尔可夫模型(HMM)、最大熵/最小发散模型(MEMD)、单纯贝叶斯(NB)、以及试探(即,基于规则的)方法)。任务框架组件102可用于各种应用程序。例如,电话语音服务器、操作或应用系统辅助、web服务(例如,班机保留、在线购物和事件票务)以及移动设备(例如,电子邮件、联系人和电话)。以下详细描述自然语言处理系统的可能实现。以下给出的示例性软件代码是用C弁编程语言来编码的。然而,该自然语言处理系统和方法不限于C弁语言。可使用任何适当的编程语言或方法来实现该自然语言处理系统。II.任务接口现在参考图2,该系统提供了一标准任务接口。该任务接口可处理系统和一个或多个应用程序之间的大多数数据交换。该任务接口可向软件开发者提供用于定义由系统执行的任务的标准化系统。图2示出了根据所公开的主题的一方面的任务组件200。该任务组件可包括关于任务的元数据。例如,任务组件200可包括标识任务的名称202(例如,用于预定航班的任务可被命名为"BookFlight(预定航班)")。任务组件200元数据还可包括可向用户显示的标题204。另外,任务组件200可包括简要地描述该任务的描述206。该描述可向用户显示以便允许用户或者选择适当的任务,或者确认已选择了适当的任务。名称、标题和描述可使用字母数字文本串来实现。任务组件200可包括实体组件210。实体组件210可包括一个或多个命名实体。如此处所使用的命名实体是已知具有特定意义的句元。该命名实体可以是任务专用的,或者可用于多个任务。任务组件可包括命名实体(NE)识别器组件212。NE识别器组件可包括能够将自然语言输入的句元或部分匹配到包括在实体组件210中的实体的一个或多个识别器。NE识别器能够识别对应于包含在实体组件210内的命名实体的句元。这些句元具有特定的任务意义。识别器可以是通用的,或者可以专用于某一类特定的句元。例如,城市识别器可包括一名称列表(例如,西雅图、波士顿)。类似地,日期识别器能够识别并解释诸如"2005年6月14日"等日期。软件开发者可在指定任务时定义特定的识别器。任务组件200还可包括关键字组件214。关键字组件214可包括一个或多个关键字。关键字可用于从一组任务中选择一个任务。例如,"BookFlight"任务关键字组件214可包括诸如"预定航班"、"航线"等关键字。关键字可由软件开发者确定,或者由任务框架自动生成。另外,任务关键字可基于自然语言输入、用户动作和/或用户反馈向关键字组件添加附加关键字。此外,关键字可被加权,使得査询中特定关键字的存在更有可能显露出特定任务。这一加权也可用于对所选的一组任务排名或排序。任务组件200还可包括指定或定义用于任务所需的信息的槽的槽组件208。槽组件208可提供用于定义由任务使用的参数的机制。例如,预定航线航班的任务可包括用于到达城市、出发城市、航班日期和时间的槽。槽组件208可包括从O到N的任何整数数量的槽。通常,来自自然语言输入的信息用于填充该槽。图3示出了根据此处所提出的主题的一方面的槽组件300。槽组件300可包括标识该槽的槽名称302。例如,以上讨论的BookFlight任务可包括名为"DesinationCity(目的地城市)"、"ArrivalCity(到达城市)"和"Date(日期)"等槽。槽组件还可包括槽类型304。槽类型304指示了槽数据的值的类型。类型可包括整数、实数、文本串和枚举类型(例如,类型"City(城市)"可包括一城市名称列表)。槽组件300还可包括注释组件306。注释组件306可包括一个或多个注释。注释是标记或指示其它句元的重要性的句元。注释组件306标识一注释句元,并使用该信息来解释自然语言输入中的其它句元。例如,句元"from(来自)"当被包含在映射到"BookFlight"任务的自然语言输入串中时指示它之后的句元有可能包含出发城市的名称。注释可出现在相关的句元前面或后面。例如,句元"departurecity(出发城市)"当被包含在映射到"BookFlight"任务的自然语言输入串内时指示它之前的句元有可能包含出发城市的名称。因此,短语"leavingfromBoston(离开波士顿)"禾卩"Bostondeparturecity(波士顿出发城市)"都可被解释为用值"Boston(波士顿)"来填充出发城市槽。出现在句元之前的注释被称为预指示符(pre-indicator),而在相关句元之后的注释被称为后指示符(post-indicator)。注释组件306可识别任务系统定义的注释以及任务专用注释。任务组件或任务接口可向软件开发者提供定义可供其应用程序使用的动作的工具。软件开发者可使用该接口来定义由其应用程序提供的任务。该工具可提供一标准接口,从而减少了软件开发周期时间。或者作为替代或者除此之外,任务组件可由任务框架自动生成。该任务框架可利用用户动作和反馈来生成任务组件或接口。另外,该任务框架可使用用户动作和/或反馈来修改或者由该框架、由应用程序、或者由软件开发者生成的任务接口。考虑以下示例性任务接口publicinterfaceITask{stringName{get;}stringTitle{get;}stringDescription{get;}IListKeywords{get;}IListSlots{get;}IListEntities{get;}IListRecognizers{get;}stringRestatement(ISemanticSolutionsemanticSolution);voidExecute(ISemanticSolutionsemanticSolution);此处,该任务接口包括Name(名称)、Title(标题)和Description(描述)属性。其每一个都被定义为串。该任务接口还包括用于Keywords(关键字)、Slots(槽)、Entities(实体)和Recognizers(识别器)的单独的列表属性。该任务接口还可包括Restatement(重述)方法和Execute(执行)方法。重述可以是允许用户以简便的格式查看任务的任务的重述。例如,对于査询"我想要到波士顿的航班",该输入查询的有效重述或解释可以是"预定到波士顿的航班"。可提供重述以帮助用户在可能的任务之间选择或确认所选任务满足用户的期望。重述可以是一简单的文本串、图像、音频输出或任何其它适当的媒介。重述功能可在任务系统而非任务本身中使用槽或任务上的注释来实现。执行方法实际上执行任务。该方法可基于用户动作来触发。任务接口可使用扩展标记语言(XML)、数据库、文本文件或任何其它适当的方式来定义。软件幵发者可定义诸如BookFlight任务等任务接口。考虑以下示例性任务接口<TaskName="BookFlight"Title-"BookFlights"Description="Findgreatdealsonvacations!"><Keywords>cheap;tickets;flights;flight;vacations</Keywords><Slots〉<SIotname="ArrivalCity"type="CITY"><PreIndicators>/o,/"fo</PreIndicators><PostIndicators>amVflf/"'/></PostIndicators></Slot><Slotname="DepartureCity"type="CITY,,><PreIndicators>//"o;w,o"'gz'"加'"g/"</PreIndicators〉<PostIndicators>f/e/aWwrec//></PostIndicators></Slot><Slotname="ArrivalTime"type="TIME,,><PreIndicators>arrivinga/</PreIndicators><PostIndicators>am'va/"we</PostIndicators></Slot><Slotname="DepartureTime"type="TIME,,><PreIndicators>/earv/wgaK/PreIndicators><PostIndicators>fife/wrt/A"e"'we</PostIndicators></Slot></Slots></Task>第一行包括任务元数据,其中包括名称、标题和描述。接着,该任务定义了可用于从一任务集合中定位该任务的关键字。该任务包括四个单独的槽,"ArrivalCity"(到达城市)、"DepartureCity"(出发城市)、"ArrivalTime"(到达时间)以及"DepartureTime"(出发时间)。这些槽中的每一个包括一个或多个注释。例如,"ArrivalCity"槽包括一预指示符列表"to,goinginto"(到,去往)和一后指示符列表"arrivalcity"(到达城市)。自然语言输入中这些注释中的任一个的存在将指示对ArrivalCity槽的值的存在。诸如"IwantaflightfromBostonwithan8:30departuretime(我想要从波士顿出发的出发时间为8:30的航班)"等包含关键字"flight(航班)"的查询应检索"BookFlight"任务。考虑以下用于创建表格,诸如可用于在文字处理文档中创建并插入新表格的另一示例性任务接口<TaskName="CreateTable"Title=',Createanewtable"Description一'Insertatableintoyourcurrentdocument"><Keywords>create,table,insert,grid</Keywords><Slots><SlotName="Rows"Type="Integer"><PreAnnotations>by</PreAnnotations><PostAnnotations>rows</PostAnnotations></Slot><SlotName-"Columns"Type="Integer"><PreAnnotations/><PostAnnotations>columns,by</PostAnnotations></Slot><SlotName="LineStyle"Type-"LineStyle"〉<PreAmiotatioiis/><PostArniotations/></Slot></Slots><Entities><EntityName="LineStyle"Base='",/></Entities><NamedEntityRecognizers><NamedEntityRecognizerName="LineStyle"><Annotations>solid,dotted,dashed</Annotations></NamedEntityRecognizer></NamedEntityRecognizers></Task>此处,定义一创建表格的任务。前两行包括任务元数据,其中包括名称、标题和描述。接着,该任务定义了可用于从一任务集合中定位该任务的关键字(例如,create(创建)、table(表格)、insert(插入)、grid(网格)。该任务包括三个单独的槽"Rows"(行)、"Columns"(列)和"LineStyle"(线样式)。Rows和Columns槽是整型的,由系统提供。LineStyle类型可由任务提供。该任务还包括实体和实体识别器。实体包括LineStyle。NamedEntityRecognizer(命名实体识别器)包括若干注释(例如,solid(实线)、dotted(点线)和dashed(虚线))。III.任务框架该系统可提供使用诸如任务接口等接口的框架来提供用于自然语言处理的标准、一致的体系结构。如图1所示,该任务框架组件从应用程序接收一个或多个查询,并将一个或多个任务传回应用程序。每一任务是自包含(self-contained)的,并负责其执行。该框架可独立于执行任务的方式。因此,该框架可用于各种应用程序(例如,语音、辅助、web服务和其它应用程序)。査询可以是来自自然语言输入的文本串,在这一情况下,查询可被句元化或被分割成单独的单词或单词组。或者,自然语言输入可在被传递给任务框架组件之前被句元化。图4示出了根据所公开的主题的一方面的任务框架或系统400。该系统可包括包含任意数量的任务的任务组件402。这些任务可使用以上详细描述的任务接口来描述。任务可由一个或多个应用程序生成,或者任务可由任务框架400自动生成。另外,任务框架400可更新或修改由应用程序生成的任务。任务组件402可以是平面文件、数据库或适用于包含用于一个或多个任务的数据的任何其它结构。任务框架400可包括任务检索组件404。任务检索组件404使用该查询来从包含在任务组件402内的任务集合中选择一个或多个任务。任务检索组件404可基于査询中的关键字来确定要从任务组件402中检索的适当任务。任务组件402中的任务集合可基于任务关键字来索引。包含在査询内的句元可用于选择一个或一组适当的任务。应用程序还可随查询一起包括附加信息。例如,应用程序可将用户上下文信息传递给框架以在选择适当任务时使用。任务检索组件404可使用各种方法来选择适当任务。任务检索组件404可基于对所选任务的用户动作和响应来训练以改善性能。另外,任务框架400可包括槽填充组件406。槽填充组件可负责提供对来自自然语言输入或査询的句元列表与任务参数的最佳匹配。通常,槽填充组件可接收一句元列表和一个或多个任务。槽填充组件可生成句元到任务的槽的一个或多个可能映射。槽填充组件可为句元到任务槽的每一可能映射生成一得分或排名。槽填充组件406可使用数学模型、算法或函数来为映射计算得分或排名。槽填充组件可利用试探函数、隐马尔可夫模型、基于单纯贝叶斯的模型、最大熵/最小发散模型(MEMD)、混合策略、线性辨别模型或其任何组合来为句元到任务的映射计算得分。槽填充组件可包括负责取自然语言输入、文化信息、句元列表、命名实体列表、任务和期望解的预定的最大数目的方法。文化信息可包括诸如由相关文化所利用的书写体系和格式等信息。命名实体向槽填充系统标识具有特定意义的句元(例如,波士顿)。槽填充组件可产生最多为最大数目的所请求语义解的列表。语义解是可由应用程序使用的句元到槽的映射的表示。另外,语义解相比原始路径数据可被用户更容易阅读,并且可向用户呈现以供验证。语义解可以或者作为简单文本或者以突出显示语义结构的图形显示来呈现给用户。分层的树结构表示可帮助用户识别自然语言输入的解释。考虑以下针对"BookFlight"任务的对査询"IwantaflightfromBostonleavingon10/23/05(我想要05/10/23从波士顿离开的航班)"的示例性语义解〈SemanticSolutionInput="IwantaflightfromBostonleavingon10/23/05"Score="3.808E-06"><SemanticConditions><SemanticConditionSlotName="Departure"SlotType="City"><SemanticValues><SemanticValueType-"City"Value="Boston7></SemanticValues></SemanticCondition><SemanticConditionSlotName="ArrivarSlotType="Date"><SemanticValues><SemanticValueType=',Date"Value="10/23/057〉</SemanticValues></SemanticCondition></SemanticConditions></SemanticSolution>此处,该语义解包括自然语言输入以及可用于对语义解排名的得分。该语义解包括departure(出发)槽和arrival(到达)槽。departure槽包含city(城市)类型值"Boston",而arrival槽包含date(曰期)类型值"10/23/05"。考虑针对"CreateTable"任务的对查询"createa2by4tablewithdashedlines(以虚线创建2X4的表格)"的另一示例性语义解<SemanticSolutionInput=',2by4dashed"Score="0.22407"><SemanticConditions><SemanticConditionSlotName="Columns"SlotType="Integer"><SemanticValues><SemanticValueType="Integer"Value="27></SemanticValues></SemanticCondition〉<SemanticConditionSlotName="Rows"SlotType="Integer"><SemanticValues><SemanticValueType="Integer"Value="47></SemanticValues></SemanticCondition><SemanticConditionSlotName="LineStyle"SlotType="LineStyle"><SemanticValues><SemanticValueType="LineStyle"Value="dashed7></SemanticValues></SemanticCondition></SemanticConditions></SemanticSolution>此处,该语义解包括columns(列)槽、rows(行)槽和LineStyle(线样式)槽。columns槽包含整数值"2",rows槽包含整数值"4",而LineStyle槽包含LineStyle类型值"dashed(虚线)"。对于没有实现任何槽的任务,该语义解将不包含语义条件元素。任务框架400还可包括日志记录组件408。任务可在任务完成之后或在任务处理期间将信息或反馈传递给任务框架。日志记录组件408储存该反馈信息。该信息可用于训练任务框架400并改进系统性能。来自任务的反馈可包括用户动作。该任务框架可包括便于反馈的定义的意向接口。考虑以下称为意向接口的示例性反馈接口publicinterfaceIIntentstringQuery{get;}IListIntentConditions{get;}stringXml{get;}stringTaskName{get;}该接口可包括来自应用程序的查询输入、任务名称以及对应于任务槽的IntentConditions(意向条件)列表。意向条件,或任务槽可如下实现publicinterfaceIIntentConditionstringSlotName{get;}stringSlotType{get;}stringSlotValue{get;}指定槽的接口可包括槽的名称、槽的类型(例如,整型、串或枚举类型)以及用于槽的值。意向接口可包括足以训练任务检索组件404和槽填充组件406的信息。该接口提供了供应用程序和任务用于将反馈传递给任务框架的简单机制。诸如"and(和)"或"or(或)"等连接词以及诸如"lessthan(少于)"或"not(否)"等修饰词出于使意向接口为应用程序开发者维持简单性的目的可被忽略,然而可以理解,这些连接词可被加回到接口中而不背离该接口的预期使用。另外,任务框架或槽填充组件可包括提供识别对任务系统一般具有特殊意义的句元的能力的一个或多个GlobalRecognizers(全局识别器)。例如,句元"Boston"作为马萨诸塞州的波士顿市具有特殊意义。GlobalRecognizers属性提供了一组识别器组件,这些组件标识特殊句元,使得它们可在整个系统中并在多个任务上可用。例如,可以有利用"city"、"date"或"number"实体的若干任务。实体是用于提供类型信息的机制。例如,"city"实体包括一组注释(例如,"city"、"place(地点)"和"town(城镇)")。句元列表内注释的出现指示"city"实体的可能性。GlobalRecognizers允许这些实体或特殊句元被定义一次而非对每一单独的任务定义。图5示出了根据所公开的主题的用于初始化任务框架的方法500。在502处,应用程序开发者根据任务接口创建对应于一应用程序动作的任务。在504处,确定该应用程序是否包括对其应生成任务的附加动作。如果是,则在502处生成对应于应用程序动作的新任务。如果不是,则在506处将所生成的一个或多个任务添加到任务框架。或者,可在生成任务时将任务添加到任务框架。图6示出了根据所公开的主题的用于生成任务的方法600。在602处,可生成任务元数据。任务元数据可包括任务名称、任务标题和描述。可在604处定义用于任务的关键字。可在606处定义槽。在608处,可定义与任务相关的任何实体。实体可包括一般的全局实体以及对特定任务专用的实体。在601处,可对一组识别器或识别器库定义或选择任何相关的识别器。图7示出了根据所公开的主题的用于处理自然语言输入或查询的方法700。在702处,接收査询。该査询可包括文本串、一组句元或任何其它适当格式的数据。如果该查询包括串,则它可被分割成句元。在704处,选择一个或多个任务。可基于查询内的数据来选择该一个或多个任务。例如,可将査询的句元与任务的关键字进行比较。可选择包括匹配査询的句元或与其相关的关键字的任务。可基于匹配句元的关键字来对任务排名。在706处,可将来自查询的句元映射到任务的槽。句元的映射可包括为不同映射生成得分或排名。在708处输出一个或多个任务。图8示出了根据所公开的主题的用于基于用户输入选择适当动作的方法800。在802处,为任务生成重述。在804处,可显示该重述。如此处所使用的,显示包括可视呈现以及任何其它适当的音频或视觉呈现方法。在806处,可基于该重述来选择适当任务。在808处,执行任务。或者,任务可自动执行而无需选择。图9示出了根据所公开的主题的用于任务执行的方法900。在902处,执行所选任务。在904处,生成语义解并将其呈现给应用程序。在卯6处,基于该语义解来执行适当的应用程序命令。图10示出了根据所公开的主题的用于基于用户反馈来改进任务处理的方法IOOO。在1000处,接收用户反馈。该用户反馈可包括诸如基于用户动作的映射结果或隐式反馈的排名或等级的显式反馈。在1002处,标识向其应用该用户反馈的一个或多个任务。所标识的一个或多个任务然后可基于所提供的用户反馈来更新或修改1004。可使用各种算法或模型来调整或修改该任务框架。另外,可在1006处基于用户动作来生成新任务。已经相对于几个组件之间的交互描述了上述系统。应当理解,这些系统和组件可包括其中指定的那些组件或子组件、所指定的组件或子组件中的某一些、和/或另外的组件。子组件也可被实现为通信上耦合到其它组件的组件而非包括在父组件内。另外,应当注意,一个或多个组件可被组合成提供集合功能的单个组件或被分成几个子组件。组件也可与一个或多个此处未特别描述但本领域的技术人员已知的其它组件交互。此外,如可以理解的,以上所公开的系统和以下的方法的各个部分可包括或包含人工智能或基于知识或规则的组件、子组件、过程、装置、方法或机制(例如,支持矢量机、神经网络、专家系统、贝叶斯信任网、模糊逻辑、数据融合引擎、分类器……)。特别地,这些组件可自动化由其执行的某些机制或过程以使得这些系统和方法的各部分更具自适应性以及更高效和智能。鉴于以上所描述的示例性系统,参考图5-10的流程图将更好地理解可根据所公开的主题实现的方法。尽管出于解释简明的目的,这些方法被示出并描述为一系列框,但是可以理解和明白,所要求保护的主题不受各框的次序的限制,因为某些框可以按不同的次序和/或与此处所描绘并描述的其它框同时发生。此外,并非所有示出的框都是实现以下所描述的方法所必需的。另外,还应当理解,以下并且贯穿本说明书所公开的方法能够被储存在制品上以便于运输并传送这些方法到计算机。如此处所使用的术语制品旨在包含可从任何计算机可读设备、载体或介质访问的计算机程序。为了提供用于所公开的主题的各方面的上下文,图11和12以及以下讨论旨在提供对其中可实现所公开的主题的各方面的合适的环境的简要、概括描述。尽管本主题以上是在运行于一个计算机和/或多个计算机上的计算机程序的计算机可执行指令的一般上下文中描述的,但是本领域的技术人员将认识到,本发明也可结合其它程序模块来实现。一般而言,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员将认识到,本发明的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器的或可编程消费或工业电子产品等等。所示的各方面也可在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实施。然而,本发明的某些(如果不是全部)部分可以在独立的计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。参考图11,用于实现此处所公开的各方面的示例性环境1110包括计算机1112(如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子产品……)。计算机1112包括处理单元1114、系统存储器1116和系统总线1118。系统总线1118将包括但不限于系统存储器1116的系统组件耦合至处理单元1114。处理单元1114可以是各种可用微处理器的任一种。双微处理器和其它多处理器体系结构也可用作处理单元1114。系统总线1118可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各类可用总线体系结构的局部总线,这些体系结构包括但不限于,ll位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA局部总线(VLB)、外围部件互连(PCI),通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。系统存储器1116包括易失性存储器1120和非易失性存储器1122。基本输入/输出系统(BIOS)包括如在启动时帮助在计算机1112内的元件之间传输信息的基本例程,通常储存在非易失性存储器1122中。作为说明而非局限,非易失性存储器1122可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器1120包括担当外部高速缓存的随机存取存储器(RAM)。作为说明而非局限,RAM以许多形式可用,如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)和直接存储器总线(Rambus)RAM(DRRAM)。计算机1112还包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图11示出了盘存储1124。盘存储1124包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒等设备。另外,盘存储1124可单独包括存储介质或与其它存储介质组合,其它存储介质包括但不限于,诸如紧致盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等光盘驱动器。为便于盘存储设备1124连接到系统总线1118,通常使用可移动或不可移动接口,如接口1126。可以理解,图11描述了担当用户和合适的操作环境1110中描述的基本计算机资源之间的中介的软件。这类软件包括操作系统1128。操作系统1128可储存在盘存储1124中,它用于控制并分配计算机系统1112的资源。系统应用程序1130利用操作系统1128通过储存在系统存储器1116或盘存储1124上的程序模块1132和程序数据1134对资源的管理。可以理解,本发明可用各种操作系统或操作系统的组合来实现。用户通过输入设备1136向计算机1112输入命令和信息。输入设备1136包括但不限于,诸如鼠标、跟踪球、指示笔、触摸垫等定点设备、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、web摄像头等等。这些和其它输入设备通过系统总线1118经由接口端口1138连接到处理单元1114。接口端口1138包括,例如,串行端口、并行端口、游戏端口、通用串行总线(USB)。输出设备1140使用与输入设备1136相同类型端口中的某一些。由此,例如,USB端口可用于向计算机1112提供输入,并从计算机1112输出信息到输出设备1140。提供了输出适配器1142以说明存在一些输出设备1140,如显示器(例如,平板和CRT)、扬声器和打印机,以及需要特殊适配器的其它输出设备1140。输出适配器1142包括,作为说明而非局限,提供输出设备1140和系统总线1118之间的连接装置的显卡和声卡。应当注意,其它设备和/或设备的系统提供了输入和输出能力,如远程计算机1144。计算机1112可以使用到一个或多个远程计算机,如远程计算机1144的逻辑连接在网络化环境中操作。远程计算机1144可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其它常见的网络节点等等,并通常包括相对于计算机1112所描述的许多或所有元件。为简明起见,仅对远程计算机1144示出了存储器存储设备1146。远程计算机1144通过网络接口1148逻辑上连接至计算机1112,然后通过通信连接1150物理地连接。网络接口1148包含诸如局域网(LAN)和广域网(WAN)等通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网/IEEE802.3、令牌环/IEEE802.5等等。WAN技术包括但不限于,点对点链路、诸如综合业务数字网(ISDN)极其变体等电路交换网络、分组交换网络以及数字用户线(DSL)。通信连接1150指用于将网络接口1148连接到总线1118的硬件/软件。尽管为说明的清晰性,示出通信连接1150在计算机1112内,然而它也可以对计算机1112是外部的。仅出于示例性的目的,连接到网络接口1148所必需的硬件/软件包括内部和外部技术,如包括常规电话级调制解调器、线缆调制解调器、电源调制解调器和DSL调制解调器的调制解调器、ISDN适配器和以太网卡或组件。图12是本发明可与其交互的示例计算环境1200的示意性框图。系统1200包括一个或多个客户机1210。客户机1210可以是硬件和/或软件(如,线程、进程、计算设备)。系统1200还包括一个或多个服务器1230。由此,系统1200可对应于二层客户机服务器模型或多层模型(例如,客户机、中间层服务器、数据服务器)以及其它模型。服务器1230也可以是硬件和/或软件(如,线程、进程、计算设备)。客户机1210和服务器1230之间的一个可能的通信可以是适用于在两个或多个计算机进程之间传输的数据分组的形式。系统1200包括可用于便于在客户机1210和服务器1230之间通信的通信框架1250。客户机1210操作上连接至可用于储存对客户机1210本地的信息的一个或多个客户机数据存储1260。类似地,服务器1230操作上连接至可用于储存对服务器1230本地的信息的一个或多个服务器数据存储1240。上文所描述的包括所要求保护的主题的各方面的示例。当然,不可能为了描述所要求保护的主题而描述组件或方法的每一可想象的组合,但是本领域的普通技术人员可以认识到,本发明的许多另外的组合和置换是可能的。因此,所公开的主题旨在包含落入所附权利要求书的精神和范围中的所有这样的改变、修改和变化。此外,就在说明书和权利要求书中使用术语"包括"、"具有"或"含有"而言,这类术语旨在以与术语"包含"用作权利要求书中的过渡词语所解释的类似的方式为包含性的。权利要求1.一种自然语言处理框架,包括定义一个或多个任务的任务组件;处理所述任务的任务检索组件;分析与所述任务相关联的数据的槽填充组件;以及执行所述任务的至少一个应用程序。2.如权利要求l所述的框架,其特征在于,还包括用于与自然语言处理器接口的接口组件。3.如权利要求2所述的框架,其特征在于,还包括处理来自应用程序的至少一个査询的组件。4.如权利要求2所述的框架,其特征在于,还包括允许所述自然语言处理器内的自适应改变的日志记录组件。5.如权利要求4所述的框架,其特征在于,还包括由所述日志记录组件监视以确定所述自适应改变的反馈组件。6.如权利要求5所述的框架,其特征在于,还包括从所述反馈组件训练的至少一个学习组件。7.如权利要求1所述的框架,其特征在于,所述任务检索组件采用査询来从一任务集合中选择一个或多个任务。8.如权利要求7所述的框架,其特征在于,所述任务检索组件基于所述査询中的关键字来自动确定要检索的任务。9.如权利要求7所述的框架,其特征在于,还包括至少部分地基于关键字或其它元数据来索引任务的组件。10.如权利要求7所述的框架,其特征在于,还包括传递用于对期望任务的自动选择的用户上下文信息的组件。11.如权利要求l所述的框架,其特征在于,所述槽填充组件提供来自自然语言输入或查询的句元列表与一个或多个任务参数的匹配。12.如权利要求11所述的框架,其特征在于,所述槽填充组件生成句元到任务的一个或多个槽的一个或多个可能映射。13.如权利要求12所述的框架,其特征在于,所述槽填充组件是从反馈数据训练的。14.如权利要求13所述的框架,其特征在于,所述槽填充组件为句元到一个或多个任务槽的可能映射生成得分或排名。15.如权利要求14所述的框架,其特征在于,还包括注释组件,所述注释组件包括标记或指示其它句元的重要性的一个或多个注释。16.如权利要求15所述的框架,其特征在于,所述槽填充组件产生最多为最大数量的所请求的语义解的列表,其中语义解是句元到由应用程序采用的槽的映射的表示。17.如权利要求l所述的框架,其特征在于,还包括其上储存有用于执行所述任务组件、所述任务检索组件或所述槽填充组件的计算机可读指令的计算机可读介质。18.—种自然语言处理方法,包括为一自然语言应用程序定义一个或多个任务;用与所述应用程序相关的数据填充所述任务;以及将所述任务自动映射到来自所述自然语言应用程序的一个句元或查询。19.如权利要求18所述的方法,其特征在于,还包括将与所述任务相关联的用户反馈记入日志。20.—种自然语言处理系统,包括用于处理用于一自然语言应用程序的一个或多个任务的装置;用于用一应用程序的一个或多个参数来填充所述任务的装置;用于将所述任务映射到所述应用程序的装置;以及用于与所述任务或所述应用程序接口的装置。全文摘要本主题的公开内容涉及用于执行其中将自然语言输入映射到任务的自然语言处理的系统和方法。该系统包括用于定义任务、相关联的数据和解释任务数据的方式的任务接口。此外,该系统提供了管理这些任务以便于自然语言处理的框架。该任务接口和框架可用于向第三方应用程序提供自然语言处理能力。另外,该任务框架可基于从第三方应用程序接收到的反馈来学习或训练。文档编号G06F17/20GK101305361SQ200680041475公开日2008年11月12日申请日期2006年11月8日优先权日2005年11月9日发明者J·巴克路德,S·卡塔利亚,W·D·拉姆赛申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1