File Icons
BLOG
MacでMeCabのPython開発環境を構築する

この記事では、MacにMeCabをインストールして、PythonでMeCabを使用できるような環境を整えます。

目次

  1. MeCabとは
  2. MeCabのインストールと確認
  3. Pythonパッケージのインストールと確認
  4. Python実行時にエラーが発生したときの対応
  5. 参考

1. MeCabとは

MeCabは、日本語の文章に対する形態素解析を行うオープンソースのライブラリです。高速で、高精度な形態素解析が可能であり、商用利用も可能なライセンスで提供されています。

2. MeCabのインストールと確認

MeCabのインストール

まず、MeCabをインストールします。

■zsh

brew install mecab

IPA辞書をインストール

次に、MeCabが使用する形態素解析のための辞書をインストールします。ここでは、IPA辞書を使用します。

■zsh

brew install mecab-ipadic

インストールの確認

インストールができたかを確認するため、ターミナルで以下のように入力します。

■zsh

mecab

インストールに成功していれば、標準入力から文章が入力できるようになります。以下のように試しに文章を入れてみると、形態素解析が実行されることがわかります。

■zsh

MeCabのインストールに成功しました。
MeCab	名詞,固有名詞,組織,*,*,*,*
の	助詞,連体化,*,*,*,*,の,ノ,ノ
インストール	名詞,一般,*,*,*,*,インストール,インストール,インストール
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
成功	名詞,サ変接続,*,*,*,*,成功,セイコウ,セイコー
し	動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
まし	助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。	記号,句点,*,*,*,*,。,。,。
EOS

拡張辞書をインストール

mecab-ipadic-NEologdをインストールします。mecab-ipadic-NEologdは、MeCabのための拡張辞書であり、新語や固有名詞、スラングなどの多くの単語が追加されています。

動作に必要なライブラリをインストール

必要なライブラリは以下です。

  • mecab
  • mecab-ipadic
  • git
  • curl
  • xz

xzを追加でインストールします。mecabとmecab-ipadicは先程インストール済みです。gitとcurlは通常Macにはデフォルトでインストールされているはずですが、不足したライブラリがある場合は適宜追加します。

■zsh

brew install xz

リポジトリをクローンする

辞書のもとになるデータの配布と更新は、GitHub経由で行います。初回は以下のコマンドでcloneします。

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

上記でクローンしたリポジトリに移動します。

cd mecab-ipadic-neologd

最新版の辞書をインストールする

以下のコマンドを実行して、最新版の辞書をインストールします。

■zsh

./bin/install-mecab-ipadic-neologd -n

MeCabがデフォルトで使用する辞書を変更する

MeCabがデフォルトで使用する辞書をmecab-ipadic-NEologdに変更します。
デフォルト辞書を変更するには、mecabrcファイルを編集します。

著者の環境では、/usr/local/etc/mecabrcに配置されています。デフォルトでは、ファイルの内容は以下のように記載されています。

■txt

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir =  /usr/local/lib/mecab/dic/ipadic

; 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

dicdirがデフォルト辞書を指定しています。ここをmecab-ipadic-NEologdに書き換えて保存します。

■txt

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
; dicdir = /usr/local/lib/mecab/dic/ipadic
dicdir = /usr/local/lib/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

mecab-ipadic-neologdが使えていることを確認する

「ポケモンGO」という新語が認識されていることがわかります。

■zsh

❯ mecab
ポケモンGOは面白い
ポケモンGO	名詞,固有名詞,一般,*,*,*,ポケモンGO,ポケモンゴー,ポケモンゴー
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
面白い	形容詞,自立,*,*,形容詞・アウオ段,基本形,面白い,オモシロイ,オモシロイ

3. PythonからMeCabを使えるようにする

Pythonパッケージのインストール

PythonからMeCabを使用するために、mecab-python3パッケージをインストールします。

■zsh

pip install mecab-python3

環境変数を設定する

PythonからMeCabを使用するためには、環境変数の設定が必要です。zshを使用している場合は、~/.zshrcにパスを設定します。

export MECABRC=/usr/local/etc/mecabrc

実行してみる

以下のように表示されれば、正しく使えている。

■python

import MeCab

mecab = MeCab.Tagger('-Owakati')
print(mecab.parse('ポケモンGOが面白い'))
ポケモンGO が 面白い

4. Python実行時にエラーが発生したときの対応

発生した事象

筆者の環境では、pythonで以下のコマンドを実行したところエラーが発生した。mecabrcが見つからないというエラーが発生した。

■python

import MeCab

mecab = MeCab.Tagger('-Owakati')
print(mecab.parse('ポケモンGOが面白い'))
[ifs] no such file or directory: /Users/.../lib/python3.10/site-packages/unidic/dicdir/mecabrc

原因

原因を確認したところ、mecab-python3のバージョンが新しいことが原因であった。今回インストールしたのは、mecab-python3-1.0.6であった。

ver1.0以上のmecab-python3では、デフォルト辞書がunidicになっており、unidicを使用しない場合、上記のエラーが発生するようである。

対応策

Mecab.Tagger作成時に、以下のようにmecabrcと辞書のパスを指定すれば良い。

■python

import MeCab

mecab = MeCab.Tagger('-r /usr/local/etc/mecabrc -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd -Owakati')
print(mecab.parse('ポケモンGOが面白い'))
ポケモンGO が 面白い 

5. 参考

CONTACT
ご依頼やご相談、サービスについてのご質問やご要望がございましたら、お気軽にお問い合わせください。
送付いただいた内容を確認の上、担当者からご連絡させていただきます。
お問い合わせ