掌桥专利:专业的专利平台
掌桥专利
首页

基于多个查询解释的基于方面的查询改进

文献发布时间:2023-06-19 09:30:39


基于多个查询解释的基于方面的查询改进

背景技术

本发明总体上涉及文档查询领域,并且更具体地涉及基于方面(facet-based)的查询改进。基于方面的文本挖掘是用于对大量非结构化数据进行文本挖掘的一种解决方案。“方面(facet)”是与信息元素相关联的信息实体,有时被称为“文档”。方面和方面值可以作为自然语言处理(NLP)流水线的结果而生成,其中注释器软件检测条件并添加方面。关于文档,NLP处理文档,在其中查找这些方面值或特征。例如,方面可以是用于对电子商务空间中的产品进行分类的类别。作为示例,自然语言处理可以向文档分配不同粒度的类别,例如标识文档中包括的特定词语或短语、它们表示的文档或项目的创建日期或时间范围、或者针对它们表示的文档或项目的情感、音调或表达的类别。可以聚合(例如,当搜索时)方面以理解语料库特性。聚合方面指的是在搜索文档集时添加条件,例如查询约束。系统或用户可指定文档集(可能经由查询),然后在该文档集中,软件可对类别进行分类、排序和执行其他处理。在一些实例中,应用公式来确定每一类别的重要性。

发明内容

通过提供一种计算机实现的方法,克服了现有技术的缺点并且提供了另外的优点。该方法接收用于查询整个文档集的文档的查询。整个文档集的文档偏离一个或多个方面值。该方法根据查询的查询文本生成多个不同的查询解释。该方法执行多个不同的查询解释以获得结果文档集。对于多个不同的可执行查询解释的每个不同的查询解释,执行(executing)执行查询解释以从整个文档集获得对应于该查询解释的结果文档集,并且识别在结果文档集中表示的方面值。该方法还构建查询改进界面并将其呈现给用户。查询改进界面呈现结果文档集的多个不同的查询解释和属性。另外,其对于一个或多个方面值中的每个方面值,并且相对于彼此,呈现结果文档集中的每个结果文档集中的方面值的方面值表示。

进一步,提供了一种计算机系统,该计算机系统包括存储器和与该存储器通信的处理器,其中该计算机系统被配置为执行一种方法。该方法接收用于查询整个文档集的文档的查询。整个文档集的文档偏离一个或多个方面值。该方法根据查询的查询文本生成多个不同的查询解释。该方法执行多个不同的查询解释以获得结果文档集。对于多个不同的可执行查询解释的每个不同的查询解释,执行执行查询解释以从整个文档集获得对应于该查询解释的结果文档集,并且识别在结果文档集中表示的方面值。该方法还构建查询改进界面并将其呈现给用户。查询改进界面呈现结果文档集的多个不同的查询解释和属性。另外,其对于一个或多个方面值中的每个方面值,并且相对于彼此,呈现结果文档集中的每个结果文档集中的方面值的方面值表示。

更进一步,提供一种计算机程序产品,其包括可由处理电路读取且存储用于由处理电路执行的指令的计算机可读存储介质,以用于执行一种方法。该方法接收用于查询整个文档集的文档的查询。整个文档集的文档偏离一个或多个方面值。该方法根据查询的查询文本生成多个不同的查询解释。该方法执行多个不同的查询解释以获得结果文档集。对于多个不同的可执行查询解释的每个不同的查询解释,执行执行查询解释以从整个文档集获得对应于该查询解释的结果文档集合,并且识别在结果文档集中表示的方面值。该方法还构建查询改进界面并将其呈现给用户。查询改进界面呈现结果文档集的多个不同的查询解释和属性。另外,其对于一个或多个方面值中的每个方面值,并且相对于彼此,呈现结果文档集中的每个结果文档集中的方面值的方面值表示。

通过在此描述的概念实现了另外的特征和优点。

附图说明

现在将仅通过举例并且参考以下附图来描述本发明的优选实施例:

图1描绘了基于方面的文本挖掘的示例;

图2A-2B描绘了根据本文描述的实施例的示例基于规则的查询扩展方面导航;

图2C-2D描绘了根据本文描述的实施例的用于方面导航的基于概念的查询修改的示例;

图3描绘了根据本文描述的实施例的用于多个查询解释上的方面导航的示例过程;

图4描绘了根据本文描述的实施例的示例查询改进界面;

图5描绘了根据本文描述的实施例的基于多个查询解释的基于方面的查询改进的示例过程;

图6描绘了并入和/或使用本文描述的实施例的计算机系统和相关联的设备的一个示例;

图7描绘了根据本发明的实施例的云计算环境;并且

图8描绘了根据本发明的实施例的抽象模型层。

具体实施方式

本文描述了基于多个查询解释的基于方面的查询改进。从初始查询生成不同的查询解释。执行不同的查询解释,确定关于方面/方面值的信息,并且应用改进以帮助基于方面的导航。

如上所述,方面是与文档(信息元素)相关联或包括在文档(信息元素)中的信息实体,并且其投影或表示文档的特征。根据允许方面搜索、导航和浏览的分类系统,文档跨多个方面被分类。术语“文档”用于指信息实体或挖掘单元,然而,应当理解,每个“文档”可从任何类型的数据产生。词语‘文档’不应被严格地解释为例如文字处理软件的数字文档(尽管此类文件可以是如本文中使用的“文档”的示例)。在信息元素意义上的文档例如可以指图像。在电子商务和产品空间中,一个数据库记录可以是如本文中使用的“文档”。文档数据库具有(几乎)无限灵活的结构,该结构提供了多个不同的功能关键区域,例如,它们可以是无模式的-文档数据库不必预先定义必须存储到数据库中的数据的结构。文档数据库可以存储任何信息。广泛使用的结构格式是JSON,来自JavaScript语言的对象符号格式,允许存储字符串、数字、阵列和记录(散列)数据以及那些核心类型的组合。

方面的值可被存储在文档的元数据中或与文档相关联的元数据中。这样的元数据的示例可以是文档的简单特征,诸如与文档相关联的位置(州、省)、名词、形容词或关键词,或者更复杂的特征,例如由文档传达的肯定或否定印象。基于方面的文本挖掘的过程是重复方面聚合、浏览方面、并且将作为表示指定方面值的文档集合的初始“文档集”改进成经改进的文档集。方面聚合可以指代将适合查询的所有结果文档分组到文档集中,对与文档集相关联的方面值进行计数,并且计算针对文档集的频率、相关性、同时出现和/或时间轴分析(作为示例)。在文档集改进中,对方面聚合的考虑导致基于例如添加附加关键字或方面条件作为约束或如本文所述的选择查询解释来提取经改进的文档集。作为重复的聚合和改进的结果,获取知识并发现新的发现。

图1描绘了基于方面的文本挖掘的示例。在图1中,每个点状圆圈表示包括特定事实或概念的文档集(文档的集合),也就是说,其中表示了特定的方面值。文档的全域被表示为集合D(“完整”文档集),包括由点状圆圈表示的所指出的文档集。尽管D内的文档组在图1中示出为相互排斥的,实际上,在D中的至少一些文档集之间可能存在一些重叠,例如,表示尺寸‘中’和‘颜色’绿色的产品的文档将出现在用于尺寸‘中’的产品的文档集和用于颜色‘绿色’的产品的文档集中。

这些图示出了两种改进。第一种是基于将三个文档集与文档集D隔离以形成文档集D’的一些约束或条件,来将文档集D改进成文档集D’。第二改进将D’改进成单个文档集,在该示例中,知识或发现结果。

通过具体实例,假设D是车辆事故记录的全域,并且第一查询是针对涉及绿色车辆的那些事故。“车辆颜色”是方面并且“绿色”是搜索初始文档集的方面的方面值。这导致对D’的三个文档集的改进。假设在涉及绿色车辆的所有事件中,基于年龄的方面在那些事件之间进行区分(表示为D’的三个不相交的文档集)——涉及20岁以下的驾驶员的事件、涉及20岁与70岁之间的驾驶员的事件以及涉及70岁以上的驾驶员的事件。第二改进——比如对涉及20岁以下驾驶员的那些事件的D’的查询——将D’改进成表示结果知识的单个文档集——涉及20岁以下绿色车辆和驾驶员的事件。

根据本文描述的实施例,过程接受查询字符串以查询整个文档集的文档,其中整个文档集的文档偏离一个或多个方面值。该过程以不同的方式解释查询,产生与查询的查询文本不同的查询解释,并且执行那些查询解释以获得结果文档集。‘结果文档集’是作为执行查询解释之一的结果返回的文档集。由此,对于每个不同的查询解释,执行执行查询解释以从整个文档集合(即,作为整体的子集)获得对应于该查询解释的结果文档集合。该过程识别结果文档集中表示的方面值。例如,对于每种解释,确定结果文档集,并且识别该结果文档集的文档中表示的方面值。该过程可以向用户显示界面,例如,该界面根据应用于从不同查询解释的结果文档集合提取的方面值的排序方法来排列或排序所表示的方面值。

由此,该排序可以根据至少一个方面值排序方法将方面值相对于彼此进行排序,并且该界面以这些方面值的排序次序,相对于其他方面值中的每一个,呈现结果文档集的每一个中的任何给定方面值的表示。在执行查询解释时,对于每个结果文档集,可以计数结果文档集中的文档的数目,并且对于每个方面值,可以确定该结果文档集中以及其中表示方面值的文档的数目。以下是一些示例排序方法。

一个示例排名方法是例如基于搜索结果文档的数量的解释优先化。如本文所描述的,可以不同的方式来解释查询。相应的不同结果文档集可相对于彼此进行排序。第一解释可以在结果文档集中递送1000个结果文档,第二解释可以在结果文档集中递送300个结果文档,并且第三解释可以在结果文档集中递送12个结果文档。这些解释可以相对于彼此进行排序,例如按照结果数量的升序进行排序。

其他示例排名方法考虑方面值分数。这种分数的示例是文档频率——特定方面值出现在结果文档集中的频率。一个方面值(例如,词语“认知”)可以比其他方面值(例如,词语“测验”和“比赛”)更频繁地出现。该分数可以是直观的,但是对于小的搜索结果文档集可能不是有用的。相关性是用于排序的另一方面值分数。相关性是指搜索结果文档集中的方面值对整个文档集的相对密度;跨方面值,那些方面值相对于整个文档集出现在结果文档集中的频率。这在以下参见图2D进一步详细描述。

方面值排序的一个示例基于跨不同查询解释的方面值的最大分数。对于给定方面值,每个查询解释将递送具有方面值由结果文档集中的文档表示的次数的结果文档集。每个结果文档集的次数可以彼此比较和排名。这在下面参考图2B进一步描述。

方面排名的表示可以任何期望的方式生效。在一个示例中(例如在图2B中看到的),累积条形图用于显示方面值,例如在来自不同解释的搜索结果文档集被包括地相关的情况下。额外地或备选地,当每个解释产生独立的搜索结果文档集时,可以使用直方图。

在解释查询时,在一些示例中,使用一组查询转换规则。通过将查询翻译规则的集合中的每个查询翻译规则应用于查询文本来生成不同的查询解释,该应用包括扩展、修改和/或变换查询。现在呈现用于基于规则的查询扩展的示例实现。

假设自然语言查询文本是“公司机器学习想法”。在该示例中,通过基于简单OR链接的(OR-concatenated)关键字逐步收紧条件来产生四个查询解释:

查询解释A:准确短语:“公司机器学习想法”。

查询解释B:部分名词短语:(公司AND“机器学习”AND想法)。

查询解释C:与(AND-ed)关键字:(公司AND想法AND机器AND学习)。

查询解释D:或(OR-ed)关键字:(公司OR想法OR机器OR学习)。

查询解释A可能返回没有结果或者对于有用挖掘而言太少的结果(例如,没有方面值,如果应用的话,将提供结果之间的进一步有用改进)。查询B可以返回适当大小的搜索结果文档集,并且包括诸如‘认知’、‘测验’和‘游戏’的出色的方面值(并且作为后续步骤,用户可以例如通过那些方面值中的一个或多个向下钻入文档集)。查询C可以返回大量搜索结果文档,但返回平坦的方面分布(意味着针对‘认知’、‘测验’和‘游戏’的相对相同的频率)。查询解释D是最广泛的,并且这个示例可能传递过大的文档集以至于不能传递附加值。

这些结果可以被呈现在查询改进界面中以供用户改进查询。例如,按钮或其他交互式界面方面元素可以被呈现给用户以供选择来选择通过其来改进初始文档集的解释中的一个(或多个)。可以个别地选择解释中的每一个,以将表示要被传达给用户的结果的当前文档集合缩窄到包括从执行所选择的查询解释获得的结果文档集的经改进的文档集合。

类似地,界面可额外地或替换地呈现用于单独地选择方面值中的一个或多个方面值以将当前文档集缩窄到包括其中表示了所选方面值的文档的改进的文档集的相应交互界面方面元素。

查询改进界面的进一步的细节在下文中参见图4来描述和描绘。根据本文描述的实施例,结合图2A-2B,结合示例基于规则的查询扩展方面导航,呈现了这样的改进界面的一些元素。

首先参见图2A并且使用以上示例查询(“公司机器学习想法”),W表示数据库的全文档集,即搜索全域中的所有文档的集合。D表示执行上述查询解释D(公司OR想法OR机器OR学习)的文结果档集。每个包括特定事实/方面的若干文档集由点状圆圈标识。C表示执行上述查询解释C(公司AND想法AND机器AND学习)的结果文档集。在结果文档集C内,在该集合的文档中表示若干不同方面值,在该示例中,如由至少部分地被集合C包围的5个点状圆圈所指示的5个不同方面值中的全部/一些的文档。

B表示执行以上查询解释B的结果文档集合(公司AND“机器学习”AND想法)。文档集合B是文档集合C的适当子集,因为查询B是查询C的特殊情况。A表示执行以上查询解释A的结果文档集合(“公司机器学习想法”)。

图2B给出了用于显示在结果文档集中存在的方面值的示例累积条形图。y轴针对方面‘名字’列出三个方面值:“认知”、“测验”和“游戏”。文档频率(x轴)指的是其中表示方面值的文档的数量。每个条202、204和206具有与以上示例中的四个不同的查询解释相关的组分段-干净、点状、单线影线和交叉影线,并且表示来自不同查询解释中的每一个的文档的累积。每个条的交叉影线部分表示在从执行查询D获得的结果文档集中表示相应方面值的频率。每个条的单线(对角线)影线部分表示在从执行查询C获得的结果文档集中表示相应方面值的频率。每个条的点状部分表示在从执行查询B获得的结果文档集中表示相应方面值的频率。每个条的干净(白色)部分表示在从执行查询A获得的结果文档集中表示相应方面值的频率。

由此,例如,如从条202所见,方面值“认知”(关键字)出现在从执行查询D递送的文档集的比从执行查询C、B和A递送的文档集的文档的数量更多的文档中。从执行查询B和C递送的文档集中的文档的数量在从运行查询B和C获得的文档集中的“认知”的频率方面大致相等。对于方面值“测验”,因为条204的单线阴影部分显著大于条204的其他段,来自查询C(单线影线部分)的文档频率远大于来自查询A、B和D的文档频率。在该特定示例中,通过累积文档频率的整体对方面值进行排序(在y轴上从上到下排序),意味着“认知”方面值的文档频率——“认知”在执行查询A至D中出现的总次数大于方面值“测验”在执行查询A至D中出现的总次数。就这一点而言,根据至少一个方面值排序方法(例如,这一示例中的文档频率)相对于彼此对方面值(“认知”、“测验”、“游戏”)进行排序。查询改进界面可以以方面值的排序顺序相对于方面值的每个其他方面值呈现每个结果文档集(即,跨解释)中的每个方面值的方面值表示(即,方面值的表示的测量--在该示例中为文档中的频率)。

现在呈现用于方面导航的基于概念的查询修改的示例实现。在该方法中,从简单的或链接的(OR-concatenated)查询开始,通过智能地提取类别或扩展关键字来生成不同的解释。

假设自然语言查询文本是“与自然语言处理相关的最突出的公司发明是什么?”。在该示例中,产生三个查询解释:

查询解释A:短语、词语w/类别:(“自然语言处理”OR“NLP”)AND类别:AI AND公司:公司。

查询解释B:提取的类别:公司:公司AND类别:AI。

查询解释C:OR-ed基本关键字:突出*OR公司OR发明OR语言OR处理。

如前所述,可以在查询改进界面内递送执行这些解释的结果以供用户改进查询。根据本文描述的实施例,结合用于方面导航的示例基于概念的查询修改,参考图2C-2D呈现示例界面元素。

首先参考图2C,W表示数据库的整个文档集,即.搜索所述全域中的所有文档的集合。C表示执行以上查询解释C得到的结果文档集(突出*OR公司OR发明OR语言OR处理)。B表示执行以上查询解释B(公司:公司AND类别:AI)得到的结果文档集,意味着搜索其中公司属性的方面值是公司的名称(“公司”)并且类别属性的方面值是人工智能或AI的文档。A表示执行以上查询解释A(公司:公司AND类别:AI)得到的结果文档集。如前所述,点状圆圈表示其中表示特定方面值的文档集。

图2D呈现了用于显示结果文档集中存在的方面值和相关性的示例条形图。y轴针对方面‘名词’列出两个方面值-“认知”和“游戏”。在这个示例中,每个方面值具有对应于三个查询解释的三个相关联的条。交叉影线条表示查询C,单线影线表示查询B,点状条表示查询A。方面值“认知”与条210、212、214相关联,并且方面值“游戏”与条216、218和220相关联。

每个条的大小是相关性(X轴)的度量,指的是结果文档集中的方面值相对于在整个文档集中表示的方面值的相对密度。参见图2D,查询解释B(条212)指示方面值“认知”的最高相关性,意味着在W中包括“认知”的所有文档中,由执行查询解释B产生的文档集与由执行查询解释A或C产生的文档集相比捕获最高数量的那些文档。查询解释A(点状条210)具有方面值“认知”的第二高相关性分数。关于方面值“游戏”,查询解释A具有最高的相关性分数,意味着解释A导致文档集,该文档集包括与从查询B或C得到的文档集相比更多百分比的具有“游戏”作为由文档表示/在文档中表示的方面值的文档。可见,相对于其他所确定的相关性分数,界面呈现每个这样的所确定的相关性分数的表示。

一些解释不是包容地相关的,因此与整个语料库的关联可能是有用的。词语‘游戏’可以是有用的,因为其相关性在本示例中对于查询A是最高的。同时,在没有重复查询执行试错的情况下,用户可以注意到组合查询B和词语‘认知’对于通过其相关值进行挖掘也是有用的。

在图2D中,通过最大相关性沿着y轴排序方面值“认知”和“游戏”。在方面值“认知”(条212)中看到的最大相关性分数高于在方面值“游戏”(条216)中看到的最大相关性分数。

因此,作为执行的一部分,并且对于方面值中的每个方面值和每个结果文档集,可确定相关性分数,该分数表示在结果文档集中表示的方面值(即,方面值在结果文档集的文档中的出现)相对于在整个文档集中表示的方面值(即,方面值在整个文档集的文档中的出现)的密度。

图3描绘了根据本文描述的实施例的用于在多个查询解释上进行方面导航的示例过程。该过程由一个或多个计算机系统(例如数据库系统或其组件)和/或与数据库通信的一个或多个其他计算机系统来执行。

该过程最初将‘当前文档集’设置为整个文档集、或将针对其执行初始查询的文档全域(302)。当前文档集是根据本文描述的用于基于方面的查询细化的实施例来改进的内容。该过程接受用户查询文本(304),该用户查询文本可以是由用户输入的文本或者可以是基于用户查询生成的文本(例如转录成文本的口头自然语言查询)。该过程经由查询扩展、修改和/或变换来生成对该初始查询的解释(306)。作为示例,这指的是对查询的词的移除、添加、或改变、概念变换,例如,通过语法改变、类别约束或在初始查询中表示的概念的引入或改变的方式。在经由概念信息描述查询修改的以上示例中,类别‘人工智能’(AI)被注入到解释A和B中。另一个示例是词语“计算机”到“系统”的改变。可以从应用于查询文本的查询翻译规则生成查询解释。

继续图3,该过程例如通过执行查询并评估结果来计算每个查询解释的结果文档集和方面值(在那些集中表示)(308)。该过程计算每个不同解释的结果文档集的方面值的分数(310)。在查询改进界面中将结果呈现给用户时,这些分数可能是有用的。例如,在构建界面时,该过程通过排序方法对方面值进行排序(312),并以查询改进界面的形式向用户返回解释和排序的方面值(314)。用户可以使用界面来选择用于改进的解释和/或方面值,如参见图5所解释的。该过程确定用户是否选择用于改进的解释和/或方面值。如果不是,(316,否),该过程结束。否则(316,是),用户选择改进初始查询,例如通过将查询改进为生成和执行的解释之一和/或通过改进为一个或多个选择的方面值。在这种情况下,该过程通过指定的条件(解释和/或方面值)来更新当前文档集(318)并返回到304。返回到304中,在一个示例中,用户可以键入或提供新的或经修改的查询,并且这是针对(现在改进的)当前文档集运行的,针对新的/经修改的查询重复图3的解释生成等。

由此,该过程可以对于初始查询进行304-316,并且对于新查询基于用户选择(i)查询解释和/或(ii)将整个文档集改进成改进的文档集的方面值,来迭代生成(306)、计算/排序(308-312)和呈现(314)。当迭代时,在重复中将改进的文档集用作整个文档集,在重复中使用的查询是新的查询,并且生成的不同查询解释是该新查询的查询文本的不同查询解释。新查询可以包括(i)由用户输入的另一查询和/或(ii)初始查询的修改的版本,该修改的版本是基于所选查询解释或方面值而生成的。

图4描绘了根据本文描述的实施例的示例查询改进界面。界面400呈现原始NLQ文本框402和对应的搜索按钮404以供用户输入自然语言查询。在可选方案中,用户指示转置到基于文本的输入查询中的查询。查询的用户输入可触发本文所述的动作,例如图3和/或图6的处理。在这个实例中,NLQ是“公司机器学习想法”(以上所描述的示例)。

在界面400中呈现所生成的解释406a(解释A)、406b(解释B)、406c(解释C)、406d(解释D)。紧挨着解释406a、406b和406c的是每个结果文档集中的文档的数量的指示-每个解释一个文档集。用户可以使用“添加至搜索”界面元素408a、408b、408c(在本示例中为按钮)来将查询分别改进成解释A、B或C,换言之,告诉系统在向用户传达查询结果时使用该解释。点击这些按钮之一是用户改进/缩小当前文档集(图3的316,是)以实现挖掘体验的示例选择。这类似于参见图1描述的从D到D’的改进。

界面400还呈现累积条形图,其在该示例中是图2B的累积条形图。方面值“认知”、“测验”和“比赛”按照文档频率递减的顺序从上到下排序,每个条指示每个文档集对方面值跨四个查询解释的所有结果文档集出现的总次数的贡献。

界面400为这些方面值中的每个方面值呈现各自的交互界面元素(按钮410a、410b、410c),用于单独地选择方面值中的每个方面值,以将其添加到搜索。选择方面值之一的添加至搜索按钮将当前文档集缩窄为包括在其中表示了所选方面值的文档的改进文档集。

界面400可被构建并呈现给用户。界面可以为每个解释呈现结果文档集的不同查询解释和属性(例如,每个结果文档集中命中/文档的数量))。此外,对于每个方面值,并且相对于彼此,它呈现每个结果文档集中的方面值的方面值表示。

图5描绘了根据本文所描述的实施例的用于基于多个查询解释的基于方面的查询改进的示例过程。在一些示例中,该过程由一个或多个计算机系统(诸如本文中描述的那些)执行,该计算机系统可包括一个或多个数据库系统、数据库、查询处理器和/或一个或多个其他计算机系统。

该过程开始于接收用于查询整个文档集的文档的查询(502)。整个文档集合的文档偏离一个或多个方面值,意味着文档中的至少一些文档关于它们包含、呈现、指示等的方面值而不同。作为一个示例,查询是由用户提交的自然语言查询。该过程从查询的查询文本生成多个不同的查询解释(504)。在一些示例中,该过程获得一组查询转换规则,并且通过将该组查询转换规则中的每个查询转换规则应用于查询文本来生成多个不同的查询解释。在该上下文中,应用查询转换规则集中的查询转换规则包括扩展、修改和/或变换查询。

该过程通过执行多个不同的查询解释以获得结果文档集来继续(506)。对于多个不同的可执行查询解释的每个不同的查询解释,执行执行查询解释以从整个文档集获得对应于该查询解释的结果文档集合,并且识别在结果文档集中表示的方面值。对于多个结果文档集中的每个结果文档集,执行可以计算在结果文档集中的文档的数量,以及对于一个或多个方面值中的每个方面值,计算满足以下条件的文档的数量:(i)文档出现在文档集中,以及(ii)方面值被表示在文档中。额外地或可替代地,该执行还可包括:针对一个或多个方面值中的每个方面值和多个结果文档集中的每个结果文档集,确定相关性分数,该相关性分数表示在结果文档集中表示的方面值相对于在整个文档集中表示的方面值的密度。相对于彼此,所确定的相关性分数的表示可以被呈现在查询改进界面中(例如在步骤510中)。使用执行的结果,该过程根据至少一个方面值排序方法将一个或多个方面值相对于彼此进行排序(508)。

该过程构建并向用户呈现查询改进界面(510)。查询改进界面呈现结果文档集的多个不同查询解释和属性,并且针对一个或多个方面值中的每个方面值并且相对于彼此,另外呈现结果文档集中的每个方面值中的方面值表示。查询改进界面能够以一个或多个方面值的排序的顺序,相对于一个或多个方面值的每个其他方面值,呈现每个结果文档集中的方面值的方面值表示。结果文档集的示例属性是多个结果文档集中的每个结果文档集中的文档的数目。

查询改进界面还可以呈现相应的交互界面元素,诸如按钮,供用户单独选择任意不同的查询解释以缩小当前文档集(其表示要被传达给用户的结果)到改进的文档集,该改进的文档集包括对应于所选查询解释的结果文档集。查询改进界面还可以呈现相应的交互界面元素,用于单独地选择一个或多个方面值中的每一个方面值以将当前文档集缩小为包括其中表示了所选的方面值的文档的改进的文档集。

如果需要,用户可以选择(一个或多个)细化。图5的过程确定是否选择了任何改进(512)。如果不是,(512,否),则过程结束。否则(512,是),用户已经选择了(一个或多个)细化。在这些示例中,查询是初始查询,并且过程返回到502以重复生成、执行、排序和构建和呈现,这可以基于用户选择(i)多个不同查询解释的查询解释,和/或(ii)一个或多个方面值中的方面值。这样的选择将整个文档集改进成改进的文档集合,其中改进的文档集合在重复中被用作整个文档集合,在重复中使用的查询是新的查询,并且所生成的多个不同的查询解释是对新查询的查询文本的不同的查询解释。新查询可包括例如(i)由用户输入的另一查询或(ii)初始查询的修改的版本,该修改的版本是基于所选查询解释或方面值而生成的。

虽然提供了不同示例,但是在不脱离所要求保护的方面的精神的情况下,变化是可能的。

本文所述的过程可由一个或多个计算机系统(诸如一个或多个数据库计算机系统和/或与一个或多个数据库通信的计算机系统)单独地或共同地执行。图6描绘并入和/或使用本文描述的方面的计算机系统和相关的设备的一个实例。计算机系统在本文中还可称为数据处理设备/系统、计算设备/系统/节点,或简称为计算机。作为实例,计算机系统可基于不同系统架构和/或指令集架构中的一个或多个,例如由国际商业机器公司(阿蒙克,纽约,美国)、英特尔公司(圣克拉拉,加利福尼亚,美国)或ARM Holdings plc(剑桥,英格兰,英国)提供的系统架构和/或指令集架构。

图6示出了与一个或多个外部设备612通信的计算机系统600。计算机系统600包括一个或多个处理器602,例如中央处理单元(CPU)。处理器可包括在指令的执行中使用的功能组件,诸如从诸如高速缓存或主存储器之类的位置获取程序指令、解码程序指令、以及执行程序指令、访问存储器以用于指令执行、以及写入已执行指令的结果的功能组件。处理器602还可以包括将由功能组件中的一个或多个使用的寄存器。计算机系统600还包括存储器604、输入/输出(I/O)设备608、以及I/O接口610,I/O接口610可以经由一个或多个总线和/或其他连接耦合到处理器602以及彼此耦合。总线连接表示若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)。

例如,存储器604可以是或包括用于执行程序指令主存储器或系统存储器(例如,随机存取存储器)、存储设备(例如,硬盘驱动器、闪存介质或光学介质)、和/或高速缓冲存储器。存储器604可包含(例如)高速缓冲存储器,例如共享高速缓冲存储器,其可耦合到处理器602的本地高速缓冲存储器(示例包含L1高速缓冲存储器、L2高速缓冲存储器等)。另外,存储器604可以是或包括具有程序模块、指令、代码等的集合(例如,至少一个)的至少一个计算机程序产品,其被配置为当由一个或多个处理器执行时执行本文描述的实施例的功能。

存储器604可存储操作系统605和其他计算机程序606,诸如执行以执行本文描述的各方面的一个或多个计算机程序/应用。具体地,程序/应用可以包括计算机可读程序指令,计算机可读程序指令可以被配置为执行本文描述的方面的实施例的功能。

I/O设备608的示例包括但不限于麦克风、扬声器、全球定位系统(GPS)设备、相机、灯、加速度计、陀螺仪、磁力计、被配置成感测光、邻近、心率、身体和/或环境温度、血压、和/或皮肤电阻的传感器设备、以及活动监测器。I/O设备可以并入如图所示的计算机系统中,但是在一些实施例中,I/O设备可以被视为通过一个或多个I/O接口610耦合到计算机系统的外部设备(612)。

计算机系统600可以经由一个或多个I/O接口610与一个或多个外部设备612通信。示例外部设备包括键盘、定点设备、显示器和/或使得用户能够与计算机系统600交互的任何其他设备。其他示例外部设备包括使计算机系统600能够与一个或多个其他计算系统或外围设备(诸如打印机)通信的任何设备。网络接口/适配器是使计算机系统600能够与一个或多个网络(诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网))通信、提供与其他计算设备或系统、存储设备等的通信的示例I/O接口。基于以太网的(诸如Wi-Fi)接口和

I/O接口610与外部设备612之间的通信可以跨有线和/或无线通信链路611(诸如基于以太网的有线或无线连接)发生。示例无线连接包括蜂窝、Wi-Fi、

具体的外部设备612可以包括一个或多个数据存储设备,其可以存储一个或多个程序、一个或多个计算机可读程序指令、和/或数据等。计算机系统600可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质,以及与可移动/不可移动、易失性/非易失性计算机系统存储介质通信(例如,作为计算机系统的外部设备)。例如,它可以包括和/或耦合到不可移动的非易失性磁介质(通常称为“硬盘驱动器”)、用于从一个可移除的非易失性的磁盘(例如,“软盘”)中读取和向其写入的磁盘驱动器、和/或用于从可移除的非易失性光盘(例如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。

计算机系统600可以与许多其他通用或专用计算系统环境或配置一起操作。计算机系统600可采取不同形式中的任意一种,其众所周知的示例包括但不限于个人计算机(PC)系统、服务器计算机系统(诸如消息收发服务器)、瘦客户端、胖客户端、工作站、膝上型计算机、手持式设备、移动设备/计算机(例如智能电话)、平板计算机、和可穿戴设备、多处理器系统、基于微处理器的系统、电话设备、网络设备(诸如边缘设备)、虚拟化设备、存储控制器、机顶盒、可编程消费电子、网络PC、小型计算机系统、大型计算机系统、和包括以上系统或设备中的任一个的分布式云计算环境等。

本文描述的方面可以被并入和/或使用云计算环境。应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境。而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现本发明的实施例。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。一个这样的节点是图7中描述的节点10。

计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。

现在参考图7,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个计算节点10,本地计算设备例如可以是智能电话或其他移动设备54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图7显示的各类计算设备54A-N仅仅是示意性的,计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图8,其中显示了云计算环境50(图6)提供的一组功能抽象层。首先应当理解,图8所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图8所示,提供下列层和对应功能:

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。

虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。

在一个示例中,管理层80可以提供下述功能:资源供应81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行85:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室教学提供93;数据分析处理94;交易处理95;以及查询改进96。

本发明可以是在任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

除上述之外,一个或多个方面可由提供客户环境管理的服务提供者提供、给予、部署、管理、服务等。例如,服务提供商可创建、维护、支持等为一个或多个客户执行一个或多个方面的计算机代码和/或计算机基础设施。作为回报,作为实例,服务提供商可根据订阅和/或费用协议从消费者接收支付。另外或替代地,服务提供商可以从对一个或多个第三方的广告内容销售接收支付。

在一个方面,可部署用于执行一个或多个实施例的应用。作为一个示例,应用的部署包括提供可操作用于执行一个或多个实施例的计算机基础设施。

作为又一方面,可部署计算基础架构,包括将计算机可读代码集成到计算系统中,其中与计算系统组合的代码能够执行一个或多个实施例。

作为又一方面,可提供一种用于集成计算基础结构的过程,包括将计算机可读代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。与计算机系统组合的代码能够执行一个或多个实施例。

尽管上面描述了各种实施例,但是这些仅是示例。例如,可以使用其他架构的计算环境来合并和使用一个或多个实施例。

本文使用的术语仅用于描述具体实施例的目的并且不旨在是限制性的。如在此使用的,单数形式“一个(a)”、“一个(an)”和“该(the)”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包括”时,其指定所表述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。

权利要求中的所有装置或步骤加功能元件(如果有的话)的相应结构、材料、动作和等效物旨在包括用于结合如具体要求保护的其他要求保护的元件来执行功能的任何结构、材料或动作。出于说明和描述的目的已经呈现了对一个或多个实施例的描述,但是并不旨在是详尽的或限于所公开的形式。许多修改和变化对本领域普通技术人员将是明显的。选择和描述实施例以便最好地解释各个方面和实际应用,并且使得本领域普通技术人员能够理解具有适合于所预期的特定用途的不同修改的不同实施例。

相关技术
  • 基于多个查询解释的基于方面的查询改进
  • 基于附近位置来解释用户查询
技术分类

06120112196904