用于从搜索查询中产生概念单元的系统和方法

文档序号:6483847阅读:146来源:国知局
专利名称:用于从搜索查询中产生概念单元的系统和方法
技术领域
本发明一般涉及网络和因特网搜索及界面系统,尤其涉及提供增强搜索功能的搜索系统。
背景技术
随着诸如因特网的网络和在万维网(web)上用户可用的众多网页和媒体内容的出现,已开始需要向用户提供最新型的方法来过滤并获取来自web的所需信息。已经开发了搜索系统和过程来迎合用户对获取所需信息的需要。这些技术的示例可通过Yahoo!、Google和其它网站来访问。通常,用户输入查询,而搜索过程返回一个或多个与查询相关的链接。所返回的链接可能是与用户真正寻找的非常相关的,或者它们也可能是与其完全不相关的。查询结果的“相关性”部分地是所输入的实际查询以及所使用的搜索系统(以收集系统为基础)的鲁棒性的函数。
用户输入的查询通常由一个或多个字组成。例如,“haiwaii”(夏威夷)是一查询,“new york city”(纽约市)也是,而“new york city law enforcement”(纽约市执法)也是。这样,查询总体上并不是人类大脑所必备的。换言之,人类天生并不根据查询来进行思考。它们是部分的根据查询搜索引擎或查寻图书馆目录的需要而强加给我们的人工结构。人类天生不根据单个字来思考。人类进行思考的根据是自然概念。例如,“hawaii”和“new york city”根据字数长度而言是极为不同的查询,但是它们共享了一个重要特征它们都由一个概念组成。然而,查询“new yorkcity law enforcement”就不同了,因为它由两个不同概念“new york city”和“lawenforcement”组成。人类天生地是通过输入一个或多个自然概念来建立查询的,而不是简单地通过输入可变长度的单字序列。
当前任一主要搜索供应商(例如MSN、Google或任何其它主要搜索引擎网站)的技术都不理解以人类创建它们的相同方法进行的查询。这可能是妨碍搜索供应商理解用户意图并提供优化搜索结果和内容的最重要原因。
可见需要改进的搜索和界面技术,来提供更符合用户感兴趣的真实概念的结果。

发明内容
本发明提供了用于增强提供给用户的搜索功能的系统和方法。在某些方面中,本发明自动地将各个查询分解成与用户可能感兴趣的概念相关的组成单元。
根据本发明,查询处理引擎使用统计学方法将各个查询分解成每个查询一个或多个组成单元。在一方面中,各单元是通常对应于自然概念的一个或多个字序列。在某些方面中,在确定单元中不使用现实世界知识。在其它方面中,例如使用一个或多个信息工程师的队伍人工地引入世界和内容知识的各方面,以增强并优化性能。在其它方面中,提供了查询处理引擎,以分析并处理一个或多个查询和某时间段(例如一周)的查询日志文件,从而自动地确定单元和各种单元扩展、单元关联、单元替代和其它单元关系。这些单元、扩展、关联和替代被存储到储存库或数据库中,并且在一方面中用来响应于用户查询生成建议。这些建议向用户提供基于原始搜索查询中固有的概念进一步提炼搜索的能力。单元扩展、关联和替代是自动导出的单元之间各类关系的示例。单元、扩展、关联和替代也对执行搜索查询的上下文分析和分类,以及执行用户查询的趋势分析特别有用。
根据本发明一方面,提供了一种用于从用户搜索查询产生概念单元的计算机实现方法。该方法通常包括接收多个查询,每个查询包括一个或多个字的字符串,标记化(tokenize)每个查询字符串来为每个查询生成一个或多个标记,其中查询的标记形成一个初始单元集。该方法通常还包括组合来自初始单元集的显现为在查询中彼此相邻的单元以形成第二单元集,验证该第二单元集,并使用第二单元集代替初始单元集来组合并验证一次或多次直到满足收敛条件。一旦满足了收敛条件,就形成最终的单元集。该最终的单元集被存储到存储器中。
根据本发明另一方面,提供了用于从用户搜索查询中产生概念单元的系统。该系统通常包括存储器单元,以及被配置成接收一个或多个查询日志文件的处理模块,每个查询日志文件包括多个查询,每个查询包括一个或多个字的字符串。该处理模块通常被配置成标记化来自查询日志文件的每个查询,以产生一个初始单元集,然后重复下述直到满足收敛条件组合来自初始单元集的显现为在查询中彼此相邻的单元以形成第二单元集,验证该第二单元集,其中该第二单元集用于每次重复。一旦满足了收敛条件,处理模块就把最终的单元集存储到存储器单元中。
根据本发明又一方面,提供了通常包括代码的计算机可读介质,该代码用于控制处理器从多个用户搜索查询中产生概念单元,每个查询包括一个或多个字的字符串。该代码通常包括指令,用以标记化每个查询字符串来为每个查询生成一个或多个标记,其中查询的标记形成一个初始单元集,组合来自初始单元集的显现为在查询中彼此相邻的单元以形成第二单元集,并验证该第二单元集。该代码通常还包括指令,用以使用第二单元集代替初始单元集来重复标记化以及组合指令一次或多次直到满足收敛条件,其中最终的单元集在一旦满足收敛条件时形成,并且该最终的单元集存储到存储器模块中。
参考包括附图和权利要求书的说明书的剩余部分,将了解本发明的其它特征和优点。本发明的其它特征和优点,以及本发明的结构和操作,将参照附图在下面详细地描述。在附图中,相似的标号表示相同或功能相似的元件。


图1示出根据本发明一实施例的信息检索和通信系统的一般纵览。
图2示出根据本发明一实施例用于传送媒体内容的信息检索和通信网络。
图3示出根据本发明一实施例的系统,包括被配置成处理查询日志文件以填充单元字典的查询处理引擎。
图4示出根据本发明一实施例的系统,包括单元字典及相关联处理智能,在某些方面中包括查询处理引擎。
图5示出根据一实施例用于处理查询和查询日志以产生单元的方法的一个示例。
图6示出根据一实施例用于生成建议的方法的一个示例。
图7-10示出根据本发明各个方面的单元和单元扩展、联合和替代的各种显示。
具体实施例方式
图1示出根据本发明一实施例的包括客户机系统20的信息检索和通信网络10的一般纵览。在计算机网络10中,客户机系统20通过因特网40或者其它通信网络,例如任何LAN或WAN连接,与服务器系统501到50N连接。如将要描述的,客户机系统20根据本发明被配置成与服务器系统501到50N的任一个通信,例如访问、接收、检索并显示媒体内容以及诸如网页的其它信息。
图1所示的系统中的若干元件包括无需在此赘述的常规的众所周知的元件。例如,客户机系统20可包括台式个人计算机、工作站、膝上型计算机、PDA、手机、或能够直接或间接与因特网通过接口相连的任何WAP使能的装置或任何其它计算装置。客户机系统20通常运行HTTP客户端,例如浏览程序,诸如微软的Internet ExplorerTM浏览器、Netscape NavigatorTM浏览器、MozillaTM浏览器、Opera浏览器、或手机、PDA或其它无线装置等情形中的WAP使能的浏览器等,以使客户机系统20的用户能访问、处理并查看经因特网40从服务器系统501到50N中可用的信息和页面。客户机系统20通常还包括一个或多个用户接口装置22,诸如键盘、鼠标、触摸屏、笔等等,用来与由显示器(例如监视器屏幕、LCD显示器等)上浏览器提供的图形用户界面(GUI),以及服务器系统501到50N或其它服务器提供的页面、表格或其它信息交互。本发明适用于因特网,它是指网络的特定全球互联网。然而,应当理解,其它网络也可取代因特网,或者除因特网之外还能使用其它网络,诸如内联网、外联网、虚拟专用网络(VPN)、不基于TCP-IP的网络、任何LAN或WAN等。
根据一实施例,客户机系统20及其所有组件都是可使用应用程序而由操作者配置的,该应用程序包括使用诸如Intel PentiumTM处理器、AMD AthlonTM处理器等的中央处理单元或多个处理器运行的计算机代码。在此所述的用于操作并配置客户机系统20以传送、处理并显示数据和媒体内容的计算机代码最好被下载并存储在硬盘上,但整个程序代码或其一部分也可存储在任何其它易失性或非易失性的存储器媒体或装置中,诸如众所周知的ROM或RAM,或在能够存储程序代码的任何媒体上提供,诸如光盘(CD)媒体、数字多功能盘(DVD)媒体、软盘等。此外,整个程序代码或其一部分可经众所周知的因特网从例如服务器系统501到50N之一的软件源传送并下载到客户机系统20,或使用任何众所周知的通信媒体和协议(例如TCP/IP、HTTP、HTTPS、以太网等)经任何其它众所周知常规网络连接(例如外联网、VPN、LAN等)传送。还可以理解,用于实现本发明各方面的计算机代码可用C、C+、HTML、XML、Java、JavaScript、诸如VBScript的任何脚本语言之类的、可在客户机系统上执行的任何编程语言来实现。在某些实施例中,没有代码被下载到客户机系统20中,由服务器来执行所需的代码,或者执行已存在于客户机系统20上的代码。
图2示出根据本发明一实施例用于传送数据和媒体内容的另一信息检索和通信网络110。如图所示,网络110包括客户机系统120、服务器系统150和服务器系统160。在网络110中,客户机系统120通过因特网140或其它通信网络可通信地耦合到服务器系统150和160。如上所述,客户机系统120及其组件被配置成经因特网140或其它通信网络与服务器系统150和160以及其它服务器系统通信。
根据一实施例,在客户机系统120上执行的客户机应用程序(示为模块125)包括指令,用于控制客户机系统120及其组件与服务器系统150和160通信,并处理和显示从中接收的数据内容,如所述。客户机应用程序125最好从诸如远程服务器系统(例如服务器系统150、服务器系统160或其它远程服务器系统)的软件源中传送并下载到客户机系统120,尽管如上所述客户机应用程序模块125可在诸如软盘、CD、DVD等的任何软件存储媒体上提供。例如,在一方面中,客户机应用程序模块125可在包括比如内嵌JavaScript或ActiveX控件的各种控件的HTML包中经因特网140向客户机系统120提供,这些控件用于在各对象、框架和窗口中处理数据并呈现数据,如下所述。
此外,客户机应用程序模块125包括用于处理数据和媒体内容的各种软件模块。例如,应用程序模块125可包括用于处理搜索请求和搜索结果数据的一个或多个搜索模块126、用于在诸如浏览器窗口和对话框的文本和数据框架及活动窗口中呈现数据和媒体内容的用户界面模块127、以及用于与在客户机120上执行的各应用程序接口并通信的应用程序界面模块128。此外,界面模块127可包括浏览器,诸如在客户系统120上配置的缺省浏览器或不同的浏览器。作为一个示例,根据一实施例的客户机应用程序模块125可使用URLhttp//help.yahoo.com/help/us/sbc/browser/从Yahoo!公司下载。
参看图2,根据一实施例,服务器系统160被配置成将搜索结果数据和媒体内容提供给客户机系统120,而各服务器系统150被配置成例如响应于在由服务器系统160提供的搜索结果页面中选择的链接,将诸如网页的数据和媒体内容提供给客户机系统120。如以下要更详细地描述的,服务器系统160在一实施例中引用各种收集技术,以从万维网收集信息并用例如页面、页面链接等来填充一个或多个索引。这些收集技术包括自动web爬虫(web crwaler)、蜘蛛(spider)等,以及用于在分层结构中分类和排列网页的手动或半自动分类算法和界面。在某些方面中,服务器160还配置有搜索相关算法,用于处理和排列网页,比如Google的PageRank算法。服务器160最好还被配置成以查询日志文件的形式来记录用户查询动作。
在一方面中,服务器系统160被配置成响应于从客户机系统接收的各种搜索请求在特定搜索模块126中提供数据。服务器系统150和160可以是诸如由Yahoo!公司提供给用户的分布式服务器系统的单个机构的一部分,或者它们可以是不同机构的一部分。服务器系统150和服务器系统160都包括至少一个服务器和相关联的数据库系统,并可包括多个服务器和相关联数据库系统,并且尽管被示为单个框,但是地理上可以是分布式的。例如,服务器系统160的所有服务器可彼此相邻地放置(例如在位于单幢建筑或校园内的服务器场),或者它们可分布在彼此相距遥远的位置上(例如位于城市A的一个或多个服务器,以及位于城市B的一个或多个服务器)。当在此使用时,术语“服务器系统”通常包括本地地或跨一个或多个地理位置分布的一个或多个在逻辑上或物理上相连的服务器。此外,术语“服务器”通常将包括本领域内众所周知的计算机系统、相关联的存储系统、以及数据库应用程序。术语“服务器”和“服务器系统”在此将互换地使用。
根据一实施例,服务器160配备有一个或多个页面索引170和算法,用来响应于从客户机系统120和220接收的搜索查询向用户提供搜索结果。在某些方面中,服务器系统160被另外配置成响应于来自客户机系统120的搜索请求提供新的、增强的搜索查询分析和分类功能,如下详述。这样的查询分析和分类功能及其它特征在下文中描述序列号为60/510,220、2003年10月9日提交的题为“Search Systemsand Methods with Conceptual Clustering”的美国专利申请(代理人档案号017887-011500US),以及序列号为10/____、与本申请同时提交的“Systems andMethods for Search Query Processing Using Trend Analysis”的美国专利申请(代理人档案号017887-011400US),其内容在此引入作为参考。
在一实施例中,例如,在服务器160上执行的过程执行搜索查询和/或搜索结果的上下文分类分析,并用按上下文分组的搜索结果作出响应。许多搜索词取决于与其上下文会有不同的含义。例如,如果用户使用词“Java”执行搜索,则预期上下文并不清晰。用户可能对Java计算机语言感兴趣,或对印度尼西亚岛屿Java感兴趣,或者对常常在口语中称为java的咖啡感兴趣。因而,不同的字可具有不同的字义和上下文。在一方面中,本发明有利地分析搜索查询和/或结果,并按上下文将结果分组,用于在用户的计算机120上显示。例如,在搜索词“Java”的以上示例中,服务器160返回分成三个(如果标识了其它上下文则为更多)种上下文或字义的搜索结果用于计算机语言的Java、Java岛和咖啡Java。该系统可被配置成分集显示各个结果,并具有与每个上下文相关联的链接,或者系统可仅显示上下文(有足够信息来让用户辨别上下文)而没有任何链接,并使用户能选择所需上下文以显示相关联链接。例如,在Yahoo!网络系统中,可显示一个上下文集,其中每个上下文都具有一个链接集与来自搜索索引的页面的链接、与赞助匹配相关联的链接、与目录匹配相关联的链接、以及与Yahoo!(IY)匹配相关联的链接。
除具有歧义的诸如“Java”的字或短语之外,本发明的系统被配置成在一实施例中将结果分组到并非歧义的搜索词的上下文中。一个示例是搜索词“Hawaii”的返回结果。词“Hawaii”本身并无歧义,但是,对该词所返回的结果的特征可非常广泛,与在字面上讨论或提到过“Hawaii”的全部相关。为了向用户提供更为有用的结果,本发明的系统最好通过使用结果真正相关于什么的知识,将搜索结果按上下文进行组织。例如,对Hawaii,系统可在诸如“Hawaiitravel(旅游)”、“Hawaiiclimate(气候)”、“Hawaiigeography(地理)”、“Hawaiiculture(文化)”等的各种上下文分组中返回结果。例如,在某些方面中,上下文标识符与索引中页面链接相关联地被存储,从而当执行搜索时,各个链接可根据标识符来分组(参见图2的索引表162)。在以上示例中,术语“旅游”、“气候”、“地理”和“文化”表示上下文标识符。一个页面链接可与多个上下文标识符相关联,并因此与多个标识符相关联地被显示。这些标识符最好在用户执行相关搜索时通过系统自动关联于链接,但是,标识符也可由一个或多个管理员的团队进行手动地修改并使之关联于链接。这样,从许多搜索收集到的知识被反馈回系统来定义和重新定义上下文,以使所显示的搜索结果对作出请求的用户更有价值和更有用。
在一实施例中,在服务器160上执行的过程执行搜索词的概念发现和概念分析,以向用户提供更有意义的结果。例如,对于搜索短语“New York City”,非常清楚用户对与纽约市(城市或城区)相关的网站感兴趣而不是对纽约州的一个城市感兴趣。类似地,对于“New York City law enforcement”,清楚的是用户对与纽约市的执法(例如工作部门)相关的网站感兴趣。然而,大多数传统搜索引擎将简单地使用各个个体的词“New”、“York”、“City”、“law”和“enforcement”来搜索,而不管在搜索短语中使用的词的顺序。本发明有利地分析搜索短语中的词,以标识组成该搜索查询的一个或多个概念。在各较佳方面中,系统使用搜索词所呈现的顺序来标识概念并分类搜索结果。例如,使用“New York City law enforcement”作为搜索短语,系统例如通过将“New York City”和“law enforcement”散列为搜索短语中的两个概念来标识,并返回对这两个概念的结果。对于“law enforcement in NewYork City”,将返回相同的结果。然而,对于“city law enforcement in New York”,基于概念“law enforcement”、“New York”和“city”或者“city law enforcement”和“New York”的概念,将返回不同的结果。类似地,“enforcement of law in New YorkCity”将被标识为包括概念“New York City”、“law”和“enforcement”。因而,概念的顺序并不像组成概念的词的顺序一样重要。在各较佳方面中,概念被包括在页面索引中,或者单独的概念索引可被实现。应当注意,“law enforcement”是否可被视为与“enforcement of law”相同是取决于上下文的。
单元提取和处理根据本发明一实施例,提供了查询处理引擎,用于处理查询并将查询分解成组成单元。尽管查询是产生单元的较佳内容源,并且是本说明书剩余部分所关注的,但是可以理解单元也可从其它内容源产生,包括锚文本(anchor text)、文档、电子邮件消息、网页、网站、在线产品目录等。单元通常很好地对应于自然概念,并且通常对执行查询的上下文和类别分析、概念发现、趋势分析以及其它查询分析过程特别有用。单元是显现在用户查询中的一个或多个字的序列。每个字(因此单元也)可包括可能从键盘或其它用户接口装置提供的一个或多个字母和其它字符的首字母缩略词或任何其它序列。一般而言,查询是一个或多个单元的集,即,查询可被分解成一个或多个单元的集。单元中字的顺序是重要的,然而,查询中单元的顺序通常是不重要的。
本发明的查询处理引擎使查询处理系统能实现概念发现和分析过程,以及如上所述的上下文分析、查询分类和消除歧义过程、以及许多其它过程,它们将增强响应于搜索查询返回给用户的结果的质量。根据本发明,查询处理引擎可在连接到网络的单机装置或者系统上实现,例如所述的执行各种查询处理和分析算法和过程的计算机系统,或者它可被包括为诸如服务器系统160的搜索服务器系统或其它服务器系统的一部分。
图3示出根据本发明一实施例的包括查询处理引擎300的系统。如图所示,引擎300经因特网或通过例如LAN、WAN的各种网络连接、直接链接、分布媒体(例如CD、DVD、软盘)等从各种源中接收一个或多个查询日志文件302(以及在某些方面中实时地接收各个查询)。网络源的示例包括搜索服务器160(图1)、或搜索服务器的分布式网络中的多个搜索服务器160、以及一个或多个服务器150。查询日志文件源通常关联于同一机构或实体,例如Yahoo!服务器,但并非必须如此。查询日志文件(查询日志)由查询引擎300使用统计方法进行处理以提取单元,这些统计方法诸如可用于如交互信息之类的信息理论或概念中。在各较佳方面中,使用每日查询日志,尽管可按需使用不同时间段的日志,比如小时、星期等。查询日志通常包括用户提交的实际查询,且在某些情形中还包括其它有用的元信息,诸如作出查询的用户的地理位置、时间标记、客户机系统的IP地址、cookies、客户机的类型(例如浏览器类型)等。输入查询日志文件的一个示例是形式<查询字符串,元信息>或<计数,查询字符串>的查询列表,其中计数指特定查询字符串的发生次数(频率)。查询处理引擎300处理各种查询日志(和查询),并从中生成单元及相关联的统计数据。单元及相关联的统计数据,诸如发生频率、排序等,被存储到存储器或数据库文件310。
根据一实施例的用于处理查询和查询日志以产生单元的方法的一个示例如图5所示。在步骤500中,查询日志文件被规范化,以移除重复和多余的符号。例如,应用规范化算法或处理,它将字减成基本意义-例如,移除后缀、复数、前缀等。在步骤510中,创建单一的合并(consolidated)查询文件。例如,对于多个查询日志文件,在特定时间段这些文件被合并成单一的合并查询文件。例如,同一查询的多次出现被包括为单个查询,其中有等于经合并的文件中查询发生的总次数的计数值。在较佳方面中,一周的时间段对合并文件的特定时间段是较佳的。查询一周的价值在于捕捉查询中的不同模式,它们是在工作日(不同天不同)和周末期间观察到的。然而,可以理解,可使用不同的时间段。在步骤520,合并查询文件被读入,且每个查询条目被标记化。例如,合并日志文件中的每一行可包括一查询和形式为<查询字符串,元信息>的相关联信息。在该示例中,查询日志文件中每一行中的每个查询字符串都被标记化以产生一个标记集。整个文件中每个不同的标记和每个标记的出现次数都被存储。此时这些标记被处理视为初始单元集。
在步骤530,合并查询文件被扫描,且每个查询基于现有的单元集被分成一个或多个单元的集。例如,查询本身可以是单个单元,或者它可包括若干单元。然后例如通过组合在每个特定查询中显现为彼此相邻的单元,来确定可能的新单元。这些可能的新单元也被存储。在步骤540,验证这些可能的新单元。例如,在一实施例中,合并查询文件被再次扫描,并且此时来自步骤530的可能单元被分析以确定哪些真正是单元(例如基于交互信息和其它度量)。例如,在一方面中,对哪些可能单元应当是单元的确定,是基于检测组成单元彼此分开地显现的次数,并将该次数与它们在整个查询集中彼此相邻地显现的次数作比较。例如,“new york”被检测为一个单元,因为即使“new”在若干不同上下文中显现,在“york”显现的若干上下文中,“new”仍然显现。在步骤550中,调整单元的权重,例如,已被吸收到其它单元中的单元的权重被调整,且权重被还给那些是不再被视为单元的单元的部分的单元。例如,当一可能单元被确定为是一单元时,新单元显现于其中的查询的合计权重/频率从组成单元的权重中减去,并添加到新单元的权重中。
在步骤560,确定单元的足够收敛是否发生。在一方面中,收敛被定义为在所产生/删除的单元中的变化小于某一预定义阈值之外的点。例如,如果算法的运行已产生了一百万个单元,则仅有一百个单元产生/删除之后的阶段可被视为接近或满足收敛的点。在一方面中,即使在检测到满足或接近收敛之后,仍然可作某些调整,以确保所产生的单元符合某些基本的品质准则。如果未达到收敛,则重复步骤530到560。如果已达到收敛,则确定并存储最终的单元集,并且处理继续到可以任何顺序执行的步骤570到590。
在步骤570,对于最终的单元集,产生每个单元的扩展。例如,在一方面中,通过扫描整个最终集并标识字符串的交迭(overlap),来产生扩展。单元的扩展是包含第一单元中所有字的一个更大的单元。例如,“new york city”可以是“new york”的扩展。根据一方面,通过对例如MySQL数据库的数据库中的单元表执行全文本搜索,以发现特定单元是否在任何其它单元内显现,来实现扩展生成。在一方面中,执行对每个单元的全文本索引的完整扫描。然而,根据可用的资源,这可能是相当缓慢的过程。因此,在另一方面中,所有单元从单元文件中载入存储器中的散列表中。然后一次从单元文件中读取一个单元。该单元被拆分成字,并且这些字的各个序列被构建。例如,假设频率为f的单元u1。单元u1由三个字w1、w2和w3组成。u1中这些字的顺序是“w1w2w3”。从这些字中可创建以下序列w1,w2,w3,w1w2,w2w3以及w1w2w3。在创建序列时,单元中字的顺序不变。然后对于每个序列,在单元的散列表中执行查寻。如果序列恰好是一单元,则u1被输出为该序列的扩展。在此情形中,如果w3和“w1w2”是单元,则在一方面中输出以下记录fu1 w3;以及fu1“w1w2”。
因为全文本索引的全部扫描被很少的散列查寻代替,在该方面中方法会更加有效。
在步骤580,对于最终的单元集,产生对每个单元的关联。例如,在一方面中,关联是基于哪些单元经常关联于查询中的其它单元来产生的。单元的关联是第一单元与其显现在查询中的另一个单元。例如,“seattle hotels”可以是单元“seattle”和单元“hotels”的关联。在一方面中,在其中每个查询都被拆分成单元的query_units文件被用来计算关联。在一方面中,该文件包括三个列-查询频率、查询和在查询中显现的单元的列表。在同一查询中显现的所有单元都为关联作出贡献。考虑query_units中频率为f的包含单元u1、u2、u3的查询q。对于该查询,在一方面中输出以下记录u1 u2 f;u2 u3 f;以及u1 u3 f。
然后对该输出排序,然后添加由所有可能查询对每一对贡献的频率。在一方面中,低于阈值的所有关联在本阶段被丢弃。
在步骤590,对于最终单元集,产生每个单元的替代。例如,在一方面中,替代是基于字符串距离和相关频率考虑而产生的。单元的替代形式(或任何字序列)是原始表达的较佳的形式、校正的形式或甚至仅仅是相关形式。例如,“britneyspears”是流行歌手名字的数十个在查询日志中相当常见的替代拼写的正确形式。另一个示例是单元“belgium”是较不流行的单元“belgian”的替代形式。关联、扩展和替代最好存储到独立的“建议”文件中,但它们可被存储到文件310中。在一方面中,替代可通过使用字符串之间的编辑距离的概念来产生。例如,如果将一个字符串转换成另一个字符串需要d个步骤的类型事件,例如插入、删除、替换等,两个字符串被称为相距编辑距离d。相距的编辑距离小于阈值(例如较小数字1或2)的两个单元,被视为是备选的替代形式。在一方面中,通过比较其相对频率和根据编辑距离也接近的其它单元的频率,可确定它们是否是真正的替代形式。该频率信息帮助确定哪一个相似字符串最可能是正确形式。例如,“britney spears”在查询中可有许许多多不同方式的错误拼写。在一方面中,通过比较不同形式的频率并选择最高频率形式作为正确形式的最佳候选,来标识正确形式。
在某些方面中,查询处理引擎300可在服务器系统160中实现。例如,除了与用户和页面索引170接口的搜索响应过程之外,用于实现查询处理、单元分解、单元字典填充和统计分析的软件可在服务器系统160上执行。在其它方面中,查询处理引擎300或查询处理引擎300的一部分,可在诸如图4所示的独立系统中执行。例如,在一方面中,响应于来自用户系统120的查询,服务器系统160可将查询传送给请求返回各单元和统计数据或返回建议的服务器系统180。服务器160处理从系统180接收的单元和任何统计数据,并响应于用户的查询向用户返回结果以及建议和其它信息。建议可由服务器160使用所返回的单元和统计数据来产生,或者建议可由系统180产生。在某些方面中,建议是使用户参与和搜索系统的持续对话的一种方法。建议是基于对各单元及其扩展、关联和替代中捕捉的用户需要的高度复杂的理解而对用户接着想要研究的内容的暗示和提示。
在一方面中,单元字典310被有利地用来产生除真实搜索结果之外或代替它们的呈现给用户的建议。例如,搜索服务器160或其它搜索智能模块可将查询发送给控制单元字典的专用服务器,例如图4的服务器180,或者单元字典的实例可被存储到搜索服务器160。在一实施例中,单个用户查询被处理以使用单个查询的单元的关联和扩展来确定建议,这些关联和扩展随后被合并到例如“查询建议”文件的单个文件中。可进行某些附加过滤,从而不重复极为相似的建议。例如,只包括或示出较为流行的,比如三个建议“spain maps”(西班牙地图)、“spain map”和“map of spain”。
根据一实施例使用字典310中的扩展、关联和替代(例如,如由图5所示的用于产生单元的方法确定的)来产生建议的方法的一个示例如图6所示。在步骤610,过滤和映射数据被读入系统。例如列表形式的这种过滤和映射数据可手动或自动地被提供。这样的数据可用周期性的持续的方式随时间的流逝向系统提供,或者可在单个文件或文件集中提供。这样的数据最好用来规范化和过滤建议,并包括例如字列表(成人字列表、无用词列表等)以及映射(同义字、较佳形式变体等)。在步骤620,标识一个或多个单元。例如,通过标记化查询并使用产生的标记在单元字典中执行查寻,单元可响应于单个用户查询由搜索服务器160或系统180选择。在步骤630,所标识的单元被处理,以确定建议是否应对每个单元产生。该建议产生过程然后处理每个已标识的单元,以确定任何关联和扩展是否在单元的建议文件中存在。在步骤640,检索单元的扩展和关联。那些因某些原因不适合的扩展和关联被滤去。例如,如果单元长度为一个字,则包含三个额外内容字的建议可能就不适合,因此最好不被选择。在一方面中,如果有单元的关联和/或扩展,则产生单元的建议。在某些情形之下,即使有单元的关联或扩展,该特定单元的建议可能也不会产生。例如,在一方面中,不产生错误概念的单元的建议。类似地,也不产生知道具有拼写错误或太短等的单元的建议。并非所有的扩展或关联都被视为适合建议。在一方面中,确定所生成的建议是否显现为查询。如果未发现准确的匹配,则搜索包含该建议的查询。即使这样的查询也不被视为适合成为建议,除非加入原始单元的部分本身是另一个单元。对于多单元查询,也可使用相似技术来产生建议。
在步骤650,所检索的扩展和关联被组合,以形成初始的建议集。在步骤660,建议的初始集被规范化,以移除相似的建议,最好确保所移除的建议的权重被添加到保留的建议的权重中。规范化包括处理单复数形式、通用同义字、打字错误等等。因任何原因不适合的建议也被移除。步骤630到660最好对单元集中的每个单元重复。在一方面中,使用所产生的建议,检索并向用户显示来自页面索引170(图2)的链接。
可以理解,并非所有图5和图6的步骤都是必需的,并且可包括替代的和/或附加的步骤。在某些方面中,在此所述的这些查询和查询日志文件处理用Per1来实现。
图7-10示出根据本发明各方面的特定输入查询的单元、单元扩展、关联和替代的显示。这些显示使用诸如监视器或打印机的显示装置提供给用户,并用于使诸如系统管理员或终端用户的用户能标识并分析从查询或其它内容源产生的各种单元、关联、扩展和替代。
图7示出对应于输入查询“birds”(鸟)而提供的显示页面。一般而言,输入查询可以是字或多个字。对于扩展查寻,也支持在输入查询(各)字之前和/或之后的通配符“*”。图8示出根据一方面的包括查询输入GUI表格的不同显示页面,该GUI表格用于使用户能输入查询,选择随机查询,并调整与输入查询相关联的参数。例如,点击GUI表格中的R按键产生随机单元的结果,点击T按键则导致建议图表的随机遍历。可选择查看作为结果的扩展和/或关联。通过改变第一行字段的值,可沿着扩展和关联流按想要去的方向前行。还可以改变成人过滤设置,从而使人能看到或不能看到成人项。GUI表格下的显示部分示出输入查询“wood”(木头)的结果。
如图7和8所示,关联指不同单元之间基于它们一起出现在同一查询中的次数的关系。另一方面,扩展指出现在一个单元的所有字以相同序列出现在第二单元中的单元之间的关系。例如,“exotic birds”(外来鸟类)是“birds”的关联,而“birdsof prey”则是扩展。为了简便,仅示出了6个扩展和6个关联,但是可以理解可示出任何数量。
关联和扩展列中括号内的数字是对查询的扩展/关联的总数的估算。通过点击适当的列标题,输出可按字母顺序或基于扩展/关联的频率排序。
前两个输出列包含序号(rank)以及括号中带有它们有多少扩展/关联的指示的扩展/关联。在关联的情形中,原始查询可由如图所示的省略号(“…”)替换。此外,点击该扩展的结果是查询该特定扩展的各个扩展。另一方面,点击一关联返回相关联单元的各个关联。在图7的Results(结果)列中选择“link”链接,在一单独的视窗中给出搜索结果。根据一方面,作为扩展/关联数的频率基于一周的完整查询日志。每个查询(包括一周内仅出现一次的那些查询)被考虑在该计算之内。
图9和10示出响应于输入搜索查询提供给在线用户的显示的示例。特别地,图9和10示出在分别输入查询“wood”和“birds”之后可返回给用户的搜索结果页面的示例。为了简便仅示出这些示例性显示页面的一部分。
尽管本发明已通过示例并根据各特定实施例进行了描述,但是可以理解本发明并不限于所揭示的各个实施例。相反,它旨在包括对本领域技术人员显而易见的各种修改和类似配置。因此,最广泛的解释应根据所附权利要求的范围进行,以便包括所有这些修改和类似配置。
权利要求
1.一种用于从用户搜索查询中产生概念单元的计算机实现方法,所述方法包括接收多个查询,每个查询包括一个或多个字的字符串;标记化每个查询字符串来为每个查询生成一个或多个标记,其中所述查询的所述标记形成一个初始单元集;组合来自所述初始单元集的显现为在查询中彼此相邻的单元,以形成第二单元集;验证所述第二单元集;使用第二单元集代替初始单元集来重复组合和验证的步骤一次或多次直到满足收敛条件,其中一旦满足了收敛条件就形成最终的单元集;以及将所述最终的单元集存储到存储器中。
2.如权利要求1所述的方法,其特征在于,接收包括接收一个或多个查询日志文件,每个查询日志文件包括多个查询。
3.如权利要求2所述的方法,其特征在于,还包括将来自所述一个或多个查询日志文件的多个查询合并成单个合并查询文件。
4.如权利要求3所述的方法,其特征在于,合并包括移除查询的重复,并且每当移除每个个体查询的重复时就把关联于该个体查询的计数值加1,其中所述合并文件包括个体查询的列表和与其相关联的计数值。
5.如权利要求3所述的方法,其特征在于,所接收的查询日志文件包括一周内每一天的查询日志文件,且其中合并包括形成单个合并查询文件,该单个合并查询文件包括一周内的查询。
6.如权利要求1所述的方法,其特征在于,还包括使用所述最终的单元集产生单元扩展。
7.如权利要求6所述的方法,其特征在于,产生单元扩展包括标识是其它单元的子集的单元。
8.如权利要求6所述的方法,其特征在于,还包括将所述单元扩展存储到存储器中。
9.如权利要求1所述的方法,其特征在于,还包括使用所述最终的单元集产生单元关联。
10.如权利要求9所述的方法,其特征在于,产生单元关联包括标识与其它单元相关联的单元。
11.如权利要求10所述的方法,其特征在于,还包括将所述单元关联存储到存储器中。
12.如权利要求10所述的方法,其特征在于,标识关联单元包括确定哪些单元与其它单元一起在查询中显现。
13.如权利要求1所述的方法,其特征在于,还包括在已满足收敛条件之后产生单元替代。
14.如权利要求13所述的方法,其特征在于,产生单元替代包括确定所述最终的单元集中两个单元之间的编辑距离是否小于阈值,如果是则比较所述两个单元的相对频率。
15.如权利要求1所述的方法,其特征在于,还包括使用所述最终的单元集产生单元扩展;使用所述最终的单元集产生单元关联;以及使用所述的最终单元集产生单元替代。
16.如权利要求15所述的方法,其特征在于,还包括将所述单元扩展、单元关联和单元替代存储到存储器中。
17.如权利要求15所述的方法,其特征在于,产生单元扩展包括标识是其它单元的子集的单元,产生单元关联包括标识与其它单元相关联的单元,产生单元替代包括确定所述最终的单元集中两个单元之间的编辑距离是否小于阈值,如果是则比较所述两个单元的相对频率。
18.如权利要求1所述的方法,其特征在于,验证包括对于第二单元集中的每个组合的单元,对所述组合的单元的出现频率和所述组合的单元中每个组成单元的出现频率作比较。
19.如权利要求1所述的方法,其特征在于,所述收敛条件包括一阈值,其中如果在组合和验证的连续步骤之间两个第二单元集中单元数量的变化小于或等于所述阈值,则所述收敛条件满足。
20.如权利要求1所述的方法,其特征在于,还包括接收来自用户的单个查询;标识所述单个查询中的一个或多个单元;以及使用与在单个查询中标识的一个或多个单元相关联地存储在存储器中的一个或多个单元扩展、单元关联和单元替代,来确定响应于所述查询提供给用户的一个或多个建议。
21.一种用于从用户搜索查询中产生概念单元的系统,所述系统包括存储器单元;以及处理模块,被配置成接收一个或多个查询日志文件,每个查询日志文件包括多个查询,每个查询包括一个或多个字的字符串,且其中所述处理模块还被配置成标记化来自查询日志文件的每个查询,以产生一个初始单元集;然后重复以下步骤直到满足收敛条件组合来自初始单元集的显现为在查询中彼此相邻的单元,以形成第二单元集;以及验证所述第二单元集,其中所述第二单元集用于每次重复;以及一旦满足了收敛条件,处理模块就把最终的单元集存储到存储器单元中。
22.如权利要求21所述的系统,其特征在于,还包括用于提供所述查询日志文件的一个或多个查询日志文件源。
23.如权利要求21所述的系统,其特征在,所述处理模块还被配置成使用所述最终的单元集产生单元扩展;使用所述最终的单元集产生单元关联;使用所述最终的单元集产生单元替代;以及将所述单元扩展、单元关联和单元替代与所述最终的单元集一起存储到存储器中。
24.如权利要求21所述的系统,其特征在于,所接收的查询日志文件包括一周内每一天的查询日志文件,且其中所述处理模块进一步被配置成将查询日志文件合并成包括该周内的查询的单个合并查询文件。
25.如权利要求24所述的系统,其特征在于,所述处理模块通过以下动作合并移除查询的重复,并且每当移除个体查询的重复时就将关联于该个体查询的计数值加1,其中所述合并文件包括个体查询的列表和与其相关联的计数值。
26.如权利要求25所述的系统,其特征在于,所述处理模块使用与查询相关联的计数值来确定每个单元的出现频率,且其中所述处理模块将所述单元频率与所述最终的单元集一起存储到存储器单元中。
27.如权利要求21所述的系统,其特征在于,所述存储器单元和处理模块在网络中的搜索服务器装置中实现。
28.一种包括代码的计算机可读介质,所述代码用于控制处理器从多个用户搜索查询中产生概念单元,每个查询包括一个或多个字的字符串,其中所述代码包括指令来a)标记化每个查询字符串来为每个查询生成一个或多个标记,其中各查询的标记形成一个初始单元集;b)组合来自初始单元集的显现为在查询中彼此相邻的单元,以形成第二单元集;c)验证所述第二单元集;d)使用第二单元集代替初始单元集来重复b)和c)一次或多次直到满足收敛条件,其中一旦满足收敛条件时形成最终的单元集;以及将所述最终的单元集存储到存储器模块中。
29.如权利要求28所述的计算机可读介质,其特征在于,所述代码还包括各指令来使用所述最终的单元集产生单元扩展;使用所述最终的单元集产生单元关联;使用所述最终的单元集产生单元替代;以及将所述单元扩展、单元关联和单元替代与所述最终的单元集一起存储到存储器中。
30.如权利要求29所述的计算机可读介质,其特征在于,产生单元扩展的指令包括标识是其它单元子集的单元的指令,产生单元关联的指令包括标识与其它单元相关联的单元的指令,产生单元替代的指令包括确定所述最终的单元集中两个单元之间的编辑距离是否小于阈值,如果是则比较所述两个单元的相对频率的指令。
31.如权利要求1所述的方法,其特征在于,每个字包括一个或多个字母数字字符。
全文摘要
用于增强向用户提供的搜索功能的系统和方法。在某些方面中,查询处理引擎自动地将查询分解成与用户感兴趣的概念相关的组成单元。该查询处理引擎使用统计学方法将查询分解成每个查询一个或多个组成单元。在某些方面中,在确定单元中不使用现实世界知识。在其它方面中,例如使用一个或多个信息工程师的队伍人工地引入世界和内容知识的各方面,以增强并优化性能。
文档编号G06F7/00GK1784653SQ200480012340
公开日2006年6月7日 申请日期2004年4月2日 优先权日2003年4月4日
发明者S·卡普尔, D·乔希 申请人:雅虎公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1