admin 管理员组文章数量: 1086019
2024年4月19日发(作者:shell脚本调用可执行文件)
维普资讯
CN43—1258/TP
ISSN 1007—13OX
计算td1.-r ̄与科学
.
2007年第29卷第2期
VoL 29,No.2,2007
COMPUTER ENGINEERING&SCIENCE
文章编号:1007—130X(2007)002—0044—03
XCfde:高压缩率的XML文档压缩技术
KCfde.A XML Compressor with High Compression Ratic
胡和平。魏裕凯
HU He-ping,WEI Yu-kai
(华中科技大学计算机科学与技术学院,湖北武汉430074)
(School of Computer cSience and Technology,Huazhong University of cSience and Technology,Wuhan 430074,China)
摘要:本文提出了一种用于数据交换的XML压缩技术XCfde。XCfde采取四步压缩方案:把XML文档分离为结构
数据和内容数据;自动识别数据类型并自动分类数据;对不同类型的数据采用不同的编码策略;将初步编码后的结构数据
和内容数据使用7Zip进行整体压缩。XCfde拥有较高的压缩率,改善了XML数据交换的传输效率和存档中的空间利用
率。
Abstract:In this paper XCfde,an effective XML compressor for data exchange,is presented.XCfde separates a XML
document into the structural data and the content data first,automatically recognizes data types without schema informa—
tion,and uses different especial strategies tO encode data with different types.Finally it compresses the elementarily enco-
ded structure and content data together using 7Zip.It greatly improves the efficiency of storage and data exchange of the
XML data profiting from its high compression ratio.
关键词:ⅪvIL压缩;LZ77;数据分类;数据交换
Key words:XM compression;LZ77;data classification;data exchange
中图分类号:TP393 文献标识码:A
XML压缩技术XCfde(XML Compression For Data Ex-
1 引言
change,简称XCfde),它根据XML文档自身特点,采取特
有的压缩策略,获取较高的压缩率,应用于数据交换和数据
XML是W3C于1998年2月发布的一种标记语言。
存档,有效地利用了网络带宽和存储空间。
它是SGML的一个简化子集,将SGML的丰富功能与
HTML的易用性结合到Web的应用中,以一种开放的自
2相关技术
我描述方式定义了数据结构,在描述数据内容的同时能突
出对结构的描述,从而体现出数据之间的关系。它具有平
2.1 XML
台无关、自我描述、可扩展等优点。
虽然对XML的某些技术标准尚有争议,但人们已经
XML文档由三类标识组成:标签、属性、数据值。
普遍认识到XML的作用和巨大潜力,已将XML应用到互
定义1标签和属性为结构数据,数据值为内容数据。
联网的各个方面,如数据交换、替代传统的EDI、集成不同
定义2将XML文档建模为树:结点为标签或属性,
数据源、数据的多种显示和网络出版、文件保值等。因其特
叶子则代表数据值。通向数据值的路径是从根到数据值叶
有的自我描述和平台无关等特性,在数据交换和不同数据
子的结点序列,如/书/书名。XML文档深度是指最长路径
源集成等方面的应用尤为突出。
的长度即树的深度。
但是,XML格式的信息冗余过大,对磁盘空间、带宽都
定义3压缩编码时属性也当作标签,借用XPath的
存在着浪费。为了有效地存储和交换XML数据,有必要
表示方法,在属性前加上字符@,以便解压还原时从标签中
对XML数据进行压缩。本文介绍了一种高压缩比的
辨别它们。
收稿日期:2005—06—21;修订日期:2005—09—28
成、
作者简介:
软件工程和数据挖掘。
胡和平(1952一),
男,湖北武汉人,教授,研究方向为软件工程、数据挖掘和信息安全;魏裕凯,硕士生,研究方向为系统集
通讯地址:
Address:School
43007
of
4湖北省武汉市华中科技大学计算机科学与技术学院;
Computer Science and Technology,Huazhong Universi
Te
ty of
l:(O27)
Science and
8754976O;
Technol
E-mai
ogy,Wuhan,Hubei
l:hphu@andin.net
430074,P.R
Lhina
44
维普资讯
2.2 LZ77及改进算法
通用的压缩程序中常用的字典压缩程序起源于Ziv和
Lempel的经典论文[ ,经改进后形成Lz系列压缩程序,如
LZ78、LZW、LZSS等。LZ77采用一个包括字典窗口和先
</书>
其中,书、书名、作者、出版时间为标签,语言为属性,依照标
签出测顶序标号,则有:<书>=#1,<书名>一#2,@语
言一#3,<作者>一#4,<出版时间>一#5;使用C加
行缓冲区两部分的文本窗口作为动态字典。文本窗口存储
大小固定,存放最近经过编码处理的输入文本。压缩时首
先从输人数据流中读取待压缩的文本串,放人先行缓冲区,
然后进行编码。把先行缓冲区中的内容与字典窗口中的内
容进行比较。如有相匹配的部分,则按规定的格式表示输
入字符串。经匹配、编码后的数据流从先行缓冲区依次进
入到字典窗口中,成为字典的一部分。而原有字典中的一
上容器序号替换数据值。使用上述编码替换后,XML文档
结构形式如下:
#1#2#3(33/C2/#4 CA/#5 C5//
当一个XML文档中包含许多如上所示的书籍的集合
时,则该文档结构形式可以表示成简化后的字符串的重复
集合:
#1#2#3(33/C2/#4 CA/#5 C5//
部分内容将从窗口的另一端滑出。随着窗口的滑动,字典
的内容不断发生变化,滑动窗口中总保持着最近刚处理过
的文本。
例如,AB( EFBCDEG当读取第二个B时,压缩程序
发现子序列BCDE已经在字典中出现过,则用回退指针(一
偏移,长度)的形式替换它:ABCDEF(一5,4)G。
拥有较高的压缩比的7ZipE2]是Igor Pavlov组织开发
的开源软件项目,它以LZ77改良和优化后的新版本LZ-
MA算法为基础,兼容其它众多算法。LZMA算法具有高
压缩比、可变字典大小、压缩和解压缩速度快、较小的解压
缩内存需求等优点。
3体系结构
3.1 XCfde体系结构
XCfde是建立在三个主要的基本步骤之上的:XML文
档结构内容分析/分离器、自动类型识别器、不同数据类型
的压缩编码器,如图1所示。
兰竺 : 竺)—.1 X分M析L I
‘
/
..…… 。
I内容数据
鞴俐裂僻I ●
..
熹 。 I自动类型识别l
l羽 错 I ●
I 各种编码器(
CT、DI、U8等l
l
●
整合编码后的结构和内容数据
图1 XCfde的体系结构
3.2 XML结构内容数据分离及处理
通过重载SAXE。]中关键的类和接口实现自己的XML
解析器,识别XML文档标签、属性和数据值并且分离为结
构数据和内容数据。将起始标签和属性使用字典方式编
码,这里使用标签的顺序序号标识;所有结束标签用‘/,代
替;数据值使用C加上代表它们的容器序号(和标签字典
编码相同)替代,容器是一组具有相同标签或者相同数据类
型的数据集合,包含数据值和数据值的路径[4]。考虑如下
)(I L文档:
<书>
<书名语言=“中文”>数据压缩</书名>
<作者>张三</作者>
<出版时间>1995-5</出版时间>
#1#2#3(33/C2/#4 CA/#5 C5//
i
这种简单重复的信息压缩性是非常好的。上面的介绍
忽略了标签和数据值中附带的空白(制表符和空格等),如
果考虑空白的话,则容器数量、结构信息、压缩后的大小都
会有所增加,但在压缩处理上无本质区别。
3.3自动类型识别
将结构数据按照上述方法编码后,通过指定编码器进
行初步压缩,而对于分离后的数据值的处理则复杂一些。
为了获取更高的压缩比,我们对于不同数据类型的容器采
取不同的编码方法。
因此,在将分离的数据值存人相应容器中的同时,需要
判别该容器存放的数据值的数据类型,并据此数据类型决
定该容器的编码方法。注意,这一步和上节的数据分离是
同时进行的。
如果XML文档提供有Schema描述文件,则可以根据
此文件信息获取相应的数据类型。如果没有此类文件,对
于类型的识别有两种方式:一是用户可以在压缩时根据
XML的内容自己判别后指定类型参数,此方式繁琐且适应
性差;另外一种方法是通过在分离结构和内容数据时使用
自动类型识别器来实现。
进行自动类型识别时,我们先约定一个基本原则[5]:如
果数据值中包含的字符都是数字(‘0’~‘9’),并且第一个
字符不是‘0’,则认为此数据值为整数,否则为字符串。据
此原则,XCfde对数据进行简单分类,而对于字符串需进一
步判别,以识别浮点数、中文字符串等其它基本类型,提高
压缩率。
XCfde采用正则表达式RE(Regular Expression,简称
RE)来实现匹配,正则表达式是由普通字符(例如字符a到
z)以及特殊字符(称为元字符)组成的文字模式,该模式描
述在查找文字主体时待匹配的一个或多个字符串[6]。基本
压缩编码对应类型的RE描述为:
整型(‘[1-93{1}[O一9]*S);
中文字符串('[-\u4eOO--\u9fa5 ̄*S);
浮点数( (一?\d+)(\.\d+)?S)。
另外,XCfde还提供扩展接口,用户可以根据自己的需
要更新扩充正则表达式库,将一些复杂的数据类型(如时
间、IP地址等)拆分成上述基本类型;然后使用联合压缩程
序进行编码,以期获取最好的压缩率,当然处理时间会适当
增加。
45
维普资讯
3.4编码技术
3.4.1基本编码方法
自动识别数据类型后,根据不同的数据类型采取相应
表2压缩测试结果
数据源原始大/J、 錾摹XCfde xMⅢICI'_XpressW ̄nRAR
的编码方法。基本编码方法如表1所示。
表1常用的基本编码方法
代码
功能说明
F
浮点数编码器
I
整数编码器
U8
小于256的正整数编码器
DI
整数的差分编码器
T
默认文本编码器
CT
中文文本压缩编码器
浮点数编码器F采用IEEE754标准把浮点数字符串
表示成二进制格式。整数编码器I采用二进制编码表示整
数字符串:二进制编码中每个字节最高位用来表示序列的
长度,小于128的数字使用1字节,大于128而小于16 384
的使用两字节,依此类推。U8类似于I,它直接用一个字
节存储0到255之间的数值。整数的差分编码器DI将连
续数字序列表示成(基值、差数)的形式,如1 500、1 520、1
600、1 540编码成(1 500,20,100,40)。文本编码器T不进
行任何压缩编码,而是直接复制字符串,整合后由压缩程序
7Zip进行压缩。中文文本压缩编码器CT是为了提高中文
文本的压缩效率而加入的,由于中文文本和西文文本有诸
多差异,CT从编码方案、自适应扩展位、最大索引位等方
面改进LZSS,从基本码集、更新策略和哈希函数等方面改
进LZW,然后联合使用改进后的LZSS和LZW对中文文
本进行压缩[7]。它在英文文本压缩率不变的情况下更适合
于压缩中文,比其它XML压缩技术使用的文本压缩算法
压缩率高。
3.4.2联合编码方法
XCfde中提供Link功能进行基本编码方式的组合。
假定用x代表小于255的正数,IP地址通过正则表达式
( ?\d\d?l 2[o一4]\dl 25[o一5])\.([o1]?\d\d?l 2[o一
4]\dl 25Eo一5])¥)解析,分解为X X x的形式,使用
Link(U8.U8.U8.U8)联合编码方式,对其中的整数x分
别采用U8编码,这要比无法识别该数据值而将其当成一
般字符串进行压缩的效率要高许多,同时也提高了程序的
灵活性。
最后,将初步编码处理后的结构数据和内容数据整合
通过7Zip压缩工具再次进行压缩,以提高整体的压缩率。
4实验
4.1数据源
本文综合采用XMill和Xpress中的典型测试数据_4 ],
包括蛋白质结构数据库SwissProt、学术论文索引数据库
DBLP、按照莎士比亚剧本集Shakespeare相同格式制作的
《雷雨》的剧本I*iYu和棒球队伍球员信息文档BaseBall。
DBLP和SwissProt数据容量大,虽然深度小但标签数
目多,而Basel ̄ll数值型多,LeiYu则是为了测试中文文本
压缩能力,数据源具体参数见表2。
46
4.2测试结果
在赛扬2.4G CPu和512M内存、采用WINXP SP2操
作系统的计算机上使用比较流行的几种软件进行测试对
比,包括通用的压缩程序WinRAR3.42、专用的XML压缩
工具XMillc ]和ICT—XpressE ,测试时所有工具都采用默
认的标准参数设置。表2中工具对应的四行数据从上到下
依次为压缩后的大/b(字节)、压缩比(压缩后的容量/压缩
前的容量)、压缩时间(秒)、解压缩时间(秒)。
4.3实验结果分析
4.3.1压缩分析
从表2中的数据可以看出,XCfde对于不同容量、标
签、深度、数据类型的XML文档都取得了较高的压缩比率
且有较快的平均处理速度,尤其是对于包含数值型和中文
文本的XML文档压缩更具优势。
4.3.2改善传输测试
在局域网服务器上使用微软ISA2004防火墙和Band—
WidthController软件进行带宽限制以模拟真实网络。以
DBLP为例,限定带宽为200KB/s(相当于流行的2M AD—
SL下行网络速度),不压缩传输:总传输时间为1 323s;压
缩传输:压缩IEt,J"I'- ̄]为51s,传输时间为144s,解压缩时间为
30s,总时间为225s。压缩后的总时间比不压缩的时间少了
将近半个小时,重要的是减轻了网络负担,改善了传输效
率,更加有效地利用了带宽资源。
5结束语
xCfde是一种高压缩率的XML压缩技术,主要应用于
XML存储和数据交换,和其它压缩技术相比,有比较高的
压缩率和比较快的运算时间。但是,它没有提供压缩后的
XML文档的查询功能,如果需要查找信息则必须先进行解
压操作,不是很方便;另外,在某些类型的XML源数据处
理上速度有些慢,这都是需要在将来解决的问题。
(下转第65页)
维普资讯
明,SVM算法对交通标志识别的准确性远远高于BP算
法。同时,在交通标志细分类的实验中,由于训练集样本数
苎=
替
嘉
』薹
替
磊
目较少,SVM算法在抗噪能力和泛化能力上显示出了比
BP算法更为突出的优越性。因此,在模式分类问题上具有
良好泛化能力的SVM算法在交通标志识别领域也具有广
0 3 5 l0 l5
高斯噪声含量
扭曲度
阔的应用前景。
图7 SVM算法和BP算法在警告标志细分类中的比较
参考文献:
[1]Zhu Shuangdong.Two Hierarchy Classifier for Recognition of
Traffic Signs Based on Neural Network[A].Fifth World
对于大小为2O×2O、噪声为0.3的交通标志图,人眼几乎
都不能准确地识别出每一种标志,BP网络的识别率也都几
乎为0。但是,利用SVM网络识别,指示标志的识别率却
Congress on Intelligent Control and Automation[C].2004.
可以达到100 ,禁令标志和警告标志的识别率也都达到
了7O 以上。这充分说明了利用SVM进行交通标志分类
时在抗噪声能力方面的优越性。对于大小为2O×2O的交
通标志图,发生轻度的扭曲,像素点的值就会发生很大的变
化。尤其是警告标志之间的差别很小,轻度扭曲就会导致
识别错误。BP网络在这一方面也体现了极强的敏感性,从
轻微的3度扭曲到较明显的15度扭曲,BP算法的识别率
都很低,但SVM算法的识别率仍然较高。
另外,对比中国交通标志粗分类与细分类的实验结果
可见,无论是BP算法还是SVM算法,粗分类的识别效果
都明显优于细分类。这主要是由训练集的样本数量造成
的。粗分类实验是将116个交通标志分为三大类,每一类
都对应着几十个训练样本。而在细分类实验中,禁令标志、
指示标志、警告标志分别对应42类、29类、45类,每一类只
有一个训练样本。通常,训练集的样本数量应当尽可能地
多一些,以便更好地反映样本对象的整体特征。但是,正是
在这种训练样本很少的情况下,SVM算法相对于BP算法
的优势得到了更好的体现。
需要指出的是,SVM算法良好的泛化能力是在付出了
比BP算法更大的计算复杂性的基础上获得的。因此,在
对网络进行测试时,SVM算法的运行速度显然要比BP算
法慢。不过,当前的计算机技术已经相当发达,SVM算法
的响应速度足以满足实际应用的要求。因此,BP算法在运
行速度上的优势对SVM算法并无威胁。此外,对于交通
标志分类这样大规模的问题来说,由于BP算法的学习过
程需要反复调整大量的设计参数,因此SVM算法的学习
速度要远远优于BP算法。这些都说明了SVM算法的性
能和应用前景更好。
5结束语
本文介绍了一种适用于交通标志分类的sVM分类方
法,粗分类的识别率近乎完美,细分类也取得了较好的识别
效果。同时,本研究还将SVM算法和传统流行的BP算法
进行了对比分析。众所周知,BP算法存在着一些难以克服
的缺点。例如,在学习过程中易于陷入局部极小点,不可能
达到全局优化;易于发生过拟合,严重影响学习后网络的泛
化能力。而SVM算法绕过了局部极小的陷阱,以接近最
优的方式解决了模式分类问题,同时具有更好的泛化能力。
本研究成功地将SVM算法应用于道路交通标志的分类,
取得了令人满意的识别效果。本文介绍的实验研究结果表
5302-5306.
[2]Haykin S Neural Networks:A Comprehensive Foundation.
Second Edition[M].北京:清华大学出版社,2001.
[3]I U Ganyun,Cheng Haozhong,Zhai Haibao,et a1.Fault Di—
agnosis of Power Transformer Based on Multi-Layer SVM
Classifier[J].Electric oPwer Systems Research,2001,17(1):
23-30.
-14]马笑潇,黄席樾,柴毅.基于SVM的二叉树多分类算法及其
在故障诊断中的应用[J].控制与决策,2003,18(3):272-276.
[5]赵晶,张旭东,高隽.基于支持向量机的多类形状识别系统
[J].合肥工业大学学报,2004,27(1):23-26.
(上接第46页)
参考文献:
[1]Ziv J,Lempel A A Universal Algorithm ofr Sequential Data
oCmpression[J].IEEE Trans on Information Theory,1977,
23(3):337-343.
[2]7zip[( /OI .http://Ⅵ 7zip.org,2005-01.
[3]曾春平,王超,张鹏.XMI 编程从人门到精通I-M].北京:希
望电子出版社,2002.
-14] IAefke H,Suciu n XMII I :An Efficient oCmpressor for
XMI Data rA].Proc of the 2000 ACM SIGMOD Conf on
Management of aDta[C].2000.153—164.
[5] Min JunKi,Park Myung-Jae,Chung chi n.XPRESS:
A Queriable Compression for XMI Data[A].Proc of the
2003 ACM SIGMOD oCnf on aMnagement of aDta[C].2003.
122—133.
[6]陈怡,卿锋.在C语言中使用正则表达式[J].华南金融电
脑,2004,(4):60-62.
[7]华强.在文本压缩中联合使用LZSS和LZW[J].计算机应
用与软件,2002,19(1):60-62.
[8] ICT—XMI Express[CP/OI ].http://www.ictcompress.
ocrn/downloadxm1.html,2005—01.
65
版权声明:本文标题:XCfde:高压缩率的XML文档压缩技术 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713532628a639408.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论