aihot  2020-11-12 11:21:28  OpenCV |   查看评论   

变长字节算法

  实际上就是128进制:

变长字节压缩示例

变长字节压缩示例

SimpleX 系列算法

  SimpleX系列算法最常见的是Simple9,Simple9是一种字对齐算法,字对齐也就是我们通常使用的表示数字的方式,比如128是一百二十八。Simple9最常用的是利用32个比特位,来作为压缩单位,给定固定大小的压缩单位后,每个压缩单位试图存储多个待压缩的数字:

SimpleX 系列算法

  前四位是指示位,用于表明B是多少,即数据存储区基本构成单元比特宽度是多少。如果数字均为0或1,那用B=1就可以存储,可以同时存储28位数字;如果B=2,可以存储14个范围在0至3的数字,以此类推。

  这个算法可以同时压缩/解压多个数字。

PForDelta 算法

  PForDelta 算法是目前解压速度最快的一种倒排文件压缩算法。

  前面讲的SimpleX算法,实际上,一次压缩多个数值面临困难,因为连续的数值序列有大有小,如果每个数值按照序列中最大的数值来决定比特宽度,很明显对小数值来说会存在空间浪费的情形。

  PForDelta希望能在压缩率和压缩解压速度方面找到一个平衡点,对于待编码的连续K个数值(一般K取128,即一次性压缩解压128个数值),先去除其中10%比例的大数,根据剩下90%的数值决定该采取的比特宽度,而10%的大数当做异常数据单独存储:

PForDelta 算法

  我们将大数放在异常数据存储区,但也要记载这些数在原始序列中的位置信息,这样解压的时候能够快速恢复原始数据。

文档编号重排序

  我们前面提到了D-Gap,我们用D-Gap来存储文档ID,经过前面的PForDelta,我们也知道,数字越小越容易压缩,所以我们希望对文档编号重排序,使得同一个单词倒排列表中的文档编号都尽可能尽可能相近,所得到的D-Gap值也就小了。

  为了达到这个目的,我们希望内容越相似的网页,在编排文档编号时,其文档编号越相邻。计算相似性的方法很多,比如TF-IDF。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈搜索引擎基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]