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 。
相關文章推薦:
往年廣本筆試題分享
最新中國平安筆試題分享
建筑學筆試題分享