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） ](https://qiita.com/fu23/items/34f55f0b7aaa7e2205b8)
にまとめられています。
少しだけ私の場合と違ったので、念のため、以下に記載しました。

##2.1. ファイルの用意
[Mecab(64bit版)](https://github.com/ikegami-yukino/mecab/releases/download/v0.996.2/mecab-64-0.996.2.exe)をダウンロードしインストールします。
インストール時の文字コードの選択は「utf-8」を使用します。

[perl/ruby/python/java バインディング](http://taku910.github.io/mecab/#download) リンク先のダウンロード(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」が実行できることを確認します。

```python: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のリポジトリ](https://github.com/ku-nlp/jumanpp/releases)を参考にしてください。
##3.1. ソフトウェアの準備
1. [Cmake](https://cmake.org/download/)をインストールします。
2. [Visual Studio 2017 Community](https://visualstudio.microsoft.com/ja/)をインストールします。いろいろオプションが出てきますが「C++によるデスクトップ開発環境」にチェックが入っていることを確認してください。
##3.2. ファイルの用意
1. [Juman++ Ver.2](https://github.com/ku-nlp/jumanpp/releases)をダウンロードします。

##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の設定ファイルは、[半角スペースを取り扱うことができません](https://github.com/ku-nlp/jumanpp/issues/83)。
インストール先は、「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
```