[mecab-users 156] ユーザ辞書利用におけるエラーについて

Back to archive index

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)

ソースをあまり見ていないのと、形態素解析エンジンの仕組み
をちゃんと理解してないのとで、
深く追えていないですが、この辺が怪しいなどの予想があるの
でしたら、共有していただければ、
デバッグをお手伝いできるかもしれません。

よろしくお願いします。

山田浩之



mecab-users メーリングリストの案内
Back to archive index