新四季網

一種中文詞庫的構造方法

2023-09-17 06:48:15

專利名稱:一種中文詞庫的構造方法
技術領域:
本發明涉及中文信息處理領域的中文詞庫存儲和操作處理技術,具體來講,涉及中文信息處理系統中的詞庫構造方法。

背景技術:
詞庫處理的效率是影響中文信息處理系統性能的關鍵因素。在國內對詞庫存儲的研究已經有很長一段時間了,傳統的詞庫存儲與操作算法一般都是使用AVL樹或2-3樹等樹型結構來實現的。AVL樹稱為自平衡二叉查找樹,任何節點的兩個子樹的高度差最大為一,查找、插入和刪除可能需要通過一次或多次樹旋轉來重新平衡這個樹,在旋轉成葉子節點期間最多有logn個節點被旋轉,在平均和最壞情況下的時間複雜度為O(logn)。2-3樹即為三階B-樹,B-樹是一種平衡的多路查找樹,所有的數據都存放在葉子節點,而在葉子節點上存放的數據量是有限的,B-樹的插入與刪除必須滿足插入或刪除以後的樹,依然滿足B-樹的特性,並且此過程有時比較複雜;在n個元素的2-3樹中插入或刪除元素需要O(logn)的時間複雜度。在中文分詞系統中使用的二分查找算法,由於二分查找只適合有序的線性數組,其查找時間複雜度為O(log n),並且靈活性也受到限制,操作效率較低。


發明內容
本發明的目的在於克服上述現有技術中的不足,提供一種操作效率高的中文詞庫的構造方法。
為實現上述發明目的,本發明的中文詞庫的構造方法,其特徵在於,包括以下步驟 (1)、將首字相同的詞條放到一張哈希表中,相同首字的詞條在哈希表中的位置由哈希函數根據構成詞條的漢字編碼計算出的哈希值確定; (2)、建立一個數組,該數組的索引值依據詞條首字的漢字編碼確定,數組元素值指向與索引值相對應的詞條首字的哈希表; (3)、依據詞條首字的漢字編碼,確定數組索引值,在數組中找到相應的數組元素,找到該詞條首字的哈希表,再根據構成詞條的漢字編碼,用哈希函數計算出的哈希值,確定該詞條在哈希表中的位置; (4)根據詞條的位置來對詞條進行操作。
在上述步驟中,對詞條的操作包括查找、刪除以及更新等。
本發明提出了一種以漢字編碼為基礎的中文詞庫構造技術,由於採用數組和哈希表相結合的中文詞庫的構造方法,可以依據詞條首字編碼直接在數組中找到該詞條首字對應的哈希表,再根據構成詞條的漢字編碼,用哈希函數計算出的哈希值,直接確定該詞條在哈希表中的位置,哈希表查找效率為O(1),與查找時間複雜度分別近似為O(logn)的AVL樹查找算法、2-3樹查找算法以及二分查找算法相比,操作效率得到了提高。



圖1是本發明的詞庫在內存中的一種數據結構圖; 圖2是圖1所示詞庫中的詞條在內存中的一種數據結構圖; 圖3是圖1所示詞庫中的詞條在內存中的另一種數據結構圖; 圖4是圖1所示詞庫中的詞條在磁碟上的物理存儲結構圖;
具體實施例方式 下面結合附圖,對本發明優選具體實施方式
進行描述。需要提醒注意的是,在以下的描述中,當採用的已知功能和設計的詳細描述也許會淡化本發明的主題內容時,這些描述在這兒將被忽略。
圖1是本發明一種具體實施方式
的詞庫在內存中的數據結構圖。在本實施例中,提取詞條首字的GB碼,將詞條首字GB碼的高位和低位作為二維數組PrefixIndex的索引值,即二維數組的下標,二維數組PrefixIndex存放不同哈希表的首地址。
具體來講,本實施例的詞庫是根據漢字GB碼的特點建立的,GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用72*94=6768個碼位,其中有5個空位是D7FA-D7FE。依據此特點,本實施例的二維數組有72*94個數組元素,即PrefixIndex
、PrefixIndex
[1]、PrefixIndex
[2]......、PrefixIndex[72][94]。
將漢字所在的區號與位號組合在一起就構成了該漢字的外碼——「區位碼」,它用高低兩個字節來表示,高字節表示漢字所在的區號,低字節表示漢字所在的位號。漢字的區位碼是唯一的。GB碼與區位碼之間存在如下關係,假設一個漢字的GB碼高位節為HighGB,低位節為LowGB,則此關係可表示為 HighGB=區碼+20H LowGB=位碼+20H 將漢字的GB碼高位節HighGB、低位節LowGB分別作為二維數組PrefixIndex的行列索引值,第一行的索引值為HighGB=B0,LowGB=A1-FE。按照這種方式建立一個數組,該數組的索引值依據漢字編碼確定。
二維數組PrefixIndex數組元素值指向以高位節為HighGB、低位節為LowGB的漢字為首字的哈希表。在本實施例中,二維數組PrefixIndex數組元素值為哈希表的存放地址。這樣依據高位節HighGB、低位節LowGB作為索引值,在二維數組PrefixIndex的指向下,直接找到要查找詞條首字開始的一行詞條,相同首字的詞條構成一個哈希詞表,記為SufHashWords表。
每張SufHashWords表中包含著相同首字開始的一行詞條,在本實施例中,將所有以該字為首字的詞條去掉首字後的後綴作為對象存儲到SufHashWords表中。
圖2是圖1所示詞庫中的詞條在內存中的一種數據結構圖。SufHashWords表中的詞條,即哈希詞表中的一條記錄,記為WordItem,包括除去首字的詞條後綴名稱SuffixName、哈希地址HashAddress、詞條屬性Att。詞條屬性Att是指其詞性,即名詞、動詞等,當然可以根據不同的應用需要,對詞條屬性Att進行定義。
圖3是圖1所示詞庫中的詞條在內存中的另一種數據結構圖。SufHashWords表中的詞條WordItem結構,除包括詞條後綴名稱SuffixName、哈希地址HashAddress、詞條屬性Att外,還包括用於解決哈希衝突的序列號Seq。
在本實施例中,設計了一個極小衝突的哈希函數,使用該函數定位一個詞條在哈希詞表中的位置,以滿足對該詞條的各種操作。
在具體哈希函數設計時,將詞庫中的一個詞條去掉首字後的n個字,使用gb[i]
和gb[i][1]來表示第i個字的GB碼的高位和低位,該詞條的哈希函數為 依據該函數計算出函數Hash的值即為圖2以及圖3的詞條WordItem在SufHashWords表中的哈希地址HashAddress。這樣依據詞條首字的高位節HighGB、低位節LowGB對應數組PrefixIndex的索引值,通過索引值在數組PrefixIndex中找到詞條首字相應的哈希表的首地址,然後通過該哈希表的首地址,找到該詞條首字對應的哈希詞表SufHashWords;再依據上述函數Hash確定該詞條在SufHashWords表中的位置。
此外,在另一具體實施方式
中,為解決衝突,將上述函數Hash計算得到的值加上一個序列號,即當發生衝突時,就將序列號加1,此時哈希函數為 Seq是在發生衝突時,解決衝突時的序列號。
圖4是圖1所示詞庫中的詞條在磁碟上的物理存儲結構圖。在本實施例中,詞庫在磁碟上的存儲使用漢字GB碼,將首字相同的詞條放到文本的同一行中,其數據結構包括首字FirstWord、詞條數量Number、是否能單獨成詞標記Flag以及各個詞條WordItem1~WordItemm,各個詞條WordItem1~WordItemm之間用特殊符號「#」隔離。
根據哈希函數的不同,存儲詞條的結構有所不同,一種是根據哈希函數存儲的,其中一個例子為 傲3F#慢194253 ADJ#氣198248 ADJ#骨185199 N 其中「傲」為首字,「3」表示有三個詞條,「F」表示不能單獨成詞,「194253」表示根據「慢」字的GB碼,由函數計算出的值,「ADJ」表示詞性,每個詞條之間以「#」號相隔。
另一種是根據哈希函數存儲的,其中一個例子為 傲3F#慢194253 0 ADJ#氣198248 0 ADJ#骨185199 0 N 其中,「0」表示序列號為0,表示該詞條計算出的哈希值沒有出現衝突。
儘管上面對本發明說明性的具體實施方式
進行了描述,。以便於本技術領域的技術人員理解本發明,但應當清楚,本發明不限於具體實施方式
的範圍,對本技術領域的普通技術人員來講,只要各種變化在所附的權利要求限定和確定的本發明的精神和範圍內,這些變化是顯而易見的,一切利用本發明構思的發明創造均在保護之列。
權利要求
1.一種中文詞庫的構造方法,其特徵在於,包括以下步驟
(1)、將首字相同的詞條放到一張哈希表中,相同首字的詞條在哈希表中的位置由哈希函數根據構成詞條的漢字編碼計算出的哈希值確定;
(2)、建立一個數組,該數組的索引值依據詞條首字的漢字編碼確定,數組元素值指向與索引值相對應的詞條首字的哈希表;
(3)、依據詞條首字的漢字編碼,確定數組索引值,在數組中找到相應的數組元素,找到該詞條首字的哈希表,再根據構成詞條的漢字編碼,用哈希函數計算出的哈希值,確定該詞條在哈希表中的位置;
(4)根據詞條的位置來對詞條進行操作。
2.根據權利要求1所述的中文詞庫的構造方法,其特徵在於,所述的相同首字的詞條在哈希表中的位置由哈希函數根據去掉首字後的構成詞條的漢字編碼計算出的哈希值確定。
3.根據權利要求2所述的中文詞庫的構造方法,其特徵在於,所述的哈希函數為
其中,n表示詞條去掉首字後的字數,gb[i]
和gb[i][1]分別表示第i個漢字的GB碼的高位值和低位值。
4.根據權利要求2所述的中文詞庫的構造方法,其特徵在於,所述的哈希函數為
其中,n表示詞條去掉首字後的字數,gb[i]
和gb[i][1]來表示第i個字的GB碼的高位和低位,Seq為解決衝突時的序列號。
5.根據權利要求1所述的中文詞庫的構造方法,其特徵在於,所述的數組為二維數組,詞條首字GB碼的高位和低位作為該二維數組的索引值。
6.根據權利要求1所述的中文詞庫的構造方法,其特徵在於,所述的中文詞庫在磁碟上的存儲使用漢字GB碼,將首字相同的詞條放到文本的同一行中,其數據結構包括首字、詞條數量、是否能單獨成詞標記以及各個詞條,各個詞條之間用特殊符號隔離。
7.根據權利要求1所述的中文詞庫的構造方法,其特徵在於,所述的數組元素值為存儲哈希表的首地址。
全文摘要
本發明公開了一種中文詞庫的構造方法,包括根據詞條首字構造二維數組,數組索引值是根據詞條首字的漢字編碼確定,數組元素值指向與索引值相對應的漢字為首字的哈希表;該哈希表用於存儲首字相同的詞條除去首字後的後綴信息,根據詞條後綴漢字編碼,由哈希函數計算的哈希值確定詞條在哈希表中的位置。查找詞條的主要過程為根據詞條首字的漢字編碼,確定數組索引值,在數組中找到相應的數組元素,確定該詞條首字對應的哈希表,再根據詞條後綴的漢字編碼用哈希函數計算哈希值,確定該詞條在哈希表中的位置。由於數組和哈希表相結合的詞庫構造方法,哈希表和詞條都可以根據構成詞條的漢字編碼直接找到,因此操作的效率大大提高。
文檔編號G06F17/30GK101158955SQ20071005051
公開日2008年4月9日 申請日期2007年11月15日 優先權日2007年11月15日
發明者彥 傅, 尚明生, 陳安龍, 王全禮, 偉 史 申請人:電子科技大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀