= 1(因為一開始每棵樹中都只有根結(jié)點一個結(jié)點)。讀入ab,將a的位置加一,gpPos (a) = 2(因為a樹增加了一個分支,加一后是得到了下一分支的分支號),然后將b及b的位置信息Pos (b)寫入a的后續(xù)樹的第Pos (a) _1個分支上(Pos (a) _1分支就是a樹的待寫入值的當前分支),即把(b,1)寫入樹a的第1個分支;接下來,讀入下一個字符c,則b的位置Pos(b)+l = 2,將c及c的位置信息Pos(c)寫入b的后續(xù)樹的第Pos(b)_l個分支上,即把(c,1)寫入樹b的第一個分支;這樣循環(huán)執(zhí)行下去,直到讀入文本的末尾時,將(#,0)與入c的后續(xù)樹中的最后一個分支,該文本的一■兀內(nèi)相關(guān)后續(xù)樹索引建立完畢。
[0069]對于為文本信息建立詞索引,在建立詞索引之前還包括對文本信息進行分詞的步驟,具備包括:利用分詞詞典對文本進行分詞操作形成標引詞集合。
[0070]本發(fā)明中的分詞詞典采用基于PATRICIA樹結(jié)構(gòu)的詞典,具體采用增量最大匹配法切分,即對于一個字串,從長度為2的子串開始,對^+1,在詞典中查找是否是詞,如果不是則將4單獨成詞,然后子串后移一個字,繼續(xù)查找A 1+1A1+2;如果是詞,則需要將子串長度加一,判斷A1+1A1+2A1+3是否是詞,如果不是,則將A 1+1A1+2切分出來,如果是則繼續(xù)加一,直到查找不到詞為止。
[0071]由于長詞出現(xiàn)的頻率比較低,因此這種方法在匹配次數(shù)上較正向減字最大匹配法要少得多,時間性能較好。在增量匹配的過程中,由于詞典的結(jié)構(gòu)是PATRICIA樹結(jié)構(gòu),具有前綴查詢的功能,所以在增一匹配時,可以對新增字的二進制碼從上一個匹配成功的詞的最后一個比較位處接著比較,無需再從樹根重新查找,這樣一來通過一次遍歷的過程就可以查找到最長詞,查找的效率有了明顯的改進。
[0072]分詞完成后,對切分出的詞條去除停用詞,然后統(tǒng)計詞條集合中相鄰詞的頻率,生成一個雙詞頻率表,為索引的創(chuàng)建做準備。
[0073]有了文本信息的索引,就可以基于索引進行了文本的檢索,文本的檢索方法是和相應(yīng)的索引模型緊密關(guān)聯(lián)的。
[0074]本發(fā)明還進一步包括步驟S300,接收用戶輸入的查詢字符串,根據(jù)網(wǎng)頁數(shù)據(jù)索引進行檢索。對于不同的索引模型,具體的檢索過程會不同。
[0075]在本發(fā)明的一個實施例中,將查詢字符串分別分解為字和詞,對于網(wǎng)頁數(shù)據(jù)索引是字索引的情況,按字根據(jù)所述字索引來進行檢索;對于網(wǎng)頁數(shù)據(jù)索引是詞索引的情況,按分詞根據(jù)所述詞索引來進行檢索。
[0076]對于索引為二元內(nèi)相關(guān)后續(xù)樹模型的情況,具體的檢索過程為:
[0077]第一階段,針對網(wǎng)頁數(shù)據(jù)索引是字索引的情況進行檢索;
[0078]首先順序讀入查詢字符串分解后的每一個字,取第一個字A,針對字索引,在二元內(nèi)相關(guān)后續(xù)樹中找到以A為根的樹,然后在樹A的葉子中逐個分支地匹配查詢字符串的下一個字B,匹配到B的話則將B的后續(xù)編號加入隊列,直到A的全部分支都匹配結(jié)束;轉(zhuǎn)到以B為根的樹,從隊列中取出B樹的分支號,查找相應(yīng)的葉子結(jié)點來匹配字符串中的下一個字C,如此循環(huán)直到有一次匹配過程中沒有匹配到或者查詢字符串全部匹配結(jié)束,如果匹配成功,則意味著找到了包含查詢字符串的原文;
[0079]第二階段,針對網(wǎng)頁數(shù)據(jù)索引是詞索引的情況進行檢索;
[0080]首先順序讀入查詢字符串分解后的每一個詞,取第一個詞A,針對詞索引,在二元內(nèi)相關(guān)后續(xù)樹中找到以A為根的樹,然后在樹A的葉子中逐個分支地匹配查詢字符串的下一個詞B,匹配到B的話則將B的后續(xù)編號加入隊列,直到A的全部分支都匹配結(jié)束;轉(zhuǎn)到以B為根的樹,從隊列中取出B樹的分支號,查找相應(yīng)的葉子結(jié)點來匹配字符串中的下一個詞C,如此循環(huán)直到有一次匹配過程中沒有匹配到或者查詢字符串全部匹配結(jié)束,如果匹配成功,則意味著找到了包含查詢字符串的原文。
[0081]本發(fā)明還進一步包括步驟S400,對檢索到的結(jié)果進行排序,將排序結(jié)果展示給用戶。
[0082]本發(fā)明不對排序方法進行限定,可以使用各種現(xiàn)有的排序技術(shù)對排序結(jié)果進行排序。
[0083]本發(fā)明一實施例中,為了提高檢索效率,進一步的,針對網(wǎng)頁數(shù)據(jù)索引是詞索引的情況,將詞索引文件中的索引詞作為文本信息,基于所述內(nèi)相關(guān)后續(xù)樹模型對所述索引詞再建立索引,從而進一步提尚檢索的效率。
[0084]本發(fā)明采用二元內(nèi)相關(guān)后續(xù)樹模型為網(wǎng)頁數(shù)據(jù)創(chuàng)建索引,同時考慮了字索引和詞索引的優(yōu)缺點,在減少索引空間的同時提尚了檢索效率。
[0085]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。
[0086]應(yīng)當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項】
1.一種基于樹形結(jié)構(gòu)的檢索方法,用于中文搜索引擎中對中文網(wǎng)頁數(shù)據(jù)的處理,包括: 步驟S100,網(wǎng)頁數(shù)據(jù)預(yù)處理; 步驟S200,建立網(wǎng)頁數(shù)據(jù)索引文件; 步驟S300,接收用戶輸入的查詢字符串,根據(jù)網(wǎng)頁數(shù)據(jù)索引進行檢索。2.如權(quán)利要求1所述的基于樹形結(jié)構(gòu)的檢索方法,其中,步驟S200中的所述網(wǎng)頁數(shù)據(jù)索引文件是對處理后的網(wǎng)頁數(shù)據(jù)所建立的網(wǎng)頁數(shù)據(jù)索引組成的文件。3.如權(quán)利要求2所述的基于樹形結(jié)構(gòu)的檢索方法,其中,所述網(wǎng)頁數(shù)據(jù)索引為字索引。4.如權(quán)利要求2所述的基于樹形結(jié)構(gòu)的檢索方法,其中,所述網(wǎng)頁數(shù)據(jù)索引為詞索引。5.如權(quán)利要求2所述的基于樹形結(jié)構(gòu)的檢索方法,其中,所述網(wǎng)頁數(shù)據(jù)索引為字索引和詞索引。6.如權(quán)利要求2所述的基于樹形結(jié)構(gòu)的檢索方法,其中,所述網(wǎng)頁數(shù)據(jù)索引是基于二元內(nèi)相關(guān)后續(xù)樹創(chuàng)建的索引。7.如權(quán)利要求6所述的基于樹形結(jié)構(gòu)的檢索方法,其中,步驟S100進一步包括: 首先對抓取的原始網(wǎng)頁進行分類,然后再按照分類分別提取網(wǎng)頁中的文本信息,得到分類后的文本信息;生成網(wǎng)頁索引文件的過程包括為原始網(wǎng)頁的每個分類分別建立網(wǎng)頁索引文件。8.如權(quán)利要求7所述的基于樹形結(jié)構(gòu)的檢索方法,其中,在步驟S200中,建立網(wǎng)頁數(shù)據(jù)索引文件進一步包括: 首先,判斷每個分類的文本信息的容量,當所述分類的容量小于1GB時,為所述分類的文本信息建立字索引,當所述分類的容量大于等于1GB時,為所述分類的文本信息建立詞索引。9.如權(quán)利要求8所述的基于樹形結(jié)構(gòu)的檢索方法,進一步包括:將查詢字符串分別分解為字和詞,對于網(wǎng)頁數(shù)據(jù)索引是字索引的情況,按字根據(jù)所述字索引來進行檢索;對于網(wǎng)頁數(shù)據(jù)索引是詞索引的情況,按分詞根據(jù)所述詞索引來進行檢索。10.如權(quán)利要求9所述的基于樹形結(jié)構(gòu)的檢索方法,具體的檢索過程為: 第一階段,針對網(wǎng)頁數(shù)據(jù)索引是字索引的情況進行檢索; 首先順序讀入查詢字符串分解后的每一個字,取第一個字A,針對字索引,在二元內(nèi)相關(guān)后續(xù)樹中找到以A為根的樹,然后在樹A的葉子中逐個分支地匹配查詢字符串的下一個字B,匹配到B的話則將B的后續(xù)編號加入隊列,直到A的全部分支都匹配結(jié)束;轉(zhuǎn)到以B為根的樹,從隊列中取出B樹的分支號,查找相應(yīng)的葉子結(jié)點來匹配字符串中的下一個字C,如此循環(huán)直到有一次匹配過程中沒有匹配到或者查詢字符串全部匹配結(jié)束,如果匹配成功,則意味著找到了包含查詢字符串的原文; 第二階段,針對網(wǎng)頁數(shù)據(jù)索引是詞索引的情況進行檢索; 首先順序讀入查詢字符串分解后的每一個詞,取第一個詞A,針對詞索引,在二元內(nèi)相關(guān)后續(xù)樹中找到以A為根的樹,然后在樹A的葉子中逐個分支地匹配查詢字符串的下一個詞B,匹配到B的話則將B的后續(xù)編號加入隊列,直到A的全部分支都匹配結(jié)束;轉(zhuǎn)到以B為根的樹,從隊列中取出B樹的分支號,查找相應(yīng)的葉子結(jié)點來匹配字符串中的下一個詞C,如此循環(huán)直到有一次匹配過程中沒有匹配到或者查詢字符串全部匹配結(jié)束,如果匹配成功,則意味著找到了包含查詢字符串的原文。
【專利摘要】本發(fā)明提出了一種基于樹形結(jié)構(gòu)的檢索方法,用于中文搜索引擎中對中文網(wǎng)頁數(shù)據(jù)的處理,包括:步驟S100,網(wǎng)頁數(shù)據(jù)預(yù)處理;步驟S200,建立網(wǎng)頁數(shù)據(jù)索引文件;步驟S300,接收用戶輸入的查詢字符串,根據(jù)網(wǎng)頁數(shù)據(jù)索引進行檢索。本發(fā)明采用二元內(nèi)相關(guān)后續(xù)樹模型為網(wǎng)頁數(shù)據(jù)創(chuàng)建索引,同時考慮了字索引和詞索引的優(yōu)缺點,在減少索引空間的同時提高了檢索效率。
【IPC分類】G06F17/30
【公開號】CN105404677
【申請?zhí)枴緾N201510818902
【發(fā)明人】陳虹宇, 羅陽, 苗寧
【申請人】四川神琥科技有限公司
【公開日】2016年3月16日
【申請日】2015年11月20日