寺西です。 ふと思ったんですが、フレーズ検索って N-gram ですよね。
N-gram ベースの検索エンジンの説明で、N-gram とは 文章を N文字の 文字列として区切る方式とか説明されていることが多いのですが、 これが単語単位であっても N-gram には違いないはずです。 N-gramモデルとは、「ある文字列の中で、N個の文字列または単語の組み 合わせが、どの程度出現するか」を調査する言語モデルだから。 ちょっと強引かもしれませんが、少なくとも N-gram モデルに似たもの であるとは言えるでしょう。 Namazu のフレーズ検索だと、2つの単語からハッシュを算出しますから、 bi-gram ということになりますか。 N-gram の利点のひとつで検索漏れがないというのは、単語分けの時点で 形態素解析の欠点の漏れが生じて失われてはいます。 逆に、フレーズ検索だと N-gram の欠点のひとつのゴミが含まれるという 特徴はしっかり出ています。 # ダメじゃん。 (また、ゴミがでるのは更に16bitハッシュを使っているので、ハッシュの 衝突によるものもあります。) N-gram ベースの検索エンジンは、シグネイチャ型のインデックスを使う ことが多いので、シグネイチャ型の特徴を N-gram ベースの検索エンジン の特徴として紹介されることも多いのですが、 Namazu は転置インデックス型なので、フレーズ検索が N-gram でも、 やっぱり転置インデックスの特徴がでてます。(当たり前) では、分かち書きをせずに文字単位の N-gram でインデックスを作れば、 転置インデックス型ではあるが巷の N-gram ベースの検索エンジンぽく なったりしませんかね? 実験程度なら比較的小規模な修正で対応できそうな気はします。 (スコアの計算をどうするとかはあるのですけどね。) Namazu では文字(単語)の文書中の位置は記録していません。このため N-gram での検索結果から位置による絞り込みはできませんから、やっぱり ゴミが多すぎてダメですかね。 -- ===================================================================== 寺西 忠勝(TADAMASA TERANISHI) [EMAIL PROTECTED] http://www.asahi-net.or.jp/~yw3t-trns/index.htm Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E _______________________________________________ Namazu-devel-ja mailing list Namazu-devel-ja@namazu.org http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja