namazu-ml(avocado)


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

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



Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:

>  > それから、フレーズをダブルクォーテーションで指定するのはコマンドラ
>  > インからのときにちょっと不便なので '|' でも OK ということにしまし
>  > た。また、 FastCGIの対応をやめました (ソースコードを整理したくなっ
>  > たので)。
>
>今まで、'|' は、or に使っていましたよね?それならば、

忘れていました。では '{' '}' で囲むのはどうでしょう?

% namazu "{the songs of distant earth}"

みたいな感じで。


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

わかち書きの発生する日本語は演算子なしで自動的にフレーズ検索にする
のは良いアイディアですね。試してみます。


>  > # フレーズ検索の精度を統計的に調べてみたいところです。何か良い方法
>  > # はないかな…。
>
>make_phrase_hash の中で
>
>	if (!defined($tmp{$idx})) {
>
>というところがありますが、もし、ここで $tmp{$idx} が存在していたら、
>(そして、word の並びが違っていたら) 違う並びでヒットする可能性があるこ
>とになりますね。そこらへんを調べてみる、とか、出現する $hash の頻度を
>とって、均一に分布するかどうかを調べる、などはいかがでしょう。

なるほど。その手がありますね。では精度を調べるためのプログラムを作っ
て調査してみます。


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

えっと、これは -1 のようにしておかないと有効な値かそうでないかの区
別がつかないのでそうしています。 -1ならハズレというわけです。


>> | # 英語と英語、日本語と日本語で衝突しにくい関数が理想的ですね。英語
>> | # と日本語がぶつかるのはほとんど問題にならないので。
>> と言っていましたが、これは無理なような気がしてきました。
>
>単なる思いつきですが、各バイトの下位 7bit だけを演算対象にしてやれば、
>英語と日本語がぶつかりやすくなる -> 相対的に、英語と英語、日本語と日本
>語が (ちょっとだけ) ぶつかりにくくなる、と思います。計算時に、1 バイト
>づつ読むのではなく、シフトしながら読んでやらないといけないので、やや面
>倒ですが。

うーん、なるほど。前述の精度測定器が完成したら比較してみます。

--
高林 哲 Satoru Takabayashi