当前位置: 首页 > 专利查询>李朝中专利>正文

一种基于树结构的语言库压缩方法和系统技术方案

技术编号:6844245 阅读:155 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及数据压缩方法和系统,特别是一种基于树结构的语言库压缩方法和系统。它包括如下步骤:A通过搜索单元遍历存放于主树存储单元内的主树,选出压缩比最好的子树;B将步骤A搜索到的子树范例连接到子树集合存储单元的子树节点上,用当前编号赋予该子树节点并以该节点替代主树上该子树及其同类的出现,然后再将子树节点编号计数器加1;C循环执行步骤A,直到无法寻找到子树为止。它主要解决现有DAWG压缩法效率不高且不适合对大型数据库的压缩和快速搜索技术问题。

【技术实现步骤摘要】

本专利技术涉及数据压缩方法和系统,特别是一种基于树结构的语言库压缩方法和系统
技术介绍
树结构在载体上的实现有赖于一般树与二叉树的等价转换和在存储器中按深度搜索存放树节点。前者被用来设定节点的数据结构而后者对该结构优化并使之走向实际应用。例如从词汇add,adding, added, adds组成的一般树转换为二叉树可得出节点的数据结构。从一般树(图1)到对应的二叉树(图2)可得节点的数据结构为<KPXBPXE0WXL>。 将该二叉树按深度搜索存放(图3),可优化节点数据结构为<KXB><E0WXL>,省去了指针开销。但从某节点到其兄弟节点要越过该节点的所有子辈节点,比如从节点(i)到兄弟节点(e)要经过(i)所有子辈节点(n),(g)。当然也可以从词库直接生成二叉树。由于语言库树结构的深度与该库中最长的词汇有关而宽度与词库中词的总量有关,因此语言库树结构的特点是深度有限宽度很大。随着词汇量的加大更是如此。最后,在载体上引擎实现的方法是用一些数组或向量当作堆栈作为工作平台,从树的指定地点进入,按深度优先搜索扫描树节点,存入匹配的节点或指针信息入栈并找出满足指定条件的字或词汇。定义<K>是子辈节点标志位,意为Kid ;<Β>是兄弟节点标志位,意为Brother ;<E0ff> 是词标志位,意为 End of Word ;<L> 是字母,意为 Letter ;<ST>是子树标志位,意为Sub Tree ;<pK>是子辈指针标志位;<ρΒ>是兄弟指针标志位;<pB>。其基本生成原理为从树的底层叶子节点或从叶子节点的父节点开始从左到右,从下到上逐步归约寻找子树范例 (first sub tree),然后将其后发现的同类去掉其所有节点并用指针指向该范例,从而达到数据库压缩的目的。通过如下(表1) 一组词汇举例说明有向无环图压缩法(DAWG)的压缩过程conventioncongressesionalextremistsensationconventionalcongressesionalIyextremistssensationalconventionalismessentialextremitiessensationaliseconventionalistessentialismextremitysensationallyconventionalistsessentialistsecularismvocationconventionalitiesessentialistssecularistvocationalconventionalityessentialitiessecularistsvocationalismsconventionallyessentialitysecularitiesvocationallycongressesionextremismsecularity其二叉树结构(图4)共有118个节点,以32个字母为限的数据结构为例,用一个字节容纳3个标志位和1个字母<KXB><E0WXL>,共需要118个字节。DAffG的压缩过程是从底层倒数第二层归约开始(图5),再逐渐往上归约(图6), 如此反复往上得最后结果(图7),可压缩到83个节点和6个指针。按DAWG节点定义〈K XBXEOffXLXpK) <ρΒ> ,每个节点需5/4个字节,这里每个指针按一个字节, 由此经DAWG压缩后共需要110个字节,压缩了原树的7%。通过研究发现该压缩法存在理论上的严重缺陷和应用上的局限性,具体表现在(I)DAWG压缩法从设计理念上只能压缩树结构中的ending,也即词汇的后缀部分,不能压缩树结构中间的广大区域,而且这种设计理念本质上无法加以改进。(2)每一个子树范例(first sub tree)固定在词库树结构中,所有来自它同类指向它首节点的指针以该节点在库中的地址为代价,地址越大指针所占空间也越大.如果范例在树中相对靠后,则势必增加所有指向它指针的成本而导致压缩比下降,甚至无效。例如在压缩阿拉伯语、印度语等词库时就存在这种情况,压缩印度语词库时尤为明显。C3)不同语种特性差异很大且期望压缩比也不同。子树范例节点数、同类个数以及指针大小都是影响压缩比的重要因素。在不同语种甚至同样语种不同词汇量的情况下,并不是所有子树及其同类都应该或有必要被归约。并不是每个子树范例都应该或有必要被同类归约,既达不到到预期压缩比,还增加了搜索负担。很显然,DAWG压缩法过于单一,且难以优化。(4)DAffG中的节点需要顾及很多方面,除了原有 < 子辈节点标志位X兄弟节点标志位X词标志位X字母 > 外,还要增加 < 子辈指针标志位X兄弟指针标志位 >,以及当其不为0时其后紧随的子辈指针和或兄弟指针是单字节的还是多字节的,在搜索中增加了引擎对节点的遍历成本。因此,由于节点数据结构过于复杂导致DAWG结构臃肿,从而直接影响了引擎的搜索速度。综上所述,DAffG压缩法效率不高且不适合对大型数据库的压缩和快速搜索。
技术实现思路
本专利技术的目的在于提供一种基于树结构的语言库压缩方法和系统,主要解决现有 DAWG压缩法效率不高且不适合对大型数据库的压缩和快速搜索技术问题。为实现上述目的,本专利技术是这样实现的一种基于树结构的语言库压缩方法,其特征在于它包括如下步骤A通过搜索单元遍历存放于主树存储单元内的主树,选出压缩比最好的子树;B将步骤A搜索到的子树范例连接到子树集合存储单元的子树节点上,用当前编号赋予该子树节点并以该节点替代主树上该子树及其同类的出现,然后再将子树节点编号计数器加1 ;C循环执行步骤A,直到无法寻找到子树为止。所述的基于树结构的语言库压缩方法,其特征在于所述的最佳压缩比子树的选择方法是选取子树范例节点个数*同类子树个数结果值最大的子树。所述的基于树结构的语言库压缩方法,其特征在于所述的子树包括无出口子树和有出口子树。一种实施如上所述方法的基于树结构的语言库压缩系统,其特征在于它包括用于在主树存储单元中选出压缩比最好子树的搜索单元;用于存放主树的主树存储单元;用于存放子树的子树集合存储单元,该子树集合存储单元包括一子树节点编号计数器;用于控制最佳压缩比子树的搜索、子树存储以及子树节点替代的调度模块。本专利技术的压缩方法与现有的DAWG压缩法相比的有益效果在于1、本专利技术方法中子树从主树中的脱离缓解了在主树中指向子树的地址开销,也使主树结构简洁规模缩小。从而为快速扫描和动态链接打下基础。动态链接方式为本专利技术首创,与子树压缩法相匹配,使搜索过程灵活高效。2、本专利技术方法中子树同时兼备有或无出口提高了同类的扩大面,进而也提高了树结构的压缩率。3、本专利技术方法中集合中的子树范例相互独立则意味着可通过优化手段将子树范例根据其使用频率从高到低的顺序排列使主树得到最多的子树短节点,进而缩小尺寸。4、本专利技术方法中最佳子树的选择可方法多样以适应不同语种和不同尺寸的数据库。综上所述,本专利技术压缩方法的有益效果无论从设计理念上还是实践中都是DAWG 压缩法本文档来自技高网
...

【技术保护点】
1.一种基于树结构的语言库压缩方法,其特征在于它包括如下步骤:A通过搜索单元遍历存放于主树存储单元内的主树,选出压缩比最好的子树;B将步骤A搜索到的子树范例连接到子树集合存储单元的子树节点上,用当前编号赋予该子树节点并以该节点替代主树上该子树及其同类的出现,然后再将子树节点编号计数器加1;C循环执行步骤A,直到无法寻找到子树为止。

【技术特征摘要】

【专利技术属性】
技术研发人员:李朝中
申请(专利权)人:李朝中
类型:发明
国别省市:CA

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1