一种文档的压缩、解压方法和装置的制造方法_2

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