モデルファイルロード時のMeCabプラグイン辞書指定の挙動

79 views
Skip to first unread message

Takumi Nakanishi

unread,
Apr 18, 2017, 2:54:59 PM4/18/17
to Jubatus
中西と申します。

MeCabプラグインを使用し、-d オプションで辞書のパスを指定したいとします。
このとき、別の環境(Jubatusのバージョンは同じ)で学習し保存したモデルファイルを指定して以下のように起動しました。

jubaclassifier -f setting.json -m model.jubatus

すると、モデルファイルの設定を使用するむね表示され、モデルファイルを学習した環境のMeCab辞書をロードしに行って
異常終了するようです。(この環境ではmecab-ipadic-neologdは/usr/lib64/以下にインストールしています)
INFO  [server_helper.hpp:85] both model file and configuration are specified; using configuration from model file
INFO  [server_base.cpp:60] starting load from /home/foo/jubatus/model.jubatus
FATAL [server_util.hpp:161] exception in main thread: jubatus::core::fv_converter::converter_exception: cannot make mecab tagger: param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/mecab-ipadic-neologd/dicrc

これは避けられない挙動なのでしょうか?
設定ファイルの設定を優先するようにはできないのでしょうか?


Ryohei IMAMASU

unread,
Apr 19, 2017, 3:06:14 AM4/19/17
to Jubatus
中西様

Jubatus コミュニティの今増です。

起動時に -f <設定ファイル> と -m <モデルファイル> を指定した場合、モデルファイル内に保存されている設定が優先される動作となり、設定ファイルの内容を優先するようなオプションは提供していません。

これは、モデル内に保存される情報が設定ファイルの特徴量抽出設定、アルゴリズムの設定に依存するためで、異なる設定で学習したモデルをロードした時の動作(Classifier で言えば、分類結果や追加学習時の挙動)を保証できないためです。
# 中西様のケース(Mecabの辞書のパスだけが異なる)のであれば、学習済みのモデル内の情報には差異はないので、分類結果や追加学習には影響ないと考えます。

設定ファイルを書き換えた際の動作を保証するわけではないですが、1.0.3 で、save されたモデル内に埋まっている設定ファイルを書き換えるツールをリリースする予定です。(1.0.3 のリリースは、来週月曜日 4/24 を予定しています)

1.0.3 のリリースをお待ちいただくか、上記のパッチがマージされている jubakit の develop ブランチ(開発中のブランチ)をお使いいただければと思います。

2017年4月19日水曜日 3時54分59秒 UTC+9 Takumi Nakanishi:

Ryohei IMAMASU

unread,
Apr 19, 2017, 3:09:16 AM4/19/17
to Jubatus
訂正します:

2017年4月19日水曜日 16時06分14秒 UTC+9 Ryohei IMAMASU:

1.0.3 のリリースをお待ちいただくか、上記のパッチがマージされている jubakit の develop ブランチ(開発中のブランチ)をお使いいただければと思います。

jubakit の次のバージョンは 0.4.3 でした。
Jubatus 1.0.3 と同じタイミングでリリースする予定です。

Takumi Nakanishi

unread,
Apr 20, 2017, 12:57:34 AM4/20/17
to Jubatus
今増様

ご回答ありがとうございます。了解しました。
新しいjubakitで対応します。



2017年4月19日水曜日 3時54分59秒 UTC+9 Takumi Nakanishi:
中西と申します。
Reply all
Reply to author
Forward
0 new messages