识别查询意图 背景技术 [0001] 许多软件产品提供了相对大量的内部功能以供在使用软件产品执行各种任务的同时利用。例如,文字处理器内的拼写检查功能、电子表格应用内的算法功能以及用于改变公布应用中的文本的图形功能相对常见。然而,大量的用户不熟悉在一些软件产品中所提供的许多其它特征、功能和工具。 [0002] 为了解决上述问题,一些软件产品提供了“帮助”或“查询”工具,其允许用户输入与期望任务相关的表达,以及接收根据由该帮助或查询工具采用的特定算法的结果。例如,可允许用户利用对用户期望在底层的软件产品中使用的功能进行描述的自然语言来输入短语或输入词语的群组。 [0003] 为了从短语推断出有关的功能并随后返回给用户,帮助或查询工具必须确定在由用户供给的短语与对可用功能的预定义描述之间存在什么匹配(如果有)。此外,与生成底层软件产品和对相关联的功能的描述的软件编程者所使用的词语的小群组相比,由任意数量的用户创建的自然表达必须被考虑在内。因此,将用于描述期望的软件功能的自然语言表达与期望的软件功能的实际的内部命名规约相比较,两者之间可能存在大的差距。 [0004] 本公开正是基于这些考虑以及其它考虑而做出的。 发明内容 [0005] 本文描述了基于查询来识别查询意图以便发现由软件产品或软件产品的群组所提供的功能的技术。特别地,可以基于一组对于自然语言词语的基于规则的置换将自然语言表达反复地分割且合并成基于由软件产品提供的功能的预定命名规约的一个或多个定义的词语。此后,可以识别与定义的词语相关的先前搜索词语的聚类(cluster),并且可以将所述自然语言表达与所识别的聚类相关联以创建基于意图的聚类信息。 [0006] 根据本文呈现的一个实施例,一种用于识别查询意图的方法包括:接收指向由计算机中可用的软件产品提供的至少一个功能的原始查询。该原始查询包括与至少一个功能相关的自然语言表达。该方法还包括:基于一组对于自然语言词语的基于规则的置换将自然语言表达的词语反复地分割且合并成一个或多个定义的词语,一个或多个定义的词语是基于至少一个功能的预定命名规约的。一个或多个定义的词语可以指代至少一个功能。此后该方法包括:识别与一个或多个定义的词语相关的先前搜索词语的聚类,以及将自然语言表达与所识别的聚类相关联以创建一组基于意图的聚类信息。该查询意图由一个或多个定义的词语来表示。 [0007] 根据本文呈现的另一实施例,一种聚类系统被配置为从接收自多个客户端计算机的原始查询中识别意图,用于发现由在客户端计算机上执行的软件产品提供的功能。聚类系统包括至少一个计算机,其执行原始查询处理服务,原始查询处理服务被配置为:接收来自多个客户端计算机中的至少一个客户端计算机的原始查询,校正在该原始查询中所包含的单词拼写以创建已校正拼写的查询,覆盖(override)所述已校正拼写的查询中的单词的一部分的已校正拼写以创建与至少一个功能相关的初始群(initial grouping),以及基于自然语言表达中的修饰词语,将初始群的和已校正拼写的查询的词语(terms of the initial grouping and the spell-corrected query)群聚成一组初步词语群。修饰词语指代使用所述至少一个功能的任务。 [0008] 原始查询处理服务可被进一步配置为,基于对自然语言词语的基于规则的置换将所述一组初步群(preliminary grouping)的各个群(grouping)分割且合并成精炼词语群(refined groupings of terms),所述精炼词语群是基于所述至少一个功能的预定命名规约的,所述精炼词语群指代所述至少一个功能,识别与精炼词语群相关的先前搜索词语的聚类,将自然语言表达与所识别的聚类相关联以创建一组基于意图的聚类信息,接收包含至少一个短语的新的原始查询,以及将所述至少一个短语与基于意图的聚类信息进行比较以识别相关联的先前搜索词语的聚类。 [0009] 应当意识到上述主题还可以实现为计算机控制的装置、计算机过程、计算系统或诸如计算机可读介质的制品。虽然本文呈现的实施例主要是在识别查询意图的上下文中公开,但是本文公开的概念和技术也可以用于从其它用户提交的数据中译解意图。这些特征以及各种其它特征将通过理解下面的详述以及相关联的附图的阅览而变得明显。 [0010] 提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选集。该发明内容不旨在识别所要求保护的主题的关键特征或主要特征,也不旨在将该发明内容用于限制所要求保护的主题的范围。此外,要求保护的主题不限于解决在本公开的任何部分中提到的任何或全部缺点的实现方式。 附图说明 [0011] 图1是示出由本文呈现的实施例提供的示例性的操作环境和多个软件组件的多方面的网络图; [0012] 图2是示出根据本文呈现的一个实施例的对原始用户查询进行预处理的一个示例性的例程的多方面的流程图; [0013] 图3是示出根据本文呈现的一个实施例的用于初步群聚查询的词典处理的一个示例性的例程的多方面的流程图; [0014] 图4是示出根据本文呈现的一个实施例的用于群聚查询的第二词典处理(secondary dictionary processing)的一个示例性的例程的多方面的流程图; [0015] 图5是示出根据本文呈现的一个实施例的用于群聚查询的最终词典处理的一个示例性的例程的多方面的流程图; [0016] 图6是示出可用于查询意图的标识的一般输出格式的示范性的表格; [0017] 图7是示出根据本文呈现的一个实施例的用于使用聚类查询信息进行用户查询的处理的一个示例性的例程的多方面的流程图;以及 [0018] 图8是示出示例性的计算机硬件和软件体系结构的计算机体系结构图。 具体实施方式 [0019] 下文的具体实施方式涉及用于确定用户提交的针对由一个或一组软件产品所提供的特征、功能和/或工具的查询的意图的技术。通过使用本文呈现的技术和概念,相对精确的意图识别是可能的,使得可以为各种自然语言查询提供适当的结果,诸如用于发现计算机程序提供的功能的用户查询。 [0020] 如上文简要论述的,常规的软件产品可能需要利用与功能的已确立的名称紧密地相匹配的描述,来以简洁的技术术语提交想要对可用功能进行定位的查询。然而,使用本文公开的技术的实现方式,可以将对可用功能进行定位的查询表达为自然语言表达,从中可以辨别出意图。来自自然语言表达的短语和词语可以在一个或多个词典模型的界限内被反复地解析成单个的词语以及合并成单个的短语,使得短语的意图能够被识别、聚类以及用于未来的搜索。 [0021] 如本文所使用的,术语“词典模型”指代将一组对于自然语言词语的基于规则的置换与基于一个或多个软件产品的内部命名规约的一个或多个定义的词语相关联的文件或结构。聚类系统利用词典模型来处理短语以持续地拆分和合并短语,直至识别与一个或多个软件功能相关的短语的一个或多个正确聚类。聚类系统随后能够提供将自然语言表达与相对少量的内部软件功能相匹配的“多对少(many-to-few)”表示的聚类信息。 [0022] 聚类信息可由被配置为接收查询的任何软件应用或信息取回系统使用,包括例如被配置为接收来自期望使用软件产品或一组软件产品的用户的查询的信息取回系统。在接收到新的或未来的查询时,聚类辨识算法或模块能够将新查询与相关联的聚类匹配,并且提供结果以供由提交了查询的用户消费。 [0023] 虽然本文所描述的主题是在关于计算机系统的操作系统和应用程序的执行相结合而执行的程序模块的一般上下文中呈现的,但是本领域技术人员将认识到,可以与其它类型的程序模块相结合来执行其它的实现方式。通常,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、组件、数据结构、以及其它类型的结构。而且,本领域技术人员将意识到本文所述的主题可以利用其它计算机系统配置来实现,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、微型计算机、大型计算机等。 [0024] 在下面的具体实施方式中参考了附图,附图构成具体实施方式的部分并且是通过示例性的具体实施例或示例来示出的。现在参考附图对用于过滤电子消息的计算机系统和方法的多方面进行说明,在图中相似的标记表示相似的元件。 [0025] 现在转到图1,将提供有关本文呈现的实施例所提供的示例性的操作环境和多个软件组件的细节。特别地,图1示出了用于确定一个或多个查询的意图的系统100的多方面。 系统100包括经由网络105与聚类系统140可操作通信的一个或多个客户端101A,101B和 101C(在本文中以单数形式称为“客户端101”和/或复数形式称为“多个客户端101”)。客户端101可以是任何适合的计算机系统,包括但不限于台式或膝上型个人计算机、平板式计算设备、智能手机、其它类型的移动设备等。 [0026] 客户端101可以被配置为执行软件产品,诸如应用102A,102B和102C,或者一套软件产品,其被提供以供用户提交查询,以便发现由软件产品所支持的特征、功能和工具。在这方面,客户端101可以接收一个或多个原始查询130A,130B和130C(在本文中以单数形式称为“原始查询130”和/或以复数形式称为“多个原始查询130”)。原始查询130可以包括客户端101的用户所创建的短语、词语的群组和/或自然语言表达。原始查询可以被提交以经由网络105传输。网络105可以包括计算机通信网络,诸如因特网、局域网(“LAN”)、广域网(“WAN”)或任何其它类型的网络,并且可用于将原始查询130提交给聚类系统140以便进一步处理。 [0027] 聚类系统140包括多个组件,所述多个组件被配置为执行如本文所描述的与在词典模型的界限内对自然语言词语和/或短语的群进行拆分和合并以确定用户提交的查询的意图相关的处理功能。例如,聚类系统140可被配置为通过原始查询处理服务141来接收并处理原始查询130。 [0028] 通常,原始查询处理服务141被配置为从网络105接收原始查询130。原始查询处理服务141进一步被配置为通过存储在词典存储145中的一个或多个词典模型以及通过在聚类处理服务143处的聚类处理来确定原始查询130的实际意图。对要确定意图的原始查询的实际处理将参考图2进行更详细的说明。 [0029] 在确定原始查询130的意图后,原始查询处理服务141将所确定的意图信息传达给聚类处理服务143,使得保持在聚类存储147中的聚类信息146反映所确定的意图和相关联的自然语言表达。应注意,原始查询处理服务141和聚类处理服务143在一些实施例中可以组合。因此,归属于两者中任一服务的任何特定功能可以同等地归属于另一服务,反之亦然。以可用的或期望的形式提供聚类信息147的任何此类修改都在本公开的范围内。 [0030] 聚类信息146包括与相对少量的内部软件功能匹配的多个自然语言表达的多对少表示。换言之,聚类信息147将多个原始查询的意图表示为在客户端101处能执行的目标软件产品的内部软件功能的映射。聚类信息146的一般的特征和布置在下文参考图6来更全面地描述。 [0031] 聚类信息146可以传达给被布置成与聚类系统140通信的可用的信息取回系统 150。信息取回系统150可以包括任何适合的信息取回系统,诸如例如搜索引擎、软件产品帮助或查询系统、在线服务提供商网络(例如,在线帮助或信息提供商)或任何其它期望的系统。 [0032] 信息取回系统150一般包括:原始查询处理服务151,其被布置成接收原始查询 130;以及聚类辨识服务,其被布置成基于原始查询130来生成搜索结果138。原始查询处理服务151可以将来自原始查询130的自然语言表达解析和分割成任何期望的群。此后,聚类辨识服务153可使用解析的查询来确定在聚类信息146中描述的任何聚类是否匹配一个或多个解析的群。 [0033] 如果找到匹配,则聚类辨识服务153可以生成搜索结果138并且经由网络105将搜索结果138指向适当的客户端101(即,生成查询的客户端)。网络105可以将搜索结果138分布为分别指向单个的客户端101A,101B和101C的单个的搜索结果138A,138B和138C。应当理解,取决于原始查询130源自哪里,可以分布更多或更少的搜索结果,或者那些搜索结果可以与那些特别示出的形式不同地分布。 [0034] 现在参考图2,将提供关于本文呈现的用于通过聚类系统140从原始查询130提取意图的实施例的另外的细节。特别地,图2是示出了根据本文所呈现的一个实施例的用于处理原始查询130的一个示例性的方法200的多方面的流程图。如图所示,方法200包括在框 202处接收原始查询。 [0035] 如上文简要论述,原始查询处理服务141经由网络或其它通信介质接收一个或多个原始查询130。取决于任何特定的实现,原始查询130可以单独地或者在基本并行的过程中被处理。因此,多种形式的原始查询处理都在本公开的范围内,但是下面的特征是参考单一原始查询130来描述的。 [0036] 方法200还包括:在框204处,对接收到的原始查询130的初步拼写检查和异常处理。例如,可以初始地执行拼写检查算法来校正在原始查询130内误拼的任何词语。拼写检查算法可以包括任何已知的或期望的算法,其比较各个词语以确定误拼是否显见。拼写检查算法可以根据其个体的例程来校正任何误拼,并且返回包含任何已校正的词语的结果。 [0037] 此后,拼写异常处理可以基于拼写异常词典模型来执行,以进一步校正词语。例如,虽然特定的词语可以在自然语言中正确地拼写,但是一个或多个词语可能实际上指代或者打算指代具有略微相似的拼写的内部软件功能。拼写异常词典模型被布置成基于目标软件产品的内部命名规约来校正这些不正确的指代。例如,虽然典型的拼写检查算法可以确定词语“pain(疼痛)”是正确拼写的词语,原始查询130可能实际上指代诸如来自微软公司的MICROSOFT WORD文字处理程序的文字处理软件产品的“pane(窗格)”或“tool pane(工具窗格)”。 [0038] 因此,在本文公开的实施例中所使用的拼写异常词典模型可以被配置为将原始查询130中的拼写校正后的自然语言正规化(例如,标准化)为与在客户端101上执行的目标软件产品一致。在下表1中提供了示范性的拼写异常词典模型中可以包含的示例的一组置换规则: [0039] 表1: [0040] 原始词语 置换后词语 picot table pivottable picot tables pivottable pivioit table pivottable piviottable pivottable piviout table pivottable pivotal table pivottable pivitotable pivottable pivotal table pivottable pivitol table pivottable pivitottable pivottable [0041] 如上表1所示,多个词语可以在原始查询130内置换以指代实际的软件功能,而不是它们的自然语言定义。在表1的特定示例中,指代目标软件产品的“pivottable”功能的自然语言表达的多个不同的版本被置换成词语“pivottable”。根据任何期望的实现方式,该置换可以包括:原始查询130中的词语的实际的交换,或者描述置换的元数据的添加。通过这种方式,拼写异常词典模型允许基于置换的词语来创建基本词语群。注意的是,基于任何期望的目标软件产品可应用多种形式的拼写异常词典,并且相应地,所有这些变型例都在本公开的范围内。 [0042] 方法200还包括:在框206处,来自框204的结果的初步群(preliminary grouping)。一般地,原始查询处理服务141可以基于在最初的原始查询内的修饰语或修饰语言将经拼写校正和拼写异常置换的查询处理成一组初步词语群。修饰语词语可以包括“哪里”以及“如何”或其它修饰词语,来指代可以借以使用目标软件产品完成任务的位置或过程。其它指代时间关系的修饰词语(例如,“何时”)或指代不能被立即辨识为与期望功能相关的关系的修饰词语,可以被群聚在一起。 [0043] 相应地,原始查询处理服务141可以初始地基于这些修饰词语的存在来对经拼写校正和拼写异常置换的查询进行群聚。初始群可通过另外的词典模型进一步处理以推断另外的关于原始查询130的意图的细节。 [0044] 方法200还包括:在框208处,初步群的初始词典模型处理。例如,初始词典模型处理可以包括通过有些类似于上述的拼写异常词典模型的多个初始词典模型来处理。初始词典模型处理可以得到被进一步区分或拆分的群,使得一些短语被区分开,同义词被辨识或去除,加记号的(tokenized)或者能加记号的(tokenizable)词语被辨识出,和/或不重要的单词被去除。下面参考图2来详述初始词典处理。 [0045] 在框208处初始词典模型处理至少部分成功完成时,方法200还包括:在框210中,将预处理规则应用于来自框208的结果。例如,预处理规则可以描述对被包含在框208的结果中的词语进行合并和分割,以形成与目标软件产品的功能更紧密相关的群。 [0046] 预处理规则可以被使用来尝试将单个的或先前分割的词语组织成与在客户端101上执行的目标软件产品的实际功能相关的合并短语。例如,预处理规则可以包括将诸如“打印”和“全部”等词语合并成与其中文档的全部页被打印的打印功能相关的短语,诸如“打印全部”或者“打印全部页”,取决于原始查询130的结果和这些词语在原始查询130中的放置。 其它非限制示例包括将诸如“打印”、“每一个”和“其它”的词语合并成与分段打印功能相关的短语,诸如“隔页打印”或“跳过打印奇数页”,取决于原始查询130的结构和这些词语在原始查询130的放置。 [0047] 方法200还包括:在框212中从预处理群中提取词性。如上所述,预处理群可以包括从原始查询130处理的单个词语群和单个短语群。例如,使用用于提取词性的任何可用的应用或服务,原始查询处理服务141可以将这些群分析成额外的词性。 [0048] 一般地,词性可以被组织为名词、代词、形容词、动词、副词、介词、连词和插入语。 用于提取词性的易于得到的工具可以包括例如,可从微软获得的统计解析与语言分析工具箱(“SPLAT”)。任何此类工具的输出可被处理以对所识别的词性(part of speech)进行群聚、以及从先前的群中去除被群聚的词性。 [0049] 此后,方法200包括:在框214处,对来自框212的群结果的第二词典处理。原始查询处理服务141可以例如通过有些类似于上述的拼写异常词典模型和初始词典模型的多个第二词典模型来处理框212的群结果。第二词典模型处理可以得到进一步合并的群,使得一些词语经过词形还原(lemmatization),辨识出轻动词,提取的词性经过覆盖词典模型处理,和/或形容词-动词异常被合并。下面参考图4来更详细地描述第二词典处理。 [0050] 方法200还包括:在框216处,从处理后的群中提取用于接收的原始查询130的基本意图。原始查询处理服务141可以基于框214的结果来执行对原始查询130的基本或主要意图的基于规则的提取。基于规则的提取必要地提取动词-名词集合作为意图的基础。例如,基于规则的提取的规则可以基于诸如词性、在较大的短语或原始查询130中的每个词性的位置以及词性的顺序等一个或多个因素。 [0051] 该方法200还包括:在框218中,基于所提取的基本意图和处理后的群来进行最终词典处理。原始查询处理服务141可以例如通过有些类似于上述的拼写异常词典模型、初始词典模型和第二词典模型的多个最终词典模型来处理框216的群结果。最终词典模型处理可以得到进一步被合并或区分的群,使得与实际聚类相关的短语或词语被识别和/或基于目标软件产品的专用短语被识别。下面参考图5来进一步描述最终词典处理。 [0052] 在通过原始查询服务141进行成功的最终词典处理后,方法200在框220处以从框 218的结果中提取用于所接收的原始查询的最终意图而结束。一般地,框218的结果可通过聚类服务143来处理以基于先前确定的表示意图的聚类来确定最终意图。 [0053] 聚类服务143可以将部分匹配已知聚类的特定群与已知聚类相关联。例如,包含短语“插入对象”的原始查询130可以与表示用于插入对象的软件功能的聚类相关联。可以基于最终群的数量或大小而进行进一步的区分,并且可以进行基于阈值的比较以确定原始查询的意图的最可能候选者。 [0054] 在成功与已知聚类相关联后,聚类信息146被更新以反映关联。此后,聚类信息146可以保持在聚类存储147中和/或传输到信息取回系统150。另外,原始查询处理服务141和聚类处理服务143可以随着新的原始查询被取回、被接收或以其它方式被创建,而持续迭代经过框202-220。 [0055] 如上所述,术语“词典模型”指代将一组对于自然语言词语的基于规则的置换与基于一个或多个目标软件产品的内部命名规约的一个或多个定义的词语或短语相关联的文件或结构。此外,术语“目标软件产品”指代安装或布置以在客户端101上执行的、用户针对其提交原始查询的软件产品。如此,本文所描述的每个词典模型可以不同地布置以对于特定的目标软件产品实现期望的结果,即,通过如与一个或多个聚类相关联地对词语的群组进行拆分或合并的规则。 [0056] 在如上所述的最终词典处理时,词语的最终群将反映在一个或多个目标软件产品的界限内的最初的原始查询的相关联的意图。因此,随着易于匹配以提供聚类信息146的新查询被接收,进一步的意图识别可以通过简单的聚类辨识算法(例如,聚类辨识服务153)执行,该简单的聚类辨识算法被配置为在预定阈值以内或预定阈值以上找到原始查询130的在聚类信息146内的匹配。然而,根据需要,表示上述软件功能的聚类的进一步的拆分和合并可以持续地进行,或者以批处理式样的操作集合的方式进行。下面参考图7来提供在聚类系统140中所产生的聚类信息146的使用的更详细的论述。 [0057] 下文中,参考图3-5来提供初始的、第二的和最终的词典处理和相关联的词典模型的多个示例。应当理解,虽然使用词语“初始”、“第二”和“最终”描述,特定的处理顺序或者词典模型之间的依赖关系可在不偏离本公开的范围的前提下被重新布置。 [0058] 转到图3,图示说明了根据本文呈现的一个实施例,示出用于初步群聚查询的初始词典模型处理的一个示例性的方法300的多方面的流程图。如图所示,方法300包括:在框 302处,接收来自框208的初步群。例如,框206的初步群可以被接收以进行初始词典模型处理。 [0059] 方法300还包括:在框304处,基于记号异常词典模型(token exception dictionary model),对接收到的初步群上的记号异常群(token exception groupings)进行处理。记号异常词典模型可被布置为应当保持相关联在一起从而限制它们的分割的多个短语或词语。 [0060] 因此,记号异常词典模型保持原始查询130中的一些短语的结构,使得它们与用于目标软件产品的功能的内部命名更紧密地相关联。可以包含在示范性的记号异常词典模型中的示例的一组记号规则提供在下表2中:表2: [0061] 保持短语(Maintain Phrase) 一般格式(general format) 文本格式(text format) 百分比样式(percent style) 百分比格式(percent format) 帐单格式(accounting format) 帐单样式(accounting style) 货币样式(currency style) 货币样式(currency styles) 逗号分开的值(comma separated value) 便携文档格式(portable document format) [0062] 如上表2中所示,多个短语可以与内部软件功能相关,并且应当因此被保持为原始查询130内的单个短语。注意的是,基于任何期望的目标软件产品,能应用多种形式的记号异常词典,并且相应地,所有此类变型例都在本公开的范围内。 [0063] 方法300还包括:在框306中,基于词语同义词词典模型,对框304的结果上的词语同义词群进行处理。词语同义词异常词典模型可布置为更适合于由与目标软件产品更紧密相关的一个或多个同义词替代的多个短语或词语。 [0064] 相应地,词语同义词异常词典模型取代原始查询130中的词语的一部分,以与和目标软件产品相关联的词语一致。可以包含在示范性的词语同义词异常词典模型中的一组示例的置换规则提供在下表3中: [0065] 表3: [0066] 原始词语 置换后词语 下拉(drop-down) 下拉列表(drop-down list) 下拉(drop-downs) 下拉列表(drop-down list) 下列表(drop list) 下拉列表(drop-down list) 下菜单(drop menu) 下拉列表(drop-down list) 下拉菜单(drop-down menu) 下拉列表(drop-down list) 拾取列表(pick list) 下拉列表(drop-down list) 拉列表(pull list) 下拉列表(drop-down list) 拉列表(pull-list) 下拉列表(drop-down list) 拉下列表(pull-down list) 下拉列表(drop-down list) 拉下框(pull-down box) 下拉列表(drop-down list) [0067] 如上表3所示,多个短语可以与和内部软件功能相关联的单个词语相关联,并且应当因此在原始查询130内被替代。注意的是,基于任何期望的目标软件产品,能应用多种形式的词语同义词异常词典,并且相应地,所有此类变型例都在本公开的范围内。 [0068] 方法300还包括:在框308处,基于记号异常词典模型,再处理框306的结果上的记号异常群。例如,在替代如上所述的同义词后,多个先前的短语或群已经被扰乱(disturbed)以创建更适合于保持为短语的单个词语。因此,框306的结果可如上所述被再处理。 [0069] 此后,方法300包括:在框310处,基于子句词典模型,处理框308的结果上的子句群。子句词典模型可被布置为用于替代指向特定子句的词语或短语的一组规则。例如,诸如“如果”、“条件”、“快捷方式”或其它词语的词语可能与功能相关或者可能将与软件产品的功能相关的必要的任务分割。 [0070] 因此,可以使用子句词典模型来取代与原始查询130中的子句或功能描述符相关的单个词语或短语以与目标软件产品一致。在下表4中提供了示范性的条件词语词典模型中可能包含的一组示例的置换规则: [0071] 表4: [0072] 原始词语 置换后词语 如果且(if and) 条件如果(conditional if) 如果或(if or) 条件如果(conditional if) 如果那么(if then) 条件如果那么(conditional if then) 如果那么excel(if then excel) 条件如果那么(conditional if then) 如果那么公式(if then formula) 功能条件(function conditional) 如果且功能(if and function) 功能条件(function conditional) [0073] 如上表4中所示,多个短语可以与软件功能相关,并且应当因此在原始查询130内替代。应当注意的是,基于任何期望的目标软件功能,能应用多种形式的子句词典,并且相应地,所有此类变型例都在本公开的范围内。 [0074] 方法300还包括:在框312中,基于轻单词(light word)或停止单词(stop word)词典模型,处理框310的结果上的“轻单词”或“停止单词”的群。如本文所使用的,术语“轻单词”或“停止单词”指代在可以被忽略而不影响原始查询的意图的提取的词语或短语的部分。例如,在原始查询130内的多个词语可能与目标软件产品的实际功能无关,并且可被忽略。在下表5中提供了可被忽略的一组示例的词语: [0075] 表5: [0076] [0077] [0078] 方法300还包括:在框314中输出处理后的具有被忽略的词语的群,进一步如图2的方法200中所概括的进一步处理,并且在框316处停止。此后,通过原始查询处理服务141可以进行另外的处理,直至第二词典处理可应用为止。 [0079] 图4是示出了根据本文呈现的实施例的用于群聚查询的第二词典处理的一个示例性的方法400的多方面的流程图。如图所示,方法400包括:在框402处,接收来自框214的一组群。在如上所述提取了词性之后,可以从框212接收该组群。 [0080] 方法400还包括:在框404处,基于词形还原词典模型(lemmatization dictionary model),对接收到的群进行词形还原。例如,在原始查询130中的多个词语可以与单个根词语(root term)相关。因此,词形还原词典模型将原始查询130中的词语正规化(例如,标准化)成单数的根词语或“词元(lemma)”。在下表6中提供了可以包含在词形还原词典模型中的一组示例的置换规则: [0081] 表6: [0082] 原始词语 置换后词语 跑(run) 跑(run) 跑(runs) 跑(run) 跑(ran) 跑(run) 跑(running) 跑(run) 遮蔽(shade) 遮蔽(shade) 遮蔽(shading) 遮蔽(shade) 遮蔽(shaded) 遮蔽(shade) [0083] 如上表6中所示,多个词语可以置换成单数的词元以简化处理。注意的是,基于任何期望的目标软件产品,能应用多种形式的词形还原词典,并且相应地,所有这样的变型例都在本公开的范围内。 [0084] 方法400还包括:在框406中,基于轻单词词典模型,处理词形还原后的群上的轻单词群。一般地,轻单词词典模型包括在为提取意图的处理过程中不应比其它动词加权更多的各种轻权重动词。作为非限制示例,如果原始查询130包括短语“创建excel的电子表格”,则轻单词词典模型可以将“excel”加权少于“创建”。因此,在利用轻单词词典模型进行处理时,所得到的群将包含与轻权重动词相比而言更大权重的动词,诸如“实现(make)”、“取得(take)”或“得到(get)”。 [0085] 方法400还包括:在框408中,基于词性覆盖模型处理框406的结果上的词性覆盖群(parts of speech override groupings)。一般地,词性覆盖模型被布置成对词性进行校正。例如,多个词语可以由词性工具推断为名词。然而,这些词语当在特定的目标软件产品的上下文中理解时更反映动词。 [0086] 因此,词性覆盖词典模型将原始查询130中的更适合的词性置换以与执行于客户端101上的目标软件产品一致。在下表7中提供了可以包含在示范性的词性覆盖词典模型中的一组示例的置换规则。 [0087] 表7: [0088] 原始词语 词性 群聚(group) 动词 刷新(refresh) 动词 过滤(filter) 动词 导出(export) 动词 插入(insert) 动词 拆分(split) 动词 输入(input) 动词 [0089] 如上表7中所示,多个词语可以被更适当地认为是动词,或者在特定的软件产品的上下文中考虑其它词性。注意的是,基于任何期望的目标软件产品,能应用词性覆盖词典模型的多种形式,并且相应地,所有这样的变型例都在本公开的范围内。 [0090] 方法400还包括:在框410中,基于形容词-动词异常词典模型,对框408的结果上的形容词-动词异常群进行处理。形容词-动词异常词典模型还可以另外地校正与使用一般的词性提取工具相关的词性问题。例如,如果在原始查询130中一些形容词在名词的紧前面,则可能更适合保留该词语的词性,而不是将其缩减为动词或名词。作为非限制示例,如果诸如“有色的(colored)”、“阴影的(dashed)”和“打印的(printed)”的词语出现在名词之前,则适当的群可以包括名词栈,而不是将“打印的(printed)”缩减为动词“打印(print)”。 [0091] 方法400还包括:在框412处,输出处理后的群以便如图2的方法200中所概括的那样进一步处理,并且在框414处停止。这些处理后的群可以处理后以对于原始查询130提取基本意图,如上文所概括的。此后,可以执行最终词典处理以提取最终的意图和聚类。 [0092] 图5是示出了根据本文所呈现的一个实施例的用于群聚查询的词典处理的一个示例性的例程的多方面的流程图。如图所示,方法500包括:在框502处,接收来自框218的一组处理后的群。 [0093] 方法500还包括:在框504处,基于聚类同义词词典模型,处理接收到的群上的聚类同义词群。一般地,聚类同义词词典模型被布置成将重复的群组映射到单个群组上。因此,多个不相干的群组可以映射到更反映原始查询130的意图的单个父群组(a single parent groups)上。在下表8中提供了在示范性的聚类同义词词典模型中所包含的一组示例的置换规则: [0094] 表8: [0095] [0096] [0097] 如上表8中所示,多个短语或群组可以置换成单数群组以简化处理。注意的是,基于任何期望的目标软件产品,可以应用多种形式的聚类同义词词典,并且相应地,所有这样的变型例都在本公开的范围内。 [0098] 方法500还包括:在框506中,基于对象-模型词典模型(object-model dictionary model),对框504的结果上的对象-模型群进行处理。一般地,对象-模型词典模型被布置成与目标软件产品的至少一个功能相关的词语的词典。短语可以直接指代单个的功能,并且因此,可以代表原始查询130的意图。 [0099] 因此,短语可被使用以与处理后的群进行比较来通过试图直接匹配处理后的群的部分而进一步限定原始查询130的意图。在匹配时,最终意图信息可以是显见的。方法500还包括:在框508处输出处理后的群以如图2的方法200中所概括的那样进一步处理,并且在框 510处停止。 [0100] 图6是示出了可用于识别查询意图的一般输出格式的示范性的表600。注意的是,特定格式的表格600可改动成任何期望的形式,并且因此,图示的格式不限于本公开。一般地,表格600可以表示聚类信息146的一般形式,以便由诸如信息取回系统150的信息取回系统、搜索引擎系统或任何其它适合的系统使用。 [0101] 表格600包括被组织以分割原始查询的原始搜索词语或短语、反映原始查询的意图的更适合的新搜索词语、原始查询中的记号的总记号计数和用于识别所建立的聚类的聚类标识(“ID”)值的列。表格600因此呈现了与表示字符串1的原始意图的新词语TERM 1(词语1)相关联的多个搜索词语TEXT 1(文本1)-TEXT N(文本N)的多对少映射,以及相关联的聚类标识ID 1。虽然呈现为到单个最初意图的映射,但是应当理解,取决于在系统600中所包含的目标软件产品,聚类信息146的实际的输出表示可以包括与多个不同的新词语匹配的多个不同的搜索词语。 [0102] 类似于表格600所表示的聚类信息146能够用于识别在系统100的积极处理过程中接收到的新的原始查询的意图。例如,图7是示出了根据本文呈现的一个实施例的用于使用聚类查询信息来处理原始用户查询的一个示例性的方法700的多方面的流程图。 [0103] 如图所示,方法700包括:在框702处,接收原始用户查询。该方法700还包括:在框 704处,确定接收到的原始查询的聚类关联。例如,聚类辨识服务153可以将来自接收到的原始查询的自然语言与聚类信息146(或者表600的“搜索词语”列)比较以确定聚类ID或聚类信息。 [0104] 如进一步图示的,该方法700包括用于所确定的聚类信息的处理的多个分歧选项。 例如,该方法700可以包括:在框706处,将接收到的原始用户查询搜索字符串信息与所确定的聚类搜索字符串交换。此后,方法700包括:在框708处,利用交换后的字符串执行查询,以及在框710处返回搜索结果。 [0105] 可替代地,该方法700可以包括:在框712处,找到(find)与所确定的关联的聚类相关的一个或多个“对等查询”。例如,“对等查询”可以指代对等用户提交的原始查询,其可以具有类似的或者至少部分相关的意图。此后,方法700包括:在框714处,基于对等查询来执行查询,以及在框710处返回一个或多个对等查询的搜索结果。另外地,该方法700可以包括:在框716处,找到与所确定的聚类信息相关的一个或多个对等聚类。此后,方法700包括: 在框718处,返回对等聚类信息。 [0106] 代表了意图的波动数量(fluctuating number)的聚类信息146可以多种形式以及由多个应用来使用。聚类信息146可以基于多个目标软件产品的用户查询的日志而在离线处理期间生成。日志可以通过聚类系统140访问以创建和保持聚类信息146,如上文所概述的。此后,聚类信息146可在信息取回系统中用于通过更简单的意图识别进行原始查询的更快速处理。 [0107] 应当意识到,上述的逻辑操作可以实现为(1)计算机实现的动作或在计算系统上运行的程序模块的序列,和/或(2)在计算系统内的互连的机器逻辑电路或电路模块。该实现方式是取决于计算系统的性能和其他要求的选择。因此,本文所述的逻辑操作被多样化地称为状态操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、用固件、用专用数字逻辑以及它们的任意组合来实现。还应当意识到,可以执行比图中所示和本文所描述的更多或更少的操作。这些操作也可以按不同于那些描述的次序来执行。 [0108] 图8示出了能够执行本文所描述的软件组件来用于以上文呈现的方式确定原始用户查询意图的计算机800的示例的计算机体系结构。图8所示的计算机体系结构图示出常规的台式计算机、膝上型计算机或服务器计算机并且可用于执行本文所呈现的被描述在在聚类系统140上执行的软件组件的任何方面。 [0109] 图8所示的计算机体系结构包括中央处理单元802(“CPU”)、系统存储器808和将存储器与CPU 802耦合的系统总线804,系统存储器包括随机存取存储器814(“RAM”)和只读存储器(“ROM”)816。包含了有助于例如在启动期间在计算机800内的元件之间传递信息的基本例程的基本输入/输出系统存储在ROM 816中。计算机800还包括用于存储操作系统818、应用程序和在本文中详述的其他程序模块的大容量存储设备810。 [0110] 大容量存储设备810通过连接到总线804的大容量控制器(未示出)与CPU 802连接。大容量存储设备810及其相关联的计算机可读介质为计算机800提供了非易失性存储。 虽然在本文包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,本领域技术人员应当意识到计算机可读介质可以是能够由计算机800访问的任何可用的计算机存储介质或通信介质。 [0111] 通信介质包含计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的调制数据信号中的其他数据并且包括任何输送介质。术语“调制数据信号”意指使其一个或多个特性以将信息编码在信号中的方式改变或设定的信号。通过示例的方式,而不是限制的方式,通信介质包括诸如有线网络或有线直连的有线介质以及诸如声波、RF、红外和其他无线介质的无线介质。上述任意的组合也应包含在计算机可读介质的范围内。 [0112] 通过示例而不是限制的方式,计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其他数据的信息的存储的任何方法或技术实现的易失性和非易失性的、可移除的和非可移除的介质。例如,计算机介质包括,但不限于,RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其他光学存储设备、磁盒带、磁带、磁盘存储或其他磁存储设备,或者任何其他能用于存储所需的信息且能够由计算机800访问的介质。为了权利要求的目的,短语“计算机存储介质”及其变体不包含波或信号本身和/或通信介质。 [0113] 根据各个实施例,计算机800可以利用通过诸如网络820的网络到远程计算机的逻辑连接在联网环境下操作。计算机800可以通过与总线804连接的网络接口单元806而连接到网络820。应当意识到,网络接口单元806还可以用于与其他类型的网络和远程计算机系统连接。计算机800还可以包括输入/输出控制器812,用于接收和处理来自多个其他设备的输入,包括键盘、鼠标或电子触笔(图8中未示出)。类似地,输入/输出控制器可以向显示屏、打印机或其他类型的输出设备(图8中也未示出)提供输出。 [0114] 如上文简要提及的,多个程序模块和数据文件可以存储在计算机800的大容量存储设备810和RAM 814中,包括适合于控制联网的台式计算机、膝上型计算机或服务器计算机的操作的操作系统818。大容量存储设备810和RAM 814还可以存储一个或多个程序模块,诸如上述的原始查询处理服务141、聚类处理服务143、词典存储145和聚类存储147。大容量存储设备810和RAM 814还可以存储其他类型的程序模块、服务和数据。 [0115] 基于上述,应当意识到,本文提供了用于识别查询意图的技术。虽然本文呈现的主题以特定于计算机结构特征、方法和变换动作、具体的计算机器和计算机可读介质的语言进行了描述,但是应当理解,在随附的权利要求中限定的本发明不必限于本文所描述的具体的特征、动作或介质。相反,具体的特征、动作和介质是作为实现权利要求的示例的形式而被公开的。 [0116] 上述的主题仅通过示例的方式来提供,不应解释为限制。可以对本文所描述的主题进行各种修改和改动而不遵从所图示的和描述的示例的实施例和应用,并且不脱离在下面的权利要求所阐述的本发明的真正的精神和范围。