網(wǎng)易筆試題和面試題答案搜索引擎筆試

思而思學網(wǎng)

Trie樹查詢

基于三數(shù)組Trie索引樹原理的漢語詞典查詢機制,并用遞歸算法實現(xiàn)構(gòu)詞狀態(tài)表的自動構(gòu)建.

Trie樹是搜索樹的一種,來自英文單詞"Retrieval"的簡寫,可以建立有效的數(shù)據(jù)檢索組織結(jié)構(gòu),是中文匹配分詞算法中詞典的一種常見實現(xiàn)。它本質(zhì)上是一個確定的有限狀態(tài)自動機(DFA),每個節(jié)點代表自動機的一個狀態(tài)。在詞典中這此狀態(tài)包括"詞前綴","已成詞"等。Trie樹就是字典樹,其核心思想就是空間換時間.字典樹有如下簡單的性質(zhì):

(1) 根節(jié)點不包含字符信息;

(2) 一棵m度的Trie或者為空,或者由m棵m度的Trie組成。

搜索字典項目的方法為:

(1) 從根結(jié)點開始一次搜索;

(2) 取得要查找關鍵詞的第一個字母,并根據(jù)該字母選擇對應的子樹,轉(zhuǎn)到該子樹繼續(xù)進行檢索;

(3) 在相應的子樹上,取得要查找關鍵詞的第二個字母,并進一步選擇對應的子樹進行檢索。

(4) 迭代過程……

(5) 在某個結(jié)點處,關鍵詞的所有字母已被取出,則讀取附在該結(jié)點上的信息,即完成查找。

雙數(shù)組Trie(Double-Array Trie)是trie樹的一個簡單而有效的實現(xiàn),由兩個整數(shù)數(shù)組構(gòu)成,一個是base[],另一個是check[]。設數(shù)組下標為i ,如果base,check均為0,表示該位置為空。如果base為負值,表示該狀態(tài)為詞語。Check表示該狀態(tài)的前一狀態(tài),t=base+a, check[t]=i 。

相關文章推薦:

往年廣本筆試題分享

最新中國平安筆試題分享

建筑學筆試題分享

熱門推薦

最新文章