5.索引压缩
有损压缩:大小写转换,词干还原、停用词剔除、向量空间模型、LSA(隐性语义分析)等;
无损压缩:(下面介绍的压缩方法)
Heaps定律:词项数目的估计---M=kT^b(M-词项数,T-文档集合中词条个数,30《k《100,b=0.5)
Zipf定律:词项在文档中分布的估计---排名第i多的词项的文档集频率与1/i成正比,例如:如果出现第一多的词项出现次数是cf1,那么出
现第二多的词项出现次数就是cf1/2。用于倒排记录表压缩时的词项分布建模。
其他有关词项分布的模型:K混合模型,双泊松模型(见15)
词典压缩:1.词典采用定长数组存储所有词项按照词典序排序,但这样会造成空间浪费,如每个词项都采用20B的固定长度
解决办法:将所有项存成一个长字符串,给每个词项增加一个定位指针;
2.按块存储:对1进一步的压缩,将长字符串中的词项分组变成大小为k的块(即k个词项一组),然后对每个块只保留第一个
词项的指针,对每个块而言减少了k-1个指针,但需要额外的kB保存k个词项的长度。、
3.前端编码:对2进一步的压缩,按照词典顺序排序的连续词项之前往往具有公共前缀,公共前缀被识别出来之后,后续词项
可以使用一个特殊的字符来表示这段前缀
4.更高效的压缩率方法:最小完美哈希---将M个词项映射到[1,…,M]上(无法在动态环境下使用)
倒排记录表的压缩:高频词出现的文档ID序列间距很小,用20bit位数表示;对于低频词间距很大,也用20bit表示,这造成空间浪费。
对小数字采用比大数字更短的编码方式,采用两种方法:按字节压缩(1)及按位压缩(2,3)。
1.VB(可变字节):利用整数个字节对间距编码,字节第1位是延续位,表明本字节是某个间距编码的开始或结束,后7位
是间距的有效编码区。
磁盘空间不紧张的情况下采用VB编码,或采用位对齐的二元编码。
2.γ编码:更细的位粒度上进行编码长度的自适应调整。?P69
3.δ编码:
大数字(大于15)占主要地位时,δ编码优于γ编码;大规模文档集上,采用Golomb编码更优。