[mecab-users 92] CRFパラメータ学習について

アーカイブの一覧に戻る

NOKUBI Takatsugu knok****@daion*****
2006年 4月 27日 (木) 14:53:13 JST


  野首です。

  MeCab 0.90ではCRFパラメータを自分で学習できるということで、自作の辞
書を処理させてみています。

  仕事ともかかわることなので詳細はちょっとここではかけないのですが、だ
いたい以下のような規模の辞書を処理させてみたところ、mecab-cost-trainが
途中で何もいわずに終了してしまいます。

 - *.defは全てmecab-ipadicと同じ物
 - dicrcはunk-eval-size = 1にした以外はmecab-ipadicと同じ
 - dic.csvは約23万エントリ
 - 学習用コーパスはその10倍ぐらい

  mecab-cost-train自体はperl scriptだったので、本来pipeで食わせる出力
をいったんファイルに落として、mecab-toolをgdb経由で実行してみたところ、
以下のようなバックトレースが得られました。

引数: --text-only --learn --dicdir=. --cost=1.0 --freq=1 --eta=0.0001 
--input=process.txt --model=model.txt

Program received signal SIGABRT, Aborted.
0x4025383b in raise () from /lib/tls/libc.so.6
(gdb) bt
#0  0x4025383b in raise () from /lib/tls/libc.so.6
#1  0x40254fa2 in abort () from /lib/tls/libc.so.6
#2  0x401d6f57 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.5
#3  0x401d6f94 in std::terminate () from /usr/lib/libstdc++.so.5
#4  0x401d7106 in __cxa_throw () from /usr/lib/libstdc++.so.5
#5  0x401d735f in operator new () from /usr/lib/libstdc++.so.5
#6  0x401d742f in operator new[] () from /usr/lib/libstdc++.so.5
#7  0x40064274 in MeCab::LearnerTagger::connect ()
   from /home/knok/pkg/lib/libmecab.so.1
#8  0x4006451e in MeCab::LearnerTagger::buildLattice ()
   from /home/knok/pkg/lib/libmecab.so.1
#9  0x4006320b in MeCab::EncoderLearnerTagger::read ()
   from /home/knok/pkg/lib/libmecab.so.1
#10 0x40065b3e in MeCab::Learner::run () from /home/knok/pkg/lib/libmecab.so.1
#11 0x40069ad4 in MeCab::Tool::learn () from /home/knok/pkg/lib/libmecab.so.1
#12 0x40074bc7 in MeCab::Tool::run () from /home/knok/pkg/lib/libmecab.so.1
#13 0x40068802 in mecab_tool () from /home/knok/pkg/lib/libmecab.so.1
#14 0x0804855b in main ()

  たぶんメモリが足りないということになるような気がしないでもないのです
が、どうしたらよいでしょうか。いちおう4GB積んでいて、ulimit -aは以下の
ような感じなのですけど。

-t: cpu time (seconds)         unlimited
-f: file size (blocks)         unlimited
-d: data seg size (kbytes)     unlimited
-s: stack size (kbytes)        8192
-c: core file size (blocks)    0
-m: resident set size (kbytes) unlimited
-u: processes                  unlimited
-n: file descriptors           1024
-l: locked-in-memory size (kb) unlimited
-v: address space (kb)         unlimited
-x: file locks                 unlimited

  環境はDebian GNU/Linux 3.1で、gcc 3.3.5にglibc 2.3.2でビルドしたもの
を使っています。
-- 
野首 貴嗣
E-mail: knok****@daion*****
	knok****@namaz***** / knok****@debia*****



mecab-users メーリングリストの案内
アーカイブの一覧に戻る