专利名称:用于为一组搜索结果生成精细化类别的系统和方法
技术领域:
本发明一般涉及对搜索结果进行分类,并且,更具体地,涉及一种用于为一组搜索结果生成精细化(refinement)类别的系统和方法。
背景技术:
随着诸如因特网和万维网的分布式网络的爆炸式增长,有效搜索电子信息的能力已变得越来越重要。大多数基于web的搜索引擎(如GOOGLE)允许用户输入由关键字组成的查询,以搜索相关文档。不幸的是,典型的关键字搜索经常会生成由几万或几十万个“命中”(即,到包括所述关键字的网页的链接)组成的返回集。尽管大多数搜索引擎尝试首先显示最相关的文档,但不能保证搜索引擎所使用的算法将识别出对于用户而言是最相关的结果。
解决该问题的一种方法是提供允许用户进一步缩小返回集的范围的机制。例如,在1999年7月13日授予Krellenstein的美国专利5,924,090“Methodand Apparatus for searching a Database of Records”(在此通过引用而将其合并)中,根据各种元数据属性,将搜索结果组织为分级类别的可管理集(例如,8-10个)。随后,用户可通过选择类别而精细化(refine)搜索结果。不幸的是,在以上专利中,用于为最终用户生成类别的方法具有某些限制。具体地说,使用加权记分算法来选择类别,这经常使子(或孙(grandchild))类别沿着其父类别的一侧而显示。例如,对术语“盘驱动器”的搜索可发现父类别“硬件”连同子类别“个人计算机”、以及孙类别“PC外设”。由于用户仍必须遍历一些类别以找到最佳结果,因此这样的结果不能帮助用户缩小搜索结果的范围。
因而,需要一种可响应于向搜索引擎提交的查询而更有效地提供精细化类别的系统和方法。
发明内容
本发明通过提供一种用于为返回集中的一组搜索结果生成“精细化”类别的系统和方法,解决了上述问题以及其它问题。在第一方面中,本发明提供了一种用于响应于搜索查询而生成一组精细化类别的方法,其包括响应于查询而生成一组搜索结果;从每个搜索结果的类别的分级结构中识别至少一个类别;基于对于所述一组搜索结果而识别出类别的次数,而对每个识别出的类别进行排名;基于识别出的类别的排名,而选择初始一组精细化类别;从所述初始一组精细化类别中删除满足删除标准的所有类别;以及显示最终一组精细化类别。在第二方面中,本发明提供了一种用于为响应于搜索查询而生成的一组搜索结果提供一组精细化类别的系统,其包括类别识别器系统,其分析每个搜索结果,并从每个搜索结果的类别的分级结构中识别至少一个类别,由此提供识别出的类别的列表;排名系统,其对识别出的类别的列表中的每个类别进行排名;以及选择系统,其从识别出的类别的列表中选择预定数目的最高排名的类别,以生成一组精细化类别,其中,如果类别在所述一组精细化类别中具有父类别,则选择系统从所述一组精细化类别中删除该类别。
在第三方面中,本发明提供了一种存储在可记录介质上的程序产品,用于为响应于搜索查询而生成的一组搜索结果提供一组精细化类别,该程序产品包括用于从每个搜索结果的类别的分级结构中识别至少一个类别、由此提供识别出的类别的列表的组件;用于对识别出的类别的列表中的每个类别进行排名的组件;用于通过使用由排名组件确定的预定数目的最高排名的类别、而从识别出的类别的列表中选择一组精细化类别的组件;以及如果类别在所述一组精细化类别中具有分级祖先(ancester)类别、则从所述一组精细化类别中删除该类别的组件。
根据下面与附图相结合而对本发明的各个方面的详细描述,将会更容易地理解本发明的这些和其它特征,附图中图1示出了根据本发明的搜索精细化系统。
图2示出了根据本发明的一组搜索结果和一组精细化类别的示例屏幕截图。
具体实施例方式
现在参照附图,图1示出了搜索精细化系统10,其接收搜索查询30,并返回由返回集34(即,定位出的文档的列表)和一组精细化类别36组成的搜索输出32。如果用户需要缩小搜索的范围,则可将精细化类别选择38提交到搜索精细化系统10,以便精细化原始查询30。
图2示出了描绘这些特征的界面40的示例屏幕截图。界面40显示了对于所输入的查询“盘驱动器”46,返回盘驱动器相关搜索结果的列表42、以及下拉式对话框44中的一组精细化类别。对于此特定查询,搜索引擎12定位出113,453个文档。最终用户能够选择精细化类别中的一个,如“笔记本”,以进一步缩小该查询的范围,由此减小定位出的文档的数目。当最终用户选择了精细化类别时,精细化分析系统24(图1)使原始返回集34被过滤为仅包括属于所选类别(如“笔记本”)的文档。用于执行这样的过滤操作的机制在本领域中是公知的,因此不作更为详细的讨论。
如上所述,本发明解决了提供对于最终用户来说将是最有价值的有效精细化类别36的问题。图1的搜索精细化系统10示出了用于在将查询30提交到搜索引擎12时实现这样的结果的示例实施例。搜索引擎12可包括能够基于一些输入标准而定位结果14的任意类型的数据搜索系统。搜索引擎12可作为搜索精细化系统10的集成部分而本地化地驻留、或作为远程应用(例如,可通过web访问的应用,如GOOGLE)而驻留。典型地,结果14可包括文档及其在网络上的位置或地址的列表。结果14可包括任意形式的电子信息,其包括网页或其它标记语言文档、数据库条目、文件、文档、或任意其它类型的电子化存储的数据集等。
与每个结果14一起包括的可为一些附加信息,例如,进一步描述关于该结果的情况的元数据。例如,元数据可用于描述定位出的文档的主题、地理位置、行业等。此外,可将元数据组织为分级分类(taxonomy),例如宇宙/银河系/太阳系/地球/北美/美国/纽约/纽约市(NYC)。
在图1中示出的示例实施例中,类别识别器(identifier)系统16检查包含在每个结果14中的元数据,并将每个结果14识别或关联到一个或多个对应的分级类别。在以上例子中,识别出的类别可为被指示为分级结构中的最小粒度节点的纽约市。应当注意,对可在元数据中表示的分级结构的数目和/或大小没有限制。例如,一些分级结构可仅具有单个节点,而其它分级结构可具有几百或几千个节点。此外,一些节点可属于多个分级结构。
在例如未提供元数据的可替换实施例中,可使用除了元数据之外的一些手段来识别每个结果的分级类别。例如,类别识别器系统16可基于文档中的其它数据(例如,主标题或关键字的频率)的分析而分配类别。在2002年3月19日授予Aggrawal等人的美国专利第6,360,227号“System and Method forGenerating Taxonomies With Applications to Content-Based Recommendations”中教导了自动化的分类系统的示例实现,在此通过引用而将其合并。无论如何识别类别,均对每个结果14分配至少一个对应的分级类别。
在处理了所有结果14之后,类别识别器系统16输出识别出的类别的列表17(即,所有结果14的所有识别出的类别)。类别列表17中的类别的可能数目实质上是不被限制的,并且,例如,范围可从一到数千。因为该列表可能如此庞大,所以,典型地,必须将其减小到可对用户合理地显示的可管理的数目。选择系统18通过分析识别出的类别的列表17、并选择适当的一组精细化类别36,而提供此功能。为实现该功能,选择系统18包括排名系统20、以及类别上行(walk-up)系统22,其帮助从类别列表17中识别出最合适的精细化类别。
排名系统20对类别列表17中的每个类别进行排名。在一个实施例中,基于频率,即通过类别识别器系统16将该类别识别为与结果14相对应的次数,而对类别进行排名。换句话说,排名系统20检查每个类别,并确定有多少结果14属于每个类别。随后,从最高到最低(即,“排名次序”)而对每个类别进行排名。还可利用其它排名,如与感兴趣的用户特定简档(profile)的匹配度、或在预先指定的主题本体(ontology of subjects)中的位置。
作为假设例子,假定搜索引擎12返回100,000个结果,并且,类别识别器系统16识别出该100,000个结果的200个类别的列表。因为为最终用户显示显示200个类别对于精细化搜索来说将是不可行的方法,所以,必须选择200个之中的有限数目来显示。假定对200个类别排名如下,其中,类别“纽约市”由于被这100,000个搜索结果中的25,000个识别而具有最高排名
根据此排名,选择系统18将会选择初始一组N个最高排名类别,其中,N为适于显示的任意精细化类别数。由此,例如,如果N为6,那么,初始一组类别将包括纽约市、纽约、娱乐、建筑、银行业、以及博物馆。在一个简单的实施例中,可提供这些结果,作为最终一组精细化类别36。然而,本发明提供了类别上行系统22,其用于通过检查类别之间的分级关系,而进一步改善结果。
具体地说,一旦确定了初始一组类别,那么如果某个类别在初始集中具有分级的父或祖先类别,则类别上行系统22从该初始集中删除任何这样的类别。也就是说,在每个类别的分级结构内“上行”,以确定在初始集中是否存在更宽的类别。为了实现这一点,例如,通过将祖先分级结构与类别自身一起存储在文档内、或通过将分级信息存储在搜索精细化系统10内的其它地方,而使每个识别出的类别的祖先分级结构可用。例如,在上面提到过,在元数据分级结构“宇宙/银河系/太阳系/地球/北美/美国/纽约/纽约市”内表示纽约市。因而,由于纽约市的父类别(即,纽约)也在初始集中,所以,将从初始集中删除“纽约市”。类似地,假定在分级结构“娱乐/艺术和文化/博物馆”中存在类别“博物馆”,则同样地,由于“博物馆”的一个祖先类别(即,祖父类别)“娱乐”在初始集中,因此将删除“博物馆”。
应当理解,可同样地使用任意其它类型的删除标准来删除类别。例如,删除标准可基于初始一组精细化类别中的分类节点之间的其它分级关系。可替换地,删除标准可基于感兴趣的用户简档。
一旦删除了所有具有分级祖先类别的类别,那么,对于每一个被删除的类别,可将来自类别列表17的次高排名类别添加到初始集中。例如,在以上例子中,因为删除了两个类别,所以将添加次高排名类别,即“旅游”和“进口/出口”。可再次对新的一组精细化类别检查分级祖先类别,并且可重复删除和添加类别的过程,直到在初始集中没有类别具有分级祖先类别为止。
最后,在不需要进一步的替换之后,可将补充类别(例如,“其它(Other)”)附加到该列表中,以创建最终一组精细化类别36。类别“其它”提供对未在所述一组精细化类别36中列出的所有其它类别的访问。
下面提供了用于实现本发明的示例算法,其包括用于在用户选择了补充类别“其它”时选择类别的算法。
I.按照频率进行初始类别选择1.决定要显示多少类别——在下面以d表示。
2.从最大频率开始以降序来按照频率对类别列表进行排序。
3.如果小于或等于d个类别,则转到步骤8。
4.选择最高的d-1个类别。
5.从该选择中去除所有子(孙等)类别。
6.如果当前选择具有d-1个类别,则前进到下一个步骤。否则,从所排名的列表中添加类别,并转到步骤5。
7.附加被称为“其它”的类别。
8.显示该选择。
II.确定“其它”中的类别1.当选择了类别“其它”时,使用相同的查询执行新搜索,但是排除了先前的类别列表及其子类别(孙类别等)。
2.从当前的类别列表中去除所有子类别(孙类别等)。
3.如果其数目小于d,则转到步骤6。
4.取第一个类别,如果它不是根节点,则添加其父类别、并从当前列表中去除该子类别,否则5、从整个列表中去除所有子类别,转到步骤3。
6.显示该选择。
显然,可利用以上算法的大量变种。并且,所述变种被认为落入在本发明的范围内。
应当理解,可以硬件、软件、或硬件和软件的组合来实现这里描述的系统、功能、机制、方法、以及模块。可通过被适配成执行这里描述的方法的任意类型的计算机系统或其它设备来实现它们。硬件和软件的典型组合可为通用计算机系统,其具有计算机程序,该程序在被加载和执行时控制计算机系统,使其执行这里描述的方法。可替换地,可利用包含用于执行本发明的一个或多个功能任务的专用硬件的专用计算机。还可将本发明嵌入在计算机程序产品中,该产品包括能够实现这里描述的方法和功能的所有特征,并且,该产品在被加载到计算机系统中时能够执行这些方法和功能。本上下文中的计算机程序、软件程序、程序、程序产品、或软件意味着采用任意语言、代码或表示法的对一组指令的任意表达,所述指令意图使具有信息处理能力的系统直接地或在以下操作中的一个或全部之后执行特定功能,所述操作即(a)转换为另一种语言、代码或表示法;以及/或者,以不同的资料形式(materialform)再现。
为了说明和描述的目的,提供了本发明的优选实施例的以上描述。它们不意图是穷举性的、或将本发明限制为所公开的确切形式,并且,显然地,根据以上教导,很多修改和变化是可能的。对于本领域的技术人员来说显而易见的这样的修改和变化意图包括在由所附权利要求限定的本发明的范围内。
权利要求
1.一种用于响应于搜索查询而生成一组类别的方法,其包括响应于查询而生成一组搜索结果;从每个搜索结果的类别的分级结构中识别至少一个类别;基于对于所述一组搜索结果而识别出类别的次数,而对每个识别出的类别进行排名;基于识别出的类别的排名,而选择初始一组精细化类别;从所述初始一组精细化类别中删除满足删除标准的所有类别;以及显示最终一组精细化类别。
2.如权利要求1所述的方法,其中,识别步骤包括以下步骤检查每个搜索结果中的元数据。
3.如权利要求1所述的方法,其中,初始一组精细化类别少于在识别步骤中识别出的类别的总数。
4.如权利要求1所述的方法,其中,初始一组精细化类别包括预定数目的最频繁识别出的类别。
5.如权利要求1所述的方法,其中,删除步骤还包括从初始一组精细化类别中删除在初始一组精细化类别中具有分级祖先类别的所有类别。
6.如权利要求1所述的方法,其中,在删除步骤之后,对于在删除步骤期间删除的每个类别,将不在初始一组精细化类别中的新类别添加到最终一组精细化类别中。
7.如权利要求6所述的方法,其中,新类别为次高排名类别。
8.如权利要求1所述的方法,其中,最终一组精细化类别包括补充类别,其提供对不在最终一组精细化类别中的识别出的类别的访问。
9.如权利要求1所述的方法,还包括以下步骤提供允许最终用户从最终一组精细化类别中选择类别、以便缩小搜索查询的范围的界面。
10.如权利要求1所述的方法,其中,删除标准删除在一组精细化类别中具有分级父类别的类别。
11.如权利要求1所述的方法,其中,删除标准基于初始一组精细化类别中的分类节点之间的分级关系。
12.如权利要求1所述的方法,其中,删除标准基于感兴趣的用户简档。
13.如权利要求1所述的方法,其中,识别步骤包括以下步骤使用自动分类系统来确定文档所属类别。
14.一种用于为响应于搜索查询而生成的一组搜索结果提供一组精细化类别的系统,其包括类别识别器系统,其分析每个搜索结果,并从每个搜索结果的类别的分级结构中识别至少一个类别,由此提供识别出的类别的列表;排名系统,其对识别出的类别的列表中的每个类别进行排名;以及选择系统,其从识别出的类别的列表中选择预定数目的最高排名类别,以生成一组精细化类别,其中,如果类别在所述一组精细化类别中具有父类别,则选择系统从所述一组精细化类别中删除该类别。
15.如权利要求14所述的系统,其中,类别识别器系统分析来自每个搜索结果的元数据,以识别搜索结果的至少一个类别。
16.如权利要求14所述的系统,其中,选择系统所使用的预定数目的最高排名类别少于识别出的类别的总数。
17.如权利要求14所述的系统,其中,对于由选择系统删除的每个类别,选择系统将次高排名类别添加到所述一组精细化类别中。
18.如权利要求14所述的系统,其中,所述一组精细化类别还包括补充类别,其提供对未包括在所述一组精细化类别中的识别出的类别的访问。
19.如权利要求14所述的系统,其中,如果类别在所述一组精细化类别中具有祖先类别,则选择系统从所述一组精细化类别中删除该类别。
20.如权利要求14所述的系统,还包括允许最终用户从所述一组精细化类别中选择类别、以便进一步精细化搜索查询的界面。
21.如权利要求14所述的系统,其中,排名系统基于由类别识别器系统对于所有搜索结果而识别出类别的次数,而对每个类别进行排名。
22.一种存储在可记录介质上的程序产品,用于为响应于搜索查询而生成的一组搜索结果提供一组精细化类别,该程序产品包括用于从每个搜索结果的类别的分级结构中识别至少一个类别、由此提供识别出的类别的列表的组件;用于对识别出的类别的列表中的每个类别进行排名的组件;用于通过使用由排名组件确定的预定数目的最高排名类别、而从识别出的类别的列表中选择一组精细化类别的组件;以及如果类别在所述一组精细化类别中具有分级祖先类别、则从所述一组精细化类别中删除该类别的组件。
23.如权利要求22所述的程序产品,其中,识别组件分析包含在每个搜索结果中的元数据,以识别搜索结果的至少一个类别。
24.如权利要求22所述的程序产品,其中,用于选择的组件所使用的预定数目的最高排名类别少于识别出的类别的总数。
25.如权利要求22所述的程序产品,还包括对于每个删除的类别、将次高排名类别添加到所述一组精细化类别中的组件。
26.如权利要求22所述的程序产品,其中,所述一组精细化类别还包括补充类别,其提供对未包括在所述一组精细化类别中的识别出的类别的访问。
27.如权利要求22所述的程序产品,还包括界面组件,用于允许最终用户从所述一组精细化类别中选择类别,以便进一步精细化搜索查询。
28.如权利要求22所述的程序产品,其中,用于排名的组件基于由类别识别器系统对于所有搜索结果而识别出类别的次数,而对每个类别进行排名。
全文摘要
一种用于为响应于搜索查询而生成的一组搜索结果提供一组精细化类别的系统和方法,该系统包括类别识别器系统,其分析每个搜索结果,并从每个搜索结果的类别的分级结构中识别至少一个类别,由此提供识别出的类别的列表;排名系统,其对识别出的类别的列表中的每个类别进行排名;以及选择系统,其从识别出的类别的列表中选择预定数目的最高排名类别,以生成一组精细化类别,其中,如果类别在所述一组精细化类别中具有父类别,则选择系统从所述一组精细化类别中删除该类别。
文档编号G06F7/00GK1781100SQ200480011543
公开日2006年5月31日 申请日期2004年4月1日 优先权日2003年4月29日
发明者亚历山大·霍尔特, 迈克尔·莫兰, 帕特·维尔德曼, 斯蒂芬·盖茨 申请人:国际商业机器公司