ここ2〜3日、ず〜っとmecab-ipadic-neologdの辞書をLucene Kuromojiに適用するという作業を延々と繰り替えしていました。
修正されたmecab-ipadic-neologdの辞書を、Lucene Kuromojiに適用してみる
http://d.hatena.ne.jp/Kazuhira/20150316/1426520209
が、けっこうな数の手順を踏むので、だんだん面倒になってきました…。
そこで、上記のエントリでやった手順をまとめたbashスクリプトを書きました。ビルド方法もだいたい決まったことですし。
※完全に同じではありません
エラートラップとかは大して入れていませんが、ご了承ください。
実行する前提条件として、以下がインストールされている必要があります。
MeCabは、パスが通っていなかったら勝手にローカルでビルドして使います。ネットワークプロキシが必要な場合は…スクリプトを直すなり、環境変数を設定するなりしてください…。
動作確認は、Lucene 5.0.0と4.10.Xで行っています。Lucene 3系は、ディレクトリ構成が全然違うので、このスクリプトではビルドできないはずです。
スクリプトは、GitHubに置いてます。
https://github.com/kazuhira-r/kuromoji-with-mecab-neologd-buildscript/blob/master/build-lucene-kuromoji-with-mecab-ipadic-neologd.sh
このスクリプトを、ダウンロードしてきて実行権限を付与します。
$ wget https://raw.githubusercontent.com/kazuhira-r/kuromoji-with-mecab-neologd-buildscript/master/build-lucene-kuromoji-with-mecab-ipadic-neologd.sh $ chmod a+x build-lucene-kuromoji-with-mecab-ipadic-neologd.sh
で、実行します。
$ ./build-lucene-kuromoji-with-mecab-ipadic-neologd.sh
最終的には、こういう結果が表示されます。
jar-core: [jar] Building jar: /xxxxx/lucene-solr/lucene/build/analysis/kuromoji/ucene-analyzers-kuromoji-ipadic-neologd-5.0.0-20150316-SNAPSHOT.jar BUILD SUCCESSFUL Total time: 5 seconds -rw-rw-r-- 1 xxxxx xxxxx 27315558 3月 20 00:50 lucene-analyzers-kuromoji-ipadic-neologd-5.0.0-20150316-SNAPSHOT.jar
実行後のカレントディレクトリは、このようになります。
$ ls -l1 合計 39992 -rwxrwxr-x 1 xxxxx xxxxx 3298 3月 20 00:47 build-lucene-kuromoji-with-mecab-ipadic-neologd.sh -rw-rw-r-- 1 xxxxx xxxxx 27315558 3月 20 00:50 lucene-analyzers-kuromoji-ipadic-neologd-5.0.0-20150316-SNAPSHOT.jar drwxrwxr-x 6 xxxxx xxxxx 4096 3月 20 00:48 lucene-solr drwxrwxr-x 8 xxxxx xxxxx 4096 3月 20 00:31 mecab drwxr-xr-x 8 xxxxx xxxxx 4096 3月 20 00:47 mecab-0.996 -rw-rw-r-- 1 xxxxx xxxxx 1398663 2月 18 2013 mecab-0.996.tar.gz drwxrwxr-x 2 xxxxx xxxxx 4096 3月 20 00:47 mecab-ipadic-2.7.0-20070801 -rw-rw-r-- 1 xxxxx xxxxx 12208105 10月 16 2011 mecab-ipadic-2.7.0-20070801.tar.gz drwxrwxr-x 8 xxxxx xxxxx 4096 3月 20 00:47 mecab-ipadic-neologd
カレントディレクトリに並んでいるJARファイルが、mecab-ipadic-neologdが適用されたJARファイルになります。こちらを利用してください。
このスクリプトは、こういう動作をします。
※最新版の動作や設定は、GitHubのREADMEを見るようにしてください
- MeCabのインストール(which mecabが偽となる場合)
- MeCab IPA辞書のインストール(`which mecab`が偽となる場合)
- mecab-ipadic-neologdの辞書CSV作成(libexec/make-mecab-ipadic-neologd.sh -Lを利用して、Lucene Kuromoji用に取り込み対象の調整)
- LuceneをGitHubのミラーからClone
- CloneしたLuceneソースを、指定のタグにcheckout
- mecab-ipadic-neologdの辞書を利用するため、また生成されるJARファイル名を「lucene-analyzers-kuromoji-ipadic-neologd-[Lucene Version]-[mecab-ipadic-neologd date]-SNAPSHOT.jar」とするため、Lucene Kuromojiのbuild.xmlを編集
- 作成したmecab-ipadic-neologdの辞書CSVから、Lucene Kuromojiの作成
- カレントディレクトリに作成したLucene KuromojiのJARファイルをコピー
結果、最後にこのようなディレクトリ構成となるわけで。
$ ls -l1 合計 39992 -rwxrwxr-x 1 xxxxx xxxxx 3298 3月 20 00:47 build-lucene-kuromoji-with-mecab-ipadic-neologd.sh -rw-rw-r-- 1 xxxxx xxxxx 27315558 3月 20 00:50 lucene-analyzers-kuromoji-ipadic-neologd-5.0.0-20150316-SNAPSHOT.jar drwxrwxr-x 6 xxxxx xxxxx 4096 3月 20 00:48 lucene-solr drwxrwxr-x 8 xxxxx xxxxx 4096 3月 20 00:31 mecab drwxr-xr-x 8 xxxxx xxxxx 4096 3月 20 00:47 mecab-0.996 -rw-rw-r-- 1 xxxxx xxxxx 1398663 2月 18 2013 mecab-0.996.tar.gz drwxrwxr-x 2 xxxxx xxxxx 4096 3月 20 00:47 mecab-ipadic-2.7.0-20070801 -rw-rw-r-- 1 xxxxx xxxxx 12208105 10月 16 2011 mecab-ipadic-2.7.0-20070801.tar.gz drwxrwxr-x 8 xxxxx xxxxx 4096 3月 20 00:47 mecab-ipadic-neologd
Lucene、もしくはmecab-ipadic-neologdのバージョンが変わったらうまく動かなくなるかもしれませんが…。
変えそうな値は、スクリプトの先頭の方にあるので適当に変更すればよいと思います。
WORK_DIR=`pwd` ########## Variables ########## ## MeCab MECAB_VERSION=mecab-0.996 MECAB_INSTALL_DIR=${WORK_DIR}/mecab ## MeCab IPA Dictionary MECAB_IPA_DICTIONARY_VERSION=mecab-ipadic-2.7.0-20070801 DEFAULT_CHARSET=utf-8 ## mecab-ipadic-NEologd MAX_BASEFORM_LENGTH=15 ## Lucene LUCENE_VERSION_TAG=lucene_solr_5_0_0