BaseX-ja - An implementation of Japanese lexer to BaseX


これは何?

BaseX」は非常に優れたXMLデータベースで、公式サイトのアナウンスによれば、 近々発表される W3C XQuery 3.0 Recommendation の機能をすでに提供しており、また、W3C XQuery Full Text 1.0 および、Update Facility Extensions の機能を完全に実装しています。 国際化の対応についても、格納するXML文書についてはもちろんのこと、インターフェースにおいても、サーバが返すメッセージやGUIツールのメニューなど、ほとんどの部分が各国語対応されていますが、 残念なことに、XQuery Full Text における字句解析機能は英語とドイツ語にしか対応していません。

このプログラムは、日本語形態素解析による単語の切り出しが可能になるように、「Igo - Java形態素解析器」を利用して、BaseXの全文検索機能を拡張したものです。

前準備

Igo の BuildDic コマンドを使って、日本語辞書を生成します。

$ java -cp igo-0.4.2.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

※詳細についてはIgoの公式サイトをご確認ください。

生成された ipadic/ をホームディレクトリ(System.getProperty("user.dir") で示される場所)にコピーします。

$ cp -R ipadic /home/user-name

BaseX-jaは、まずクラスパス内で辞書をサーチし、もしなければホームディレクトリにあるものと見なします。

使ってみる

BaseXそのものの使い方やAPIについては、こちらをご覧いただくとして、 ここでは、手っ取り早く日本語全文検索機能を体験していただくために、BaseXGUI を使った一連の手順についてご紹介いたします。

(1) 日本語で記述された整形式のXML文書を用意します

(2) BaseXGUIの起動

$ java -Dfile.encoding=utf-8 -cp igo-0.4.2.jar;BaseX-ja.jar org.basex.BaseXGUI

(3) データベースを作成します

  1. BaseXGUI のメニューから[データベース]→[新規...]
  2. 一般タブの「XML文書の保存」に用意した日本語XMLファイルを指定
  3. 「データベースの名前」に任意の名前を指定
  4. 全文タブの「全文インデックス」をチェック
  5. 「言語」をチェックして、Japanese を選択
  6. [OK]ボタンを押す

(4) XQuery Full Text を試してみる

//* [text() contains text '単語']

注意点など

BaseX-ja では、半角英数と全角英数は同一のものとして扱います

"ガンダムRX-78" に対しては "ガンダムRX-78" でもヒットします

ひらがなとカタカナは区別されます

"ガンダム" に対しては "がんだむ" ではヒットしません

BaseX-ja では、現在のところ、英文に関わる以下のものについて動作を確認しています。

リリースノート

2011.6.20    Ver.6.3.3-1    初版公開

ライセンス

BSD License (本家に準じます)
詳しい内容については、ソースコードに同梱されている license.txt を参照ください。

なお、使用する辞書のライセンスに関しては、辞書配布元のそれに準じます。

連絡先

バグに関する報告などは、こちらからお願いします

なお、BaseX-ja の日本語関連拡張は、私が独自に行ったものですので、この部分に関する質問などをBaseX プロジェクトチームに対して行ったとしても彼らは一切これを関知していません。 また逆に、BaseX由来の動作に関する質問は、私の方ではあまり詳しく答えられません。 そのようなものについては、こちらから行うとよいでしょう。


Last modified: Mon Jun 20 16:46:11 JST 2011

INDEX