namazu-ml(avocado)


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

Internal match search (Re: pnamazu-98.04.16)



Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:

>ちょっと見積ると、登録単語の 1 文字につき、「文字->語の対応ファイル」
>には 1 個、記録されるので、
>
>    「登録単語 (2byte 文字) の総文字数」*「整数のサイズ」
>
>くらいでしょうか。

ということは 5万語 で平均一語 4文字の場合、

50000 * 4 * 4 = 800000 (781.25 KByte)

という計算になりますね。ちょっと大きいけど、この程度なら十分許容量
だと思います。『ホノルル』みたいに一語に同じ文字が使われていると少
しは効率が上がるかな。扱いが変わってくるけど英語の単語についても同
じようなことができるとよりベターですよね。


>> んでしょうね。実用になるようなら面白いのですが。もしよければちょっ
>> と実験してみてもらえると嬉しいです >古川さん。
>
>そうですね。ちょっと実験してみましょう。

これで中間一致検索ができるようになると面白いですよね。深く考えたわ
けではないですが、コストはそんなにかからないと思います。たとえば
『アンサンブル』で検索をかけた場合、

ア: クライスレリアーナ, ヤマハアンサンブルピアノ, ワディア
ン: コンピュータ, サーチエンジン, プログラミング, ヤマハアンサンブルピアノ
サ: サーチエンジン, プロデューサー, ヤマハアンサンブルピアノ
ン: コンピュータ, サーチエンジン, プログラミング, ヤマハアンサンブルピアノ
ブ: ドウガネブイブイ,  ハーブ, ホーブ, ヤマハアンサンブルピアノ
ル: ゴルフ, ホノルル, モノレール, ヤマハアンサンブルピアノ, ルール

みたいな感じで一文字づつその文字を含む単語のリスト (実際には整数値
ですね) を取得してマージすればいいわけですよね (ソート済みの整数値
の配列をマージするだけなのでコストはたいしたことないはずです)。こ
の例では『ア』『ン』『サ』『ン』『ブ』『ル』のすべての文字を含む単
語は『ヤマハアンサンブルピアノ』だけということになります。

# 2byteで考えた場合、英語には "th" や "he" のような大人気の bigram 
# があるからその辺がちょっとネックになりますね。

もしも『アサインメントブルー (宿題憂鬱症)』なんて言葉 (今作りまし
た) があればこの段階ではマッチしますが、『アンサンブル』と実際に照
合したときにはねられるという具合です。

…というふうに私は勝手に理解したつもりになっているのですが、何か大
きな勘違いしているのかもしれません。なんとなくこれなら実現できそう
な気はします。さらに "The valley of fear" みたいにフレーズ検索がで
きるようになると最高なんですけどね。

# 単語とは別に記号類 ( ,.;:、。など) をデリミタとして区切った文の
# 断片をインデクシングしておいてそれに部分マッチで検索すればフレー
# ズ検索できるかな? (効率悪そうだが)


>> <URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/contrib/> に置
>> いてあるものはどうしましょう? こっそり直しちゃっても良いですけど。
>
>履歴をちゃんと残す意味で、日付をつけ直したものを別便にてお送りします。

<URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/contrib/> 
に置きました。

--
高林 哲 Satoru Takabayashi