具体实施方式
现参考附图描述本发明,其中类似的参考标号用于指各图中类似的元件。在下述中,为解释的目的,列出诸多具体细节,以提供对本发明的透彻理解。然而很明显,本发明可不用这些具体细节来实现。在另外例子中,以框图形式示出众知的结构和设备,以便于描述本发明。
本申请使用的术语“组件”、“处理程序”、“模型”、“系统”等指的是计算机有关的实体,可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件能是,但不限于,在处理器上运行的进程、处理器、对象、可执行代码、程序、和/或计算机。作为说明,在服务器上运行的应用程序和服务器均能是组件。一个或多个组件能驻留在执行的进程和/或线程中,且一个组件能位于一个计算机上和/或在两个或多个计算机之间分布。而且,这些组件能从其上存储有各种数据结构的各种计算机可读介质执行。组件能通过本地和/或远程进程,如按照具有一个或多个数据分组的信号进行通信(如,来自一个组件的数据与在本地系统、分布式系统、和/或经由如因特网的网络与其它系统通过信号交互)。
现转向图1,示出系统100,它便于在给定用户搜索查询后确定用户的意向。系统100包括搜索引擎102,它接收查询,并用于按照那个查询在数据存储104中搜索对象。搜索引擎102能采用任何合适的搜索算法来定位、分级、和检索驻留在数据存储104中的对象。此外,搜索引擎102能用于任何合适的搜索。例如,搜索引擎102能如在通常因特网上搜索那样完成文本搜索。然而,也能采用搜索引擎102将颜色方案用于搜索图像集合、将声音字节用于搜索特定声音、或用户希望搜索的任何其它合适对象。此外,由搜索引擎102接收的查询不限于文本串。例如,查询能是声音或声音序列、形状、彩色图案等。
在接收查询之后,搜索引擎102搜索在数据存储104中的对象集合,并按照该查询检索对象。按本发明的一方面,数据存储104能驻留在服务器上,并包括能驻留在因特网和/或内联网上的多个网页或其它文档。此外,数据存储104能驻留在个人计算机(如客户机)的硬盘驱动器和/或存储器中。应该理解,数据存储104和在那样数据存储104中的对象不限于驻留在因特网和/或内联网上的网页。数据存储104(或单独的数据存储、搜索引擎102,…)可使在数据存储中的对象与先前用于检索这类对象的查询相关。例如,在数据存储104中的对象1先前已由搜索引擎102结合查询Q1、Q2和Q4被定位。类似地,在数据存储104中的对象2先前已由搜索引擎102结合查询Q2、Q5和Q8被定位。由搜索引擎接收的查询常常是规定不足的,因而导致返回大量与用户试图寻找的对象无关的对象。本发明通过利用先前用于定位数据存储104中的对象的各异的查询,按接收的查询划分结果组。
更具体地而言,给定特定查询后,搜索引擎102检索存在于数据存储104中的多个对象(初始返回组),其中对象与先前用于定位那些对象的查询相关联。在初始返回组中有至少一个由将查询输入到搜索引擎102的用户希望审阅的对象(如,用户试图定位那些对象但不生成具体的足够查询)。搜索引擎102与关系计算器106关联,后者基于与数据存储104中的对象相关联的查询的返回组将初始返回组划分成多个返回组。关系计算器106本质上审阅与初始返回组中的对象相关联的每个查询(与每个查询相关联的返回组),并确定在初始查询和先前用于定位初始返回组中对象的查询之间的关系的等级。然后,关系计算器106能确定用户在定位一个或多个对象时发现有用的多个查询。与初始返回组高度相关又产生各异的对象的查询通过显示108返回给用户。例如,按照由搜索引擎102给定的分级返回最初多个对象中基本上等同的对象的查询是高度相关的,但是不产生新的结果。在更具体例子中,初始查询是“fly fishing(飞鱼)”。一个相关的查询是“fly&fishing(飞行和捕鱼)”,但是例如,基本相似的对象在结果的第一页返回。因此,关系计算器106不将那个查询返回给用户,因为查询将产生基本相似的结果。同样,导致返回几乎无关的对象的查询将不返回给用户,因为关系计算器106确定,那个查询几乎不相关。对一具体例子,指向“跳舞”的对象包括有关“飞鱼”的一小段。然而,大多数关于该对象的查询应返回许多关于“跳舞”而不是关于“飞鱼”的对象。由此,关系计算器106确定在初始查询和与通过初查询返回的对象相关联的查询之间的相关度级别,并向用户返回与有关对象及新的对象相关联的查询。
在一具体例子中,Q是一组查询,它们先前由搜索引擎102用于在数据存储104或其它类似数据存储中搜索对象方面,而q是由用户输入到搜索引擎102的查询。D是位于数据存储104中的一组对象,而d是用户试图通过查询q寻找的具体对象。R可定义成在Q×D上的二元关系,其中,当且仅当d在查询q的返回组中时,qRd。因此,给定查询q,关系计算器106可定位所有查询q′,使得
(qRd∧q′Rd)。更具体地而言,关系计算器106确定返回组(R
-1оR)[q]。然而可以理解,依照本发明,能定位并显示此结果组之外的查询。例如,能在本发明中采用查询相关度的不同测量。在大多数情况下,对规定不足的查询,返回组(R
-1оR)[q]特别大(如,规定不足的查询能具有数以千计的相关查询)。因为不可能向用户呈现数以千计的查询,关系计算器106能采用各种算法来测量初始查询q和返回组(R
-1оR)[q]中的各查询之间的相关度。按本发明的一个方面,关系计算器106能采用算法
且随后按照‖q,q′‖排序一组相关的查询,并向用户返回排在最前的若干查询。
按本发明的一方面,能结合计算距离度量‖q,q′‖考虑相对分级。例如,对两个查询q和q′返回对象d的位置能结合计算距离度量来考虑。更具体而言,与当对象d是对两个查询q和q′的一个或多个返回的第100个结果时相比,当对象d是对两个查询q和q′的每一个返回的第一个结果时,能各异常地计算距离度量。例如,能如下计算距离度量:
其中,w是对一对象的与查询无关的加权函数(如对象的PageRank(页面等级))。只要w的范围为正,上述定义的函数是距离度量。然而,可以理解,为了本发明的一个或多个方面能有效地操作,不需要考虑相对分级。
然而,通常按距离度量‖q,q′‖排序的一组相关查询与初始查询太相似,很难使用户得益(如,查询将返回与通过初始查询返回的对象基本上相似的对象)。因此,能采用修改的最大边缘相关性(MMR)方案或其它合适的相关性方案来寻找那些查询,它们返回相关的对象,但不返回与初始查询的结果组比较基本相似的对象。能由关系计算器106采用修改的MMR方案来返回带有对用户既相关又是原始的结果组的查询。更具体地而言,修改的MMR方案能由关系计算器106用于向用户提供各查询q′,它们具有与初始查询q的结果组相关,但相对于初始查询和先前已返回的其它查询是新的结果组。按本发明的一方面,关系计算器106能利用下述算法来确定对查询组Q中的查询的关系测量:
其中λ是先前建立的内插因子,q是初始查询,q′是与初始查询q有关但不同于已返回的其它查询q″的查询。查询q′从未返回的查询表达式中取出,而q″从先前返回的组中取出。然后能按照关系测量叠代地选择查询。上述等式基于MMR方案,它最初被引入来将文档以纯信息的检索设置分级,其中返回的文档同时为相关和原始的。说明文档和查询之间相似性的相似性度量Sq,和说明文档和其它文档之间相似性的相似性度量Sd与传统方案一起被采用。然后按下述加权叠代地选择文档:
其中,D是尚未返回的对象组,D′是已经返回的对象组。如修改的MMR方案那样,λ是先前已选择的内插因子。此算法选择对象d,它最大地相似于查询q,并同时最大地不同于先前返回的其它文档d′。例如当λ=1时,分级简单地按照对象d和查询q之间的相似性。当λ=0时,算法企图产生与查询q无关的最大不同的结果。修改的MMR方案是由于发明者的实践引伸出来的,即先前产生的查询能帮助用户定位用户试图寻找的对象。
在关系计算器106索引相关但新的查询(相对于返回的对象)之后,那些查询能通过显示108传达给用户。因此,例如,能向用户显示有关初始查询的多个查询,它们能帮助用户定位用户试图寻找的对象。此外,基于初始查询检索的整数个对象能返回给用户,使用户能在未对查询规定不足的情况下审阅那些对象。
虽然本发明能帮助利用规定不足查询的用户,可以理解,本发明还能用来帮助将任何合适的感兴趣的合适的查询传达给搜索引擎102的一个或多个用户。此外,本发明能用于帮助用户偶然地定位信息。例如,用户可提供一般的查询,而本发明能返回略为涉及该查询的信息。更具体地而言,用户可向搜索引擎102输入查询“蜜月”,并能按照该查询定位数据存储104中的对象的返回组。随后能采用关系计算器106来定位不必比初始查询“蜜月”更具体但仍相关的查询(如,偶然地相关)。例如,查询“护照申请”可以是基于初始输入的查询“蜜月”返回给用户的查询。通过要求在初始查询和所考虑的查询的返回组之间的更少的重叠,这是可能的。例如,来自查询“蜜月”的返回组在与查询“蜜月套装”的返回组比较时,与查询“护照申请”的返回组有更少重叠。在查询的返回组之间更多重叠导致返回更相似且更不偶然的查询;在询问的返回组之间更少重叠导致返回更偶然且更不相似的查询。按本发明的一方面,能提供一组件(未示出),它使用户能选择在返回组之间的重叠程度。此外,在返回组之间的重叠程度能至少部分地基于用户身份、用户状态、和用户环境的一个或多个来自动地指定。
现转向图2,示出便于搜索对象集合的系统200。系统200利用由用户提供的初始查询,并定位先前生成的查询(如通过不同的用户),它们关系到初始查询,并不返回与采用初始查询时返回的那些对象基本上相似的对象。搜索引擎202接收初始查询,并利用此查询搜索数据存储204中的多个文档。搜索引擎202能采用关于定位和返回数据存储204中的对象的多种算法。例如,搜索引擎202能完成文本搜索(如,基于对象中的元标签(meta tag)、文本等返回对象)、至少部分地根据群集的搜索等。数据存储204包括能通过搜索引擎检索的多个对象,且每个对象与先前由搜索引擎202用来定位那些对象的一个或多个查询相关联。例如,在采用查询Q1、Q2和Q4时,搜索引擎202先前已检索了对象1。虽然与对象关联的查询被示作在数据存储204内,可以理解,那样的查询可驻留任何地方。例如,搜索引擎202本身能保留查询和通过该查询检索的对象名(如URL)的列表。类似地,搜索引擎202能保留先前检索的对象和用于检索那些对象的查询的列表。此外,对象和查询的列表能通过散列或其它类似技术来浓缩。
在接收查询后,搜索引擎202按照此查询定位数据存储204中的多个对象。搜索引擎202能包括分级组件206,用于按照那些对象与查询的相关性来分级返回的对象。然而,在查询规定不足的情况下,被发现为与该查询相关的数以千计的对象会返回给用户,且由分级组件分级。此外,当能定位和返回数以千计的对象时,还存在先前用于定位那些对象的大量查询。然而,对每个返回的对象审阅每个查询,以确定与初始查询的相关度需要很大的计算量。能提供过滤组件208,以减少要考虑的对象的数目。例如,过滤组件能过滤掉未由分级组件206分级为前20个对象之一的对象。此外,能采用过滤组件208去除对应于所返回的对象的重复查询。例如,若搜索引擎202返回与先前查询Q1、Q2和Q4关联的对象1,以及与查询Q1、Q2和Q8关联的对象3,则过滤组件208能确保查询Q1和Q2不被考虑两次(或两次以上)。
搜索引擎202还包括关系计算器210,它确定初始查询和先前由搜索引擎202利用的查询之间的相关度等级。例如,若初始查询从数据存储204返回对象1,则关系计算器210能确定初始查询和查询1、查询2、及查询3之间的相关度等级。关系计算器210还能确定先前由搜索引擎202采用的各异查询(如查询Q1、Q2、…)之间的相关度等级。例如,关系计算器210能确定查询Q1和Q2之间的相关度等级。当查询Q1和Q2返回基本上类似的文档时,这是有益的,但对于用户要显示Q1和Q2两者,则是无益的。按本发明的一方面,关系计算器210能确定初始查询和先前利用的查询之间的距离度量,且关系计算器能采用关于修改的MMR算法的距离度量,以确定哪个先前的查询既与初始查询相关,又与包括新对象的返回组关联。更具体地而言,提供与一返回组关联的查询,而该返回组基本上类似于与初始查询关联的返回组,这将无助于用户按其意向定位对象。相反,向用户提供重复的信息,从而妨碍用户的搜索。
在关系计算器210定位了与初始查询相关并与新的返回组关联的多个查询之后,过滤组件208能减少与该查询关联的对象的数量。例如,能采用过滤组件208,以只允许显示与查询关联的返回组中的等级较高的对象(如,将返回5个等级最高的对象)。此外,也能使用过滤组件208从与返回的查询关联的返回组中去除一些对象,其中这些对象也在初始查询或其它查询的返回组中。例如,初始查询的返回组包括对象1,而Q1被发现与初始查询高度相关。因为查询Q1先前被用于定位对象1,对象1驻留在初始查询的返回组及查询Q1的返回组中。过滤组件208可用于从与Q1关联的结果组中去除对象1,从而确保用户不会接收重复的对象。此外,能利用过滤组件208去除词法上类似于初始查询的查询。例如,能舍弃其字仅是初始查询的字的置换的查询。这些词法上相似的查询能被关系计算器210分级较高,但与初始查询及词法上相似的查询关联的返回组基本相似,从而未给用户提供新的信息。
按本发明的另一方面,过滤组件208能将看似为到特定对象的路径的查询不予考虑。例如,在因特网的环境下,将所有包括串“www.”、“.com”、“.net”、“.org”等的查询不予考虑,因为认为那些查询被错误地放在搜索引擎查询框中,而不是游览器的地址栏中。与这些串关联的返回组一般不与用户的意向密切相关,且给出特定对象的URL、路径、或其它类似的标识记号能引起用户混淆。过滤组件208也能用来去除不以所希望的语言出现的查询。例如,去除所有与涉及包括不可打印的ASCII字符的初始查询的返回组中的对象相关联的查询。此外,能去除至少不与初始查询一样长(以字数计算)的相关查询,以确保相关查询的结果组比涉及初始查询的结果组更受关注。
一旦关系计算器210和过滤组件208完成它们的操作,涉及初始查询但提供新的结果(如当比较特定数目的最高等级对象时)的多个查询能通过显示器212或能传达那些查询的其它合适设备提交给用户。随后,用户能审阅与一个或多个与用户的意向一致的查询相关联的结果。在一特定例子中,假设用户对能用于飞鱼的特定诱饵感兴趣,但不知道那个诱饵的名称。于是用于键入初始查询“飞鱼”,它返回大量对象,用户通过首先定位诱饵加以语法分析。然而,利用系统200能给用户提供如“飞鱼诱饵”那样的相关查询,从而匹配了他的意向。
现参考图3,示出当用户在大量对象中搜索时帮助用户的系统300。系统300利用查询和与该查询关联的结果组来定位先前采用的相关查询。相关查询与一结果组关联,而后者与初始查询的结果组相关,但不是基本上与其相似。系统300包括接收查询的搜索引擎302。搜索引擎302搜索包括多个对象(如文档、声音文件、图像、网页、…)的数据存储304,其中,搜索至少部分地基于接收的查询。数据存储304中的每个对象与先前用来定位那些对象的查询关联。例如,查询Q5先前由搜索引擎302利用,其中,该查询的使用导致返回对象4。对象和查询的此类关联存储在数据存储304中、在搜索引擎302中、或任何其它合适的存储位置中。
搜索引擎302包括分级组件306,它对通过搜索引擎302按照查询定位的对象分级。任何合适的分级算法和/或方法能用于本发明。按本发明的一方面,能限制与查询关联的返回组中结果的数量。例如,在结果组中只能包括20个最高等级的对象,且只能审阅与这20个对象关联的查询,以确定那些查询与由搜索引擎302接收的初始查询的相关度。然而可以理解,任何合适数目的对象能包括在结果组中,而20仅是例示本发明一个方面的示例数目。
搜索引擎302还包括关系计算器308,用于审阅与返回组中的对象关联的查询,并向用户返回具有与通过初始查询获得的结果组基本上不同的结果组的相关查询。按本发明的一方面,能采用距离度量及修改的MMR算法以定位既有关又与新的结果组关联的查询。搜索引擎302也可包括使用户能够关于那个特定用户的操作与搜索引擎302通信的反馈组件310。例如,用户能通知搜索引擎302,对特定查询不感兴趣,且不应向用户返回那样的查询。此外,能采用反馈组件310来澄清在搜索方面引起的不确定性。例如,查询“rock”能表示特定类型的音乐以及具体的岩石结构。用户能通知反馈组件310,他对音乐感兴趣而在有关的查询中不必返回关于岩石结构的查询。此外,能采用反馈组件310来管理包括在结果组中结果的数量、返回给用户的查询的数量、查询和结果的显示格式等。因此,反馈组件310允许用户定制系统300,以便按用户的偏爱运作。
系统300还能与用户概况312相关联,进一步按照用户的偏爱定制系统300。用户概况312能存储传达给反馈组件310的信息,其中那样的用户概况能被访问而不管用户采用的设备是什么。例如,用户能在他的居处的台式计算机上创建该用户的概况。然而用户概况312不局限在特定的台式计算机上。相反,用户能在各异的终端(如PDA、或各种计算机、蜂窝电话…)访问那样的用户概况。此外,用户概况312能包括在预定时间段跟踪用户搜索的历史组件。因此,若用户在搜索中间被打断,用户能使用用户概况312在晚些时候访问该搜索。
搜索引擎302还能与人工智能组件314关联,后者能至少部分地根据用户的状态、用户的历史、和用户的情况推断向用户返回哪些查询。这里使用的术语“推断”一般指从通过事件和/或数据捕捉到的一组观察推理或推论系统、环境、和/或用户的状态的过程。例如,能采用推断来标识特定的环境或活动,或能生成条件状态的概率分布。推断能是概率的,即基于数据和事件的考虑对感兴趣的各状态上概率分布的计算。推断也能指用于从一组事件和/或数据组成高级事件的技术。那样的推断导致从一组观察的事件和/或存储的事件数据构建新的事件或活动,而不管那些事件是否在相邻的时间上相关,也不管那些事件和数据是否来自一个或若干事件和数据源。各种分类方案和/或系统(如支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据合成引擎等)能用于关于本发明的自动和/或推理的行动。
从而,人工智能组件314能观察用户并在给定特定用户状态和情况时随时间推移“学习”用户的希望。例如,用户通常希望在一天的特定时刻和/或当用户处在特定位置时审阅某些类型的对象。人工智能组件314能从各种传感器316接收数据(如一天的某时刻、用户的位置、温度、…),并利用那样的数据执行合适的推断。例如,使用PDA的用户能输入查询“skiing”到搜索引擎302。传感器316(如GPS传感器)能确定,用户在科罗拉多州的山上,温度较低、一年的这一时间对应于滑雪的季节。于是,人工智能组件314能推断,关于滑水的查询不应返回给用户。在另外例子中,用户通常在星期六下午3:00执行交易事务搜索(如搜索购买和/或售出物品)。人工智能组件314能利用那样信息为用户提供关于初始查询的最优查询。此外,人工智能组件314能采用成本/收益分析,通知关系计算器308向用户返回哪些查询。具体说来,人工智能组件314能在通知关系计算器308应在其它查询上选择特定查询所得到的收益,与让关系计算器308去除所希望的查询的成本之间作出平衡。在定位既与初始查询相关又与基本上不同于初始查询的结果组的结果组关联的多个查询之后,那些查询能通过显示318返回给用户。
现转向图4,示出给定特定查询便于确定用户意向的系统400。通常,用户向搜索引擎提供规定不足的查询,因而使得难以确定用户试图定位什么。系统400利用先前用于在与规定不足的查询关联的返回组中定位对象的查询。更具体地,系统400包括向其提供查询的搜索引擎402。查询始发于用户、文本提取程序、或能生成查询的任何其它合适机制。搜索引擎402利用此查询定位数据存储404中的一个或多个对象,其中这些对象与先前由搜索引擎402用于定位这些对象的查询关联。例如,先前采用Q1、Q2和Q4定位对象1。在按该查询定位对象之后,搜索引擎402采用分级组件406将那些查询分等级。按本发明的一方面,不在阈值等级之上的对象从结果组中舍弃。关系计算器408审阅先前用于定位在与初始查询关联的结果组中的对象的查询。关系计算器408按照它们与初始查询和初始结果组的关系的等级将这些先前的查询分级。更具体说,与初始查询有关并与那些基本上不相似于关联于初始查询的结果组的结果组相关联的先前的查询给予比不相关的查询更高的等级。例如,采用的距离度量和改进的MMR方案能用于对这些先前的查询分级。最高等级的查询能通过显示410返回给用户。
搜索引擎402也能包括签名生成器412,它创建用于查询和由那些查询定位的对象的签名。例如,签名生成器412能维护查询日志,并在利用查询日志中每个查询时生成由搜索引擎定位的对象的散列。更具体地而言,在搜索引擎402在因特网上搜索的情况下,签名生成器412能维护查询日志并生成由查询日志中的每个查询定位的URL的散列。因此,系统400由利用搜索引擎402的每个用户动态地更新。例如,每个先前不被利用的查询被登录并与由查询定位的对象一起存储。当利用用户查询创建一对象的结构时,系统400进一步减轻创建和维护那样结构所需要的工时。
系统400还包括爬行搜索器(crawler)414,搜索引擎402用它来确保对象不被去除和/或更改。爬行搜索器是以自动和有条理的方式浏览数据存储404(如万维网www)的程序。爬行搜索器保存访问的所有对象的副本,用于如由搜索引擎以后的处理。爬行搜索器能利用这些对象便于缩小搜索范围。搜索引擎依赖爬行搜索器来确保在搜索期间返回的对象仍存在于数据存储404中,并是那些对象的当前版本。
按本发明的一方面,爬行搜索器414访问数据存储404,并审阅与这些对象关联的查询。爬行搜索器414能确定与数据存储中的对象关联的查询的利用频率,并访问与那些查询关联的对象,它们和与很少利用的查询关联的对象相比有更高的频率。因此,与频繁使用的查询关联的对象比在利用那些查询时不返回的对象得到关于爬行搜索器的更高的优先级。此外,爬行搜索器414能与实用程序组件416关联,后者能执行关于爬行搜索器414采取的动作的基于概率的分析。例如,实用程序组件416能确定,在数据存储404中的一个或多个对象自从爬行搜索器最近一次访问那些对象以来已被更改/删除的特定概率。
现参考图5,示出通过搜索引擎使用户能有效地定位对象的系统500。系统500包括接收查询的搜索引擎502。搜索引擎502利用那样查询来定位数据存储504中被发现与该查询有关的对象。数据存储504中每个对象与先前用来定位那些对象的查询关联。例如,搜索引擎502先前利用查询Q5定位对象4。搜索引擎502包括分级组件506,它按照查询将对象分级。这一分级组件506采用关于按照输入到搜索引擎502的查询定位和分级数据存储504内的对象的任何适合的分级算法。
在定位对象之后,关系计算器508审阅与那些对象关联的查询。关系计算器508定位那些既是新的又与输入到搜索引擎502的查询相关的查询。例如,新的查询与不包括在与输入查询关联的结果组中的结果相关联。相关的查询与涉及与输入查询关联的结果组的结果相关联,例如,能采用距离度量和修改的MMR方案以定位与输入查询相比是新的、更相关的查询。在定位那些查询之后,它们能通过显示510提交给用户。然后能通过使用查询选择组件512选择那些查询。例如,可以用链接的形式显示那些查询,且查询选择组件512便于选择那些链接。在选择查询后,与该查询关联的结果能通过显示510向用户显示。按本发明的一特定方面,选定的查询能被输入到搜索引擎502,从而允许用户用更大特殊性“深入(drill down)”通过查询。例如,用户能对特定的飞鱼鱼饵感兴趣。然而,用户首先输入规定不足的查询“飞鱼”到搜索引擎502。关系计算器508检索查询“飞鱼鱼饵”并向用户返回那样的查询。用户随后选择定向到搜索引擎502的查询“飞鱼鱼饵”。然后,关系计算器508能返回涉及特定鱼饵的查询,从而允许用户快速获得与用户试图定位的鱼饵关联的对象。此外,搜索引擎502能包括存储用户的先前搜索的存储器514。因此,若用户选择一查询并发现该查询返回与他的意向不相关的对象,他能简单地返回到先前等级的搜索。例如,若用户希望定位与特定的飞鱼鱼饵关联的对象,但选择的查询未返回那样的对象,则用户能返回到曾选择的先前的查询(如“飞鱼鱼饵”)。
现参考图6,示出通过搜索引擎帮助用户定位对象的方法600。虽然为解释简单起见,方法被示出及描述成一系列动作,然而可以理解,本发明不受动作的次序的限制,因为按本发明,某些动作能以不同次序发生和/或与这里示出及描述的其它动作同时发生。例如,本领域技术人员理解,方法能另外地表示成如在状态图中的一系列互相联系的状态或事件。此外,为实现按本发明的方法,不是所有示出的动作都是必需的。
在602,搜索引擎接收一查询。该查询是本文查询、声音或声序列、一系列图像和/或颜色、或任何其它合适的查询。此外,查询是从用户、程序等发起。按本发明的一方面,通过在浏览器或其它合适的界面中选择那样的查询来获得查询。在604,搜索引擎按照接收的查询检索对象。某些规定不足的查询能返回数以千计或甚至数以百万计的对象(如在搜索万维网时)。因此,按本发明的一方面只检索由搜索引擎定位的多个最高等级的文档。因而用户不会被不相关的信息淹没。此外可以理解,术语“对象”包括网页、图像、文本文档、声音文件、或能由搜索引擎搜索的任何其它合适的对象。此外,能在任何合适的数据存储上进行搜索。例如,能在万维网上、在特定服务器上、在本地硬盘驱动器上等进行搜索。
在606,审阅先前用于检索在604返回的对象的查询。例如,每个对象与已用于定位该对象的查询关联。因此能存在大量涉及每个对象的查询。此外,每个关联的查询具有一返回组(如在采用此查询时返回的列表)。在608,作出关于希望返回给用户的查询的决定。希望的查询与那样的结果组关联,它们与对应于接收的查询的结果组相关,而又基本上不相似于对应于接收的查询的结果组,因此,希望的查询将检索有关的和新的对象。按本发明的一方面,能结合修改的MMR方案采用距离度量来确定希望的查询。更具体地,算法
能被用于确定距离度量,其中q是接收的查询,q′是对应于通过查询q返回的对象的查询,而R是在Q×D上的二元关系。Q是先前被搜索引擎使用的查询的组,而D是被搜索的数据存储(如万维网、服务器、…)中的对象的组。‖q,q′‖是在查询q和q′之间的距离度量,并能下列修改的MMR算法采用,以定位希望的查询:
其中λ是先前建立的内插因子,q是初始查询,而q′代表先前考虑的查询。使用这些方面的算法使搜索引擎能确定返回给用户的最希望的查询。然而应理解,任何合适的算法能用于定位与接收的查询相关的查询。
在610,向用户返回涉及初始查询的对象。对用户生成匹配他/她的意向的查询的情况完成动作610。对象能被分级并如传统搜索引擎那样返回。在612,向用户返回被发现与接收的查询相关并关于接收的查询是新的查询。例如,能采用显示向用户传达对象和查询。然后用户能选择最匹配他/她的意向的返回的查询。
现参考图7,示出使用户能在搜索方面用更大的特殊性“深挖”。在702接收查询,其中查询能由用户、计算机程序等生成。在704,完成对数据存储的搜索,且至少部分地基于接收的查询检索对象。按本发明一方面,在数据存储中的对象能与先前用于定位那些对象的查询关联。例如,若用户先前利用查询“阿拉斯加的飞鱼”,并根据此查询检索与其相关的对象,则该对象与那个查询及定位该对象的其它查询关联。在706,定位与该对象关联的查询。因此,若查询“飞鱼”是在702接收的查询,且该查询返回与查询“阿拉斯加的飞鱼”返回的相同的对象,则“阿拉斯加飞鱼”应是相关联的查询。在706定位所有那些关联的查询。
在708,检索有关的关联查询并向用户显示。有关的查询应既与接收的查询相关,又相对于接收的查询是新的。更具体地,每个关联的查询具有对应的结果组(如当使用该查询时返回的对象的集合)。对应于查询的结果组应与对应于接收的查询的结果组相关,但基本上与其不相似。此外,关联的查询的结果组应与对应于各异的关联查询的结果组相关,但基本与其不相似。这保证每个返回和显示的查询与不重复但有关的对象相关联。按本发明的一方面,距离度量和修改的MMR方案能用于确定有关的关联查询。
在710,用户选择关联的查询之一,其中该关联的查询比在702接收的查询更好地代表用户的实际意向。因此,向用户提供比在利用接收的查询时返回的对象更有关于该意向的对象。在712,定位与选择的查询关联的查询。例如,由所选择的查询定位的对象与先前用于定位该对象的各异的查询关联。随后在714,显示与选择的查询关联的有关查询。若采用过虑技术,则有关的查询能比选择的查询更加专门(如,比选择的查询更短的查询能不予考虑)。然后在710用户能选择更好代表他的意向的其它查询,直到定位最优查询。因此,用户能继续“深挖”通过查询,直到定位更好的查询。在用户简单地浏览的情况下,方法700也是有用的。例如,用户能对飞鱼感兴趣,但对于飞鱼没有专门的意向。用户能输入普通查询“飞鱼”到搜索引擎,并能给出多个有关的查询。关联的查询能以特定的浏览指示来帮助用户。
现转向图8,示出用于提交与特定对象有关的查询的方法800。在802,浏览器被定向到特定网站。例如,浏览器能通过输入URL到该浏览器的地址栏来定向。或者,用户能在利用搜索引擎定位那个网站之后选择该网站。在804,确定是否已利用任何查询来定位那个网站。例如,那样的信息能位于浏览器能访问的数据存储中。若没有查询曾用于定位该网站,则方法在806终止。否则,在808检索先前用于定位该网站的查询。在810,完成成本/收益分析以确定在该用户审阅选择的网站的同时是否希望向用户显示查询。例如,对最优观看而言,不希望与需要主要屏幕空间的网站一起显示查询。此外,用户历史可表明,用户不希望查询与所选的网站一起显示。
在812,按照成本/收益分析确定是否希望显示查询。若不希望,则在814不显示查询,且向用户只提供选择的网站。若希望显示查询,则在816检索有关查询并在816向用户显示。例如,带最少字的查询能被选作查询,且在该查询中返回的对象能用于定位关联的查询。更具体地,用户能键入阿拉斯加飞鱼网站的URL。随后能审阅先前用来定位该网站的多个查询。最短的查询(如“飞鱼”)能用作基本查询,并能审阅用该查询找到的所有网站。然后能考虑先前用于寻找那些网站的查询,并能向用户显示涉及该基本查询的诸查询。因此,能向用户提供涉及当前被审阅的网站的多个查询。这能帮助用户浏览可能包含相关信息的其它网站。
现参考图9,示出按照先前的查询与一查询关联的结果组的示例性划分900。搜索引擎902接收规定不足的查询并按照该查询搜索一对象集合。如图所示,规定不足的查询能导致返回各种各样的对象,它们可能与用户的意向相关或不相关(如各种各样的主题能涉及该查询)。此外,规定不足的查询在利用传统的搜索引擎时导致返回大量的文档。例如,当输入到搜索万维网的一个特定的传统搜索引擎时,查询“飞鱼”导致返回超过3,000,000个的对象。然而,此结果组在利用先前采用的查询时(如先前的用户利用比当前用户更具体查询)能被划分成更具体的结果组。这些结果组不仅更加针对论题,而且它们通常包括少得多的对象。在此特定划分900中,通过利用规定不足的查询和搜索引擎902创建结果组904。然而,利用本发明能将结果组划分成多个更具体的结果组906-918。具体说来,结果组906是在利用查询M时生成的,结果组908是在搜索引擎902利用查询M时生成的,结果组910是在利用查询O时生成的,结果组912是在搜索引擎902利用查询P时生成的,结果组914是通过利用查询Q生成的,结果组916是在利用查询R时生成的,而结果组918是在搜索引擎902利用查询S实施对包含结果组918中的对象的数据存储的搜索时生成的。因此,向用户提供能帮助用户把搜索集中到用户意向的这些查询。
此外,可以理解,结果组906-918本身能按更具体的先前的用户查询划分。而且可以看到,通过采用先前查询创建的结果组能整个包括在初始结果组904中,或者它们能部分地落在初始结果组904之外。例如,查询M的结果组906部分地落在初始结果组904之外,而查询O的结果组910整个在初始结果组之内。此外,结果组能部分地互相重叠,或完全被另一结果组包含。例如,结果组908和910部分地重叠。
现参考图10,示出结果组1002的特定划分1000。基于查询“飞鱼”生成结果组1002。如所见,那样的查询导致广泛的主题数组。然而利用本发明,结果组能被划分成多个与飞鱼相关的更具体的结果组。例如,查询“飞行样式”将产生结果组1004,查询“如何飞鱼”将产生结果组1006,查询“盐水飞鱼杂志”将产生结果组1008,查询“鳟鱼飞行”将产生结果组1010,而查询“捕鱼报告”将产生结果组1012。因此输入查询“飞鱼”到搜索引擎的用户能得到上述诸查询,其中一个查询可以比规定不足的查询“飞鱼”更好地代表用户要寻找的对象。本发明能通过维护对象和用于检索那些对象的查询之间的相关性来检索这些查询。因此,利用查询“飞鱼”检索的对象在利用更具体的查询时也能被检索。因此,能够查明在这些先前的查询和当前的查询之间的相关度的等级,且能向用户返回包括新对象的高度相关的查询。
现转向图11,示出按各异的查询的结果组的示例性排列1100,以便于更好理解本发明的一个或多个方面。排列包括通过采用规定不足的查询A结合搜索引擎检索的结果组A 1102。例如,结果组A 1102包括按搜索引擎分级算法的阈值数量的高等分对象。然而,此受限制的数能覆盖在此查询中广泛的主题。例如,若查询A是“飞鱼”,则前20个结果能覆盖在飞鱼的主题中的各种各样的事物。然而,查询B和C更具体,因而它们能用于检索同样更具体的结果组B 1104和C 1106。因此,例如,用户最初能输入查询A并至少得到的结果组A 1102的一部分。用户还能得到查询B和C,它们更具体并更好地代表用户的意向。用户能选择利用查询B和/或C来获得结果,这将便于比利用查询A更快速地定位希望的对象。此外,查询B和C也能彼此相关,使得结果组B 1104和结果组C 1106至少部分地重叠。
如此图所示,结果组B 1104能通过利用查询D和E被进一步划分,而结果组C能通过利用查询D、F和G被进一步划分。这些查询进而产生结果组D 1108、结果组E 1110、结果组F 1112、和结果组G 1114。这些结果组1108-1114是结果组B 1104和结果组C 1106的划分,因此是结果组A 1102的划分。此外,结果组E 1110和结果组F 1112能至少部分重叠,而结果组F 1112和结果组G 1114能至少部分重叠。在一个例子中,用户能输入查询A并获得包括不高度与用户的意向相关的对象的结果组A 1102。提供查询B和C,并在察看这些查询后,用户能确定,它们中的一个更好地代表用户的意向。然后,用户能选择查询B并获得结果组B 1104,并得到查询D和E,它们能进一步更好地代表用户的意向。若选择查询E,能向用户显示结果组E 1110,它包含与用户的意向高度相关的对象。
现转向图12,示出本发明的另一示例性利用1200。当搜索引擎在采用规定不足的查询A搜索时生成对规定不足查询A的结果组1202。本发明便于基于用于定位结果组中的先前查询将结果组划分成多个更具体的结果组。例如,当先前查询M用于搜索引擎时创建结果组1204,当先前查询N用于搜索时生成结果组1206,当先前查询O用于搜索一对象集合时创建结果组1208。例如,查询A可以是“飞鱼”,查询M能是“如何飞鱼”,查询N能是“飞鱼报告”,和查询O能是“鳟鱼飞行”。所有这些查询关系到飞鱼,并能用于帮助用户定位特定对象。这些结果组1204-1208也能用于定位略为涉及飞鱼的查询P。例如,这能通过审阅从返回组1204-1208中的对象向内的链接(inlink)和向外的链接(outlink)来实现。在此特定例子中,在结果组1204和结果组1208中的对象具有到对查询P的结果组1210中的大量对象的向内的链接和/或向外的链接。例如,前面的查询M能是“如何飞鱼”,而查询O能是“鳟鱼飞行”。在结果组1204和1208中的多个对象能包括到盐水捕鱼对象的向外的链接,后者只是略为涉及飞鱼。利用单个查询P(如“在东海岸的盐水捕鱼”)能找到大量这些对象。本发明考虑审阅划分的结果组中的向内链接和/或向外链接,以向用户呈现略为涉及初始查询A的一个或多个查询。在用户没有特定的意向,只是在对象的集合上浏览直到找到感兴趣的对象的情况下,这是有益的。
现转向图13,示出本发明的示例性实现1300。在实现1300中,初始的规定不足的查询1302横跨顶部显示成“fly fishing(飞鱼)”。紧接着该查询的是一个查询清单1304,那些查询关系到初始查询“飞鱼”,但不返回基本上类似的结果(如10个来自查询“飞鱼”的最高等级结果,并且当利用查询1304时返回的10个最高等级的结果基本上不相似)。这些查询1304是超链接的,其中一个查询的选择将用户引导到返回页面的各异的部分。此外,一个查询的选择能导致用各异的有关查询定位的全新搜索,并向用户显示。在查询清单1304下面的是从用查询“飞鱼”搜索的整数个结果1306。对用户知道通过利用查询“飞鱼”能找到特定的对象的情况返回这些结果。
在结果清单之后显示带+/-两选一符号的查询1308,它能扩展或折叠查询以显示结果。在此示例性实现中,查询“fly fishing equipment(飞鱼)”已被扩展,并且在利用此查询时找到的多个结果1310被列出。例如,阈值数量的最高等级的结果能返回给用户,从而缓解了用户必须翻过许多结果的页面来寻找希望的结果的情况。
现转向图14,示出本发明的另一示例性实现1400。采用包含地址栏1404的浏览器1402,地址栏能用于插入希望的网站的URL,以访问万维网。浏览器能通过将地址输入地址栏1404、选择从不同网站的链接、使用搜索引擎等,来定向到一页面。浏览器1402包括按URL显示网站的显示区域1406。浏览器1402还包括能用于显示先前用于定位该网站的查询的显示区域1408。例如,用于检索该网站的最短的查询能用作基本查询,且也能用于接收该网站的有关查询能至少部分地根据基本查询来确定。因此,若用户想要类似于在显示区域1406上示出的信息,该用户可以简单地从显示区域1408选择查询来定位该信息。
现转向图15和16,示出本发明的示例实现,其中那样的示例实现允许用户控制初始查询和有关查询的返回组之间的重叠程度。那样的实现使用户能通过控制初始查询和检索的查询之间的偶然性等级来定制搜索引擎。更具体地,初始查询和先前的查询的返回组之间的大量重叠的要求将导致检索相似的查询,而那些返回组之间需要较少重叠将导致检索更偶然的有关查询。具体地转向图15,本发明的一个特定示例实现1500包括查询框1502,其中用户已输入查询“honeymoon(蜜月)”。用户能采用标题为“Serendipitometer(偶然性计)”的滑动块来控制初始查询“honeymoon”和先前的查询的返回组之间需要的重叠程度。例如,在此示例实现中,滑动块1504放在查询“honeymoon”和先前查询的返回组之间需要大量重叠的位置(如较不偶然的查询将返回给用户)。更具体地,初始查询“honeymoon”导致多个相似的查询1506,如“honeymoons”、“honeymoon destination(蜜月的目的地)”、“honeymoon package(蜜月包装)”、“destination weddings(目的地的婚宴)”、“honeymoon vacation(蜜月假期)”、“wedding package(婚宴包装)”、“wedding cruises(婚宴巡游)”、“honeymoon cruise(蜜月巡游)”、“romantic vacation(浪漫假期)”和“honeymoon resorts(蜜月娱乐场所)”。如能通过审阅那些查询所确定的,这些一般是比初始查询“honeymoon”更具体,并能由用户用来“深挖”,直到定位反映他/她的意向的查询。此外,对初始查询返回希望的对象的情况,通过采用查询“honeymoon”定位的多个高等级对象1508返回给用户。
现转向图16,示出本发明不同的示例性实现1600。再次将查询“honeymoon”输入到查询框1502,但是滑动块1504被放置在初始查询(“honeymoon”)和先前查询的返回组之间需要较少重叠的位置。这允许多个查询1504偶然地关系到初始查询(如能向用户提供该用户不专门试图寻找的有用信息的查询)。在此示例性实现中,诸如“passport applications(护照申请)”、“oahu(瓦胡岛)”、“cheaptrips(廉价旅行)”等返回的查询不是直接关系到用户,但该用户能发现那些信息有用。例如,用户在审阅蜜月目的地时能希望去海外,但尚未考虑护照申请。因此,本发明能用于帮助用户寻找略为涉及用户的意向的信息。虽然示例性实现1500(图15)和1600利用滑动块1504,可以理解,可采用任何合适的机制,使用户能改变在初始查询和先前查询的返回组之间所需要的重叠程度。此外,在初始查询和先前查询的返回组之间需要的重叠程度能由人工智能组件通过随时间推移地观察用户,并学习在给定特定状态和/或环境时用户希望的查询的类型来自动地确定。
参考图17,用于实现本发明的各个方面的示例环境1710包括计算机1712。计算机1712能是任何合适的计算设备(如个人数字助理、膝上计算机、服务器、台式计算机、…)。计算机1712包括处理单元1714、系统存储器1716和系统总线1718。系统总线1718将包括但不限于系统存储器1716的各系统组件耦合到处理单元1714。处理器1714能是各种可用处理器的任一种。双微处理器和其它多处理器体系结构也能用作处理单元1714。
系统总线1718能是若干类型总线结构的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用任何种类可用的总线体系结构的局部总线,这类总线体系结构包括但不限于,8位总线、工业标准体系结构(ISA)、微通道体系结构(MSA)、扩展的ISA(EISA)、智能驱动器电路(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际协会总线(PCMCIA)、和小型计算机系统接口(SCSI)。
系统存储器1716包括易失存储器1720和非易失存储器1722。包含如在启动时帮助在计算机1712的各元件之间传输信息的基本例程的基本输入/输出系统(BIOS)存储在非易失存储器1722中。作为说明而非局限,非易失存储器1722能包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存卡。易失存储器1720包括随机存储器(RAM),它起到外部高速缓冲存储器的作用。作为说明而非局限,RAM能以多种形式使用,如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强的SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、和直接RRambus总线RAM(DRRAM)。
计算机1712还包括可移动/不可移动、易失/非易失计算机存储介质。例如,图17示出盘存储1724。盘存储包括但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jazz驱动器、Zip驱动器、LS-100驱动器闪存卡或存储条。此外,盘存储1724能包括单独的或与其它存储介质组合的存储介质,包括但不限于如压缩盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器的(DVD-ROM)等光盘驱动器。为便于将盘存储设备1724连接到系统总线1718,通常使用可移动或不可移动设备接口,如接口1726。
可以理解,图17描述的软件扮演用户和在合适的操作环境1710中描述的基本计算机资源之间的中介。那些软件包括操作系统1728。能存储在盘存储1724的操作系统1728起着控制和分配计算机1712的资源的作用。系统应用程序1730利于操作系统1728通过存储在系统存储器1716或在盘存储1724上的程序模块1732和程序数据1734对资源的管理。可以理解,本发明可用各种操作系统或操作系统的组合来实现。
用户通过输入设备1736将命令或信息输入到计算机1712。输入设备1736包括但不限于,如鼠标、跟踪球、输入笔、接触垫等定位设备、键盘、麦克风、操纵杆、游戏垫、卫星式圆盘天线、扫描器、TV调谐器卡、数码相机、数码录像机、网络照相机等。这些和其它输入设备经接口端口1738通过系统总线1718连接到处理单元1714。接口端口1738包括如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备1740使用某些与输入设备1736同样类型的端口。因此,如USB端口能用于提供到计算机1712的输入,和从计算机1712输出信息到输出设备1740。提供输出适配器1742表示存在某些输出设备1740,如监视器、扬声器、打印机和其它输出设备1740,它们需要专门的适配器。作为说明而非局限,输出适配器1742包括视频和声卡,它们提供在输出设备1740和系统总线1718之间连接的装置。应注意,如远程计算机1744的其它设备和/或设备的系统提供输入和输出的能力。
计算机1712能使用到如远程计算机1744的一个或多个远程计算机的逻辑连接在网络环境中操作。远程计算机1744能是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它公共网络节点等,并通常包括关于计算机1712描述的许多或所有元件。为简单起见,对远程计算机1744只示出存储器存储设备1746。远程计算机1744逻辑上通过网络接口1748连接到计算机1712,并然后物理上通过通信连接1750连接。网络接口1748包括通信网络,如局域网(LAN)和广域网(WAN)。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网/IEEE 802.3、令牌环/IEEE 802.5等。WAN技术包括但不限于,点对点链路、如综合业务数字网络(ISDN)及其变种的电路交换网络、分组交换网络和数字订户线(DSL)。
通信连接1750指用于将网络接口1748连接到总线1718的硬件/软件。虽然为清楚起见,通信连接被示出在计算机1712之内,然而它也可以在计算机1712之外。仅为示例目的,为连接到网络接口1748所必需的硬件/软件包括内置或外接技术,如调制解调器:常规的电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和以太网卡。
图18是本发明能与其交互的范例计算机环境1800的示意框图。系统1800包括一个或多个客户机1810。客户机能是硬件和/或软件(如线程、进程、计算设备)。系统1800还包括一个或多个服务器1830。服务器1830能是硬件和/或软件(如线程、进程、计算设备)。例如,服务器1830能容纳通过采用本发明完成转换的线程。在客户机1810和服务器1830之间一种可能的通信能采用适于在两个或多个计算机进程之间传输的数据分组的形式。系统1800包括能用来便于在客户机1810和服务器1830之间通信的通信架构1850。客户机1810在操作上连接到能用于存储对客户机1810本地的信息的一个或多个客户机数据存储1860。类似地,服务器1830在操作上连接到能用于存储对服务器1830本地的信息的一个或多个服务器数据存储1840。
上面描述的包括本发明的例子。当然不可能为描述本发明的目的而描述各组件和方法的每个可想象的组合,但本领域的技术人员认识到,本发明的许多其它组合和变更是可能的。因而,本发明旨在包含落入所附权利要求书的精神和范围中的所有更换、修改和变化。此外,在详细描述和所附权利要求书中使用术语“包括”的意义上,那样的术语意在以类似于术语“包含”的方式是包容性的,如同“包含”在权利要求书中用作过渡词时所解释的那样。