信息检索——索引压缩

  • Post author:
  • Post category:其他


索引压缩


目录


索引压缩


为什么需要压缩?


两种压缩方式:


信息检索中词项的统计特性


Heaps定律


Zipf定律


词典压缩


用定长数组来存储词典中的词项。


将词典看成单一字符串的压缩方法


按块存储


前端编码


倒排记录表的压缩


可变字节编码VB编码


gamma 编码



索引压缩

:对词典和倒排记录表这两个数据结构进行压缩。

为什么需要压缩?

  1. 使用更少的磁盘空间


节省资金

  1. 在内存中存放更多信息


提高速度

  1. 提高数据从磁盘传输到内存的速度


读取压缩数据|解压缩 比 读取未压缩数据 快得多


前提:解压缩算法是高效的

词典尽可能全部放在内存中,如果放不下,

倒排表没有办法全部放在内存中,把查询最多的词项的倒排表放在内存。


词典:

  1. 使其足以存放在内存中
  2. 使内存可以多容纳一些倒排记录表


倒排记录表:

  1. 减少所需的磁盘空间
  2. 减少从磁盘中读取倒排记录表所需的时间
  3. 大型搜索引擎将一部分倒排记录表保存在内存中(压缩使内存能保存更多的倒排记录表)

两种压缩方式:


无损压缩

:所有原始信息都保留(大多数IR系统的做法)


有损压缩

:大小写转换,词干还原,停用词…

会造成一定的信息丢失,但是有时候对检索没影响

信息检索中词项的统计特性

  1. 词项的个数:Heaps定律
  2. 词项在文档出现的次数,有的词项出现的多,有的词项出现的次数少:Zipf定律


文档集频率

:一个词项在文档集中总共出现次数


文档频率

:一个词项在几个文档中出现,倒排索引一部分。


区别

:词A中文档1中出现了3次,文档频率只算1个,但文档集频率算3

Heaps定律


词项数目的估计



  • Heaps’


    定律:

    M = kTb





  • M


    是词汇表大小,


    T


    是文档集中的词条个数


  • 参数k和b的典型取值为: 30 ≤

    k

    ≤ 100






    b

    ≈ 0.5


  • Heaps定律认为,在对数空间中词汇量


    M





    T

    ,存在线性关系

Zipf定律


对词项分布的建模


自然语言中存在一些高频词项,也存在一些极低频词项


  • Zipf’s 定律: 排名第i多的词项的文档集频率与1/

    i

    成正比.

  • cf

    i




    文档集频率


    : 文档集中排名第i多的词项的文档集频率.


  • cf

    i

    ∝ 1/

    i = K/i




    K

    是一个常量

  • 如果出现最多的词项的出现次数是cf

    1

    的话


    • 出现第二多的词项的出现次数就是 cf

      1

      的一半

    • 出现第三多的词项出现次数是cf

      1

      的1/3 …

  • 等价变换: cf

    i

    =

    K/i

    ,其中k=1, 因此



    • log cf

      i

      = log

      K

      – log

      i





版权声明:本文为notqq555原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。