fugashi
fugashi copied to clipboard
-Odumpとnbestを併用した場合に時々クラッシュする
初めまして、いつも便利に使わせていただいております。
Linux 環境 (Ubuntu 22.04) で、以下のようなコードを実行した場合にクラッシュすることがあるようです。
tagger = GenericTagger("-Odump")
tagger.nbest("煮こみつけ麺のセット", num=300)
発生条件はかなり不明瞭ですが、
- 特定の文字列が含まれると起こりやすい
- num が大きいと起こりやすい
- 毎回発生するわけではなく、複数回実行しないと発生しないこともある
ように思われます。
ひとまず、以下の Colab Notebook を上から順に実行すると再現するようです。 https://colab.research.google.com/drive/1qAHYMH2al9KTr3dzcqCbKCZzv2t3ZgGA
よろしくお願いいたします。
返事が遅くなりすみません。細かいご報告と再現方法の情報、ありがとうございます。
こちらでは下記のコードで再現できます。
from fugashi import GenericTagger
for ii in range(0, 100):
print(ii)
tagger = GenericTagger("-Odump")
tagger.nbest("煮こみつけ麺のセット", num=50)
num=300やnum=100では単に segmentation error となりますが、50だと以下のようなエラーが出ます。
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
中止 (コアダンプ)
まだ詳しく調べたわけではありませんが、おそらくMeCab内部のメモリー管理の問題かと思います。 -Odump以外で再現できませんでした。
後でまた調べてみますが、解決が難しいかもしれません。