專利名稱:索引裝置、索引方法、檢索裝置、檢索方法和檢索系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,具體而言,涉及索引裝置、索引方法、檢索裝置、檢索方法和檢索系統(tǒng)。
背景技術:
目前,搜索引擎已經(jīng)成為互聯(lián)網(wǎng)的主要入口,人們通過搜索引擎查詢和定位互聯(lián)網(wǎng)信息資源。為了便于用戶快速、準確地查詢到所需信息,搜索引擎提供多種檢索方式。其中,精確串檢索(PhraseQuery)、鄰近檢索(ProximityQuery)等通過綜合評價查詢串在文檔中出現(xiàn)的位置、順序、頻率等信息,有效地提高了搜索引擎的查詢相關度。通常,用戶的查詢請求包含多個詞(統(tǒng)計表明大于2. 5詞),詞之間的順序在語義上具備較強的關聯(lián)性。對于精確串檢索,用戶要求查詢返回的文檔必須包含完整的檢索串。對于鄰近檢索,檢索結果集優(yōu)先提供詞出現(xiàn)順序與檢索串一致的文檔。由此可見,用戶請求串在文檔中出現(xiàn)與否,出現(xiàn)頻率等屬性,是文檔相關性評價的重要因素。精確串檢索、鄰近檢索等檢索方式有效地提聞了檢索的相關性,但檢索過程中需要對文檔的關鍵詞位置進行匹配計算,致使檢索速度大幅下降。目前,搜索引擎進行用戶提交的精確串檢索請求的處理邏輯如下,首先對檢索請求涉及的關鍵詞串進行“與”檢索,對“與”檢索的結果文檔,進行位置判斷,判斷和統(tǒng)計完整檢索串出現(xiàn)的頻次,然后計算相關性。在搜索引擎索引中,一般都采用關鍵詞到文檔信息的倒排索引結構,每一個關鍵詞都出現(xiàn)在它所指向的文檔鏈表的每一個文檔。對于在所有文檔中經(jīng)常出現(xiàn)的詞,我們稱其為“高頻詞”,顧名思義就是出現(xiàn)的頻率比較高的詞,比如說“的”、“了”、“我”等。這類關鍵詞不僅出現(xiàn)的文檔頻率高,在每一篇出現(xiàn)的文檔中,出現(xiàn)的次數(shù)也高,為了后期計算相關性的準確性,在文檔鏈表中都會記錄文檔中關鍵詞出現(xiàn)的位置信息,所以在倒排鏈表中,此類關鍵詞指向的文檔鏈表就相當?shù)拇?。再例如,用戶查詢“我的大學”,搜索引擎的分詞模塊將用戶請求處理成關鍵詞串“我/的/大學”,根據(jù)倒排索引,對“我”、“的”、“大學”的倒排索引列表,進行與操作。對于同時包含有上述三個詞的文檔,讀取三個詞在文檔中的位置信息,進行相應統(tǒng)計判斷。由于檢索關鍵詞“我”、“的”都是中文文獻中高頻出現(xiàn)的詞,其倒排索引列表長度很長,同時在文檔中出現(xiàn)的頻率也很高,位置列表也很長,致使整個查詢過程計算量巨大,嚴重影響查詢速度,極端情況下耗時達到秒級以上。傳統(tǒng)的技術方案,在檢索帶有高頻詞的檢索串的時候,因為高頻詞在文檔中出現(xiàn)的頻率高,幾乎所有的文檔中都會出現(xiàn)高頻詞,所以對于這類的檢索串就需要對全部文檔計算一次相關性,針對搜索引擎上億個文檔來說,計算量是相當龐大的,搜索一次很耗時,不利于用戶的體驗。因此,需求提供一種新的索引、檢索方法,能夠克服現(xiàn)有技術的缺點,在保持相關性準確率的情況下,有效地利用計算機硬件資源,提高搜索效率,提升用戶的體驗。
發(fā)明內容
本發(fā)明要解決的技術問題在于,提供一種新的索引、檢索方法,能夠克服現(xiàn)有技術的缺點,在保持相關性準確率的情況下,有效地利用計算機硬件資源,提高搜索效率,提升用戶的體驗。有鑒于此,本發(fā)明提出一種索引裝置,包括高頻詞處理模塊,在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;索引建立模塊,根據(jù)擴展得到的新詞和所述文檔建立索引。在該技術方案中,通過對文檔關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞建立索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,優(yōu)選地,所述高頻詞處理模塊在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞也是高頻詞時,例如“我的祖國”中,“的”為高頻詞,對其進行擴展時,前側的關鍵詞“我”同樣是高頻詞,則將“的”與“我”組合擴展為“我的”,作為新的關鍵詞用于建立索引。在上述技術方案中,優(yōu)選地,所述高頻詞處理模塊在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個或字符與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞均為非高頻詞時,例如“書桌上的鼠標墊”,若取“的”作為高頻詞,而前側“書桌上”和后側的“鼠標墊”均為非高頻詞,則與前側非高頻詞組合擴展的方式為取前側關鍵詞的最后的至少一個字或字符,即至少擴展為“上的”,當然也可以為“桌上的”或其它;而與后側非高頻詞組合擴展的方式為取后側關鍵詞的最前的至少一個字或字符,即至少擴展為“的鼠”,當然也可以為“的鼠標”或其它,具體選用幾個字或字符進行擴展,可以根據(jù)需要靈活設定,然后利用擴展后得到的新的關鍵詞建立索引。本發(fā)明還提出了一種索引方法,包括步驟202,高頻詞處理模塊在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;步驟204,索引建立模塊根據(jù)擴展得到的新詞和所述文檔建立索引。在該技術方案中,通過對文檔關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞建立索引而導致過高的檢索量和過長的檢索時間。在該技術方案中,優(yōu)選地,所述步驟202具體包括所述高頻詞處理模塊在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞也是高頻詞時,例如“我的祖國”中,“的”為高頻詞,對其進行擴展時,前側的關鍵詞“我”同樣是高頻詞,則將“的”與“我”組合擴展為“我的”,作為新的關鍵詞用于建立索引。在該技術方案中,優(yōu)選地,所述步驟202具體包括所述高頻詞處理模塊在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個字或字符與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞均為非高頻詞時,例如“書桌上的鼠標墊”,若取“的”作為高頻詞,而前側“書桌上”和后側的“鼠標墊”均為非高頻詞,則與前側非高頻詞組合擴展的方式為取前側關鍵詞的最后的至少一個字或字符,即至少擴展為“上的”,當然也可以為“桌上的”或其它;而與后側非高頻詞組合擴展的方式為取后側關鍵詞的最前的至少一個字或字符,即至少擴展為“的鼠”,當然也可以為“的鼠標”或其它,具體選用幾個字或字符進行擴展,可以根據(jù)需要靈活設定,然后利用擴展后得到的新的關鍵詞建立索引。本發(fā)明還提出了一種檢索裝置,包括高頻詞處理模塊,在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;檢索模塊,使用擴展得到的新詞,在預建立的索引中進行檢索。在該技術方案中,通過對檢索串關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞來檢索索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,優(yōu)選地,還包括如上述的索引裝置,預建立所述索引。通過技術方案,結合按上述技術方案得到的索引,能夠進一步優(yōu)化檢索。在上述技術方案中,優(yōu)選地,所述高頻詞處理模塊還在所述新詞的兩側添加標記;所述檢索模塊根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。通過該技術方案,采用精確串子查詢,能夠保證檢索的準確性。本發(fā)明還提出了一種檢索方法,包括步驟402,高頻詞處理模塊在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;步驟404,檢索模塊根據(jù)擴展得到的新詞,在預建立的索引中進行檢索。在該技術方案中,通過對檢索串關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞來檢索索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,優(yōu)選地,在所述步驟404之前,還包括通過如上述的索引方法,預建立所述索引。通過技術方案,結合按上述技術方案得到的索引,能夠進一步優(yōu)化檢索。在上述技術方案中,優(yōu)選地,在所述步驟402中,還包括所述高頻詞處理模塊在所述新詞的兩側添加標記;所述步驟404具體包括所述檢索模塊根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。通過該技術方案,采用精確串子查詢,能夠保證檢索的準確性。本發(fā)明還提出了一種檢索系統(tǒng),包括如上所述的索引裝置;如上所述的檢索裝置,所述檢索裝置使用其生成的新詞,在所述索引裝置建立的索引中進行檢索。在該技術方案中,將利用高頻詞擴展生成新關鍵詞的方式建立的索引對應于同樣采用高頻詞擴展方式的檢索過程相關聯(lián),形成一個完整的信息檢索系統(tǒng),使整個系統(tǒng)在運行時,可以在現(xiàn)有的計算機硬件環(huán)境下,在保證相關性準確率的前提下,有效地利用計算機的硬件資源,提升用戶體驗。
圖1是根據(jù)本發(fā)明的一個實施例的索引裝置的框圖;圖2是根據(jù)本發(fā)明的一個實施例的索引方法的流程圖3是根據(jù)本發(fā)明的一個實施例的檢索裝置的框圖;圖4是根據(jù)本發(fā)明的一個實施例的檢索方法的流程圖;圖5是根據(jù)本發(fā)明的一個實施例的檢索系統(tǒng)的框圖;圖6是根據(jù)本發(fā)明的一個實施例的索引方法中的高頻詞處理流程圖;圖7是根據(jù)本發(fā)明的一個實施例的索引方法中的高頻詞處理示意圖;圖8是根據(jù)本發(fā)明的一個實施例的索引方法的流程示意圖;圖9是根據(jù)本發(fā)明的一個實施例的檢索方法的流程示意圖;圖10是現(xiàn)有搜索引擎中使用的數(shù)據(jù)結構的示意圖;圖11是根據(jù)本發(fā)明的一個實施例的索引方法的流程示意圖;圖12是根據(jù)本發(fā)明的一個實施例的索引方法的流程示意圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結合附圖和具體實施方式
對本發(fā)明進行進一步的詳細描述。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。首先,關于本發(fā)明對減少文檔鏈表的大小、提高檢索效率等優(yōu)勢的作用原理在此處予以說明。用戶搜索單個高頻詞的概率很小,且沒有意義,一般的高頻詞查詢都是與其他詞組合而成進行查詢的,在此前提下,本發(fā)明提出的方法是將文檔中的高頻詞與高頻詞后面的或者前面的一個字組合成一個非高頻關鍵詞做索引,在做查詢時,對于帶高頻詞的查詢串,分詞的時候可以將高頻詞與非高頻詞組合查詢,減少非命中文檔,提高計算效率。關于通過組合高頻詞減少倒排索引中關鍵詞(本申請中,將對文檔或檢索串分詞處理后得到的詞稱為關鍵詞)指向的文檔鏈表的大小,過程如下假設有一文檔集合U,文檔的個數(shù)是Nu,文檔集合中包含有高頻詞W1的文檔個數(shù)是N1 (O < = N1 < = Nu),所以高頻詞W1出現(xiàn)的概率G1是Fwi =NlZNu另一關鍵詞W2 (不管是高頻詞還是非高頻詞)出現(xiàn)的文檔個數(shù)是N2 (O < = N2 < =Nu),關鍵詞W2出現(xiàn)的概率&2是Fwi =N2ZNu此時,若將W1與W2組合成一個關鍵詞W1W2 (或者W2W1),這個組合關鍵詞在文檔中出現(xiàn)的概率就是在出現(xiàn)關鍵詞W1的文檔中查找包含關鍵詞W2的文檔,概率的大小€^2是Fwiwi =Fwi *FWi=N1* N2/Ni如果W2是非高頻詞,那么N2肯定不會等于Nu,也就是不是所有的文檔都包含關鍵詞W2,索引頻率Fw2的大小肯定是ο<=Fw2<1的,因此&lW2肯定小于' ,也就是組合串W1W2的倒排索引指向的文檔鏈表大小減少。
如果W2是高頻詞,那么N2有可能等于Nu,即可能所有的文檔都包含關鍵詞W2,這時如果高頻詞W1出現(xiàn)的文檔數(shù)N1等于Nu,在不考慮位置的情況下,仏lW2出現(xiàn)的概率是1,如果考慮位置,W1與W2必須出現(xiàn)在一起,那&&出現(xiàn)的概率肯定比Fwi出現(xiàn)的概率低。因此,通過上述分析可以得知,當檢索關鍵詞中存在高頻詞W1時,若與其前側或后側的詞W2進行組合,無論W2是否為高頻詞,則組合后的新關鍵詞W1W2(或W2W1)對應倒排索引指向的文檔鏈表會減小。圖1是根據(jù)本發(fā)明的一個實施例的索引裝置的框圖。如圖1所示,本發(fā)明提出一種索引裝置100,包括高頻詞處理模塊102,在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;索引建立模塊104,根據(jù)擴展得到的新詞和所述文檔建立索引。在該技術方案中,通過對文檔關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞建立索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,所述高頻詞處理模塊102在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞·前側和/或后側的關鍵詞也是高頻詞時,例如“我的祖國”中,“的”為高頻詞,對其進行擴展時,前側的關鍵詞“我”同樣是高頻詞,則將“的”與“我”組合擴展為“我的”,作為新的關鍵詞用于建立索引。在上述技術方案中,所述高頻詞處理模塊102在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個或字符與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞均為非高頻詞時,例如“書桌上的鼠標墊”,若取“的”作為高頻詞,而前側“書桌上”和后側的“鼠標墊”均為非高頻詞,則與前側非高頻詞組合擴展的方式為取前側關鍵詞的最后的至少一個字或字符,即至少擴展為“上的”,當然也可以為“桌上的”或其它;而與后側非高頻詞組合擴展的方式為取后側關鍵詞的最前的至少一個字或字符,即至少擴展為“的鼠”,當然也可以為“的鼠標”或其它,具體選用幾個字或字符進行擴展,可以根據(jù)需要靈活設定,然后利用擴展·后得到的新的關鍵詞建立索引。
·
圖2是根據(jù)本發(fā)明的一個實施例的索引方法的流程圖。如圖2所示,本發(fā)明還提出了一種索引方法,包括步驟202,高頻詞處理模塊在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;步驟204,索引建立模塊根據(jù)擴展得到的新詞和所述文檔建立索引。在該技術方案中,通過對文檔關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞建立索引而導致過高的檢索量和過長的檢索時間。在該技術方案中,所述步驟202具體包括所述高頻詞處理模塊在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞也是高頻詞時,例如“我的祖國”中,“的”為高頻詞,對其進行擴展時,前側的關鍵詞“我”同樣是高頻詞,則將“的”與“我”組合擴展為“我的”,作為新的關鍵詞用于建立索引。在該技術方案中,所述步驟202具體包括所述高頻詞處理模塊在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個字或字符與所述當前詞組合,以形成所述新詞。在該技術方案中,在高頻詞前側和/或后側的關鍵詞均為非高頻詞時,例如“書桌上的鼠標墊”,若取“的”作為高頻詞,而前側“書桌上”和后側的“鼠標墊”均為非高頻詞,則與前側非高頻詞組合擴展的方式為取前側關鍵詞的最后的至少一個字或字符,即至少擴展為“上的”,當然也可以為“桌上的”或其它;而與后側非高頻詞組合擴展的方式為取后側關鍵詞的最前的至少一個字或字符,即至少擴展為“的鼠”,當然也可以為“的鼠標”或其它,具體選用幾個字或字符進行擴展,可以根據(jù)需要靈活設定,然后利用擴展后得到的新的關鍵詞建立索引。圖3是根據(jù)本發(fā)明的一個實施例的檢索裝置的框圖。如圖3所示,本發(fā)明還提出了一種檢索裝置300,包括高頻詞處理模塊302,在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;檢索模塊304,使用擴展得到的新詞,在預建立的索引中進行檢索。在該技術方案中,通過對檢索串關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞來檢索索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,還包括如上述的索引裝置100,預建立所述索引。通過技術方案,結合按上述技術方案得到的索引,能夠進一步優(yōu)化檢索。在上述技術方案中,所述高頻詞處理模塊302還在所述新詞的兩側添加標記;所述檢索模塊304根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。通過該技術方案,采用精確串子查詢,能夠保證檢索的準確性。圖4是根據(jù)本發(fā)明的一個實施例的檢索方法的流程圖。如圖4所示,本發(fā)明還提出了一種檢索方法,包括步驟402,高頻詞處理模塊在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;步驟404,檢索模塊根據(jù)擴展得到的新詞,在預建立的索引中進行檢索。在該技術方案中,通過對檢索串關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞來檢索索引而導致過高的檢索量和過長的檢索時間。在上述技術方案中,在所述步驟404之前,還包括通過如上述的索引方法,預建立所述索引。通過技術方案,結合按上述技術方案得到的索引,能夠進一步優(yōu)化檢索。在上述技術方案中,在所述步驟402中,還包括所述高頻詞處理模塊在所述新詞的兩側添加標記;所述步驟404具體包括所述檢索模塊根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。通過該技術方案,采用精確串子查詢,能夠保證檢索的準確性。圖5是根據(jù)本發(fā)明的一個實施例的檢索系統(tǒng)的框圖。如圖5所示,本發(fā)明還提出了一種檢索系統(tǒng)500,包括如上所述的索引裝置100 ;如上所述的檢索裝置300,所述檢索裝置300使用其生成的新詞,在所述索引裝置100建立的索引中進行檢索。在該技術方案中,將利用高頻詞擴展生成新關鍵詞的方式建立的索引對應于同樣采用高頻詞擴展方式的檢索過程相關聯(lián),形成一個完整的信息檢索系統(tǒng),使整個系統(tǒng)在運行時,可以在現(xiàn)有的計算機硬件環(huán)境下,在保證相關性準確率的前提下,有效地利用計算機的硬件資源,提升用戶體驗。以下詳細說明本發(fā)明的技術方案。在用戶使用搜索串搜索信息的時候,高頻詞一般是與其它詞組合后進行搜索的,因為單獨搜索高頻詞是沒有任何意義的,比如說用戶想搜索帶有“我的中國”字符串的文檔,用戶肯定是拿搜索串“我的中國”去檢索,而不是搜索一個“的”字,然后在結果中用人眼去遍歷是否含有“我的中國”字符串的文檔。高頻詞與它在檢索串中的前后兩個關鍵詞密切相關,在檢索串中如果出現(xiàn)高頻詞,那用戶肯定是想要與檢索串中它前后兩個詞的位置信息完全的匹配的結果,如果不需要位置信息匹配,則完全可以去掉高頻詞,假如用戶搜索“我的中國”,那用戶是想要文檔中有“我的中國”這四個字的文檔,搜索“我中國”,那用戶是想要文檔中包含“我”和“中國”這兩個詞的文檔,所以用戶搜索帶有高頻詞的檢索串,目的是連接它左右兩個結果,確定左右兩個關鍵詞在文檔中的位置關系(既必須出現(xiàn)在當前高頻詞的左右兩端)?;谶@種情況,在本發(fā)明的實施例的技術方案中,建索引的時候,將高頻詞擴展,與它在文檔中的前后兩個字連接組成新的關鍵詞。高頻詞與其在文檔中緊挨的兩個詞的組合關鍵詞做索引,檢索效率會更快,本發(fā)明的實施例中所提出的技術方案是高頻詞與其文檔中緊挨的兩個字組合關鍵詞做索引。這是因為關鍵詞的數(shù)量很大,并且每天都有新詞出現(xiàn),那高頻詞與詞組合的新關鍵詞的數(shù)量也同樣非常大,如果現(xiàn)在有N個高頻詞,詞的總數(shù)是M (包含非高頻詞和高頻詞),高頻詞組合的關鍵詞數(shù)量最大值達到N*M,為了檢索的速度,一般索引的關鍵詞列表都放在計算機內存中,內存的大小也制約著關鍵詞列表的大小,對聞頻詞組合后,關鍵詞列表的大小增加了N倍,很有可能導致內存不能滿足關鍵詞列表。而高頻詞加字的組合,單個字的個數(shù)有限,高頻詞與字組合的關鍵詞的數(shù)量最多為不同的單個字數(shù)量的兩倍,內存是可以放下的。高頻詞組合過程如圖6所示。首先要組合的兩個關鍵詞中有一個必須是高頻詞,不然對于兩個非高頻詞就沒有組合的必要。過程如下步驟602,確認緊挨的詞WlWl中,至少有一個是高頻詞。步驟604,判斷關鍵詞Wl與關鍵詞W2是不是都是高頻詞,如果是進行步驟606,如果不是進行步驟608。步驟606,將關鍵詞Wl與關鍵詞W2連接組合成新的關鍵詞,組合過程結束。步驟608,判斷Wl是不是高頻詞。如果是,進入步驟610,如果不是,進入步驟612。步驟610,將Wl與W2的第一個漢字或者字符組合形成新的關鍵詞(W2的第一個字符如果是漢字則與漢字組合,如果是非漢字,則與第一個字符組合),組合過程結束。步驟612,將W2與Wl的第一個漢字或者字符組成新的關鍵詞(Wl的第一個字符如果是漢字則與漢字組合,如果是非漢字,則與第一個字符組合),組合過程結束。例如圖7 所示,有字符串 “ala2a3a4a5blb2b3b4b5clc2c3c4c5”,被切詞成 Wl 詞 “ala2a3a4a5”、W2 詞 “blb2b3b4b5”、W3 詞 “clc2c3c4c5”。如果 W2 是高頻詞,W2將與Wl和W2都組合一個新的關鍵詞,如果Wl是高頻詞,那W2與Wl組合的新關鍵詞是“ala2a3a4a5blb2b3b4b5”,如果Wl是非高頻詞,那W2與Wl組合的新關鍵詞是“a5blb2b3b4b5”,這里如果a5是漢字的話,將占2個字符(GBK編碼漢字占兩個字符),如果是非漢字占一個字符。如果W3是高頻詞,那W2與W3組合的新關鍵詞是“blb2b3b4b5clc2c3c4c5”,如果W3是非高頻詞,那么W2與W3組合的新關鍵詞是“blb2b3b4b5cl”,Cl是漢字的話,將占2個字符,如果是非漢字占一個字符。與傳統(tǒng)高頻詞索引不同的是,本實施例的技術方案中,添加了高頻詞的組合詞來做索引,索引過程與檢索過程跟傳統(tǒng)模式就不一樣,如圖8所示索引過程步驟802,對新文檔數(shù)據(jù)進行切詞。切詞后的文檔數(shù)據(jù)中,有高頻詞的話,高頻詞是獨立的,沒有組合。步驟804,對文檔中高頻詞按圖7所示的方式進行組合。統(tǒng)計組合后的文檔關鍵詞詞頻,位置信息。步驟806,按關鍵詞信息,添加文檔信息到倒排索引庫中,直至加載文檔結束。而對應的檢索過程如圖9所示步驟902,接收用戶輸入的帶高頻詞的檢索串。步驟904,對檢索串進行切詞。步驟906,分析切詞后的數(shù)據(jù),在用戶的檢索串中存在高頻詞或者是獨立的高頻詞(不排除用戶只查高頻詞的特殊情況),對檢索串中的高頻詞與前后詞進行組合。組合后的關鍵詞中可能有重合的關鍵詞,高頻詞與前后詞組合,所以位置上不是依次出現(xiàn)的。步驟908,依照切詞后的關鍵詞檢索索引庫。按照位置信息,排除位置重合。步驟910,計算相關性,輸出最相關的TopN個結果。例如,在查詢帶高頻詞的檢索串時,對組合后的新關鍵詞要做標記,表示新詞是由兩個詞組合而成的新關鍵詞,一般采用在組合的新關鍵詞后加做標記,如圖7所示字符串“ala2a3a4a5blb2b3b4b5clc2c3c4c5”做查詢串時,切分為Wl、W2、W3三個關鍵詞,假設W2為聞頻詞,組合后的新關鍵詞有“ala2aa3a4a5blb2b3b4b5#,,Wl 是高頻詞,“a5blb2b3b4b5#”Wl 是非高頻詞,“blb2b3b4b5clc2c3c4c5#”W3 是高頻詞,“blb2b3b4b5cl#”W3 是非高頻詞。所有的新詞后面都帶有標記符號“#,,,用以區(qū)分一般的非高頻關鍵詞。以下繼續(xù)說明本發(fā)明的技術方案。目前,主流的搜索引擎主要依賴于詞典文件、倒排列表文件、位置列表文件等三個數(shù)據(jù)結構實施檢索操作邏輯,如圖10所示。其中,詞典文件記錄詞和詞的倒排文檔列表在倒排列表文件中的偏移信息。倒排列表文件記錄了所有詞的倒排文檔列表數(shù)據(jù)。位置列表文件記錄所有詞的在文檔中出現(xiàn)的位置信息。由于高頻詞頻繁出現(xiàn)在文檔集中(有些詞出現(xiàn)在70%的文檔中),同時在單片文檔中出現(xiàn)的頻率也很高,因此,詞對應的倒排列表長度和位置列表長度都很長。本發(fā)明的實施例提出在索引建立過程中,將高頻詞與其前后出現(xiàn)的詞進行某種方式的組合,形成高頻級聯(lián)詞,并設置高頻級聯(lián)詞的位置為原詞位置。在檢索時,對用戶提交檢索請求串進行相同的處理,將對高頻詞的查詢,替換成高頻級聯(lián)詞的查詢。由于,高頻級聯(lián)詞的在文檔集合和在單片文檔中出現(xiàn)頻率都遠低于原高頻詞,因此大大減少了需要進行“與”操作和位置計算的規(guī)模,有效提高了串檢索的速度,并不損失查詢正確性。建立索引的整體技術方案如圖11所示
具體包括步驟1102,判斷是否有需要進行索引的文檔。步驟1104,讀取待索引的文檔。步驟1106,對文檔進行分詞和位置標記。步驟1108,對高頻詞進行級聯(lián)處理。步驟1110,將生成的索引添加到索引庫。高頻級聯(lián)詞的處理邏輯如下,首先對輸入文本進行分詞、位置標記處理,生成正排索引,其他步驟如下步驟1202,依次讀取正排索引的詞。步驟1204,判斷是否還有詞,是則進入步驟1206,否則結束操作。步驟1206,根據(jù)預先生成的高頻詞表,對正排索引中的每一個詞進行過濾,判斷是否是高頻詞。如果非高頻詞,則進入步驟1208,否則,返回步驟1204。步驟1208,析該詞前面的詞。如果前詞存在,進入步驟1210,不存在則進入步驟1214。步驟1210,判斷前詞是否為高頻詞,是則進入步驟1214,否則進入步驟1212。步驟1212,將前詞的第一個中文字(如果是英文單詞,則取單詞的第一個字符)和該詞組成新詞。步驟1214,分析該詞后面的詞。如果后詞存在,進入步驟1216,否則返回步驟1204。步驟1216,判斷后詞是否為高頻詞,是則進入步驟1218,否則進入步驟1220。步驟1218,則將該詞與后詞進行組合,生成高頻級聯(lián)詞,并將高頻級聯(lián)詞的位置記錄為當前詞的位置。步驟1220,如果后詞存在,并且非高頻詞,則將該詞與后詞的第一個中文字(如果是英文單詞,則取單詞的第一個字符)進行組合。步驟1222,為新詞加上級聯(lián)標記符號,生成高頻級聯(lián)詞。步驟1224,將高頻級聯(lián)詞的位置記錄為當前位置,插入到正排索引。級聯(lián)標記符號可以是任意一個不參與索引和檢索的符號。本系統(tǒng)為了表述方便,選取“#”作為級聯(lián)標記符號。由于級聯(lián)標記符號不參與索引和檢索,因此由分詞模塊生成的正常分詞結果中不會包含高頻級聯(lián)詞,不會產生沖突。例如,索引建立過程中,對于文檔“我的大學非常美麗”,進行切詞、詞位置標記處理后為(我,1)/(的,2)/(大學,3)/(非常,4)/(美麗,5)通過高頻詞表查詢,可以獲知“我”和“的”為高頻詞,進行高頻級聯(lián)詞處理邏輯,處理后需要建立索引的正排文檔如下(我,1)/(#我的 #,1)/(的,2)/(# 的大 #,2)/(大學,3)/(非常,4)/(美麗,5)針對上述正排文檔,按照正常處理邏輯,建立倒排文檔。(我的,I)、(的大,2)是高頻級聯(lián)詞索引項。串查詢過程也進行同樣的處理邏輯。比如,對于串查詢請求“我的大學”,進行切詞、詞位置標記處理后為(我,1)/(的,2)/(大學,3)進行高頻級聯(lián)詞處理邏輯,獲得最終檢索詞項集合
(我,l)/(#我的 #,1)/(的,2)/(# 的大 #,2)/(大學,3)檢索階段,串檢索邏輯只需對查詢集合(我的,1)/(的大,2)/(大學,3)進行檢索,首先讀取“我的”、“的大”、“大學”的倒排列表,進行“與”邏輯的檢索。對于包含上述三詞的文檔,讀取三個詞的位置列表信息,采用一定方法,判斷各詞是否順序出現(xiàn)。僅當三個詞順序出現(xiàn),統(tǒng)計出現(xiàn)次數(shù),以此作為相關性評價的因素。顯然,“#我的#”、“#的大#”的出現(xiàn)頻率遠低于“我”、“的”,其倒排索引列表和位置列表長度都遠小有后者,大大的減少計算量,提高了檢索速度。高頻級聯(lián)詞的加入增大了搜索引擎詞表的大小,同時也增加了倒排文檔列表文件和位置文件的規(guī)模?;诓樵冃士紤],搜索引擎在運行狀態(tài)通常將詞典文件導入內存中。理論上,高頻級聯(lián)詞生成模塊可能產生2*n*n+2*n*m個新詞,其中,η為高頻詞的個數(shù),m為漢字和英文字母的個數(shù),由于級聯(lián)方向的原因,詞的個數(shù)需要乘2。但,由于文檔通常符合一定的語法語用規(guī)則,在實際文本索引過程中產生的新詞要遠小于理論值。通過控制n、m的值,新生成詞的規(guī)模可以控制在目前運行態(tài)檢索服務器硬件內存可接受的范圍之內。倒排文檔列表文件和位置文件都保存于磁盤,其規(guī)模上的增長,并沒有帶來檢索性能的損失。由此,高頻級聯(lián)詞處理策略,通過空間換時間的方法,大幅提高了檢索中串查找和頻率計算的效率,提高了檢索速度。綜上所述,根據(jù)本發(fā)明的技術方案,可以實現(xiàn)索引裝置、索引方法、檢索裝置、檢索方法和檢索系統(tǒng),在搜索引擎的文檔索引和檢索過程,將高頻詞與前后詞就進行某種方式的組合,形成高頻級聯(lián)詞進行索引,在檢索階段,用高頻級聯(lián)詞替代原高頻詞參與檢索。由于高頻級聯(lián)詞的倒排列表長度和位置列表長度遠小于原高頻詞,從而大大減少了檢索過程中串查找和串頻統(tǒng)計的運算量,在保證檢索準確性的同時,大幅提聞了檢索的效率。本發(fā)明考慮了計算機硬件環(huán)境下,針 對目前傳統(tǒng)的索引結構,解決了帶有高頻詞的串檢索計算量大,速度慢的問題,用有限的空間資源換取時間上快速查詢,提高用戶體驗。以上結合附圖詳細說明了本發(fā)明的技術方案,通過對所述高頻詞進行擴展組合為新的關鍵詞,并利用該組合關鍵詞建立索引庫及進行檢索,從而在現(xiàn)有的計算機硬件環(huán)境下,在保證相關性準確率的前提下,利用有限的空間資源實現(xiàn)檢索效率的有效提高,提升用戶體驗。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種索引裝置,其特征在于,包括 高頻詞處理模塊,在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展; 索引建立模塊,根據(jù)擴展得到的新詞和所述文檔建立索引。
2.根據(jù)權利要求1所述的索引裝置,其特征在于,所述高頻詞處理模塊在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。
3.根據(jù)權利要求1所述的索引裝置,其特征在于,所述高頻詞處理模塊在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個或字符與所述當前詞組合,以形成所述新詞。
4.一種索引方法,其特征在于,包括 步驟202,高頻詞處理模塊在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展; 步驟204,索引建立模塊根據(jù)擴展得到的新詞和所述文檔建立索引。
5.根據(jù)權利要求4所述的索引方法,其特征在于,所述步驟202具體包括 所述高頻詞處理模塊在所述前側詞和/或所述后側詞也為高頻詞時,將所述前側詞和/或所述后側詞與所述當前詞組合,以形成所述新詞。
6.根據(jù)權利要求4所述的索引方法,其特征在于,所述步驟202具體包括 所述高頻詞處理模塊在所述前側詞和/或所述后側詞為非高頻詞時,將所述前側詞中最后的至少一個字或字符與所述當前詞組合,和/或將所述后側詞中最前的至少一個字或字符與所述當前詞組合,以形成所述新詞。
7.一種檢索裝置,其特征在于,包括 高頻詞處理模塊,在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展; 檢索模塊,使用擴展得到的新詞,在預建立的索引中進行檢索。
8.根據(jù)權利要求7所述的檢索裝置,其特征在于,還包括 如權利要求1至4中任一項所述的索引裝置,預建立所述索引。
9.根據(jù)權利要求8所述的檢索裝置,其特征在于,所述高頻詞處理模塊還在所述新詞的兩側添加標記; 所述檢索模塊根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。
10.一種檢索方法,其特征在于,包括 步驟402,高頻詞處理模塊在檢索串中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展; 步驟404,檢索模塊根據(jù)擴展得到的新詞,在預建立的索引中進行檢索。
11.根據(jù)權利要求10所述的檢索方法,其特征在于,在所述步驟404之前,還包括 通過如權利要求4至6中任一項所述的索引方法,預建立所述索引。
12.根據(jù)權利要求11所述的檢索方法,其特征在于,在所述步驟402中,還包括 所述高頻詞處理模塊在所述新詞的兩側添加標記;所述步驟404具體包括所述檢索模塊根據(jù)所述標記,獲取所述新詞,并統(tǒng)計所述新詞在所述文檔中順序出現(xiàn)的次數(shù),以用于為所述文檔計算相關性,并根據(jù)得到的相關性來選取作為檢索結果的文檔。
13.一種檢索系統(tǒng),其特征在于,包括 權利要求1至3中任一項所述的索引裝置; 權利要求7至9中任一項所述的檢索裝置,所述檢索裝置使用其生成的新詞,在所述索引裝置建立的索引中進行檢索。
全文摘要
本發(fā)明提出一種索引裝置,包括高頻詞處理模塊,在文檔中的當前詞為高頻詞時,根據(jù)所述當前詞鄰接的前側詞和/或后側詞,對所述當前詞進行擴展;索引建立模塊,根據(jù)擴展得到的新詞和所述文檔建立索引。在該技術方案中,通過對文檔關鍵詞中的高頻詞進行擴展處理,降低了關鍵詞中高頻詞的數(shù)量,避免了利用大量高頻詞建立索引而導致過高的檢索量和過長的檢索時間。本發(fā)明還提供索引方法、檢索裝置、檢索方法和檢索系統(tǒng)。
文檔編號G06F17/30GK103064840SQ201110319548
公開日2013年4月24日 申請日期2011年10月20日 優(yōu)先權日2011年10月20日
發(fā)明者許歡慶, 吳尉林, 夏亮, 郭永福, 陳沛 申請人:北京中搜網(wǎng)絡技術股份有限公司