全文検索ユーティリティ統一スレッド part3

このエントリーをはてなブックマークに追加
495名無しさん@そうだ選挙にいこう
長いことサーチクロス使ってるけど、
http://www.vector.co.jp/magazine/softnews/040410/n0404101.html
↑で作者が述べてるように形態素解析は使ってないってことで、
どういうアルゴリズムなのかずっと疑問に思っていた。

で、「サーチクロスは形態素解析によるインデックス化を行っておりません」という文章だけ
インデックス化してみたところ、次のような手法を採っていることが分かった。

(1)まず文章から記号類とひらがなを除去する
 「サーチクロス形態素解析インデックス化行」
(2)これを文字コードによりカナ・漢字・英字に分割
 「サーチクロス | 形態素解析 | インデックス | 化 | 行」
(3)分割された単語をN-gram法で索引化する
 「サ | サー | サーチ | サーチク ・・・・・・ッ | ック | ックス | 化 | 行」
 検索語が「チク」や「態素解」などでもヒットすることから確認
(4)5つの単語をN-gram法でインデックス化することで
 サーチクロス 6+5+4+3+2+1=21
 形態素解析 5+4+3+2+1=15
 インデックス 6+5+4+3+2+1=21
 化 1
 行 1
59単語が索引登録されることになる。

この単純なアルゴリズムが高速なインデックス化の秘密なのだろう。
ちなみに「先頭一致検索」にチェックを入れるとノイズは減るが、
「解析」で検索しても「形態素解析」はヒットしなくなる。

以上チラシの裏でした。