Help us understand the problem. What is going on with this article?

mecab ipadic-NEologd を Google Colaboratory で使う

これはなに?

形態素解析のデファクトスタンダードであるMeCabと、その追加辞書mecab-ipadic-NEologdをGoogle Colaboratoryで動かすためのコードです。

8割方自分用の備忘録です。

MeCabのインストール

!apt install aptitude swig
!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
!pip install mecab-python3

mecab-ipadic-NEologdのインストール

!git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
!echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -a

2つ合わせて実行すれば、形態素解析の環境構築は終了です。インストール完了まで2~3分程度かかります。

pythonからの呼び出し

MeCab.Tagger() を呼び出す際に、引数にmecab-ipadic-NEologdのパスを指定する必要があります。辞書のパスはecho `mecab-config --dicdir`"/mecab-ipadic-neologd"で取得できます。

mecab.py
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))

これで呼び出し完了です。あとは使うだけ。

mecab.py
print(m.parse("彼女はペンパイナッポーアッポーペンと恋ダンスを踊った。"))
#>>
#彼女 名詞,代名詞,一般,*,*,*,彼女,カノジョ,カノジョ
#は    助詞,係助詞,*,*,*,*,は,ハ,ワ
#ペンパイナッポーアッポーペン 名詞,固有名詞,一般,*,*,*,Pen-Pineapple-Apple-Pen,ペンパイナッポーアッポーペン,ペンパイナッポーアッポーペン
#と    助詞,並立助詞,*,*,*,*,と,ト,ト
#恋ダンス   名詞,固有名詞,一般,*,*,*,恋ダンス,コイダンス,コイダンス
#を    助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
#踊っ 動詞,自立,*,*,五段・ラ行,連用タ接続,踊る,オドッ,オドッ
#た    助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
#。    記号,句点,*,*,*,*,。,。,。
#EOS

お疲れさまでした。

参考文献

https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md
https://qiita.com/inatatsu_csg/items/40b11701d256a84a0510
https://engineering.linecorp.com/ja/blog/mecab-ipadic-neologd-new-words-and-expressions/

Fulltea
( ; ; ) ← 無限ループに泣かされている人の顔文字です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away