31
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-19

#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
31
36
0

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
  3. You can use dark theme
What you can do with signing up
31
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?