namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
easy way to compress NMZ.i and NMZ.p
- From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 12 Aug 1999 17:18:20 +0900
Modern Information Retrieval
<http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=020139829x>
なる本を読んでいて、NMZ.i と NMZ.p を圧縮する単純な方法を知
りました。 (気づいてみればあきれるほど単純)
ひとことで言えば、NMZ.i, NMZ.p に記録する文書IDのリストは必
ず昇順で並んでいるので、これを差分で記録すればいいというだけ
の話です。つまり、1, 5, 12, 100, 150 なら 1, 4, 7, 88, 50 と
記録するわけです。
差分で記録すれば当然、各値を表すためのビット数が減りますから、
pack 'w' の効果と合わせて、インデックスのサイズは小さくなり
ます。というわけで、のちほど実装してみます。
# pack 'w' (バイト単位で圧縮) より効率のよい数値表現 (ビット
# 単位で圧縮) の方法も載っていましたが、さすがにそこまでする
# 必要はないかな、と。 (perlでビット演算をすると遅いだろうし)
p.s.
<http://nova.planet.sci.kobe-u.ac.jp/~matsuda/essay/hightech.html>
の「6. 早起きの宣教師たる私」はためになります。:)
-- Satoru Takabayashi