search
LoginSignup
36

More than 3 years have passed since last update.

posted at

updated at

Google Colaboratory で、NEologd 辞書 で、MeCab を 使う(Python)

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

設定ファイルを変更する

  1. sedコマンドを使て、ファイルを変更、ファイル名を「mecabrc.new」として保存する。
  2. 「mecabrc.new」の中身を確認
  3. 「mecabrc」のバックアップの保存(mecabrc.orgとする)
  4. 「mecabrc.new」を「mecabrc」に上書き
  5. 「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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
36