namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
experimental version of regexp'ized Namazu
- From: Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx>
- Date: Mon, 25 May 1998 05:34:03 +0900
- X-ml-name: namazu
- X-mail-count: 00693
高林です
正規表現および中間一致、後方一致での検索を可能としたものがそこそこ
動くようになったので実験的に公開します。まだ私のところでしか試して
いないので動くかどうか確認していただけると助かります。
<URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/proto/> に
namazu-120-proto-1.tar.gz として置いておきます。
正規表現は Ruby b19 のregex.c および regex.h のコードを使わせてい
ただきました (まつもとゆきひろさん Thanks!)。ゆえに Perl5的な日本
語の正規表現が使えます。たとえば "/^インター?フェ[イー]ス]$/" のよ
うに指定します。
# Linux のJFの文書で実験したところ
#
# * インターフェース
# * インターフェイス
# * インタフェース
# * インタフェイス
#
# の4種類が実際に使われていました。こういった表記の揺れは日本語の
# 情報処理の問題点ですね。ビタミンをヴァイタミンと書く人はいないと
# 思うけど…。
中間一致、後方一致は内部的には正規表現として扱われます。たとえば
"*大学" とか "*ネット*" のように指定します。
従来通り、完全一致と前方一致も行えますので、これらを組み合わせて検
索を行うことが可能です。
正規表現および中間一致、後方一致検索を行うには
% wdnmz NMZ.i > NMZ.w
のように単語のリストを NMZ.w という名前であらかじめ作っておく必要
があります。
ところで、 v1.1.2.3 に割と大きなバグを見つけてしましました。 Tf
Idf の計算がでたらめな数値になってしまうというものです。とりあえず
search.c の 365 行目辺を
pathcat(base, HASH);
pathcat(base, BIGENDIAN);
pathcat(base, LITTLEENDIAN);
+ pathcat(base, FLISTINDEX);
}
のように一行追加すると直ります。
--
高林 哲 Satoru Takabayashi