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

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

More than 1 year has passed since last update.

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
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした