CN101751451B - 一种中文数据压缩及解压缩方法及相关设备 - Google Patents
一种中文数据压缩及解压缩方法及相关设备 Download PDFInfo
- Publication number
- CN101751451B CN101751451B CN2009101315879A CN200910131587A CN101751451B CN 101751451 B CN101751451 B CN 101751451B CN 2009101315879 A CN2009101315879 A CN 2009101315879A CN 200910131587 A CN200910131587 A CN 200910131587A CN 101751451 B CN101751451 B CN 101751451B
- Authority
- CN
- China
- Prior art keywords
- participle
- coding
- data
- chinese
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013144 data compression Methods 0.000 title claims abstract description 60
- 230000006837 decompression Effects 0.000 title claims abstract description 37
- 238000007906 compression Methods 0.000 claims abstract description 40
- 230000006835 compression Effects 0.000 claims abstract description 38
- 239000000284 extract Substances 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims 3
- 238000000151 deposition Methods 0.000 claims 1
- 230000011218 segmentation Effects 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 238000013480 data collection Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种中文数据压缩及解压缩方法及相关设备。所述中文数据压缩方法包括:步骤A、读取待压缩中文数据;步骤B、将所述中文数据进行分词,得到组成所述中文数据的分词集合;步骤C、从所述分词集合中读取一个分词,若所述分词由两个以上的汉字组成,则在预置的分词编码库中查找所述分词,若查找到,则从分词编码库中获取所述分词的编码,并将所述编码存入压缩数据,所述编码在压缩数据中至多占用两个字节的存储空间;重复步骤C直到处理完所述分词集合中所有的分词。本发明提供的中文数据压缩技术能够实现大幅度压缩中文数据。本发明提供的中文压缩数据的解压缩技术,能够实现压缩数据的快速解压缩。
Description
技术领域
本发明涉及数据压缩技术领域,尤其涉及一种中文数据压缩及解压缩方法及相关设备。
背景技术
信息时代带来了“信息爆炸”,数据量的激增使传输或者存储都需要对数据进行有效的压缩。特别是随着PDA、手机、导航仪等嵌入式终端的广泛应用,由于这些终端的硬件条件相对较低,无法满足海量数据的存储要求,因此,对海量数据进行压缩存储的需求更为迫切和严格。
从1948年Shannon提出信息熵理论与一种简单编码方法-Shannon编码开始,数据压缩技术经历了快速发展阶段。现有的数据压缩技术主要分为两大类:有损压缩技术和无损压缩技术。
其中,有损压缩技术主要利用人类视觉对图像的某些频率成份不敏感的特性,允许在压缩过程中损失一定的数据,这使得压缩数据在解压缩时不能完全恢复为原始数据,但换来了很大的压缩率,并且压缩时损失的数据对理解原始数据的影响很小。有鉴于此,有损压缩技术被广泛应用于语音、图像和视频数据的压缩。
无损压缩技术主要利用数据统计结果对数据进行压缩,其优点在于压缩数据在解压缩时可以完全恢复为原始数据而不引起任何失真,其缺点在于压缩率受到数据统计度的理论限制,不能无限制的增大。有鉴于此,无损压缩技术被广泛应用于程序、文本数据及一些特殊应用场合的图像数据(如指纹图像、医学图像等)的压缩,现有的无损压缩技术主要包括:Shannon-Fano编码、Huffman编码、游程(Run-length)编码、LZW编码(Lempel-Ziv-Welch,LZW)及算术编码等。
由于在前文述及的嵌入式终端中,主要需要对中文数据进行压缩存储,以提高存储空间的利用率,因此,通常情况下只能采用前文已述无损压缩技术。发明人在对各种无损压缩技术进行分析、实验和比较之后,发现上述各种无损压缩技术虽然都具备压缩中文数据的能力,但在存储空间容量较小并且硬件性能指标相对较低的环境(如嵌入式设备)中,现有的无损压缩技术都存在压缩率不够高,无法对中文数据进行大幅度压缩的缺陷。
发明内容
本发明实施例要解决的技术问题是提供一种中文数据压缩及解压缩方法及相关设备,能够实现中文数据的大幅度压缩。
本发明实施例提供了一种中文数据压缩方法,所述方法包括:
步骤A、读取待压缩中文数据;
步骤B、将所述中文数据进行分词,得到组成所述中文数据的分词集合;
步骤C、从所述分词集合中读取一个分词,若所述分词由两个以上的汉字组成,则在预置的分词编码库中查找所述分词,若查找到,则从分词编码库中获取所述分词对应的编码,并将所述编码存入压缩数据,所述编码在压缩数据中至多占用两个字节的存储空间;重复步骤C直到处理完所述分词集合中所有的分词。
进一步,本发明实施例还提供了一种中文数据压缩装置,所述装置包括:数据读取单元,分词单元,分词读取单元,分词类型判断单元,分词查找单元,第一数据压缩单元;
所述数据读取单元,用于读取待压缩中文数据;
所述分词单元,用于将所述中文数据进行分词,得到组成所述中文数据的分词集合;
所述分词读取单元,用于从所述分词集合中读取一个分词,
所述分词类型判断单元,用于判断所述分词读取单元读取出的分词是否为两个以上的汉字组成的分词,如果是,则触发所述分词查找单元;
所述分词查找单元,用于在预置的分词编码库中查找所述分词对应的编码,若查找到,则触发所述第一数据压缩单元;
所述第一数据压缩单元,用于从分词编码库中获取所述分词的编码,并将所述编码存入压缩数据,所述编码在压缩数据中至多占用两个字节的存储空间。
进一步,本发明实施例还提供了一种与前文所述中文数据压缩方法相对应的中文压缩数据的解压缩方法,所述方法包括:
步骤一、从压缩数据中提取编码,得到组成所述压缩数据的编码序列,所述编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
步骤二、从所述编码序列中读取一个编码;
步骤三、判断所述编码是否为预置的分词编码库中的编码,如果是,则从分词编码库中提取所述编码对应的分词,并将所述分词存入解压缩数据中;重复步骤三直到处理完所述编码序列中所有的编码。
相应地,本发明实施例还提供了一种中文压缩数据的解压缩装置,所述装置包括:编码序列提取单元,编码读取单元,编码类型判断单元,第一数据解压缩单元;
所述编码序列提取单元,用于从压缩数据中提取编码,得到组成所述压缩数据的编码序列,所述编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
所述编码读取单元,用于从所述编码序列中读取一个编码;
所述编码类型判断单元,用于判断所述编码是否为预置的分词编码库中的编码,如果是,则触发所述第一数据解压缩单元;
所述第一数据解压缩单元,用于从分词编码库中提取所述编码对应的分词,并将所述分词存入解压缩数据中。
进一步,本发明实施例提供了一种嵌入式终端,包含前文所述中文数据压缩装置和中文压缩数据解压缩装置。
上述技术方案具有如下有益效果:
本发明实施例提供了一种中文数据压缩技术,采用该技术得到的压缩数据,用至多占用两个字节存储空间的编码表示两个以上汉字组成的分词,使压缩数据相对于用占用两个字节存储空间的国标扩展码表示一个汉字的未压缩数据而言,本发明实施例提供的中文数据压缩技术实现了大幅度压缩中文数据。
本发明实施例还提供了一种中文压缩数据的解压缩技术,该技术能够实现压缩数据的快速解压缩。
附图说明
图1所示为本发明实施例提供的中文数据压缩方法流程图;
图2所示为本发明实施例提供的中文数据压缩装置组成示意图;
图3所示为本发明实施例提供的获取分词编码库的装置组成示意图;
图4所示为本发明实施例提供的中文压缩数据解压缩方法流程图;
图5所示为本发明实施例提供的中文压缩数据解压缩装置组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案、及优点更加清楚明白,以下参照附图对本发明实施例提供的技术方案进行详细说明。
本发明提供了一种中文数据压缩方法,该方法包括如下步骤:
步骤A、读取待压缩的中文数据;
步骤B、将所述中文数据进行分词,得到组成所述中文数据的分词集合;
步骤C、从所述分词集合中读取分词,若所述分词由两个以上汉字组成,则在预置的分词编码库中查找是否有所述分词,若有,则获取所述分词对应的编码,并将所述编码存入压缩数据,所述编码至多(最多)占用压缩数据两个字节的存储空间;
重复步骤C直到处理完所述分词集合中所有的分词。
以上为本发明提供的中文数据压缩方法,采用该方法得到的压缩数据,用至多占用两个字节存储空间的编码表示两个以上汉字组成的分词,使压缩数据相对于用占用两个字节存储空间的国标扩展(GBK)码表示一个汉字的未压缩数据而言,本发明实施例提供的中文数据压缩方法实现了大幅度压缩中文数据。
本发明提供的中文数据压缩方法的核心在于:在压缩数据中,用至多占用两个字节存储空间的编码表示由两个以上汉字组成的分词,故以下对为什么可以用至多占用两个字节存储空间的编码表示由两个以上汉字组成分词的理论依据进行详细介绍。
由汉字国标扩展(GBK)码编码规则可知,一个汉字对应唯一一个GBK码,且GBK编码库中共收录了汉字21003个,符号883个,还有1894个造字码位,并且简、繁体汉字融于一库,由此可知,GBK编码中收录的汉字总数不会超过32768(215)个。
在一般操作系统中,通常用占用两个字节(即16Bits)存储空间的GBK码表示一个汉字,而两个字节可以表示65536个编码(0~65535),由前文记载可知,GBK编码库中所有独立汉字的总量不超过32768(215)个,因此,用两个字节表示编码的一半表示独立汉字已足够,那么,剩余的一半编码则可用于表示由两个以上汉字组成的分词。比如,可以用0到32767,共32768个编码表示32768个由两个以上汉字组成的分词,恰好填补了剩余的一半编码。
由上述分析亦可知,本发明提供的分词编码库中最多只有32678个分词,为了能够得到内容足够丰富且分词数量不超过32768个的分词编码库,本发明进一步提供了一种获取分词编码库的方法,包括如下步骤:
步骤一、对中文样本数据进行分词,得到样本分词集合;
步骤二、对样本分词集合中每个分词在样本分词集合中出现的次数进行统计,得到每个分词的词频;
步骤三、按照词频由高到低的顺序,从样本分词集合中最多提取215个分词;
步骤四、为提取出的每个分词赋一个编码,并在分词编码库中记录所述编码与分词,每个分词的编码相互独立且唯一。
以上为本发明提供的获取分词编码库的方法,以下举例说明采用该方法获取到的分词编码库。
假设Wi表示分词编码库中的分词,Hj表示独立汉字,Mk表示分词编码库中的编码。若按照词频由高到低的顺序获取了32678个分词Wi,Mk取值范围为[0,32767],分词编码库采用数组的形式,请参见表1为本发明提供的分词编码库,其中,分词Wi的编码Mk等于分词Wi在数组中的下标。
0 | W1 |
1 | W2 |
2 | W3 |
...... | |
Mk | Wi |
...... | |
32765 | W32766 |
32766 | W32767 |
32767 | W32768 |
表1
以上以分词编码库采用数组仅是本发明提供的分词编码库的一种实现形式,不应视为对本发明的限制。在实际应用中,分词编码库可以采用各种形式,分词的编码形式亦可多种多样,本发明无特殊要求。但在压缩过程中,用至多占用两个字节空间的编码表示由两个以上汉字组成的分词,均属于本发明提供的中文数据压缩方法的应用例。
以下结合具体应用场景,对本发明提供的中文数据压缩方法进行详细介绍。
在地理信息系统(Geographic Information System,GIS)和移动位置服务(LocationBased Service,LBS)领域,一个服务终端往往需要存储几百万条,甚至上千万条地理信息点(Point Of Interest,POI),但是,GIS和LBS中使用的服务终端很多都是嵌入式终端,比如,导航仪、PDA、手机等,这些嵌入式终端的数据存储空间很有限,因此,存入这些终端的数据通常都要进行压缩,但这些终端由于硬件条件的限制,基本无法运行那些实现复杂、对设备性能要求较高的中文数据压缩方法。因此,在GIS和LBS领域,迫切需要一种压缩率高、实现简单、对设备性能要求低的中文数据压缩方法。本发明提供的中文数据压缩方法恰恰可以满足上述要求。
以下结合附图,对本发明第一实施例提供的中文数据压缩方法进行详细介绍,该方法适用于对GIS和LBS领域使用的POI中文数据进行压缩。
请参见图1,为本发明第一实施例提供的中文数据压缩方法流程图,该方法包括:
其中所述分词集合[w1,w2,...,wi,...,wn]中的每个分词相互独立且自身具有含义,并且分词w1,w2,...,wi,...,wn首尾相接组成了POI中文数据且无多余的字符,即所述分词集合[w1,w2,...,wi,...,wn]是没有冗余性的分词集合。
在实际应用中,可以采用正向/逆向最大匹配分词方法或者其他中文分词技术对POI中文数据进行分词处理,得到所述分词集合[w1,w2,...,wi,...,wn]。
步骤103:从分词集合[w1,w2,...,wi,...,wn]中,读取分词wi,判断所述分词wi是否为单个汉字,如果是,则进入步骤104,如果否,则说明所述分词wi是由两个以上汉字组成的词或者短语,进入步骤105;
在实际应用中,可以采用如下方法判断分词wi是否为单个汉字:
判断分词wi是否只占用了两个字节的存储空间,如果是,则说明所述分词wi是单个汉字,如果否,则说明所述分词wi是由两个以上汉字组成的词或者短语。
步骤104:获取分词wi的GBK码,将所述GBK码存入压缩数据,进入步骤109;
步骤105:在预置的分词编码库查找是否有与所述分词wi完全相同的分词W,若有,则进入步骤106,若没有,则进入步骤107;
步骤106:获取所述分词W的编码,并将所述编码存入压缩数据,所述编码在压缩数据中最多占用两个字节的存储空间,进入步骤109;
在实际应用中,若分词编码库采用数组形式,则分词W对应的编码就是分词W在数组中的下标。
步骤107:将所述分词wi划分为独立的汉字,得到组成所述分词wi的汉字集合[v1,v2,...,vj,...,vk];
步骤108:从汉字集合[v1,v2,...,vj,...,vk]中,读取一个汉字vj,获取所述汉字vj的GBK码,并将所述GB编码存入压缩数据,重复步骤108,直到处理完汉字集合[v1,v2,...,vj,...,vk]中所有的汉字后,进入步骤109;
步骤109:判断所述分词wi是否为分词集合[w1,w2,...,wi,...,wn]中的最后一个分词,即判断i是否等于n,
如果分词wi不是分词集合[w1,w2,...,wi,...,wn]中的最后一个分词,则返回步骤102,从分词集合[w1,w2,...,wi,...,wn]中读取下一个分词wi+1,然后,重复执行步骤103至步骤109,直到处理完分词集合[w1,w2,...,wi,...,wn]中所有的分词;
如果分词wi是分词集合[w1,w2,...,wi,...,wn]中的最后一个分词,则进入步骤110;
步骤110:判断所述POI中文数据是否为所述待压缩POI中文数据集Sch中的最后一条数据,如果是,则结束,如果否,则返回步骤101,从待压缩POI中文数据集Sch中,读取下一条POI中文数据,然后,重复执行步骤102至110,直到处理完所述待压缩POI中文数据集Sch中所有POI中文数据。
以上为本发明第一实施例提供的中文数据压缩方法,以下以POI中文数据为“中国人民大学”及分词编码数据库采用数组形式为例对上述方法进行详细介绍。
读取“中国人民大学”;利用中文分词技术对“中国人民大学”进行分词处理,得到组成“中国人民大学”的分词集合[中国,人民,大学];从分词集合[中国,人民,大学]中先读取出“中国”,在分词编码库中进行查找,找到与“中国”完全相同的分词且排在数组的第一个,说明“中国”的编码为“0”,将“0”以占用两个字节存储空间的方式存入压缩数据,即将“0000 0000 0000 0000”存入压缩数据;从分词集合[中国,人民,大学]中再读取出“人民”,在分词编码库中进行查找,找到与“人民”完全相同的分词且排在数组的第8个,说明“人民”的编码为“7”,将“7”以占用两个字节存储空间的方式存入压缩数据,即将“0000 0000 0000 0111”存入压缩数据;从分词集合[中国,人民,大学]中最后读取出“大学”,在分词编码库中进行查找,没有找到与“大学”完全相同的分词,则将“大学”划分为汉字集合[大,学];从汉字集合[大,学]中先读取出“大”,获得其编码为46232,再将46323以占用两个字节存储空间的形式存入压缩数据,即将“1011 0100 1111 0011”存入压缩数据;从汉字集合[大,学]中后读取出“学”,获得其编码为53671,将53671以占用两个字节存储空间的形式存入压缩数据,即将“1101 0001 1010 0111”存入压缩数据。由上述记载可知,压缩后的“中国人民大学”占用了8个字节的存储空间,压缩前其占用了12个字节的存储空间,压缩后比压缩前少占用了4个字节的存储空间,压缩率超过了33%,实现了对数据的大幅度压缩。
进一步,为获得本发明提供中文数据压缩方法的实际压缩率,发明人使用本发明提供的方法对GIS或LBS系统中存储的POI中文数据进行了压缩,实验结果表明该方法的压缩率能够达到35%~42%。由此可见,本发明提供的中文数据压缩方法是一种压缩率高、实现简单、对设备性能要求低的中文数据压缩方法。
相应的,本发明还提供了一种中文数据压缩装置,请参见图2,装置包括:数据读取单元201,分词单元202,分词读取单元203,分词类型判断单元204,分词查找单元205,第一数据压缩单元206;
数据读取单元201,用于读取待压缩中文数据;
分词单元202,用于将中文数据进行分词,得到组成中文数据的分词集合;
分词读取单元203,用于从分词集合中读取一个分词,
分词类型判断单元204,用于判断分词读取单元203读取出的分词是否为两个以上的汉字组成的分词,如果是,则触发分词查找单元205;
分词查找单元205,用于在预置的分词编码库中查找分词,若查找到,则触发第一数据压缩单元206;
第一数据压缩单元206,用于从分词编码库中获取分词对应的编码,并将编码存入压缩数据,编码在压缩数据中至多占用两个字节的存储空间。
以上为本发明提供的中文数据压缩装置,在实际应用中,分词单元202得到的分词集合中会包括单个汉字,因此,上述中文数据压缩装置可以进一步包括:第二数据压缩单元;
并且,分词类型判断单元204,在判断得到分词单元读取出的分词是单个汉字时,则触发第二数据压缩单元;
第二数据压缩单元,用于获取汉字的GBK码,将GBK码存入压缩数据。
进一步,由于分词编码库中至多保存了215个分词,因此,可能存在分词查找单元205在分词编码库中查找不到分词读取单元203读取出的由两个以上汉字组成的分词,为了实现对这种分词的压缩,本发明提供的装置进一步包括:汉字集合获取单元,汉字读取单元;
分词查找单元205,若在预置的分词编码库中没有查找到所述分词读取单元203读取出的由两个以上的汉字组成的分词,则触发汉字集合获取单元;
汉字集合获取单元,用于将分词划分为单个汉字,得到组成分词的汉字集合;
汉字读取单元,用于从汉字集合中读取一个汉字后触发所述第二数据压缩单元。
同时,请参见图3,本发明还提供了一种获取分词编码库的装置,该装置包括如下单元:
样本分词集合获取单元301,用于对中文样本数据进行分词,得到样本分词集合;
词频统计单元302,用于对每个分词在样本分词集合中出现的频率进行统计,得到分词的词频;
分词提取单元303,用于按照词频由高到低的顺序,从样本分词集合中提取不大于215个分词;
分词编码单元304,用于为提取出的每个分词赋一个编码,并在分词编码库中记录编码与分词。
以上介绍实现中文数据压缩的技术方案,以下结合具体实施例对本发明提供的中文压缩数据的解压缩技术方案进行详细介绍。
请参见图4,为本发明提供的中文压缩数据的解压缩方法流程图,该方法包括:
步骤401:从压缩数据中提取编码,得到组成所述压缩数据的编码序列[m1,m2,...,mi...,mn],其中编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
步骤402:从所述编码序列中读取一个编码mi;
步骤403:判断所述编码mi是否为预置的分词编码库中的编码,如果是,则进入步骤404,如果不是,则进入步骤405;
在实际应用中,由于GBK码均大于32768,因此,本发明推荐分词编码库中用0到32767,共32678个编码表示32678个由两个以上汉字组成的分词,此时,判断所述编码mi是否为预置的分词编码库中的编码具体为:
判断所述编码mi是否小于32768,如果小于,则说明所述编码mi为分词编码库中的编码,如果大于等于,则说明所述编码为GBK码。
另外,在实际应用中也可以用32768到65535,共32678个编码表示32678个由两个以上汉字组成的分词,此时判断判断所述编码mi是否为预置的分词编码库中的编码具体为:
判断所述编码mi是否小于32768,如果小于,则说明所述编码mi不是分词编码库中的编码,如果大于等于,则说明所述编码是分词编码库中的编码。
步骤404:从分词编码库中提取所述编码mi对应的分词,并将所述分词存入解压缩数据中,进入步骤406;
在实际应用中,若分词编码库采用表1所示数组的形式,则从分词编码库中提取所述编码mi对应的分词具体为:从分词编码库中取出下标为mi的分词。
步骤405:获取所述编码mi对应的汉字,将所述汉字存入解压缩数据中;
其中,若分词编码库中的编码范围为[0,32767],则步骤405中编码mi为GBK码,获取所述编码Mi对应的汉字具体为:获取GBK码对应的汉字;
若分词编码库中的编码范围为[32678,65535],则获取所述编码mi对应的汉字具体为:先查找编码mi对应的GBK码,再获取所述GBK码对应的汉字。
步骤406:判断所述编码mi是否为编码序列[m1,m2,...,mi...,mn]中的最后一个编码,如果是,则结束,如果否,则返回步骤404,直到处理完编码序列[m1,m2,...,mi...,mn]中所有的编码。
以上为本发明提供的一种中文压缩数据的解压缩方法,该方法能够实现压缩数据的快速解压缩。
以下结合具体应用场景,对本发明提供的中文压缩数据的解压缩方法进行详细介绍。
假设分词编码库采用表1所示数组形式,且分词编码库中的编码范围为[0,32767],压缩数据中的每个编码占用两个字节的存储空间。从压缩数据中,读取出编码序列[4,51920,11];先从编码序列[4,51920,11]中读取编码4,编码4小于32768,说明编码4是分词编码库中的编码,则从分词编码库中查找下标为5的分词,得到的分词为“北京”,再从编码序列[4,51920,11]中读取编码51920,编码51920大于32768,说明该编码属于GBK码,则查找该GBK码对应的汉字,得到的汉字为“市”,最后从编码序列[4,51920,11]中读取编码11,编码11也属于分词编码库中编码,从分词编码库中查找下标为12的分词,得到的分词为“百货商店”,经过上述流程得到了解压缩的中文数据“北京市百货商店”。压缩前“北京市百货商店”共占用14个字节的空间,而压缩后的数据只占用了6个字节的存储空间,比压缩前少了8个字节的存储空间,实现了大幅度的数据压缩,而且从解压缩结果可知,压缩数据解压缩后完全恢复为未压缩前的数据,说明本发明提供的中文数据压缩方法是一种压缩幅度大,且无损的压缩技术。
本发明还提供了一种中文压缩数据的解压缩装置,请参见图5,所述装置包括:编码序列提取单元501,编码读取单元502,编码类型判断单元503,第一数据解压缩单元504,第二数据解压缩单元505;
所述编码序列提取单元501,用于从压缩数据中提取编码,得到组成所述压缩数据的编码序列,所述编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
所述编码读取单元502,用于从所述编码序列中读取一个编码;
所述编码类型判断单元503,用于判断所述编码是否为预置的分词编码库中的编码,如果是,则触发所述第一数据解压缩单元504,如果不是,则触发所述第二数据解压缩单元505;
所述第一数据解压缩单元504,用于从分词编码库中提取所述编码对应的分词,并将所述分词存入解压缩数据中。
所述第二数据解压缩单元505,用于获取所述编码对应的汉字,将所述汉字存入解压缩数据中。
以上对本发明提供的中文压缩数据的解压缩技术进行了详细介绍。
本发明还提供了一种嵌入式终端,该嵌入式终端中包括前文已述的中文数据压缩装置及中文压缩数据的解压缩装置,具体技术方案请参见前文相关内容此处不再赘述。并且,该嵌入式终端可以是PDA,手机,导航仪等。
以上对本发明所提供的一种中文数据压缩及解压缩方法及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种中文数据压缩方法,其特征在于,所述方法包括:
步骤A、读取待压缩中文数据;
步骤B、将所述中文数据进行分词,得到组成所述中文数据的分词集合;
步骤C、从所述分词集合中读取一个分词,若所述分词由两个以上的汉字组成,则在预置的分词编码库中查找所述分词,所述分词编码库用于存储不大于215个由两个以上汉字组成的分词及其对应的编码,编码取值范围是0≤编码≤32767,每个分词的编码相互独立且唯一,若查找到,则从分词编码库中获取所述分词对应的编码,并将所述编码存入压缩数据,所述编码在压缩数据中至多占用两个字节的存储空间;
重复步骤C直到处理完所述分词集合中所有的分词。
2.如权利要求1所述的方法,其特征在于,若所述步骤C读取的分词为单个汉字,则所述方法进一步包括:
步骤D、获取所述汉字的国标扩展码,将所述国标扩展码存入压缩数据。
3.如权利要求2所述的方法,其特征在于,若在分词编码库中没有查找到所述由两个以上的汉字组成的分词,则所述方法进一步包括:
步骤E、将所述分词划分为单个汉字,得到组成所述分词的汉字集合;
步骤F、从所述汉字集合中读取一个汉字后执行所述步骤D;
重复所述步骤F直到处理完所述汉字集合中所有的汉字。
4.如权利要求1至3中任一项所述的方法,其特征在于,在步骤A之前进一步包括:
对中文样本数据进行分词,得到样本分词集合;
对每个分词在所述样本分词集合中出现的频率进行统计,得到分词的词频;
按照词频由高到低的顺序,从所述样本分词集合中提取不大于215个分词;
为提取出的每个分词赋一个编码,并在分词编码库中记录所述编码与分词。
5.一种中文数据压缩装置,其特征在于,所述装置包括:数据读取单元,分词单元,分词读取单元,分词类型判断单元,分词查找单元,第一数据压缩单元;
所述数据读取单元,用于读取待压缩中文数据;
所述分词单元,用于将所述中文数据进行分词,得到组成所述中文数据的分词集合;
所述分词读取单元,用于从所述分词集合中读取一个分词;
所述分词类型判断单元,用于判断所述分词读取单元读取出的分词是否为两个以上的汉字组成的分词,如果是,则触发所述分词查找单元;
所述分词查找单元,用于在预置的分词编码库中查找所述分词,所述分词编码库用于存储不大于215个由两个以上汉字组成的分词及其对应的编码,编码取值范围是0≤编码≤32767,每个分词的编码相互独立且唯一,若查找到,则触发所述第一数据压缩单元;
所述第一数据压缩单元,用于从分词编码库中获取所述分词对应的编码,并将所述编码存入压缩数据,所述编码在压缩数据中至多占用两个字节的存储空间;
所述分词读取单元、所述分词类型判断单元、所述分词查找单元及所述第一数据压缩单元,重复执行其功能直到处理完所述分词集合中所有的分词。
6.如权利要求5所述的装置,其特征在于,所述装置进一步包括:第二数据压缩单元;
所述分词类型判断单元,在判断得到所述分词单元读取出的分词是单个汉字时,则触发所述第二数据压缩单元;
所述第二数据压缩单元,用于获取所述汉字的国标扩展码,将所述国标扩展码存入压缩数据。
7.如权利要求6所述的装置,其特征在于,所述装置进一步包括汉字集合获取单元,汉字读取单元;
所述分词查找单元,若在预置的分词编码库中没有查找到两个以上的汉字组成的分词,则触发所述汉字集合获取单元;
所述汉字集合获取单元,用于将所述分词划分为单个汉字,得到组成所述分词的汉字集合;
所述汉字读取单元,用于从所述汉字集合中读取一个汉字后触发所述第二数据压缩单元;
所述汉字读取单元及所述第二数据压缩单元,重复执行其功能直到处理完所述汉字集合中所有的汉字。
8.如权利要求5至7中任一项所述的装置,其特征在于,所述装置进一步包括:
样本分词集合获取单元,用于对中文样本数据进行分词,得到样本分词集合;
词频统计单元,用于对每个分词在所述样本分词集合中出现的频率进行统计,得到分词的词频;
分词提取单元,用于按照词频由高到低的顺序,从所述样本分词集合中提取不大于215个分词;
分词编码单元,用于为提取出的每个分词赋一个编码,并在分词编码库中记录所述编码与分词。
9.一种中文压缩数据的解压缩方法,其特征在于,所述方法包括:
步骤一、从压缩数据中提取编码,得到组成所述压缩数据的编码序列,所述编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
步骤二、从所述编码序列中读取一个编码;
步骤三、判断所述编码是否为预置的分词编码库中的编码,如果是,则从分词编码库中提取所述编码对应的分词,并将所述分词存入解压缩数据中;所述分词编码库用于存储不大于215个由两个以上汉字组成的分词及其对应的编码,编码取值范围是0≤编码≤32767,每个分词的编码相互独立且唯一;
重复步骤三直到处理完所述编码序列中所有的编码。
10.如权利要求9所述的方法,其特征在于,若步骤三判断得到所述编码不是分词编码库中的编码,所述方法进一步包括:
获取所述编码对应的汉字,将所述汉字存入解压缩数据中。
11.如权利要求10所述的方法,其特征在于,所述判断所述编码是否为预置的分词编码库中的编码具体为:
判断编码是否小于32768,如果小于,说明所述编码为分词编码库中的编码,若大于等于,说明所述编码是国标扩展码;
所述获取所述编码对应的汉字具体为:获取所述国标扩展码对应的汉字。
12.一种中文压缩数据的解压缩装置,其特征在于,所述装置包括:编码序列提取单元,编码读取单元,编码类型判断单元,第一数据解压缩单元;
所述编码序列提取单元,用于从压缩数据中提取编码,得到组成所述压缩数据的编码序列,所述编码序列中的每个编码在压缩数据中最多占用两个字节的存储空间;
所述编码读取单元,用于从所述编码序列中读取一个编码;
所述编码类型判断单元,用于判断所述编码读取单元读取出的编码是否为预置的分词编码库中的编码,如果是,则触发所述第一数据解压缩单元;所述分词编码库用于存储不大于215个由两个以上汉字组成的分词及其对应的编码,编码取值范围是0≤编码≤32767,每个分词的编码相互独立且唯一;
所述第一数据解压缩单元,用于从分词编码库中提取所述编码对应的分词,并将所述分词存入解压缩数据中;
所述编码读取单元、所述编码类型判断单元及所述第一数据解压缩单元,重复执行其功能直到处理完所述编码序列中所有的编码。
13.如权利要求12所述的装置,其特征在于,所述装置进一步包括:第二数据解压缩单元;
所述编码类型判断单元,若判断得到所述编码不是预置的分词编码库中的编码,则触发所述第二数据解压缩单元;
所述第二数据解压缩单元,用于获取所述编码对应的汉字,将所述汉字存入解压缩数据中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101315879A CN101751451B (zh) | 2008-12-11 | 2009-04-08 | 一种中文数据压缩及解压缩方法及相关设备 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810239174 | 2008-12-11 | ||
CN200810239174.8 | 2008-12-11 | ||
CN2009101315879A CN101751451B (zh) | 2008-12-11 | 2009-04-08 | 一种中文数据压缩及解压缩方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751451A CN101751451A (zh) | 2010-06-23 |
CN101751451B true CN101751451B (zh) | 2012-04-25 |
Family
ID=42478440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101315879A Active CN101751451B (zh) | 2008-12-11 | 2009-04-08 | 一种中文数据压缩及解压缩方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751451B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880703B (zh) * | 2012-09-25 | 2016-03-16 | 广州市动景计算机科技有限公司 | 中文网页数据编码、解码方法及系统 |
CN104021121B (zh) * | 2013-02-28 | 2018-01-26 | 北京四维图新科技股份有限公司 | 一种文本数据压缩方法、装置及服务器 |
CN103546160B (zh) * | 2013-09-22 | 2016-07-06 | 上海交通大学 | 基于多参考序列的基因序列分级压缩方法 |
CN104933063B (zh) * | 2014-03-19 | 2018-08-24 | 重庆新媒农信科技有限公司 | 数据处理方法、搜索方法及装置 |
CN104467868A (zh) * | 2014-11-04 | 2015-03-25 | 深圳市元征科技股份有限公司 | 中文文本压缩方法 |
CN105893335B (zh) * | 2016-03-30 | 2019-07-12 | 广州华多网络科技有限公司 | 显示文本的方法和装置 |
CN109697277B (zh) * | 2017-10-20 | 2024-02-13 | 北京京东尚科信息技术有限公司 | 文本压缩的方法和装置 |
CN108259041A (zh) * | 2017-12-29 | 2018-07-06 | 中国电子科技集团公司第二十研究所 | 一种基于改进型lzw编码压缩技术的北斗数据扩容方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083638A (zh) * | 1992-08-22 | 1994-03-09 | 声宝股份有限公司 | 中文文件档压缩处理方法及装置 |
CN1267963A (zh) * | 1999-03-12 | 2000-09-27 | 富士通株式会社 | 数据压缩设备和数据恢复设备 |
US6597812B1 (en) * | 1999-05-28 | 2003-07-22 | Realtime Data, Llc | System and method for lossless data compression and decompression |
CN1536768A (zh) * | 2003-04-08 | 2004-10-13 | 株式会社泛泰 | 2字节字符数据的压缩方法 |
-
2009
- 2009-04-08 CN CN2009101315879A patent/CN101751451B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083638A (zh) * | 1992-08-22 | 1994-03-09 | 声宝股份有限公司 | 中文文件档压缩处理方法及装置 |
CN1267963A (zh) * | 1999-03-12 | 2000-09-27 | 富士通株式会社 | 数据压缩设备和数据恢复设备 |
US6597812B1 (en) * | 1999-05-28 | 2003-07-22 | Realtime Data, Llc | System and method for lossless data compression and decompression |
CN1536768A (zh) * | 2003-04-08 | 2004-10-13 | 株式会社泛泰 | 2字节字符数据的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751451A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751451B (zh) | 一种中文数据压缩及解压缩方法及相关设备 | |
US5870036A (en) | Adaptive multiple dictionary data compression | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
CN1868127B (zh) | 数据压缩系统和方法 | |
CN101667843B (zh) | 嵌入式系统的数据压缩、及解压缩方法与装置 | |
CN104125475B (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN103236847A (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN103258030A (zh) | 基于字典与游长编码的移动设备内存压缩方法 | |
CN1547805A (zh) | 执行霍夫曼解码的方法 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
CN112380196B (zh) | 一种用于数据压缩传输的服务器 | |
RU2386210C2 (ru) | Способ сжатия данных | |
JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
CN101551820A (zh) | 兴趣点属性的索引数据库的生成方法和装置 | |
CN103078646A (zh) | 字典查询压缩、解压缩方法及其装置 | |
Belodedov et al. | Development of an algorithm for optimal encoding of WAV files using genetic algorithms | |
Fraenkel et al. | Is text compression by prefixes and suffixes practical? | |
Bhadade et al. | Lossless text compression using dictionaries | |
CA2446952A1 (en) | Character table implemented data compression method and apparatus | |
Robert et al. | Simple lossless preprocessing algorithms for text compression | |
CN101729076B (zh) | 一种基于非完备码表解析码长的哈夫曼解码方法 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN102567294A (zh) | 文本数据处理方法和装置 | |
CN1617135A (zh) | 提供双向双语词典的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200514 Address after: 310052 1-5 / F, building B1, No. 18, Changsheng Road, Hangzhou Science and Technology Park, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 100080 Beijing city Haidian District No. three Suzhou Street Daheng Technology Building South 18 Patentee before: AUTONAVI SOFTWARE Co.,Ltd. |
|
TR01 | Transfer of patent right |