namazu-ml(avocado)


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

experimental version of regexp'ized Namazu



高林です

正規表現および中間一致、後方一致での検索を可能としたものがそこそこ
動くようになったので実験的に公開します。まだ私のところでしか試して
いないので動くかどうか確認していただけると助かります。
<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