#Google Colaboratory で、NEologd 辞書 で、MeCab を 使う(Python)
以下の環境でやりました。
- GoogleColaboratory
- Python3のノートブック
- GPUのやつ
##MeCabのインストール
###MeCabをインストールする
参考にした記事
MeCabをインストールします。
!apt-get -q -y install sudo file mecab libmecab-dev mecab-ipadic-utf8 git curl python-mecab
mecabをコマンドラインから実行してみます。
%%bash
mecab
メカブって神ってる
メカブ 名詞,固有名詞,組織,*,*,*,*
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
神 名詞,一般,*,*,*,*,神,カミ,カミ
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
る 助動詞,*,*,*,文語・ル,基本形,る,ル,ル
EOS
「神ってる」が、「神」「って」「る」とわかれてしまします。
なので、新語に対応した辞書「mecab-ipadic-NEologd」を使うようにします。
###mecab-ipadic-NEologdをダウンロード
mecab-ipadic-NEologdについて
参考にした記事
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
###辞書が新しくなったか確認する1
mecabをコマンドラインから実行してみます。
%%bash
mecab
メカブって神ってる
メカブ 名詞,固有名詞,組織,*,*,*,*
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
神 名詞,一般,*,*,*,*,神,カミ,カミ
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
る 助動詞,*,*,*,文語・ル,基本形,る,ル,ル
EOS
前回と変わらないようなので、辞書は新しくなっていません。
設定ファイル?「mecabrc」を変更し、新しい辞書のパスを見るようにする必要があるようです。
###設定ファイルを変更する
「/etc/mecabrc」ファイルの「dicdir = /var/lib/mecab/dic/debian」を、
「mecab-ipadic-NEologd」の辞書のパス「/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd」に変更します。
####/etc/mecabrcの中身を確認する
catコマンドを使って、ファイルの中身を確認します。
!cat /etc/mecabrc
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir = /var/lib/mecab/dic/debian
; userdic = /home/foo/bar/user.dic
; output-format-type = wakati
; input-buffer-size = 8192
; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n
####設定ファイルを変更する
- sedコマンドを使て、ファイルを変更、ファイル名を「mecabrc.new」として保存する。
- 「mecabrc.new」の中身を確認
- 「mecabrc」のバックアップの保存(mecabrc.orgとする)
- 「mecabrc.new」を「mecabrc」に上書き
- 「mecabrc」の中身を確認
ファイルの「dicdir = /var/lib/mecab/dic/debian」を、「mecab-ipadic-NEologd」の辞書のパス「/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd」に変更します。
!sed -e "s!/var/lib/mecab/dic/debian!/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd!g" /etc/mecabrc > /etc/mecabrc.new
変わったか確認します。
!cat /etc/mecabrc.new
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
; userdic = /home/foo/bar/user.dic
; output-format-type = wakati
; input-buffer-size = 8192
; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n
変更出来ているので、「/etc/mecabrc.new」を「/etc/mecabrc」にします。
!cp /etc/mecabrc /etc/mecabrc.org
!cp /etc/mecabrc.new /etc/mecabrc
確認します。
!cat /etc/mecabrc
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
; userdic = /home/foo/bar/user.dic
; output-format-type = wakati
; input-buffer-size = 8192
; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n
###辞書が新しくなったか確認する2
%%bash
mecab
メカブって神ってる
メカブ 名詞,固有名詞,一般,*,*,*,MeCab,メカブ,メカブ
って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
神ってる 名詞,固有名詞,一般,*,*,*,神ってる,カミッテル,カミッテル
EOS
##PYTHONで実行
mecab-python3
をインストールする前に、swig
を入れます。
インストールしないと、mecab-python3
をインストール時に失敗します。
!apt-get -q -y install swig
mecab-python3
をインストールします。
!pip install mecab-python3
Collecting mecab-python3
[?25l Downloading https://files.pythonhosted.org/packages/25/e9/bbf5fc790a2bedd96fbaf47a84afa060bfb0b3e0217e5f64b32bd4bbad69/mecab-python3-0.7.tar.gz (41kB)
[K 100% |████████████████████████████████| 51kB 4.3MB/s
[?25hBuilding wheels for collected packages: mecab-python3
Running setup.py bdist_wheel for mecab-python3 ... [?25l- \ | / - done
[?25h Stored in directory: /content/.cache/pip/wheels/4c/07/3a/5f22ccc9f381f3bc01fa023202061cd1e0e9af855292f005dd
Successfully built mecab-python3
Installing collected packages: mecab-python3
Successfully installed mecab-python3-0.7
Pythonで、MeCabを使います。
import MeCab
mecab = MeCab.Tagger('-Ochasen')
res = mecab.parse('メカブって神ってる')
print(res)
メカブ メカブ MeCab 名詞-固有名詞-一般
って ッテ って 助詞-格助詞-連語
神ってる カミッテル 神ってる 名詞-固有名詞-一般
EOS