形態素解析の性能比較

# はじめに

近いうちに IBM Watson を触ってみたいと考える日々。
IBM Watson は自然言語処理や画像認識等ができますよなシステムで、最近は日本語対応もしてきている。
触らないとという使命感がふつふつと湧いてきたので、その準備として、自然言語処理技術に関する復習をぼちぼちやっていこうと思う。

ざっくり調査が必要な項目は以下の４つ（のはず）。
＃　以前、研究していた頃から時間が経ってるので、要調査。

1. 形態素解析
    - 今回の調査対象
    - 文章を語幹・語根にバラして、それぞれ品詞分類する手法。
    - バラしすぎた語や未定義語に対する追加処理が必須。
2. 構文解析
    - 生成文法から派生した主辞駆動句構造文法（Head-driven phrase structure grammar, HPSG）が大活躍（のはず）。
    - 文法構造を明確にするために、なくてはならない手法。
    - 意味解析にはある意味必須（のはず）。
3. 意味解析
    - 論理式で記述してその真偽を問う。
    - 論理学と仲良し。
    - ラムダ式が大活躍（のはず）。
4. 音声処理
    - 既存の音声認識技術がすごいので、API情報を収集しよう。（適当）

# 実行環境
ざっくり以下の環境。
・Mac OS X 10.10.5

# インストールしたソフト
## MeCab 0.996 + ipadic（辞書）
ご存知、高速＆高精度の形態素解析ツール。
書き言葉に対する精度は、速度も加味すると他の追随を許さない。
話し言葉のような揺れのある文章は少し苦手。
未定義語は、なんでもかんでも名詞になるところがたまに傷。

### インストール方法
ipadic は MeCabで利用する形態素解析用の辞書。
何も変更しなければ、/usr/local/lib/mecab/dic にインストールされる。

```
brew install mecab
brew install mecab-ipadic
```

## JUMAN++ 1.01 
未定義語が存在する初回のみ、なぜかMecab より遅い。起動したままで再実行すると、２回目以降はほぼ変わらない。
＃　構文解析も裏でしているという記事をどこかで見たので、それが原因か？
＃　再起動したら遅かったので、単にキャッシュしてるだけ？
＃　時間があったら論文とか読もう。
話し言葉のような揺れのある文章は、Mecab よりも得意。

### インストール方法
辞書が jumandic が /usr/local/lib/mecab/dic にインストールされる。
＃　ipadic のインストール場所に依存？

```
brew install jumanpp
```


# 解析する文章
書き言葉に対するスコアはお互いほぼ差がないこと、Mecabの速度圧勝のため、以下のような、話し言葉＆方言、話し言葉＆標準語に対する処理結果を比較してみよう。

```
トトロ録っとーと？
＃　どうでもいいですが博多弁はかわいいですよね。
```

標準語では、以下のようになる。

```
トトロ録ってる？（トトロ録画してる？）
```

# 解析結果＠方言＆話し言葉
## Mecab 

```
トトロ	名詞,一般,*,*,*,*,*
録	名詞,接尾,一般,*,*,*,録,ロク,ロク
っと	助詞,格助詞,引用,*,*,*,っと,ット,ット
ー	名詞,一般,*,*,*,*,*
と	助詞,並立助詞,*,*,*,*,と,ト,ト
？	記号,一般,*,*,*,*,？,？,？
```

### 問題点
1. 「録る」という動詞を認識できていない。（助詞は面倒なのでスルー）
2. 単なる長音化記号「ー」が名詞に分類されている。後処理必須である。



## JUMAN++

```
トトロ トトロ トトロ 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipedia上位語:小惑星 Wikipediaリダイレクト:となりのトトロ"
録 ろく 録 名詞 6 普通名詞 1 * 0 * 0 "代表表記:録/ろく 漢字読み:音 カテゴリ:抽象物 ドメイン:文化・芸術;メディア"
っとー っと っと 助詞 9 格助詞 1 * 0 * 0 NIL
と と と 助詞 9 格助詞 1 * 0 * 0 NIL
？ ？ ？ 特殊 1 記号 5 * 0 * 0 NIL
```

### 問題点
1. 「録る」という動詞を認識できていない。
2. 初回実行時は0.5秒ぐらい待たされた。

# 解析結果＠標準語＆話し言葉
## Mecab 
```
トトロ録ってる？
トトロ	名詞,一般,*,*,*,*,*
録	名詞,接尾,一般,*,*,*,録,ロク,ロク
っ	動詞,非自立,*,*,五段・カ行促音便,連用タ接続,く,ッ,ッ
てる	動詞,非自立,*,*,一段,基本形,てる,テル,テル
？	記号,一般,*,*,*,*,？,？,？
```

### 問題点
1. 「録る」という動詞を認識できていない。
2. 方言の結果と合わせると、話し言葉が苦手と感じる。


## JUMAN++
```
トトロ トトロ トトロ 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipedia上位語:小惑星 Wikipediaリダイレクト:となりのトトロ"
録って 録って 録る 動詞 2 * 0 子音動詞ラ行 10 タ系連用テ形 14 "代表表記:録る/録る 自動獲得:テキスト"
る る る 接尾辞 14 動詞性接尾辞 7 子音動詞ラ行 10 基本形 2 "代表表記:る/る"
？ ？ ？ 特殊 1 記号 5 * 0 * 0 NIL
```

### 問題点
1. 初回実行時は待たされる。


# 結論

## MeCab を使うとき

論文や記事といった、省略や表記の揺れの無い文章を処理するときに最適だろう。
処理速度も加味すると最高のツールである。
ライセンスは、[公式サイト](http://taku910.github.io/mecab/)で GPL,  LGPL, BSD のトリプルライセンスと明記しているので、BSDを選択すれば、このライセンスに関するソフトウェアを使っていることを明記すれば、何に利用しても良い（はず）。
＃　以下、その抜粋。
>MeCab はフリーソフトウェアです．GPL(the GNU General Public License), LGPL(Lesser GNU General Public License), または BSD ライセンスに従って本ソフトウェアを使用,再配布することができます。 詳細は COPYING, GPL, LGPL, BSD各ファイルを参照して下さい．



## JUMAN++ を使うとき
ブログ記事や音声認識後の処理といった、実用的を考えるときに最適だろう。
ライセンスは、[公式マニュアル](http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-manual-1.01.pdf)でApache License 2.0と明記しているので、このライセンスに関するソフトウェアを使っていることを明記すれば、何に利用しても良い。
＃　以下、その抜粋。
> Morphological Analysis System JUMAN++ 1.01 Copyright 2016 Kyoto University
All rights reserved.
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE- 2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Version 1.01 September 2016 Version 1.00 September 2016