Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NMZ.iのデータ長について



小舞です。

Tadamasa Teranishi さんは書きました:
>そう思わずにいろいろアイディアを出していただけると、いろんな人の
>刺激になったり、別のアイディアを生んだりできるので良いと思いますよ。

アドバイスありがとうございます。では、お言葉に甘えて、、
しばしご笑覧を。。。

>ここでファイルを分けたことで、どのようなメリットが出てくるのかが
>分かればいいですね。この辺りはいろいろ考えておられるのではないか
>と思いますので、そこをお話いただければと思います。
>
>たとえば、複数種類のスコアを計算して、検索時にスコアを切替えできる
>ようにしたいとか。

メリットとしては、以下のような点が挙げられるでしょうか。
(実装する人の大変さとか考えていなくてイメージのみの部分もありますが。)

1)スコアの計算にいろいろバリエーションを持たせられる。
  その場合、多少計算速度が落ちるますが、バリエーションの数を2つ3つと増やしていける。
  イメージとしては、NMZ.field.{いろいろ}をいろいろ簡単に増やせるように現在のNamazuが
  なっているそういう良い伝統をスコア値にも適用したい。
  それだけインデックスのファイルが増えますが。。(これはデメリット)
2)普段、日付の昇降順のソートで満足するケースも多いが、
  そういう場合、スコア値を読まずにすみ、計算速度が若干上がること。(スコア値でソートしたい
  場合は逆に、ファイルが別だから、少し計算速度が落ちるかもしれませんが。。)
3)そもそもスコア値をあまり積極的に検索時に使わない!という人
  は、そのNMZ.score、NMZ.scorei(名前はいい加減)のファイルを削除しても良いとしてしまう。
  そうすれば、NMZ.iのファイルが約半分(30%〜40%減程度かも)の大きさになっている筈なので、
 (このファイルは結構でかい)インデックスを小さくしたいという人には朗報。
4)NMZ.iのファイル構造をシンプルにすることによって、プログラムの見通しが良くなる。
5)副次的メリットとして、似て非なるものではなく、全然違うファイル構造にできる。
  先頭のデータをBER範囲ではなく、文書総数にしてしまう良いチャンス。
  (文書総数×2という、この2倍もなくしてしまう)

なんかいろいろ書いてしまいましたが、スコア値は、まずありきではなくて、別にしてしまって、
煮るなり焼くなりしたい人には、そうしやすいように。
スコア値を気にしない人は、消してもかまわないように。
という柔軟性がでてくるといいかな。と思っています。(今は一身同体になっている。。)

>また、インデックスファイルのフォーマットは別にしても、スコアの
>計算方法をユーザーが定義するようにするのは難しいわけですが、
>それはともかく、どういったスコア計算を考えられているのでしょうか?

実は、今のところ、検討はあまりしていなくて、漠としたイメージだけでお恥かしいのですが、
以下のようなイメージのことができたら楽しいかもしれないと考えています。
1)ある単語と別の単語で意味合いの近い類義語が同一のファイルにある場合、スコア値を引き上げる。
  この処理は、多分、mknmzの処理が全部終わった後に、ユーザープログラムを起動して、
  相関行列(イメージです)みたいなものから、再計算をする形。
2)スコアのバリエーションとして、ある同一のファイルに、単語が何回でてくるか?を0〜5の5段階
  くらいの粗い段階にしておいて、それと、日付の新旧もある粗い段階にしておいて、それらを組み合
  わせたスコア値群も用意しておく。そういうなんというか、複合的スコアのソートも、選択肢に
 (namazu.exeの引数として)入れられるようにする。

とまぁ、自分の貧困な想像力では、こんな程度ですが、きっといろいろなバリエーションが
あると、検索結果で欲しい情報が上位に来るようにできないかな?なんて思っています。
(そういったバリエーションが、チェックボックスorプルダウンで用意してあると、結構便利かな。)

># スコア計算部分をプラグイン化するとかだといいのかな。
そうですね。そんなイメージもあります。
そうすると、いろいろなチャンレンジをする人がたくさんでてきそうで、
今後ますます楽しみになるかな?と思っています。

蛇足ですが、
NMZ.scoreというファイル名は、適当(!)ですが、
インデックスファイル群の中で、このファイルは、オフセットファイルの意味合いとしては、
NMZ.field.{いろいろ} 系のように、ファイル属性側ではないので、
多分、オフセットファイル名は、どちらかというと、NMZ.i 、NMZ.ii側に合わせて、
NMZ.scorei になるのかな?
いずれにしても、ファイル名とかファイル構造を見直す時に、少しかっこいい
名前にしたいです。(夢想も入ってきた。。笑)

最初、NMZ.s、NMZ.siなんて考えたのですが、これって、pnamazu あたりで見たことがあるような
気がします。うろ覚えです。すみません。(昔のファイル名と同じだとまずい。。)

=kp@stellar=