2004.01.26
Zopeで日本語全文検索 - MJSplitter 0.1 リリース
Zopeで日本語の全文検索をするためのプロダクト、「MJSplitter」をリリースしました。

MJSplitter 0.1 released
http://zope.org/Members/mojix/MJSplitter/0.1release

MJSplitterは、日本語の解析に「MeCab」を用いる、ZCTextIndex用の日本語Splitterです。

MeCab (和布蕪)
http://cl.aist-nara.ac.jp/~taku-ku/software/mecab/

これまでZopeの日本語検索では「ChaSen」が使われることが多かったのですが、MeCabはChaSenの平均3-4倍のスピードで解析できるとされており、MJSplitterではこのMeCabを選びました。

今朝より公開したmojix.orgの全文検索機能は、このMJSplitterを使っています。mojix.orgでは、エントリを追加するときにZCatalog(Zope内蔵サーチエンジン)にも登録されており、この時点で日本語解析もおこなわれ、インデックスに追加されて、検索可能になります。つまり、(日次バッチなどではなく)エントリ投入の直後からただちに検索可能になっています。

MJSplitterはMeCab本体との接続部分に、LinuxなどUnix系の環境ではMeCab作者によるPythonバインディングモジュールを、Windows環境ではYasushi Masuda氏のMeCabLibモジュールを使用しています(MeCabLibは、Thomas Heller氏のctypesを使用)。

本来は、MeCabのPythonバインディング、MeCabLibともに、LinuxやWindowsなどの環境を選びません。しかしMeCabのPythonバインディングにWindowsインストーラがないこと、MeCabLibが用いているctypesをLinuxで利用するのはやや困難なことなどから、環境別に上記の組みあわせを想定しています。

今回の0.1リリースでは、品詞によるフィルタリングなどはまだ実装されていませんが、通常の用途にはひとまず足りるものと思います。

Zopeで日本語検索をしたい人は、ぜひMeCabをインストールして、MJSplitterを試してみてください。
タグ: