ハカセノオト

moon indicating dark mode
sun indicating light mode

google colab で mecab-ipadic-NEologd を使おうとしたら mecabrc がないと error が出る場合の対処法

July 19, 2020

google colab で mecab-ipadic-NEologd を試していた。

この方法については、いくつか、Qiita などに記事も出ているし簡単だろうと思っていたら、少し詰まったので記録する。

以下のように、google colab 上で mecab と neologd のインストールと動作確認を試みた。

# MeCabのインストール
!apt install mecab libmecab-dev mecab-ipadic-utf8
!pip install mecab-python3
# mecab-ipadic-NEologdのインストール
!apt install git make curl xz-utils file
!git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
!echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -a
# MeCab と neologd 辞書のテスト
import MeCab
import subprocess
cmd='echo `mecab-config --dicdir`"/mecab-ipadic-neologd"'
path = (subprocess.Popen(cmd, stdout=subprocess.PIPE,
shell=True).communicate()[0]).decode('utf-8')
m=MeCab.Tagger("-d {0}".format(path))

しかし、以下のエラーメッセージが出た。

Failed initializing MeCab. Please see the README for possible solutions:
https://github.com/SamuraiT/mecab-python3#common-issues
If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:
https://github.com/SamuraiT/mecab-python3/issues
issueを英語で書く必要はありません。
------------------- ERROR DETAILS ------------------------
arguments: -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
----------------------------------------------------------
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-2-aceacd986958> in <module>()
6 shell=True).communicate()[0]).decode('utf-8')
7
----> 8 m=MeCab.Tagger("-d {0}".format(path))
/usr/local/lib/python3.6/dist-packages/MeCab/__init__.py in __init__(self, rawargs)
122
123 try:
--> 124 super(Tagger, self).__init__(args)
125 except RuntimeError:
126 error_info(rawargs)
RuntimeError:

肝は、

error message: [ifs] no such file or directory: /usr/local/etc/mecabrc

という部分である。

どうやら colab で mecab をインストール際に、mecabrc が

/usr/local/etc/mecabrc

ではなく

/etc/mecabrc

に配置されることが原因らしい。

というわけで、シンボリックリンクを貼ることで解決した。

!ln -s /etc/mecabrc /usr/local/etc/mecabrc

動作確認を行った notebook を以下の gist に upload したので、ご自由にお使いください。

https://gist.github.com/hnishi/610bb552bf2a0a3c429f3844c5d66559

References

https://qiita.com/Fulltea/items/90f6ebe6dcceaf64eaef https://qiita.com/SUZUKI_Masaya/items/685000d569452585210c https://qiita.com/Naritoshi/items/8f55d7d5cce9ce414395


hnishi のブログ
技術系の記事など。
綺麗に書こうとすると続かない気がするので、割と雑に、備忘録的に書いていく方針。
内容に誤りがあった場合などのご連絡は、Twitter の DM などで頂けると幸いです。