一种基于序列化的文档压缩、文档解压方法和装置的制造方法_2

文档序号:9750981阅读:来源:国知局
[0075]当然,HTML文档除了上述存储方式之外,还可以采用其他存储方式,本发明实施例对此不加以限制。
[0076]若准备对网页进行压缩,则可以从网页库中提取准备压缩的多个文档。
[0077]步骤102,从所述多个文档中查找内容相似的多个目标文档;
[0078]本发明实施例中,在对多张网页进行压缩时,利用网页之间的相似性,将相似的网页放在一块,按照一定的算法重组这些相似的网页,然后进行压缩,进而提高压缩率。
[0079]在具体实现中,可以采用字符串的相似对比、最大相似公共子串、基于pattern(模式)等方法,计算多个文档的URL的相似性,当相似性超过预设的相似性阈值时,确认多个文档为多个目标文档。
[0080]以pattern为例,如图2所示,在某BBS(Bulletin Board System,论坛)的网页中,网页按照功能可以划分为多个区域,该页面可以划分为导航块(I)、垃圾块(2、4)、翻页块⑶、标题块(5)、作者信息块(6)、发表日期块(7)、正文块(8),存在大量相似的内容。
[0081]其中,导航块可以位于网页页眉顶部,或者banner(网页的横幅广告)下部,用于指向网页的信息栏目。
[0082]垃圾块可以为与网页主题相关度很低的页面元素所在的区域,例如“发帖”、“回复”等功能按钮。
[0083]翻页块可以为指示翻页的区域。标题块可以为网页主题的标题(例如图2所示的“安全浏览器聚集黑色星期四”)所在的区域。
[0084]作者信息块为记载该网页主题作者信息的区域。正文块为记载该网页主题正文的区域。
[0085]其URL 为:
[0086]http://bbs.XXX.com/forum-99-2.html;
[0087]http://bbs.XXX.com/forum-99-3.html。
[0088]其中,“99”、“2”被识别出为页码,以“(\d+)”作为替换字符,则其URL的pattern为http://bbs.XXX.com/forum-(\d+)-(\d+).html,符合这个pattern的URL所属的网页,具有相似性。
[0089]步骤103,对所述多个目标文档的一行或多行文档数据计算内容标识;
[0090]在具体实现中,HMTL文档通常以行为单位进行编译,因此,每行的文档数据为HTML文档的内容本身。
[0091]内容标识,可以指代表一个唯一确定的内容的信息,例如,Ha s h (哈希值)、M D 5(Message-Digest Algorithm 5,信息摘要算法5)、SHA(Secure Hash Algorithm,安全哈希算法)等等。
[0092]步骤104,根据所述内容标识对所述多个目标文档进行序列化,获得一个或多个数据块;
[0093]在本发明实施例中,序列化可以指将对象的状态信息转换为可以存储或传输的形式的过程。
[0094]在具体实现中,可以提取多个目标文档中、内容标识相同的文档数据,将内容标识相同的文档数据写入同一个数据块中。
[0095]此外,可以对多个目标文档中、内容标识相同的文档数据进行编号,并记录文档数据在所属的目标文档中的位置,以便进行反序列化。
[0096]步骤105,将所述一个或多个数据块进行压缩处理,获得压缩对象。
[0097]在实际应用中,可以采用传统的压缩算法,如GZip,LZ0,Zlib等,对数据块进行压缩处理,本发明实施例对此不加以限制。
[0098]本发明实施例针对内容相似的多个目标文档,基于文档数据的内容标识进行序列化,进而压缩,获得压缩对象,利用了网页本身的业务特性进行压缩,大大提高了压缩率,减少了存储空间的占用。
[0099]应用GZip,LZ0,Zlib等传统的压缩算法对网页进行直接的压缩,都是基于二进制字节流进行的压缩,如图3所示,针对网页301、网页302、网页303是逐个进行压缩,按照箭头方向,先压缩文档数据“Χχχχχχχχχχχχχχ”、再压缩文档数据“Yyyyyyyyyyyyyy”,最后压缩文档数据“ZzZZZZZZZZZZZZ”,忽略了网页本身的业务特性,使得压缩率比较低。
[0100]网页库所存储的网页,其中包含了:
[0101]1、不同网站使用同一模板生成的大量相似的网页;
[0102]2、同一网站利用同一个模板生成了大量相似的网页。
[0103]在这些相似的网页中,具有大量相同或相似的内容,如文档数据“Χχχχχχχχχχχχχχ”、文档数据 “Yyyyyyyyyyyyyy,,和文档数据 “Zzzzzzzzzzzzzz,,0
[0104]在本发明实施例中,按照网页本身的业务特性,如图4所示,针对网页401、网页402、网页403按照箭头方向,将文档数据“Χχχχχχχχχχχχχχ”、文档数据“Yyyyyyyyyyyyyy”和文档数据“Zzzzzzzzzzzzzz”进行序列化,获得多个数据块,再对数据块进行压缩,提高了压缩率。
[0105]在一种极端情况下,假设有N(N为正整数)张网页,每张网页内部都有K(K为正整数)行字符串,N张网页是K行字符串的N种排列组合,则根据本发明实施例中基于序列化的压缩算法,将N张网页相同的行统一放在一起进行编码压缩,则容易推导压缩后的存储空间C2 = C1/N+Q ;
[0106]其中,传统压缩算法压缩后的存储空间为Cl,Ω为N张网页重组的结构化开销,可以认为远小于Cl,因此,C2 ? Cl/No
[0107]当然,上述示例是一些极端情况,实际环境中还需要考虑压缩时的结构性开销,使用线上实际数据进行模拟对比测试,采用本发明实施例中基于序列化的压缩方案与传统压缩方案进行对比,结果表明,相比于原来的单张网页压缩,基于序列化的压缩方案,利用了多篇文档间的相似性,压缩比可以提高30?45%左右,即平均可节省30?45%的存储空间。
[0108]参照图5,示出了根据本发明一个实施例的一种基于序列化的文档解压方法实施例的步骤流程图,具体可以包括如下步骤:
[0109]步骤501,提取预先压缩的压缩对象;
[0110]在本发明实施例中,压缩对象可以由多个文档经过序列化的压缩方式压缩处理获得。
[0111]压缩文件中具有一个或多个数据块,该数据块可以根据文档数据的内容标识进行序列化获得。
[0112]具体而言,该数据块为多个目标文档中、内容标识相同的文档数据的集合。
[0113]步骤502,对所述一个或多个数据块进行解压处理,每个数据块具有关联的内容标识;
[0114]在实际应用中,若在先采用传统的压缩算法,如GZip,LZ0,Zlib等,对数据块进行压缩处理,则在本发明实施例中,可以按照该传统的压缩算法,如GZip,LZ0,Zlib等,对数据块进行解压处理。
[0115]步骤503,根据内容标识对解压处理之后的一个或多个数据块进行反序列化,获得多个目标文档。
[0116]在本发明实施例中,反序列化可以指将对象从可以存储或传输的形式转换为状态信息的过程。
[0117]在具体实现中,可以读取解压处理之后的一个或多个数据块中的文档数据,其中,文档数据具有编号和内容标识,按照编号计算文档数据所属的目标文档,按照内容标识查找文档数据在所属的目标文档中的位置,将文档数据写入目标文档中的位置,获得原始的目标文档。
[0118]对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0119]参照图6,示出了根据本发明一个实施例的一种基于序列化的文档压缩装置实施例的结构框图,具体可以包括如下模块:
[0120]文档提取模块601,适于提取准备压缩的多个文档;
[0121]目标文档查找模块602,适于从所述多个文档中查找内容相似的多个目标文档;
[0122]内容标识计算模块603,适于对所述多个目标文档的一行或多行文档数据计算内容标识;
[0123]序列化模块604,适于根据所述内容标识对所述多个目标文档进行序列化,获得一个或多个数据块;
[0124]压缩模块605,适于将所述一个或多个数据块进行压缩处理,获得压缩对象。
[0125]在本发明的一种可选实施例中,所述目标文档查找模块603还可以适于:
[0126]计算所述多个文档的URL的相似性;
[0127]当所述相似性超过预设的相似性阈值时,确认所述多个文档为多个目标文档。
[0128]在本发明的一种可选实施例中,所述序列化模块604还可以适于:
[0129]提取所述多个目标文档中、内容标识相同的文档数据;
[0130]将所述
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1