namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pnamazu-98.04.16
Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:
>カタカナの場合、\xa5[\xa1-\xf6] の範囲に入っていますから、これと「ー」
>(\xa1\xbc) を合わせても 100 個もありませんから、
> 「ー」(a1bc) ... 0
> 「ァ」(a5a1) ... 1
> 「ア」(a5a2) ... 2
> (以下略)
>
>のように番号を振ります。で、その組み合わせで、
>
> 「ーー」,「ーァ」,「ーア」, …, 「ァー」「アー」
>
>に対し、NMZ.i に登録されているカタカナ語を記録しておきます。これが NMZ.k
>です。
>
>そして、NMZ.ki には、該当するカタカナ並びが NMZ.k のどこにあるかを記録
>しておきます。
>
>検索時には、検索語のカタカナ語を、2 文字単位で登録語を調べています。
うーんなるほど。こういうのは確か bigram っていうんですよね? NMZ.ki
が 30276 byte ということから判断して 87 種類ですね。同じことを JIS
X 0208 で定義される 6355 文字 (らしい) を対象として行うと
6355 * 6355 * 4 = 161544100
で約 157 MByteなってしまいます :-)。これはさすがに無理がありますね…。
2文字単位で記録しないで 1文字でやれば
6355 * 4 = 25420
でたった 25 KByte なんだけど (NMZ.k の方は登録単語数に応じて大きく
なりますがせいぜい数百KByteくらいだと思う)、 これだと効率はどうな
んでしょうね。実用になるようなら面白いのですが。もしよければちょっ
と実験してみてもらえると嬉しいです >古川さん。
# そういえば NMZ.h も同じようなことをしているんだけど、制御文字と
# か未定義の部分の有り得ない組み合わせもまとめて全部 65536 種類で
# 記録しているので 256KByte になっています。ちゃんと計算すれば 94
# * 94 + 6355 = 15191 だから約 60KB になるはずなんだけどややこしい
# ので…。 (NMZ.h なんかいらないという話もありますが…)
>> # 辞書いらずの文の分解機能も真似しようと思っていて思っているだけの
>> # ままになっていました…。
>
>こちらは、基本的には、binsearch で while ループを抜けたら、x の値を
>デクリメントしながら、先頭が一致するのを見つけていけばいいはずです。
はい。今度やってみます。
>> それから、ひとつバグを見つけました。キーワードが見つからないときも
>> |検索結果
>> |参考ヒット数: [ hoge: 0 ]
>> |検索式にマッチする 1 個の項目が見つかりました。
>> のように一つ結果が表示されてしまいます。これは NMZ.r の最初に登録
>> されているもののようです。
>
>ありがとうございます。さっそく直しました
<URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/contrib/> に置
いてあるものはどうしましょう? こっそり直しちゃっても良いですけど。
--
高林 哲 Satoru Takabayashi