yamada hiroyuki
yamahiroyu_y****@yahoo*****
2006年 8月 10日 (木) 23:24:21 JST
山田と申します。 いつもmecabを使わせてもらっております。 現在、0.93を使っているのですが、ユーザー辞書を使って、形 態素解析をすると プログラムエラーになります。 (example 以下のテストプログラムを使いました。) 現象としては、 % ./example % Exception:tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(par ... という感じです。ソースを少し見た感じだと、tokenizer.cpp の 130行目の CHECK_CLOSE_FALSE(sysdic->isCompatible(*d)) << "incompatible dictionary: " << _dic[i]; で、compatibleでないと判定されてエラーとなっているようで す。 (http://lists.sourceforge.jp/mailman/archives/mecab-users/2006-April/000079.html と同じような感じですが、 typeは比較してないので、他の項目でcompatibleでないと判定 されてるということですね。) 下は、比較してる項目で何が違うのかを見るために、デバッグ コードを入れた結果です。 % ./example version = 101, d.version = 101 learn = 28261, d.learn = 0 lsize = 1316, d.lsize = 1329 rsize = 1316, d.rsize = 1329 Exception:tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(param)] tagger.cpp(143) [tokenizer_.open(par ... バージョン以外違うということですね。 ユーザ辞書としては 笑っていいとも,668,1248,10,名詞,一般,*,*,*,*,笑っていい とも,ワラッテイイトモ,ワラッテイイトモ,TV ような項目を追加していますが、どんな左文脈ID、右文脈ID を入れても、1329になるような気がします。 この問題を何か回避策はありますでしょうか? (完全な修正でなくても、とりあえずユーザ辞書を使えるとか など) 0.91のときは、C,C++のexampleからはユーザ辞書も利用できま したが、SWIGのperlラッパーからは 利用できませんでした。 (ここで述べられてるのと同じ現象です。http://lists.sourceforge.jp/mailman/archives/mecab-users/2006-July/000134.html) ソースをあまり見ていないのと、形態素解析エンジンの仕組み をちゃんと理解してないのとで、 深く追えていないですが、この辺が怪しいなどの予想があるの でしたら、共有していただければ、 デバッグをお手伝いできるかもしれません。 よろしくお願いします。 山田浩之