TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

64bitのWindowsにMeCabをインストールする

MeCabの公式のサイトではWindows用は32bitのインストーラしか提供されていないため、64bitのWindowsで64bitのPythonから使おうとすると使用できない。

64bit向けには、32bitのインストーラでインストールした後、個別にビルドしたファイルで実行ファイルとライブラリを置き換える必要がある。
http://qiita.com/ksomemo/items/02e98bf1dbd4107a8d13qiita.com
こちらのサイトに書かれていた方法で、ビルドして、Python3から使用することができた。

ただし、環境変数MECABRCがないと、pythonコマンドからMeCabを使用したスクリプトを実行すると、

Traceback (most recent call last):
  File "a.py", line 3, in <module>
    mecab = MeCab.Tagger("-Owakati")
  File "h:\src\mecab-python3\MeCab.py", line 307, in __init__
    this = _MeCab.new_Tagger(*args)
RuntimeError

というエラーが出力される。

その場合、環境変数MECABRCに、

<インストールパス>\etc\mecabrc

を設定すればよい。

また、環境変数PATHに<インストールパス>\binを追加する。

mecab-ipadic-NEologdを使う

mecab-ipadic-NEologdを使うには、まずBash on Windowsmecab-ipadic-NEologdをインストールする。
github.com
公式に書かれている手順通りでインストールできる。
その際、git cloneするディレクトリは、Windowsから見えるパスにする。(/mnt/ドライブ名/~)

Bash on Windowsにインストールした際に、git cloneしたディレクトリ配下に
「build\mecab-ipadic-2.7.0-20070801-neologd-20170420」
というディレクトリができる。
このディレクトリを辞書として指定すれば、Windows側のMeCabでも使用できる。
ただし、辞書の文字コードは「UTF-8」となる。
Python3から使う分には問題ない。

import MeCab

mecab = MeCab.Tagger(r"-Owakati -d H:\src\mecab-ipadic-neologd\build\mecab-ipadic-2.7.0-20070801-neologd-20170420")

print(mecab.parse("私はペンを持っています。"))

このように「-d」オプションに辞書のパスを指定する。