NLP準備運動 : 分かち書き環境の構築 Mecab , Juman++ver2


この記事では、windows10 64bit環境でNLPを行うための環境構築について記載します。

NLPの入力用データを準備として、まずは分かち書きを行う環境を構築します。
分かち書きの微妙な違いによりNLPの結果が異なっているかどうかを比較可能にするために、ソフトウェアは、MeCabとJuman++ version2の2つを用いることにしました。

1. 前提となる環境

Windows10 64bit
Anaconda (Python3.6)
文字コードは「UTF-8」を用います。

※Juman++ Version.2の使用のためには「Visual Studio2017」と「cmake」が必要になります。(後述)

2. MeCab環境の構築

Windows10(64bit)でMeCab-Pythonを使えるようにするシンプルな方法(2018/6)
にまとめられています。
少しだけ私の場合と違ったので、念のため、以下に記載しました。

2.1. ファイルの用意

Mecab(64bit版)をダウンロードしインストールします。
インストール時の文字コードの選択は「utf-8」を使用します。

perl/ruby/python/java バインディング リンク先のダウンロード(Google Drive)からmecab-python-0.996.tar.gzをダウンロードします。

2.2. Pathの設定

  1. PCのプロパティを開き、「システムの詳細設定」をクリックします。
  2. 開いたWindowの一番下にある「環境設定(N)」をクリックします。
  3. 変数Pathを選択し、「編集(E)」をクリックして、開いたWindowの「新規(N)」をクリックし、「C:\Program Files\MeCab\bin」を追加して、OKします。 (注意:MeCabのインストール先が異なる場合は、適宜修正してください。)
  4. ユーザの環境変数の画面から「新規(N)」をクリックします。
  5. 「変数名:MECABRC」、「値:C:\Program Files\MeCab\etc\mecabrc」としてOKをクリックします。

2.3. pythonバインディングのインストール

  1. AnacondaでPython3.6の環境(NLPという名前にしました)を構築します。
  2. AnacondaからTerminalを開き、mecab-python-0.996.tar.gzを解凍します。
  3. mecab-python-0.996フォルダ内にあるsetup.pyを下記の内容で上書きします。
  4. Terminalからのmecab-python-0.996フォルダで「python setup.py build」を実行します
  5. 正常にbuildが完了したら、「python setup.py install」でインストールします。
  6. Pythonを立ち上げ「import MeCab」が実行できることを確認します。
setup.py
#!/usr/bin/env python

from distutils.core import setup, Extension

setup(name = "mecab-python",
    version = '0.996',
    py_modules=["MeCab"],
    ext_modules = [
        Extension("_MeCab",
            ["MeCab_wrap.cxx",],
            include_dirs=[r'C:\Program Files\MeCab\sdk'],
            library_dirs=[r'C:\Program Files\MeCab\sdk'],
            libraries=['libmecab'])
            ])

3. Juman++ Version.2の環境構築

Juman++のVersion.2は開発中でありインストールスクリプトも2019年3月時点では未整備な状況です。
以下の内容は、あくまで2019年3月時点のものであることを前提としてください。
最新の情報はGitHubのリポジトリを参考にしてください。

3.1. ソフトウェアの準備

  1. Cmakeをインストールします。
  2. Visual Studio 2017 Communityをインストールします。いろいろオプションが出てきますが「C++によるデスクトップ開発環境」にチェックが入っていることを確認してください。 ##3.2. ファイルの用意
  3. Juman++ Ver.2をダウンロードします。

3.3. ビルド

  1. AnacondaからTerminalを開き、ダウンロードしたファイルを解凍します。
  2. 解凍したフォルダ(jumanpp-2.0.0-rc2)の中に移動し、以下のコマンドを実行してファイルをビルドします。
> mkdir build-dir
> cd build-dir
> cmake -G "Visual Studio 15 2017 Win64" ..
> cmake --build . --config Release
> ctest -C Release --output-on-failure

3.4. インストール

現在のJuman++ version.2の設定ファイルは、半角スペースを取り扱うことができません
インストール先は、「C:\jumanpp」などパスに半角スペースが含まれないフォルダにしてください。
1. インストール先にファイルをコピー
- jumanpp-2.0.0-rc2\build-dir\src\jumandic\Release\jumanpp_v2.exe を C:\jumanppにコピーします。
- jumanpp-2.0.0-rc2\model\jumandic.jppmdl と jumandic.conf.inを C:\jumanpp\libexec\jumanppにコピーします。
2.設定ファイルの用意
C:\jumanpp\libexec\jumanpp\jumandic.conf.inをjumandic.confにリネームし、以下の内容を記載します。

jumandic.conf
--model=C:/jumanpp/libexec/jumanpp/jumandic.jppmdl
--rnn-nce-bias=5.62844432562
--rnn-unk-constant=-3.4748115191
--rnn-unk-length=-2.92994951022
--feature-weight-perceptron=1
--feature-weight-rnn=0.0176

3.5. Pathの設定

  1. PCのプロパティを開き、「システムの詳細設定」をクリックします。
  2. 開いたWindowの一番下にある「環境設定(N)」をクリックします。
  3. 変数Pathを選択し、「編集(E)」をクリックして、開いたWindowの「新規(N)」をクリックし、「C:\jumanpp」を追加して、OKします。 (注意:Juman++ Version.2のインストール先が異なる場合は、適宜修正してください。)

4. 動作確認

最後にTerminalからの動作確認をしておきます。
これはあくまで動作確認です。プログラムの性能の良し悪しは評価していません。

3.1. 入力ファイルの準備

適当な内容のテキストファイルを用意します。ここでは、以下のようにします。文字コードをUTF-8にすることを忘れないでください。

sample.txt
きしゃのきしゃがきしゃできしゃした。

3.2. コマンドラインでの実行

下記のコマンドを実行し、出力されたファイルが半角で区切られていれば動作確認完了です。

3.2.1. Mecab

> mecab sample.txt  -Owakati -o mecab_sample.txt

3.2.2. Juman++ version.2

> jumanpp_v2.exe -c C:\jumanpp\libexec\jumanpp\jumandic.conf sample.txt --segment -o jumanpp_v2_sample.txt