專利名稱:搜索結(jié)果聚類的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息檢索技術(shù)領(lǐng)域,特別是對檢索出來的結(jié)果進(jìn)行自動聚類的方法,例如在聯(lián)機(jī)文檔檢索系統(tǒng)或者網(wǎng)絡(luò)搜索引擎中對用戶查詢的結(jié)果進(jìn)行聚類的方法。
背景技術(shù):
目前,基于計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的文檔檢索系統(tǒng)對于用戶查詢所返回的搜索結(jié)果通常是包含了文檔表示(例如標(biāo)題、摘要)或文檔鏈接的一個列表,列表中的文檔一般按照文檔與查詢之間的相關(guān)程度由高到低排序。用戶在此列表中進(jìn)一步查找和選取實(shí)際相關(guān)或有用的文檔。對于非常大的文檔庫,例如互聯(lián)網(wǎng)搜索引擎所搜集的網(wǎng)頁庫,系統(tǒng)返回給用戶的搜索結(jié)果通常是成百上千的文檔鏈接。用戶在大量的返回結(jié)果中查找有用信息對用戶而言是一種很大的負(fù)擔(dān),質(zhì)量、類別等有很大不同的文檔線性地羅列在一起也容易掩蓋用戶真正關(guān)心的文檔。對此,除了進(jìn)一步提高文檔檢索技術(shù)(例如充分利用網(wǎng)頁的超鏈接特征、文本格式化信息等)、盡量將用戶可能感興趣的文檔排列在靠前的位置之外,另外一種方便用戶在搜索結(jié)果中進(jìn)行瀏覽和查找的技術(shù)是系統(tǒng)對搜索結(jié)果進(jìn)行自動分組,即將具有相似特征(例如內(nèi)容主題)的文檔(或文檔表示)放在同一組之中,以便于用戶縮小查找范圍、只在感興趣的少數(shù)組中查找和選取所關(guān)心的文檔。
一種常用的分組技術(shù)是文檔分類(Classification),或更準(zhǔn)確地稱為文檔歸類(Categorization),即在一個預(yù)先定義的、固定的類別集合中確定各個文檔的一個或者多個類別。由于各個文檔都預(yù)先確定好了類別,系統(tǒng)對檢索結(jié)果中的文檔的歸類過程可以簡單高效地完成。對于大規(guī)模的文檔庫而言,這個是一個非常突出的優(yōu)點(diǎn)。然而,歸類方法的缺陷也在于其使用的固定的分類體系預(yù)先確定的分類體系通常只能適用于很小的知識領(lǐng)域,缺乏可擴(kuò)充性和靈活性;很多文檔符合多個類別的標(biāo)準(zhǔn),兼類現(xiàn)象嚴(yán)重;自動歸類算法難于保證分類結(jié)果的準(zhǔn)確性和一致性,特別是對于內(nèi)容龐雜、質(zhì)量參差不齊的網(wǎng)頁文檔(Web Page Document),歸類效果一般很差。
歸類方法預(yù)先固定了每個文檔的類別,在分類過程中沒有考慮用戶查詢這個因素。實(shí)際上,當(dāng)文檔被用于不同的目的時,它可能對應(yīng)不同的類別。因此搜索結(jié)果中的文檔的類別具有隨用戶查詢的不同而變化的特征。這也是歸類方法在被用于對搜索結(jié)果分組時的一個不足。
早期的互聯(lián)網(wǎng)搜索引擎曾廣泛使用人工歸類方法,即由人工為每個收錄的網(wǎng)頁指定類別,其結(jié)果有比較好的質(zhì)量保證,然而這種方法不能適應(yīng)網(wǎng)頁數(shù)量的快速增長,目前已較少使用。
另一種對搜索結(jié)果分組的技術(shù)是文檔聚類(Clustering),即將具有相近特征的文檔找出來、并為它們動態(tài)生成一個類別標(biāo)記。在本發(fā)明中,概念“類”或“類別”(Class)統(tǒng)一指稱歸類類別和聚類類別,通常也被分別稱為“類目”(Category)和“(類)簇”(Cluster)。
使用聚類方法對搜索結(jié)果中的文檔進(jìn)行分組可以避免歸類方法的類別固定、缺乏可擴(kuò)充性和靈活性、維護(hù)分類體系一致性困難等問題。由于被聚類的對象是根據(jù)查詢而獲得的文檔,搜索結(jié)果聚類可以動態(tài)地反映文檔類別隨用戶查詢的不同而變化的特征。聚類方法不使用預(yù)先固定的類別體系,而是根據(jù)文檔之間的相似性動態(tài)地生成類別,無需付出維護(hù)分類體系的代價。
與用戶交互的大規(guī)模文檔檢索系統(tǒng),例如互聯(lián)網(wǎng)搜索引擎,要求搜索結(jié)果聚類過程具有實(shí)時、在線的性能,具備極高的時間效率,也就是系統(tǒng)在根據(jù)用戶查詢獲得結(jié)果文檔集合之后,必須盡快地完成聚類,并迅速將聚類結(jié)果輸出給用戶端。通常的文檔聚類算法的時間復(fù)雜性為O(n2)~O(n3),n是被聚類的文檔的數(shù)目。這樣的復(fù)雜性對于大規(guī)模文檔檢索系統(tǒng)而言太高,不適用于實(shí)時在線的搜索結(jié)果聚類。
Zamir和Etzioni提出了后綴樹聚類(Suffix Tree Clustering,STC)方法,使用一種稱為后綴樹的數(shù)據(jù)結(jié)構(gòu)來識別多個文檔之中的共同字符子串(參見O.Zamir&O.Etzioni.Web document clusteringa feasibility demonstration.Proceedings of ACM SIGIR’98,SIGIRConference on Research and Development in Informatin Retrieval.1998)。該方法達(dá)到了線性時間復(fù)雜度O(n),即正比于被聚類的文檔的數(shù)量。對于比較小的文檔、或者比較小的文檔表示(例如文檔摘要),在限定了參與聚類的文檔數(shù)量小于一定閾值的條件下,該方法可以達(dá)到實(shí)時、增量式聚類的要求。該方法自提出之后成為很多搜索結(jié)果聚類方法和應(yīng)用系統(tǒng)的基礎(chǔ)。在相關(guān)的研究中,Wang和Kitsuregawa提出了結(jié)合文檔內(nèi)容(關(guān)鍵詞)和網(wǎng)頁超鏈信息進(jìn)行聚類的方法(參見Y.Wang&M.Kitsuregawa.Evaluating contents-linkcoupled web page clustering for web search results.Proceedings of ACM CIKM,Conferenceon Information and Knowledge Management.2002);Zeng等人對聚類名稱的生成提出了改進(jìn),以便獲得更具可讀性的類別名稱(參見H.Zeng et al.Learning to cluster web searchresults.Proceedings of ACM SIGIR 2004,SIGIR Conference on Research and Development inInformatin Retrieval.2004)。
當(dāng)前,運(yùn)用這一類搜索結(jié)果聚類方法的最典型的應(yīng)用系統(tǒng)是Vivísimo公司提出的聚類引擎(參見網(wǎng)址http//Vivisimo.com),以及與之有關(guān)的其它搜索引擎(例如Clusty.com,DogPile.com)。這些搜索結(jié)果聚類應(yīng)用系統(tǒng)都是元搜索引擎(Meta Search Engine),被聚類的文檔是其它搜索引擎返回的搜索結(jié)果列表,即實(shí)際參與聚類的文檔是原網(wǎng)頁文檔的標(biāo)題、關(guān)鍵詞鄰近句子摘要、鏈接文字等比較短的文檔表示,并且對參與聚類的文檔數(shù)量作了嚴(yán)格限制(200~500篇文檔)。在這些限制條件下,這類系統(tǒng)可具備接近實(shí)時聚類的性能(用戶端響應(yīng)時間約在5秒鐘以內(nèi))。
總體而言,目前已知的搜索結(jié)果聚類方法為滿足實(shí)時在線聚類的性能要求,都對被聚類的文檔內(nèi)容和文檔數(shù)量作了很大的限制。已知的上述這類實(shí)時聚類方法只能處理很少量的文檔,并且通常只使用很少量的文檔內(nèi)容(標(biāo)題、摘要或鏈接文字),例如在元搜索引擎中所使用的搜索結(jié)果聚類方法。通用的(非元搜索的)互聯(lián)網(wǎng)搜索引擎返回給用戶的搜索結(jié)果通常包含成千上萬甚至數(shù)十萬的文檔。目前的搜索結(jié)果聚類方法不適用于這些系統(tǒng)。
因此,對文檔數(shù)量和內(nèi)容不限、對類別不限的高效大規(guī)模的搜索結(jié)果聚類技術(shù)是大規(guī)模文檔檢索系統(tǒng)所需要的。大規(guī)模文檔檢索系統(tǒng),例如互聯(lián)網(wǎng)搜索引擎等,有必要對數(shù)量龐大的搜索結(jié)果根據(jù)用戶查詢的特征(例如查詢關(guān)鍵詞)并基于全文內(nèi)容進(jìn)行實(shí)時在線的聚類。目前這樣的聚類方法和系統(tǒng)尚未出現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提出一種對文檔數(shù)量和類別不加限定的搜索結(jié)果聚類方法,適用于大規(guī)模的搜索結(jié)果聚類。
本發(fā)明的另一個目的是提出一種根據(jù)查詢中的關(guān)鍵詞而直接確定聚類類別的搜索結(jié)果聚類方法。
本發(fā)明的再一個目的是提出一種對數(shù)量不限的搜索結(jié)果進(jìn)行聚類、并對得到的各個類別進(jìn)行評級的方法。
為達(dá)到上述目的,本發(fā)明采取的技術(shù)方案是一種搜索結(jié)果聚類的方法,所述搜索結(jié)果是作為對某個搜索請求的響應(yīng)、從一個被索引的文檔集合中根據(jù)搜索請求與被索引文檔的相關(guān)程度而被選取的一批文檔,所述搜索請求來自使用計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的用戶,其特征在于它包括如下步驟a.預(yù)先記錄被索引文檔相對于其所包含的某個或者某幾個關(guān)鍵詞的一個或多個類別;b.根據(jù)預(yù)先記錄的文檔相對于包含在搜索請求中的某個或者某幾個關(guān)鍵詞的類別,對所述搜索結(jié)果中的文檔分組。
所述類別可以為任意的文檔分類標(biāo)記,或者是索引關(guān)鍵詞、索引關(guān)鍵詞的固定搭配等。每個類別可設(shè)置一個權(quán)重值,表示此類別與所對應(yīng)的文檔的關(guān)聯(lián)程度。搜索結(jié)果中的文檔被放入該文檔相對于查詢關(guān)鍵詞的類別集合中,并且聚類之后的文檔的在某一類別中的文檔級別由聚類之前的文檔級別和該文檔相關(guān)對于此類別的權(quán)重等因素而確定。所得到的各個聚類類別的級別可由其所包含的文檔的級別來計(jì)算。
此技術(shù)方案具備如下的技術(shù)效果預(yù)先為每個文檔確定了聚類類別,并且這些聚類類別可以直接由索引關(guān)鍵詞而快速得到。這個特征使得聚類過程可以非常高效地完成,適用于對大規(guī)模的檢索結(jié)果聚類,可達(dá)到文檔歸類的運(yùn)行時效率。同時,類別是根據(jù)關(guān)鍵詞而直接確定,因此相對于不同的查詢關(guān)鍵詞或詞組,同一文檔可以屬于不同的類別,從而克服了固定分類體系的缺點(diǎn)。另外,根據(jù)聚類所得到的各個類別中的文檔數(shù)量、文檔權(quán)重的總和或者平均值等信息,還可以計(jì)算出這些類別的權(quán)重,并以此對這些類別進(jìn)行評級(Ranking)和排序。由此,系統(tǒng)可以將具有較高級別的聚類以及其中較高級別的文檔優(yōu)先呈現(xiàn)給用戶。
本說明書包含3個附圖。
附圖1是本發(fā)明一個實(shí)施例的流程圖。
附圖2是帶有關(guān)鍵詞相關(guān)聚類記錄信息的倒排索引數(shù)據(jù)結(jié)構(gòu)示意圖。
附圖3是本發(fā)明的一個實(shí)施例針對查詢關(guān)鍵詞對搜索結(jié)果進(jìn)行聚類而生成的一個輸出結(jié)果樣例。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對上述技術(shù)方案作進(jìn)一步的說明。
文檔檢索系統(tǒng)的首要步驟是對所獲取的文檔集合進(jìn)行索引,生成適合于計(jì)算機(jī)進(jìn)行搜索運(yùn)算的數(shù)據(jù)結(jié)構(gòu),以便根據(jù)用戶查詢而有效地查找到相關(guān)的文檔。文檔集合通常包括各種形式的電子文檔,例如發(fā)布在互聯(lián)網(wǎng)站點(diǎn)上的網(wǎng)頁(HTML文檔)和其它格式的數(shù)據(jù)文件。大規(guī)模文檔檢索系統(tǒng)通常使用倒排索引,即以關(guān)鍵詞來索引包含了該關(guān)鍵詞的各個文檔,并可記錄該關(guān)鍵詞在文檔中的出現(xiàn)頻次、位置等信息。
在信息檢索領(lǐng)域,“關(guān)鍵詞”一般指稱用于文檔索引和檢索的項(xiàng)(term),包括文檔中的特征項(xiàng)即“索引項(xiàng)”(index term)和查詢中的特征項(xiàng)即“搜索項(xiàng)”(search term)。這些項(xiàng)可以是通常的詞、詞組,也可以是其它類型的字符串(例如二字/詞組Bigram等)。本發(fā)明所使用的“關(guān)鍵詞”概念遵循這種用法。
設(shè)有文檔集合{di|i=1,2,...,N},其中N是被索引文檔的總數(shù)。文檔檢索系統(tǒng)使用一個關(guān)鍵詞集合(索引詞典){kwj|j=1,2,...,K}來索引一批文檔。文檔檢索的過程即系統(tǒng)使用查詢中的關(guān)鍵詞來搜索文檔索引。查詢通常為單個關(guān)鍵詞或者多個關(guān)鍵詞的組合(例如邏輯表達(dá)式)。設(shè)查詢Query包含關(guān)鍵詞kw1、kw2、...、kwQ,記為Query={kw1,kw2,...,kwQ}。如果查詢中的關(guān)鍵詞kwi在索引中出現(xiàn),則通過索引可以獲得所有包含該關(guān)鍵詞kwi的文檔。以此得到查詢中的各個關(guān)鍵詞對應(yīng)的文檔,再經(jīng)過適當(dāng)?shù)募线\(yùn)算(交集、并集、差集等),就得到了候選的相關(guān)文檔。系統(tǒng)再利用一定的判據(jù)(例如關(guān)鍵詞頻次和位置等)確定查詢與各個候選文檔的相關(guān)程度,從候選文檔中選取一部分文檔作為搜索結(jié)果。通常需要將搜索結(jié)果中的文檔按照相關(guān)程度由高到低排序,并為它們生成文檔表示(包括標(biāo)題、摘要、文檔編號或者網(wǎng)址等信息)。
現(xiàn)有的搜索結(jié)果聚類方法依靠上述過程得到的文檔表示來完成對搜索結(jié)果中的文檔進(jìn)行實(shí)時在線的聚類,即根據(jù)文檔表示來發(fā)現(xiàn)文檔之間的相似特征、將具有相似特征的文檔放入同一個類別中、并為該類別生成一個有意義的名稱(通常為文檔表示中的公共字符子串)。因此這些聚類方法是與文檔索引過程無關(guān)的。如本發(fā)明背景技術(shù)所述,這類方法為滿足實(shí)時在線聚類的性能要求,對被聚類的文檔內(nèi)容和文檔數(shù)量作了很大的限制,難以適用于對數(shù)量龐大的搜索結(jié)果進(jìn)行高效的聚類,并且不能直接根據(jù)用戶查詢的特征(例如查詢關(guān)鍵詞)并基于全文內(nèi)容快速地確定文檔的聚類類別。
本發(fā)明實(shí)施例的流程圖如附圖1所示,其包含的步驟是101獲取并索引一個文檔集合{di};102相對于文檔的全部或者部分索引項(xiàng){kwj}(包括關(guān)鍵詞、多個關(guān)鍵詞的搭配或詞組),預(yù)先確定各個文檔相對于這些索引項(xiàng)的可能的一個或者多個類別,并將此文檔類別信息保存。由于這種文檔類別是針對具體的索引關(guān)鍵詞(或者詞組)的,為便于敘述,本發(fā)明將其稱為“關(guān)鍵詞相關(guān)的聚類”類別,或簡稱為“KWAC類別(Keyword AssociatedClustering Classes)”或“聚類類別”;103通過計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)獲得用戶提交的搜索請求,從中提取出用戶查詢;104使用查詢中的關(guān)鍵詞搜索文檔索引,根據(jù)查詢與被索引文檔的相關(guān)程度,選取一部分文檔作為搜索結(jié)果;105對于搜索結(jié)果中的各個相關(guān)文檔,根據(jù)預(yù)先已確定的文檔相對于查詢關(guān)鍵詞或者詞組(作為命中該文檔的索引項(xiàng))的類別,將文檔放入這些類別中,完成對搜索結(jié)果中的文檔的分組(其表現(xiàn)為對檢索結(jié)果的聚類)。由于各個文檔的類別在檢索之后已經(jīng)明確,這個步驟的實(shí)際操作類似文檔歸類的過程,可以非常高效地實(shí)現(xiàn);106將搜索結(jié)果返回給用戶。
本實(shí)施例將搜索結(jié)果聚類同文檔收集、索引、檢索等過程結(jié)合在一起,可應(yīng)用在任意的文檔檢索系統(tǒng)或通用的搜索引擎中,不受元搜索引擎的限制。
下面詳細(xì)說明步驟102和105的內(nèi)容。
-聚類類別的確定在步驟102,本發(fā)明的關(guān)鍵詞相關(guān)聚類類別可以在離線(off-line)狀態(tài)下確定,同時又不受固定分類體系的限制,可以是任何形式的類別標(biāo)記,或者系統(tǒng)定義的任何標(biāo)識符。對于大規(guī)模文檔檢索系統(tǒng),例如互聯(lián)網(wǎng)搜索引擎,特別有用的類別標(biāo)記是關(guān)鍵詞,也就是用一個關(guān)鍵詞(或者詞組)作為文檔的類別,從而便于用戶基于關(guān)鍵詞進(jìn)行檢索、聚類、瀏覽等。當(dāng)然,固定分類體系中的類別(例如圖書分類標(biāo)記、網(wǎng)頁分類搜索目錄名稱等)也可以用作某個文檔的KWAC類別。
一種有效的方式是將靈活可變的關(guān)鍵詞類別與固定分類體系中的類別結(jié)合起來應(yīng)用。在本發(fā)明的實(shí)施例中,當(dāng)分析文檔相對于某個索引項(xiàng)的KWAC類別時,如果該文檔中沒有合適的與該索引項(xiàng)高度相關(guān)的其它關(guān)鍵詞或詞組作為文檔的KWAC類別,則使用與該索引項(xiàng)對應(yīng)的固定分類體系中的類別作為文檔相對于此索引項(xiàng)的KWAC類別。該對應(yīng)關(guān)系可預(yù)先記錄,并與固定分類體系保存在一起。
在本發(fā)明的實(shí)施例中,作為聚類類別的關(guān)鍵詞的另一個來源是關(guān)鍵詞的固定搭配。首先,用一個詞組庫(或者稱為短語庫)保存常用的或者重要的關(guān)鍵詞組合。如果文檔中的某些用于索引的關(guān)鍵詞滿足詞組庫中的搭配關(guān)系,則將與該詞構(gòu)成搭配關(guān)系的關(guān)鍵詞作為聚類類別。其次,應(yīng)用統(tǒng)計(jì)自然語言處理在詞的固定搭配與短語等的識別方面提供的技術(shù),在各個文檔中計(jì)算侯選詞串的統(tǒng)計(jì)特征(例如共現(xiàn)頻率、互信息、條件熵等),從這些侯選詞串中找出合適的詞串作為詞組。上述兩種方法可結(jié)合使用,即詞組庫作為詞組統(tǒng)計(jì)的參考,而統(tǒng)計(jì)得到的詞組可用于對詞組庫的更新。
在本發(fā)明的實(shí)施例中,反映文檔內(nèi)容的主題詞(Topic Words)或詞組也可以被直接作為文檔中全部或者部分索引項(xiàng)(關(guān)鍵詞或者詞組、Bigram等)的KWAC類別。特別是,網(wǎng)頁(HTML、XML文檔)或其它類型文檔中的格式化信息被用作主題詞標(biāo)識的依據(jù)。其中,出現(xiàn)在文檔標(biāo)題(Title)中的關(guān)鍵詞,以及出現(xiàn)在指向當(dāng)前文檔的其它文檔中的超鏈接(Hyperlink)中的鏈接文本(Anchor Text)中的關(guān)鍵詞,優(yōu)先成為當(dāng)前文檔的候選主題詞和聚類類別。與上述固定分類體系一起,這一類關(guān)鍵詞構(gòu)成了文檔的固定(與查詢無關(guān))的聚類類別。
在本發(fā)明的實(shí)施例中,每個關(guān)鍵詞相關(guān)的聚類類別Ci(i=1,2,...,m)具有一個權(quán)重值wti,記為wti=KWAC_Weight(kw,d,Ci), (1)它表示某個文檔d在查詢項(xiàng)(關(guān)鍵詞或者詞組)為kw的情況下屬于類別Ci的權(quán)重或者可能性。用KWAC_Set(kw,d)表示文檔d相對于項(xiàng)kw的所有可能的聚類類別的集合,本實(shí)施例應(yīng)用了聚類類別權(quán)重值wti的如下條件對于文檔中的任意索引關(guān)鍵詞kw∈d,ΣCi∈KWAC_Set(kw,d)KWAC_Weight(kw,d,Ci)=1.---(2)]]>類別權(quán)重的最簡單情況是KWAC_Set(kw,d)中各個類別Ci的權(quán)重相同(即等可能性),取值為KWAC_Set(kw,d)中類別總數(shù)的倒數(shù)
KWAC_Weight(kw,d,Ci)=1|KWAC_Set(kw,d)|---(3)]]>對于聚類類別Ci為關(guān)鍵詞的情形,可以根據(jù)在文檔d中Ci與索引關(guān)鍵詞kw的共現(xiàn)(搭配)頻度fi來確定其權(quán)重值wti。一種具體的方法如下wti=fif1+f2+...+fm,i=1,2,...,m---(4)]]>與共現(xiàn)頻度相關(guān)的其它統(tǒng)計(jì)量(例如互信息等)也可以被作為確定聚類類別權(quán)重的依據(jù)。
對于聚類類別Ci為關(guān)鍵詞的情形,上述類別權(quán)重wti還可根據(jù)關(guān)鍵詞Ci在文檔d中出現(xiàn)的位置、文檔格式、以及關(guān)鍵詞Ci與索引關(guān)鍵詞kw的相對位置關(guān)系等信息,按照文檔檢索中的慣常方式進(jìn)行調(diào)整。例如,如果關(guān)鍵詞Ci與kw是鄰接在一起的,或者二者共同出現(xiàn)在文檔標(biāo)題中,則權(quán)重wti被加大。
文檔相對于其所包含的關(guān)鍵詞的聚類類別以及類別權(quán)重的確定都是與查詢過程無關(guān)的,因而可以在離線的過程中進(jìn)行。
-聚類類別信息的組織與存放本發(fā)明的關(guān)鍵詞相關(guān)聚類信息是一個索引項(xiàng)與文檔的二元組的集合,即一個(term,doc_id)配對的集合。該集合可組織成為一張二維表的數(shù)據(jù)結(jié)構(gòu),存儲在文件中。它也可以作為一組索引項(xiàng)-文檔列表(term,doc_id_list)的集合。特別是,它可以作為一個項(xiàng)-文檔列表的倒排表數(shù)據(jù)結(jié)構(gòu)。該倒排表數(shù)據(jù)可單獨(dú)存放。顯然,如果在文檔集的倒排索引中擴(kuò)充一個數(shù)據(jù)域,則可以進(jìn)一步將此KWAC信息存放在倒排文檔索引中,或者保存在與倒排索引相對應(yīng)的鏈表中。
附圖2是本發(fā)明的一種帶有關(guān)鍵詞相關(guān)聚類信息的倒排索引數(shù)據(jù)結(jié)構(gòu)。索引詞典中的每個索引項(xiàng)kw被轉(zhuǎn)化成為一個整數(shù)word_id,并對應(yīng)一個指向該索引項(xiàng)的倒排表(inverted list)的指針ptr,在此倒排表中存儲了包含該索引項(xiàng)的各個文檔的編號doc_id以及該索引項(xiàng)在文檔中出現(xiàn)的各個位置的列表pos_list。附圖2中的灰色陰影部分是本發(fā)明的作為倒排表形式的聚類類別信息。在文檔倒排索引中為每個文檔增加了一個指針KWAC_rec_ptr,指向該文檔(doc_id)相對于當(dāng)前的索引項(xiàng)(word_id)的所有可能的KWAC類別C1,2,...,m及其對應(yīng)的權(quán)重wt1,2,...,m的記錄列表。
在本發(fā)明的實(shí)施例中,對于KWAC類別是關(guān)鍵詞的情況,上述聚類記錄中的類別Ci是作為類別的關(guān)鍵詞的word_id。
另外,在關(guān)鍵詞類別的記錄中還設(shè)置了一個鄰接關(guān)系的指示符prox,用于指示在文檔d中索引項(xiàng)kw與關(guān)鍵詞Ci是否鄰接在一起、以及如何鄰接如果Ci是出現(xiàn)在kw的右邊,則為右鄰接;Ci是出現(xiàn)在kw的左邊,則為左鄰接??梢苑謩e用prox=0,prox=+1和prox=-1來表示不鄰接、右鄰接和左鄰接這三種情況。
-搜索結(jié)果文檔的聚類類別的確定在步驟105,對于由單個關(guān)鍵詞kw組成的查詢Query={kw},搜索結(jié)果中的任一文檔d被直接放入到它相對于索引項(xiàng)kw的各個KWAC類別中,即文檔d出現(xiàn)在所有類別Ci∈KWAC_Set(kw,d)之中。由此完成對搜索結(jié)果中的各個文檔的分組。
對于聚類類別Ci為關(guān)鍵詞的情形,上述搜索結(jié)果中的文檔聚類的名稱按照如下方法確定■如果文檔d相對于kw的右鄰接KWAC類別是Ci(即proxi=+1),則該類別的名稱以詞串“kw Ci”表示;■如果文檔d相對于kw的左鄰接KWAC類別是Ci(即proxi=-1),則該類別的名稱以詞串“Cikw”表示;■否則(proxi=-1)該類別的名稱以“kw,Ci”表示。
相對于包含多個關(guān)鍵詞的查詢Query={kw1,kw2,...,kwQ},某個文檔d的所有可能的聚類類別的集合是該文檔相對于各個查詢關(guān)鍵詞的類別集合的并集,即KWAC-Set(Query,d)=∪kw∈QueryKWAC_Set(kw,d).---(5)]]>搜索結(jié)果中的文檔的類別確定方式與單關(guān)鍵詞查詢的搜索結(jié)果分組過程類似,即搜索結(jié)果中的文檔被逐一放入各個類別Ci∈KWAC_Set(Query,d)之中。
對于聚類類別Ci為關(guān)鍵詞的情形,上述搜索結(jié)果中的文檔聚類的名稱按照如下方法確定如果多關(guān)鍵詞查詢Query不要求其中的各個關(guān)鍵詞有位置鄰接關(guān)系(例如,各個關(guān)鍵詞之間僅僅是“與(AND)”、“或(OR)”等邏輯關(guān)系),則類別名稱的確定方式與單關(guān)鍵詞查詢的情況類似;如果多關(guān)鍵詞查詢Query要求其某些關(guān)鍵詞之間需要滿足鄰接關(guān)系,例如設(shè)Query包含一個詞組“AB”(關(guān)鍵詞A與B鄰接出現(xiàn)),則對包含了詞組“AB”的搜索結(jié)果中的各個文檔d的分組按照如下方式命名■如果文檔d相對于B的右鄰接KWAC類別是C1(prox=+1),則d被歸入C1,且該類別名稱以詞串“AB C1”表示;■如果文檔d相對于A的左鄰接KWAC類別是C2(prox=-1),則d被歸入C2,且該類別名稱以詞串“C2AB”表示;■如果上述兩種情況同時出現(xiàn),則d被同時放在上述兩個類別C1和C2中,且類別名稱分別如上所述;■如果上述兩種情況都不出現(xiàn)(prox=O),則d被同時放在上述兩個類別C1和C2中,且類別名稱為“AB,C1”和“C2,AB”。
例如,對于Query=“search engine(搜索引擎)”(設(shè)按索引詞典被分解為“search(搜索)”和“enginen(引擎)”兩個關(guān)鍵詞),如果文檔d相對于“engine”的右鄰接KWAC類別是“marketing(營銷)”,則d被放入名稱為“search engine marketing”的類別中;如果文檔d相對于“search”的左鄰接KWAC類別是“internet(互聯(lián)網(wǎng))”,則d被放入名稱為“internetsearch engine”的類別中。如果兩種情況同時成立,則d被同時放入名稱為“search enginemarketing”和“internet search engine”的兩個類別中。
包含了詞組“A...B”的查詢以相同的方式處理。
對于要求部分關(guān)鍵詞鄰接、其它關(guān)鍵詞不鄰接的多關(guān)鍵詞查詢,例如Query={“AB”,C,D},則首先按照上述方法處理不鄰接的關(guān)鍵詞,然后再處理其中要求鄰接的關(guān)鍵詞。
-單個類別中文檔級別的計(jì)算通常,系統(tǒng)所維護(hù)的文檔集中的各個文檔di被賦予一個全局級別,表示該文檔在文檔集合中的重要性。在文檔與查詢的相關(guān)程度的判斷過程中,根據(jù)相關(guān)程度也可賦予文檔一個相對于查詢的相對級別,表示該文檔在搜索結(jié)果中的重要性,并可用于對搜索結(jié)果中的文檔進(jìn)行排序。下面用DocRank(di)統(tǒng)一表示文檔di的全局或者相對級別。
當(dāng)搜索結(jié)果中(未聚類的)原級別為DocRank(d)的文檔d被放入到類別Ci中之后,文檔d相對于同一類中的其它文檔的級別的差別有可能發(fā)生變化。本發(fā)明提供了對于聚類之后的搜索結(jié)果中的文檔重新計(jì)算文檔級別的方法。本發(fā)明的實(shí)施例按照下面的公式來確定文檔d在類別Ci中的文檔級別ClusteredDocRank(d,Ci)=Σkw∈QueryClusteredDocRank(d,kw,Ci),---(6)]]>其中ClusteredDocRank(d,kw,Ci)=DocRank(d)×KWAC_Weight(kw,d,Ci)(7)×f(KWAC_Freq(Query,d,Ci))×g(Mutual_KWAC(Query,d)).
在上述公式中,KWAC_Weight(kw,d,Ci)是聚類類別記錄KWAC(kw,d)中的文檔d屬于類別Ci的權(quán)重wti;KWAC_Freq(Query,d,Ci)是Ci在各個關(guān)鍵詞kw∈Query所對應(yīng)的集合KWAC_Set(kw,d)中出現(xiàn)的次數(shù);函數(shù)f(x)可選為f(x)=x或f(x)=2x兩種典型形式之一;函數(shù)Mutual_KWAC(Query,d)是Query中各個關(guān)鍵詞kw在文檔d的KWAC記錄中互為KWAC類別的關(guān)鍵詞的個數(shù);函數(shù)g(x)可選為g(x)∝x的形式。
根據(jù)上述公式,對于多關(guān)鍵詞查詢,如果某個聚類類別Ci同時是文檔d相對于查詢中多個關(guān)鍵詞的聚類類別,則在當(dāng)前查詢下該類別Ci對于文檔d的重要性將增大,其增大倍數(shù)為f(KWAC_Freq(Query,d,Ci))。相對地,如果某個類別Ci僅僅出現(xiàn)在多關(guān)鍵詞查詢的少數(shù)(例如一個)關(guān)鍵詞的聚類類別集合中,則該類別Ci的重要性較低。
另外,如果多關(guān)鍵詞查詢Query中有多個關(guān)鍵詞對于某個文檔d互為聚類類別,即對于某兩個互為聚類類別的關(guān)鍵詞kwi,j∈Query,有kwi∈KWAC_Set(kwj,d)和kwj∈KWAC_Set(kwi,d).
則文檔d相對于該查詢Query具有更大的重要性。因此文檔d(在所有聚類類別Ci中)將具有更大的文檔級別,其增大倍數(shù)為g(Mutual_KWAC(Query,d))。此情況的一個特例就是當(dāng)一個具有多個關(guān)鍵詞的查詢的所有n個關(guān)鍵詞對于某個文檔d而言互為聚類類別時,則d的文檔級別增大g(n)倍。
在任一類別Ci中的各個文檔可按照文檔在這個類別中的上述文檔級別ClusteredDocRank(d,Ci)排序。
-聚類類別的級別計(jì)算將搜索結(jié)果中的文檔分組到各個KWAC類別之后,這些類別的級別就可以由其所包含的文檔的級別來計(jì)算。在本發(fā)明的實(shí)施例中,根據(jù)用戶選項(xiàng)或者系統(tǒng)設(shè)定,搜索結(jié)果聚類中的一個KWAC類別的級別(或權(quán)重)是其包含的所有(或者前N個)文檔的級別值的總和,或者是所有(或者前N個)文檔級別的平均值。
搜索結(jié)果聚類中得到的各個KWAC類別Ci按照其級別被排序。在將聚類后的搜索結(jié)果返回給用戶時,具有較高級別的前若干個類別被優(yōu)先提交給用戶。而在每個KWAC類別Ci中,文檔也按照其文檔級別DocRank排序。因此可以把具有高級別的聚類類別中的具有較高文檔級別的文檔優(yōu)先提交給用戶。
對于單關(guān)鍵詞或多關(guān)鍵詞查詢Query,聚類Ci的權(quán)重可按照如下兩種方法之一來計(jì)算,分別為聚類Ci中的文檔級別總和與文檔級別平均值ClassRank1(Ci)=Σd∈CiClusteredDocRank(d,Ci)---(8)]]>=Σd∈CiΣkw∈QueryClusteredDocRank(d,kw,Ci),]]>ClassRank2(Ci)=Σd∈CiClusteredDocRank(d,Ci)NDocs(Ci)---(9)]]>=Σd∈CiΣkw∈QueryClusteredDocRank(d,kw,Ci)NDocs(Ci),]]>其中NDocs(Ci)是Ci中的文檔總數(shù)。
ClassRank1(Ci)表示整個Ci類別的重要性(即指示該類別在總體上是否值得被用戶先看到),而ClassRank2(Ci)則表示類別Ci中的文檔的平均重要性(指示其中的各個文檔是否值得看)。在各個類別中的文檔數(shù)目差別很大時,ClassRank1是較好的指標(biāo),而在各個類別中的文檔數(shù)目比較接近(或者被強(qiáng)制一致)時,ClassRank2是較好的指標(biāo)。
經(jīng)過聚類之后的搜索結(jié)果中的各個聚類類別Ci即可按照其級別排序。
-新的文檔級別利用文檔的KWAC信息,還可以對文檔集或者搜索結(jié)果中的文檔重新評級(Ranking),計(jì)算新的文檔級別。這提供了一種根據(jù)關(guān)鍵詞相關(guān)聚類信息進(jìn)行文檔評級(DocumentRanking)的方法。
對于級別為DocRank(di)的文檔,利用公式(7)可引入一個相對于查詢Query的新的文檔級別NewDocRank(d|Query)]]>=Σkw∈QueryΣCi∈KWAC_Set(kw,d)ClusteredDocRank(d,kw,Ci)---(10)]]>=DocRank(d)×Σkw∈QueryΣCi∈KWAC_Set(kw,d)[KWAC_Weight(kw,d,Ci)]]>×f(KWAC_Freq(Query,d,Ci))×g(Mutual_KWAC(Query,d))].]]>
在方程(2)的條件下,對于f(x)=1和g(x)=1/Q的情形(Q是Query中關(guān)鍵詞的個數(shù)),NewDocRank與原來的DocRank是一致的。
NewDocRank(d|Query)的一個用途是當(dāng)用戶選擇不對搜索結(jié)果中的文檔進(jìn)行聚類、當(dāng)仍然考慮聚類對文檔排序的作用時,返回給用戶的搜索結(jié)果中的文檔按照新的文檔級別被排序。
附圖3是本發(fā)明的一個用于網(wǎng)頁文檔的搜索結(jié)果聚類系統(tǒng)的輸出樣例。用戶輸入的查詢關(guān)鍵詞301是“search engine(搜索引擎)”。系統(tǒng)使用預(yù)先確定的KWAC類別信息(以關(guān)鍵詞作為KWAC類別)將包含了該查詢的所有關(guān)鍵詞的網(wǎng)頁聚類成多個類別,并按照類別的ClassRank1級別(由公式8定義)排序。每個聚類Ci中的文檔d又按照其文檔級別ClusteredDocRank(d,Ci)(由公式6定義)排序。返回給用戶的搜索結(jié)果中,具有最高級別的4個聚類302被首先提交給用戶,其類別名稱分別為“search engine marketing”,“search engine optimization”,“search engine submission”等,并且每個聚類中具有最高級別的前3個文檔被首先列出。
在本發(fā)明實(shí)施例的技術(shù)細(xì)節(jié)說明中,本說明書使用了到排索引方式的文檔檢索系統(tǒng)作為示例。但是,本領(lǐng)域技術(shù)人員可以清楚地知道本發(fā)明的應(yīng)用范圍并不局限于這種類型的系統(tǒng)。
本發(fā)明的技術(shù)方案還可以用其它不同于上述實(shí)施例的方式實(shí)現(xiàn)。所附的權(quán)利要求書涵蓋了對以上所描述的各要素的諸多變形與替換。
權(quán)利要求
1.一種搜索結(jié)果聚類的方法,所述搜索結(jié)果是作為對某個搜索請求的響應(yīng)、從一個被索引的文檔集合中根據(jù)搜索請求與被索引文檔的相關(guān)程度而被選取的一批文檔,所述搜索請求來自使用計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的用戶,其特征在于它包括如下步驟a.預(yù)先記錄被索引文檔相對于其所包含的某個或者某幾個關(guān)鍵詞的一個或多個類別;b.根據(jù)預(yù)先記錄的文檔相對于包含在搜索請求中的某個或者某幾個關(guān)鍵詞的類別,對所述搜索結(jié)果中的文檔分組。
2.根據(jù)權(quán)利要求1所述的搜索結(jié)果聚類的方法,其特征在于所述的文檔相對于關(guān)鍵詞的類別為文檔分類標(biāo)記。
3.根據(jù)權(quán)利要求1所述的搜索結(jié)果聚類的方法,其特征在于所述的文檔相對于關(guān)鍵詞的類別是關(guān)鍵詞或者詞組。
4.根據(jù)權(quán)利要求3所述的搜索結(jié)果聚類的方法,其特征在于所述的文檔相對于關(guān)鍵詞的類別是在文檔中與索引關(guān)鍵詞有固定搭配關(guān)系的關(guān)鍵詞,或者是在一個預(yù)先確定的詞組庫中與索引關(guān)鍵詞有固定搭配關(guān)系的關(guān)鍵詞,或者是出現(xiàn)在文檔標(biāo)題中的關(guān)鍵詞,或者是出現(xiàn)在指向當(dāng)前文檔的其它文檔中的超鏈接所包含的鏈接文本中的關(guān)鍵詞。
5.根據(jù)權(quán)利要求1至4之一所述的搜索結(jié)果聚類的方法,其特征在于為每個類別設(shè)置一個權(quán)重值,表示此類別與所對應(yīng)的文檔的關(guān)聯(lián)程度。
6.根據(jù)權(quán)利要求1至5之一所述的搜索結(jié)果聚類的方法,其特征在于所述的文檔相對于關(guān)鍵詞的類別的集合為一個索引項(xiàng)-文檔列表的倒排表數(shù)據(jù)結(jié)構(gòu),獨(dú)立存放或者與倒排文檔索引結(jié)合在一起。
7.根據(jù)權(quán)利要求1至6之一所述的搜索結(jié)果聚類的方法,其特征在于對于由單個關(guān)鍵詞組成的查詢,搜索結(jié)果中的任一文檔被直接放入到該文檔相對于查詢關(guān)鍵詞的各個類別中;而對于包含多個關(guān)鍵詞的查詢,搜索結(jié)果中的任一文檔的聚類類別的集合是該文檔相對于各個查詢關(guān)鍵詞的類別集合的并集,且該文檔被分別放入此并集中的各個類別之中。
8.根據(jù)權(quán)利要求1至7之一所述的搜索結(jié)果聚類的方法,其特征在于聚類之后的文檔在某一類別中的文檔級別由聚類之前的文檔級別和該文檔相對于此類別的權(quán)重而確定,或者由聚類之前的文檔級別和該類別在各個查詢關(guān)鍵詞所對應(yīng)的聚類類別集合中出現(xiàn)的次數(shù)而確定,或者由聚類之前的文檔級別和查詢中互為聚類類別的關(guān)鍵詞的個數(shù)而確定。
9.根據(jù)權(quán)利要求1至8之一所述的搜索結(jié)果聚類的方法,其特征在于所述聚類類別的級別由其所包含的文檔的級別來計(jì)算,是其包含的所有或者前若干個文檔的級別的總和,或者是其包含的所有或者前若干個文檔的級別的平均值。
10.根據(jù)權(quán)利要求9所述的搜索結(jié)果聚類的方法,其特征在于經(jīng)過聚類之后的搜索結(jié)果中的各個聚類類別按照其級別排序,且具有較高級別的前若干個聚類被優(yōu)先提交給用戶。
全文摘要
一種搜索結(jié)果聚類的方法,包括如下步驟預(yù)先記錄被索引文檔相對于其所包含的某個或者某幾個關(guān)鍵詞的一個或多個類別;根據(jù)預(yù)先記錄的文檔相對于包含在搜索請求中的某個或者某幾個關(guān)鍵詞的類別,對所述搜索結(jié)果中的文檔分組。所述類別可以為任意的文檔分類標(biāo)記或者關(guān)鍵詞。每個類別可設(shè)置一個權(quán)重值。搜索結(jié)果中的文檔被放入該文檔相對于查詢關(guān)鍵詞的類別集合中,并且所得到的各個聚類類別的級別可由其所包含的文檔的級別來計(jì)算。本發(fā)明的聚類過程可以高效地完成,適用于大規(guī)模文檔檢索系統(tǒng)(例如互聯(lián)網(wǎng)搜索引擎)對搜索結(jié)果的聚類,并且通過對聚類類別評級,可以將具有較高級別的聚類以及其中較高級別的文檔優(yōu)先呈現(xiàn)給用戶。
文檔編號G06F17/30GK1609859SQ20041009177
公開日2005年4月27日 申請日期2004年11月26日 優(yōu)先權(quán)日2004年11月26日
發(fā)明者孫斌 申請人:孫斌