欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于樹結構的語言庫壓縮方法和系統(tǒng)的制作方法

文檔序號:6601895閱讀:147來源:國知局
專利名稱:一種基于樹結構的語言庫壓縮方法和系統(tǒng)的制作方法
技術領域
本發(fā)明涉及數據壓縮方法和系統(tǒng),特別是一種基于樹結構的語言庫壓縮方法和系統(tǒng)。
背景技術
樹結構在載體上的實現有賴于一般樹與二叉樹的等價轉換和在存儲器中按深度搜索存放樹節(jié)點。前者被用來設定節(jié)點的數據結構而后者對該結構優(yōu)化并使之走向實際應用。例如從詞匯add,adding, added, adds組成的一般樹轉換為二叉樹可得出節(jié)點的數據結構。從一般樹(圖1)到對應的二叉樹(圖2)可得節(jié)點的數據結構為<KPXBPXE0WXL>。 將該二叉樹按深度搜索存放(圖3),可優(yōu)化節(jié)點數據結構為<KXB><E0WXL>,省去了指針開銷。但從某節(jié)點到其兄弟節(jié)點要越過該節(jié)點的所有子輩節(jié)點,比如從節(jié)點(i)到兄弟節(jié)點(e)要經過(i)所有子輩節(jié)點(n),(g)。當然也可以從詞庫直接生成二叉樹。由于語言庫樹結構的深度與該庫中最長的詞匯有關而寬度與詞庫中詞的總量有關,因此語言庫樹結構的特點是深度有限寬度很大。隨著詞匯量的加大更是如此。最后,在載體上引擎實現的方法是用一些數組或向量當作堆棧作為工作平臺,從樹的指定地點進入,按深度優(yōu)先搜索掃描樹節(jié)點,存入匹配的節(jié)點或指針信息入棧并找出滿足指定條件的字或詞匯。定義<K>是子輩節(jié)點標志位,意為Kid ;<Β>是兄弟節(jié)點標志位,意為Brother ;<E0ff> 是詞標志位,意為 End of Word ;<L> 是字母,意為 Letter ;<ST>是子樹標志位,意為Sub Tree ;<pK>是子輩指針標志位;<ρΒ>是兄弟指針標志位;[]表示該括號里的內容不出現或最多出現1次;{}表示該括號里的內容不出現或出現多次;〈Pointer〉= {<1,X X X X X X X>, }<0, XXXXX X X〉,是由 1 個或多個字節(jié)組成的指針定義。<0/1,ΧΧΧΧΧΧΧ>表示字節(jié)(Byte),X表示二進制位(bit)。其中當首位為1時表示后面的字節(jié)仍為該指針部分,直到最后一個字節(jié)首位為0時為止;所有的X組成了該指針值。<KP>是子輩節(jié)點指針;〈Pointer〉結構。<BP>是兄弟節(jié)點指針;〈Pointer〉結構?,F有的基于樹結構的DAWG壓縮法被Zi Corp應用在其文本輸入法產品eZiText 上。其節(jié)點數據結構是<KXB><E0W><L><pK>[<KP>]<pB>[<BP>]。其基本生成原理為從樹的底層葉子節(jié)點或從葉子節(jié)點的父節(jié)點開始從左到右,從下到上逐步歸約尋找子樹范例 (first sub tree),然后將其后發(fā)現的同類去掉其所有節(jié)點并用指針指向該范例,從而達到數據庫壓縮的目的。通過如下(表1) 一組詞匯舉例說明有向無環(huán)圖壓縮法(DAWG)的壓縮過程
conventioncongressesionalextremistsensationconventionalcongressesionalIyextremistssensationalconventionalismessentialextremitiessensationaliseconventionalistessentialismextremitysensationallyconventionalistsessentialistsecularismvocationconventionalitiesessentialistssecularistvocationalconventionalityessentialitiessecularistsvocationalismsconventionallyessentialitysecularitiesvocationallycongressesionextremismsecularity其二叉樹結構(圖4)共有118個節(jié)點,以32個字母為限的數據結構為例,用一個字節(jié)容納3個標志位和1個字母<KXB><E0WXL>,共需要118個字節(jié)。DAffG的壓縮過程是從底層倒數第二層歸約開始(圖5),再逐漸往上歸約(圖6), 如此反復往上得最后結果(圖7),可壓縮到83個節(jié)點和6個指針。按DAWG節(jié)點定義〈K XBXEOffXLXpK) [<KP>] <ρΒ> [<ΒΡ>],每個節(jié)點需5/4個字節(jié),這里每個指針按一個字節(jié), 由此經DAWG壓縮后共需要110個字節(jié),壓縮了原樹的7%。通過研究發(fā)現該壓縮法存在理論上的嚴重缺陷和應用上的局限性,具體表現在(I)DAWG壓縮法從設計理念上只能壓縮樹結構中的ending,也即詞匯的后綴部分,不能壓縮樹結構中間的廣大區(qū)域,而且這種設計理念本質上無法加以改進。(2)每一個子樹范例(first sub tree)固定在詞庫樹結構中,所有來自它同類指向它首節(jié)點的指針以該節(jié)點在庫中的地址為代價,地址越大指針所占空間也越大.如果范例在樹中相對靠后,則勢必增加所有指向它指針的成本而導致壓縮比下降,甚至無效。例如在壓縮阿拉伯語、印度語等詞庫時就存在這種情況,壓縮印度語詞庫時尤為明顯。C3)不同語種特性差異很大且期望壓縮比也不同。子樹范例節(jié)點數、同類個數以及指針大小都是影響壓縮比的重要因素。在不同語種甚至同樣語種不同詞匯量的情況下,并不是所有子樹及其同類都應該或有必要被歸約。并不是每個子樹范例都應該或有必要被同類歸約,既達不到到預期壓縮比,還增加了搜索負擔。很顯然,DAWG壓縮法過于單一,且難以優(yōu)化。(4)DAffG中的節(jié)點需要顧及很多方面,除了原有 < 子輩節(jié)點標志位X兄弟節(jié)點標志位X詞標志位X字母 > 外,還要增加 < 子輩指針標志位X兄弟指針標志位 >,以及當其不為0時其后緊隨的子輩指針和或兄弟指針是單字節(jié)的還是多字節(jié)的,在搜索中增加了引擎對節(jié)點的遍歷成本。因此,由于節(jié)點數據結構過于復雜導致DAWG結構臃腫,從而直接影響了引擎的搜索速度。綜上所述,DAffG壓縮法效率不高且不適合對大型數據庫的壓縮和快速搜索。

發(fā)明內容
本發(fā)明的目的在于提供一種基于樹結構的語言庫壓縮方法和系統(tǒng),主要解決現有 DAWG壓縮法效率不高且不適合對大型數據庫的壓縮和快速搜索技術問題。為實現上述目的,本發(fā)明是這樣實現的一種基于樹結構的語言庫壓縮方法,其特征在于它包括如下步驟A通過搜索單元遍歷存放于主樹存儲單元內的主樹,選出壓縮比最好的子樹;B將步驟A搜索到的子樹范例連接到子樹集合存儲單元的子樹節(jié)點上,用當前編號賦予該子樹節(jié)點并以該節(jié)點替代主樹上該子樹及其同類的出現,然后再將子樹節(jié)點編號計數器加1 ;C循環(huán)執(zhí)行步驟A,直到無法尋找到子樹為止。所述的基于樹結構的語言庫壓縮方法,其特征在于所述的最佳壓縮比子樹的選擇方法是選取子樹范例節(jié)點個數*同類子樹個數結果值最大的子樹。所述的基于樹結構的語言庫壓縮方法,其特征在于所述的子樹包括無出口子樹和有出口子樹。一種實施如上所述方法的基于樹結構的語言庫壓縮系統(tǒng),其特征在于它包括用于在主樹存儲單元中選出壓縮比最好子樹的搜索單元;用于存放主樹的主樹存儲單元;用于存放子樹的子樹集合存儲單元,該子樹集合存儲單元包括一子樹節(jié)點編號計數器;用于控制最佳壓縮比子樹的搜索、子樹存儲以及子樹節(jié)點替代的調度模塊。本發(fā)明的壓縮方法與現有的DAWG壓縮法相比的有益效果在于1、本發(fā)明方法中子樹從主樹中的脫離緩解了在主樹中指向子樹的地址開銷,也使主樹結構簡潔規(guī)??s小。從而為快速掃描和動態(tài)鏈接打下基礎。動態(tài)鏈接方式為本發(fā)明首創(chuàng),與子樹壓縮法相匹配,使搜索過程靈活高效。2、本發(fā)明方法中子樹同時兼?zhèn)溆谢驘o出口提高了同類的擴大面,進而也提高了樹結構的壓縮率。3、本發(fā)明方法中集合中的子樹范例相互獨立則意味著可通過優(yōu)化手段將子樹范例根據其使用頻率從高到低的順序排列使主樹得到最多的子樹短節(jié)點,進而縮小尺寸。4、本發(fā)明方法中最佳子樹的選擇可方法多樣以適應不同語種和不同尺寸的數據庫。綜上所述,本發(fā)明壓縮方法的有益效果無論從設計理念上還是實踐中都是DAWG 壓縮法所不具備的。


圖1是一般樹的結構示意圖;圖2是圖1對應的二叉樹的結構示意圖;圖3是二叉樹按深度搜索存放模式的結構示意圖;圖4是包含表1詞匯組信息的二叉樹結構示意圖;圖5是從底層倒數第二層開始的DAWG壓縮步驟1示意圖;圖6是從底層倒數第二層開始的DAWG壓縮步驟2示意圖;圖7是從底層倒數第二層開始的DAWG壓縮步驟3示意圖;圖8是本發(fā)明壓縮方法的數據結構示意圖;圖9A是子樹數據結構無出口子樹示意圖;圖9B是子樹數據結構有出口子樹示意圖;圖10是本發(fā)明壓縮法中包含表1詞匯組信息初始的數據結構示意圖;圖11是本發(fā)明壓縮法中首次執(zhí)行步驟A時的數據結構示意圖;圖12是本發(fā)明壓縮法中首次執(zhí)行步驟B時的數據結構示意圖;圖13是本發(fā)明壓縮法中第二次執(zhí)行步驟A時的數據結構示意圖;圖14是本發(fā)明壓縮法中第二次執(zhí)行步驟B時的數據結構示意圖;圖15是本發(fā)明壓縮法中第三次執(zhí)行步驟A時的數據結構示意圖;圖16是本發(fā)明壓縮法中第三次執(zhí)行步驟B時的數據結構示意圖;圖17是本發(fā)明系統(tǒng)的結構示意圖。
具體實施例方式由于現有DAWG壓縮法本質上已不存在改善的空間,本發(fā)明提供了一種基于樹結構的語言庫壓縮方法和系統(tǒng),它不但從實踐中而且在理論上克服背景技術的不足,使之適用于對大型數據庫的壓縮和快速搜索。具體內容如下一、定義數據結構將樹結構數據庫中的所有子樹范例都提出樹外構成子樹集合Sub Treekt,而在主樹Main Tree中除去所有子樹及其同類并在它們出現的地方用子樹節(jié)點來代替(圖8)。 主樹和子樹的節(jié)點在存儲器中都是按深度搜索存放的。整個主樹只有具有共同數據結構的普通節(jié)點和子樹節(jié)點,若用字節(jié)為單位,當某語言數據庫按32個字母為限時,一個字節(jié)單位可容納3個標志位和1個字母,其共同結構為<ST>,<KXBXE0ff><L>, [<Byte>],這里 <Byte>表示一個字節(jié)單位。而按64個字母為限時,一個字節(jié)單位可容納2個標志位和1個字母,其共同結構為:<K>, <B>, <STXE0WXL>, [<Byte>]。當<ST>值為0時該節(jié)點為普通節(jié)點。其開銷為1或2個標志位+1個字節(jié),當<ST>為1時是子樹節(jié)點。子樹節(jié)點又分為短節(jié)點和長節(jié)點。當<E0W>為0時與普通節(jié)點等長,是短節(jié)點,其<L>的內容為該子樹在系統(tǒng)中的子樹編號。而當<E0W>為1時為長節(jié)點,表明其后的字節(jié)與<L> 一起組成了該子樹在系統(tǒng)中的子樹編號。以此定義的主樹形狀小巧,結構簡潔。引擎只要最多2個判斷就能驗明節(jié)點尺寸,快速越過。將所有子樹范例提出樹外組成集合大大減少了子樹地址碼在主樹中的開銷。集合中的子樹范例相互獨立則意味著可通過優(yōu)化手段將子樹范例根據其使用頻率從高到低的順序排列使主樹得到最多的子樹短節(jié)點,進而縮小尺寸。帶有<KXB>的子樹節(jié)點也意味著其不僅能壓縮樹結構中的后綴部分,還能壓縮中間部分,填補了 DAWG的壓縮空白。子樹Sub Tree i (i = 1,2,3,. . .,N)是由普通節(jié)點或再加上一個作為出口的子樹短節(jié)點組成,其首節(jié)點可以有兄弟意味著它是由一個子樹或一個兄弟子樹群構成,簡稱子樹。子樹的生成結構有如下規(guī)定1、由普通節(jié)點組成的子樹是無出口子樹(后綴子樹ending sub tree),如圖9A, 只能與主樹中<K>等于零的子樹節(jié)點相匹配。由普通節(jié)點和一個子樹短節(jié)點組成的子樹是有出口子樹,如圖9Β。2、當子樹節(jié)點<Β>不等于零則意味著該節(jié)點在主樹中有兄弟節(jié)點相連。引擎進入相應的子樹后在搜索過程中將<Β>值動態(tài)地鏈接到沒有兄弟的子樹首節(jié)點或其最后一個兄弟節(jié)點上。也就是在主樹中子樹節(jié)點<Β>值只與相應的子樹中沒有兄弟的子樹首節(jié)點或其最后一個兄弟節(jié)點有關。3、子樹內不允許存在任何代表子樹集合中子樹的子樹節(jié)點,沒有遞歸定義,其內的子樹短節(jié)點只起過渡、定位和連接作用。它既不允許出現在子樹首節(jié)點或其兄弟節(jié)點的位置上,也不允許有屬于它的子輩節(jié)點,其<κ>值內部為0以備引擎在掃描時根據具體情況動態(tài)鏈接。4、作為出口的子樹短節(jié)點在主樹中對應的子樹節(jié)點<Κ>等于零時不起作用,從而使子樹成為后綴子樹。如果在主樹中對應的子樹節(jié)點<Κ>不等于零,則該過度節(jié)點讓位并在此將<κ>所指的在主樹中的子輩節(jié)點相連。子樹中所有節(jié)點等長意味著結構簡潔和引擎能高效搜索,帶有子樹節(jié)點的子樹同時兼?zhèn)溆谢驘o出口子樹提高了同類的擴大面,進而也提高了樹結構的壓縮率。事實上,引擎在載體上實現掃描的邏輯過程是通過判斷,越過無關節(jié)點,存入匹配的節(jié)點信息入棧并當匹配節(jié)點中<E0W>不等于0時找出滿足指定條件的字或詞匯。通過考察子樹,尤其是考察 <K>不等于0的子樹節(jié)點相應子樹范例的首節(jié)點極其兄弟節(jié)點有無匹配信息時,擺脫了主樹中其子輩節(jié)點的拖累,判斷快速高效,無關的普通或子樹節(jié)點一越而過。而只有當引擎進入了匹配的子樹后隨著掃描過程的推進在堆棧中才動態(tài)地將主樹中的子輩節(jié)點鏈接到位, 還原樹的本來面目。這種動態(tài)鏈接方式為本發(fā)明首創(chuàng),與子樹壓縮法相匹配,使搜索過程靈活高效、個性鮮明。無論從設計理念上還是實踐中都是DAWG壓縮法所不具備的。二、本發(fā)明壓縮方法的具體步驟如下A通過搜索單元遍歷存放于主樹存儲單元內的主樹,選出壓縮比最好的子樹;B將步驟A搜索到的子樹范例連接到子樹集合存儲單元的子樹節(jié)點上,用當前編號賦予該子樹節(jié)點并以該節(jié)點替代主樹上該子樹及其同類的出現,然后再將子樹節(jié)點編號計數器加1 ;C循環(huán)執(zhí)行步驟Α,直到無法尋找到子樹為止。所述的最佳壓縮比子樹的最佳選擇方法是選取子樹范例節(jié)點個數*同類子樹個數結果值最大的子樹。所述的子樹包括無出口子樹和有出口子樹。當然,也可以按照先選取樹范例節(jié)點個數最大的子樹,當該條件選擇的結果唯一時,則該子樹為最佳壓縮子樹;而當該條件選擇結果不唯一時,則再判斷同類子樹個數的數量以確定最佳壓縮比的子樹。我們仍然以表1所列的一組詞匯舉例說明本發(fā)明方法,其位于主樹存儲單元內的主樹結構如圖10所示。當第一次循環(huán)執(zhí)行本發(fā)明方法步驟A時,如圖11所示;當第一次循環(huán)執(zhí)行步驟B 時,如圖12所示。當第二次循環(huán)執(zhí)行本發(fā)明方法步驟A時,如圖13所示;當第二次循環(huán)執(zhí)行步驟B 時,如圖14所示。當第三次循環(huán)執(zhí)行本發(fā)明方法步驟A時,如圖15所示;當第一次循環(huán)執(zhí)行步驟B 時,如圖16所示。三、用于本發(fā)明方法的系統(tǒng)結構,如圖17所示它包括用于在主樹存儲單元中選出壓縮比最好子樹的搜索單元;用于存放主樹的主樹存儲單元;用于存放子樹的子樹集合存儲單元,該子樹集合存儲單元包括一子樹節(jié)點編號計數器;用于控制最佳壓縮比子樹的搜索、子樹存儲以及子樹節(jié)點替代的調度模塊。所述的調度模塊可選擇TMS320C6416,它是TI公司于2000年推出的一款具有 C64XX系列新內核的高性能DSI^s芯片。TMS320C6416采用一種高性能的先進的VLIW(非常長指令字)結構,其內部具有8個并行處理單元。因單指令字長為32位,8個指令可組成長達256位的指令包,由內部專門的指令分配模塊同時分配到8個處理單元同時運行。 因此在600MHz主頻時,TMS320C6416的最大處理能力高達4800MIPS(百萬條指令/秒)。 TMS320C6416核心電壓為1. 2V,外圍電壓為3. 3V,主頻為400MHz 1GHz,并且在600MHz主頻下,能夠提供83 級器件。所述的主樹存儲單元和子樹集合存儲單元可以使用100M以上的大容量存儲設備,也可以將一個大容量存儲設備分隔為兩個大容量存儲區(qū)域以分別作為主樹存儲單元和子樹集合存儲單元。所述的搜索單元也可以使用TMS320C6416。四、本發(fā)明方法的實施效果以下表2是用部分語言數據庫分別用DAWG和本發(fā)明方法的結果比較
權利要求
1.一種基于樹結構的語言庫壓縮方法,其特征在于它包括如下步驟A通過搜索單元遍歷存放于主樹存儲單元內的主樹,選出壓縮比最好的子樹; B將步驟A搜索到的子樹范例連接到子樹集合存儲單元的子樹節(jié)點上,用當前編號賦予該子樹節(jié)點并以該節(jié)點替代主樹上該子樹及其同類的出現,然后再將子樹節(jié)點編號計數器加1 ;C循環(huán)執(zhí)行步驟A,直到無法尋找到子樹為止。
2.根據權利要求1所述的基于樹結構的語言庫壓縮方法,其特征在于所述的最佳壓縮比子樹的選擇方法是選取子樹范例節(jié)點個數*同類子樹個數結果值最大的子樹。
3.根據權利要求1所述的基于樹結構的語言庫壓縮方法,其特征在于所述的子樹包括無出口子樹和有出口子樹。
4.一種實施如權利要求1或2或3所述方法的基于樹結構的語言庫壓縮系統(tǒng),其特征在于它包括用于在主樹存儲單元中選出壓縮比最好子樹的搜索單元; 用于存放主樹的主樹存儲單元;用于存放子樹的子樹集合存儲單元,該子樹集合存儲單元包括一子樹節(jié)點編號計數器;用于控制最佳壓縮比子樹的搜索、子樹存儲以及子樹節(jié)點替代的調度模塊。
全文摘要
本發(fā)明涉及數據壓縮方法和系統(tǒng),特別是一種基于樹結構的語言庫壓縮方法和系統(tǒng)。它包括如下步驟A通過搜索單元遍歷存放于主樹存儲單元內的主樹,選出壓縮比最好的子樹;B將步驟A搜索到的子樹范例連接到子樹集合存儲單元的子樹節(jié)點上,用當前編號賦予該子樹節(jié)點并以該節(jié)點替代主樹上該子樹及其同類的出現,然后再將子樹節(jié)點編號計數器加1;C循環(huán)執(zhí)行步驟A,直到無法尋找到子樹為止。它主要解決現有DAWG壓縮法效率不高且不適合對大型數據庫的壓縮和快速搜索技術問題。
文檔編號G06F17/30GK102222075SQ20101016463
公開日2011年10月19日 申請日期2010年4月15日 優(yōu)先權日2010年4月15日
發(fā)明者李朝中 申請人:李朝中
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
靖边县| 武强县| 淮安市| 商城县| 宣威市| 崇文区| 东安县| 军事| 特克斯县| 司法| 沾益县| 澄迈县| 高安市| 湘潭市| 阿荣旗| 龙山县| 普宁市| 文山县| 瑞金市| 海口市| 崇明县| 鹿泉市| 南木林县| 伊宁市| 边坝县| 灵台县| 涿鹿县| 竹溪县| 新竹县| 清丰县| 黄平县| 丁青县| 扶余县| 闸北区| 阿荣旗| 辽阳市| 华容县| 阿城市| 富阳市| 卢湾区| 大邑县|