skip to content
barorin&?

Ubuntu18.04環境でMecab+NEologdをPythonから使うための準備

/ 3 min read

はじめに

Ubuntu18.04環境でMecab+NEologdをPythonから使うため準備方法をまとめます。

方法

Mecab のインストール

$ sudo apt install mecab libmecab-dev mecab-ipadic-utf8

mecab-python3 のインストール

$ pip install mecab-python3

NEologd のインストール

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n

"""
[install-mecab-ipadic-NEologd] : Do you want to install mecab-ipadic-NEologd? Type yes or no.
⇛ この質問には'Yes'
"""

MeCab-ipadic-NEologd のインストール先を確認

$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"

私の環境では、/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologdにインストールされていたので、/usr/local/lib/mecab/dic/配下になるように、 シンボリックリンクを張っておきます。

$ sudo mkdir -p /usr/local/lib/mecab/dic
$ sudo chmod -R 777 /usr/local/lib/mecab
$ ln -s /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd /usr/local/lib/mecab/dic/mecab-ipadic-neologd

エラー対応

エラー内容

テストスクリプトを書いて実行してみると、

import MeCab

mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
text = 'ペンギンと猫は友達です。'
print(mecab.parse(text))

以下のエラーが出てしまいました。

Failed initializing MeCab. Please see the README for possible solutions:

    https://github.com/SamuraiT/mecab-python3#common-issues

If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:

    https://github.com/SamuraiT/mecab-python3/issues

issueを英語で書く必要はありません。

---------------------------- ERROR DETAILS ----------------------------
arguments: -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
-----------------------------------------------------------------------
Traceback (most recent call last):
  File "mecab.py", line 3, in <module>
    mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
  File "/home/vagrant/projects/venv\_mecab/lib/python3.7/site-packages/MeCab/\_\_init\_\_.py", line 124, in __init__
    super(Tagger, self).__init__(args)
RuntimeError

解決方法

環境変数を正しく設定し直します。

# mecabのインストール先を確認する
$ sudo find / -iname mecabrc
 /etc/mecabrc

# 確認したインストール先をbash\_profileに書き込む
$  sudo vim  ~/.bash_profile
 export MECABRC='/etc/mecabrc' を追記する

# 書き込んだ設定を反映する
$ source ~/.bash_profile

これでうまく実行できました。

$ python mecab.py
ペンギン        名詞,一般,*,*,*,*,ペンギン,ペンギン,ペンギン
      助詞,並立助詞,*,*,*,*,と,ト,ト
      名詞,一般,*,*,*,*,猫,ネコ,ネコ
      助詞,係助詞,*,*,*,*,は,ハ,ワ
友達    名詞,一般,*,*,*,*,友達,トモダチ,トモダチ
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
      記号,句点,*,*,*,*,。,。,。
EOS

参考

https://engineeeer.com/mecab-neologd-python/ https://neos21.net/blog/2020/04/05-01.html https://bokunoitnisshi.hatenablog.com/entry/2020/08/01/165215