myamto
@myamto (Masato Myamto)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

MeCabとCaboChaを一緒に使うことができない

困っていること

pythonでMeCabとCaboChaを同時に使おうとした時の話です.どちらも単体でなら動作するにも関わらず,一緒に使用するとエラーを吐いてしまいます.対処法のわかる方がいらっしゃれば教えていただけると幸いです.

【問題のコード】

import MeCab
tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic/ComeJisyoUtf8-2.dic')
import CaboCha
parser = CaboCha.Parser()

【エラー文】

Segmentation fault: 11

やったこと

【Segmentation fault: 11】というエラーについて,調べたところpythonでcabochaを使用した際に同じエラーを吐いてしまった事例を見つけました.この事例ではcabochaを再インストールすることで解決したみたいですが,今回の場合はcabocha単体では正常に動くため,再インストールはまだ試していない状況です.

MeCab単体での動作確認

text = '正気かどうかは統計上の問題ではない'

import MeCab
tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic/ComeJisyoUtf8-2.dic')

print(tagger.parse(text))

出力

正気  名詞,形容動詞語幹,*,*,*,*,正気,ショウキ,ショーキ
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ
どう  副詞,助詞類接続,*,*,*,*,どう,ドウ,ドー
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
統計  名詞,サ変接続,*,*,*,*,統計,トウケイ,トウケイ,◆::助栄教:3::121330
上 名詞,接尾,副詞可能,*,*,*,上,ジョウ,ジョー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
問題  名詞,ナイ形容詞語幹,*,*,*,*,問題,モンダイ,モンダイ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
ない  形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ
EOS

CaboCha単体での動作確認

text = '正気かどうかは統計上の問題ではない'

import CaboCha
parser = CaboCha.Parser()
tree = parser.parse(text)
chunkId = 0
for i in range(0, tree.size()):
    token = tree.token(i)
    if token.chunk != None:
        print(chunkId, token.chunk.link, token.chunk.head_pos,
            token.chunk.func_pos, token.chunk.score)
        chunkId += 1

    print(token.surface, token.feature, token.ne)

出力

0 2 2 4 -1.7443748712539673
正気 名詞,形容動詞語幹,*,*,*,*,正気,ショウキ,ショーキ None
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ None
どう 副詞,助詞類接続,*,*,*,*,どう,ドウ,ドー None
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ None
は 助詞,係助詞,*,*,*,*,は,ハ,ワ None
1 2 1 2 -1.7443748712539673
統計 名詞,サ変接続,*,*,*,*,統計,トウケイ,トウケイ,◆::助栄教:3::121330 None
上 名詞,接尾,副詞可能,*,*,*,上,ジョウ,ジョー None
の 助詞,連体化,*,*,*,*,の,ノ,ノ None
2 -1 3 3 0.0
問題 名詞,ナイ形容詞語幹,*,*,*,*,問題,モンダイ,モンダイ None
で 助詞,格助詞,一般,*,*,*,で,デ,デ None
は 助詞,係助詞,*,*,*,*,は,ハ,ワ None
ない 形容詞,自立,*,*,形容詞・アウオ段,基本形,ない,ナイ,ナイ None
0

1Answer

MeCabをunloadしてCaboChaを実行するのはいかがでしょうか

import sys

import MeCab
tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic/ComeJisyoUtf8-2.dic')

del sys.modules['MeCab']

import CaboCha
parser = CaboCha.Parser()
0Like

Comments

  1. @myamto

    Questioner

    @tukiyo3
    delを使用してMeCabモジュールやtaggerクラスを削除してみましたが,やはり[Segmentation fault: 11]が返ってきました.
    CaboCha内部でもMeCabの形態素解析結果を受け取っているみたいなのでその辺が関係しているのでしょうか….

Your answer might help someone💌