namazu-ml(avocado)


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

Re: Phrase search (Re: [Q] OpenText Style?)



古川です。

>> On Fri, 29 May 1998 15:31:12 +0900, Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> said:
  > それから、フレーズをダブルクォーテーションで指定するのはコマンドラ
  > インからのときにちょっと不便なので '|' でも OK ということにしまし
  > た。また、 FastCGIの対応をやめました (ソースコードを整理したくなっ
  > たので)。

今まで、'|' は、or に使っていましたよね?それならば、

    演算子無し      わかち書きされると勝手にフレーズ検索になるので
                    「愛知」「大学」が検索できる
    '.'             perl の文字列連結からの連想

のほうが好きです。


  > ところで、自分のところ以外で動いているのか不安なのでフレーズ検索の
  > 動作確認をいただけるとありがたいです。ご意見をお待ちしております。
  > # フレーズ検索の精度を統計的に調べてみたいところです。何か良い方法
  > # はないかな…。

make_phrase_hash の中で

	if (!defined($tmp{$idx})) {

というところがありますが、もし、ここで $tmp{$idx} が存在していたら、
(そして、word の並びが違っていたら) 違う並びでヒットする可能性があるこ
とになりますね。そこらへんを調べてみる、とか、出現する $hash の頻度を
とって、均一に分布するかどうかを調べる、などはいかがでしょう。


それと、これはバグではないのですが、NMZ.pi フォーマットが、存在しない
部分には -1 を書く、という仕様になっていますが、NMZ.ii などと同じく、
その時点でのオフセットを書くようになっていると、関数が共通化できて、
いいのではないか、と思います。


>> On Fri, 29 May 1998 02:43:05 +0900, Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> said:
  > [namazu:00718] で
  > | # 英語と英語、日本語と日本語で衝突しにくい関数が理想的ですね。英語
  > | # と日本語がぶつかるのはほとんど問題にならないので。
  > と言っていましたが、これは無理なような気がしてきました。

単なる思いつきですが、各バイトの下位 7bit だけを演算対象にしてやれば、
英語と日本語がぶつかりやすくなる -> 相対的に、英語と英語、日本語と日本
語が (ちょっとだけ) ぶつかりにくくなる、と思います。計算時に、1 バイト
づつ読むのではなく、シフトしながら読んでやらないといけないので、やや面
倒ですが。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx