動機
形態素解析ツールである mecab-ipadic-neologd を Google Colabratory 上で使うときに,リロードするたびに毎回git clone
してなんやらかんやら...の手続きがしんどい...
そこで「辞書情報の更新はしない」という犠牲のもとで,Google Driveに辞書を突っ込んでそこから毎回インポートすることにしました
1. GoogleColabの仮想環境上にMeCab+NEologdをインストール
この記事を参考にmecab-ipadic-neologdがGoogle Colab上で使えるようにします.
Driveの構成ですが,MyDrive/Colab Notebooks/Demo
内に「demo.ipynb」を展開することを仮定します.
demo.ipynb
! apt-get -q -y install sudo file mecab libmecab-dev mecab-ipadic-utf8 git curl python-mecab > /dev/null
! git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /dev/null
! echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n > /dev/null 2>&1
! pip install mecab-python3 > /dev/null
2. 仮想環境上でインストールした辞書データをDrive上に移す
辞書データはMyDrive/Colab Notebooks/Demo/pylibs
から参照させるようにします.
- ドライブをマウント
demo.ipynb
from google.colab import drive
drive.mount('/content/drive', force_remount = True)
- 辞書のパスを確認
demo.ipynb
! echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
# /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
- 確認した位置にある辞書データをコピー
demo.ipynb
# 「Colab Notebooks」の間にある空白は\ (backslash)でエスケープ
! cp -r /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd /content/drive/MyDrive/Colab\ Notebooks/Demo/pylibs
# /etc/mecabrcが辞書データ参照時に必要なのでetcフォルダごとコピー↓
! cp -r /etc /content/drive/MyDrive/Colab\ Notebooks/Demo/pylibs/etc
3. 環境変数に辞書データ読み込み先パスを設定して,MeCab+NEologdを使う
- 環境変数設定
demo.ipynb
# こちらは空白はそのままでok
import os
os.environ["MECABRC"] = '/content/drive/MyDrive/Colab Notebooks/Demo/pylibs/etc/mecabrc'
- MeCab+NEologdによる形態素解析
demo.ipynb
import MeCab
# Taggerに渡す文字列中の空白は\ (backslash)でエスケープ
path2dic = "/content/drive/MyDrive/Colab\ Notebooks/Demo/pylibs/mecab-ipadic-neologd"
m = MeCab.Tagger("-d {0}".format(path2dic))
print(m.parse("c++はc言語から派生したプログラミング言語だよ"))
- 出力
c++ 名詞,固有名詞,一般,*,*,*,C++,シープラスプラス,シープラスプラス
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
c言語 名詞,固有名詞,一般,*,*,*,C言語,シーゲンゴ,シーゲンゴ
から 助詞,格助詞,一般,*,*,*,から,カラ,カラ
派生 名詞,サ変接続,*,*,*,*,派生,ハセイ,ハセイ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
プログラミング言語 名詞,固有名詞,一般,*,*,*,プログラミング言語,プログラミングゲンゴ,プログラミングゲンゴ
だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
。 記号,句点,*,*,*,*,。,。,。
初回以降のインポート方法
上記1~3のセットアップが済んだら,それ以降は同一ディレクトリ(MyDrive/Colab Notebooks/Demo/
)内に別の Google Colabファイルを開き,ステップ3を実行すると辞書データの再インストールなく使えます.
(※! pip install mecab-python3
は必要です.それも省略したい場合は下記リンク参照)
import os
import MeCab
from google.colab import drive
# 1.ドライブマウント
drive.mount('/content/drive', force_remount = True)
# 2. 環境変数設定
os.environ["MECABRC"] = '/content/drive/MyDrive/Colab Notebooks/Demo/pylibs/etc/mecabrc'
# 3. 辞書参照先設定
path2dic = "/content/drive/MyDrive/Colab\ Notebooks/Demo/pylibs/mecab-ipadic-neologd"
m = MeCab.Tagger("-d {0}".format(path2dic))