形態素解析器の違い(JUMAN++、Mecab)


書きかけのメモではありませすが、どなたかのお役に立てる可能性もあると思うので
投稿します。
(2018年5月当初に書いたものです、もう時代に合っていないかもしれませんが。。。)

概要

・JUMAN++:形態素解析システム
・KNP:構文(構文、格、照応)解析システム
・PyKNP:pythonと、JUMANN++、KNPのバインド

(参考サイト)
https://deepage.net/machine_learning/2017/01/16/juman++.html

統計的な言語モデルとは?

JUMAN++ Ver.1.02 (xz圧縮, 600MB)のインストール

(参考)http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-manual-1.0.pdf
(参考)https://qiita.com/1O1/items/956f64af69ac99e62acf
```
$ wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz&name=jumanpp-1.02.tar.xz

$ tar xJf jumanpp-1.02.tar.xz
$ cd jumanpp-1.02
$ ./configure
```
●「./configure」で次のエラー発生。

configure: error: "Error: cannot find available Boost library."

Boostをインストールする。
開発者さんのページには次の2つが必須ライブラリとしてかいてありました。
ubuntuでは、gccは最初から入っているみたいなので、Boost C++だけ追加インストールすればいいみたいですね。(http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++)
・gcc (4.9 以降)
・Boost C++ Libraries (1.57 以降)

$ sudo apt install libboost-dev
$ ./configure
$ make
$ sudo make install
$ jumanpp -v
JUMAN++ 1.01

JUMANのインストール

・構文解析のためめKNPをインストールするには、(JUMAN++ではなく)JUMANのインストールが必要なようです。
・JUMANをインストールせずにKNPをインストールすると、「./configure」の時に 「juman.h: not found.」とエラーになってしまいます。

$ wget http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/juman/juman-7.01.tar.bz2
$ tar xvf juman-7.01.tar.bz2
$ cd juman-7.01
$ ./configure
$ make
$ sudo make install

KNPインストール

$ wget http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/knp/knp-4.19.tar.bz2
$ tar xvf knp-4.19.tar.bz2
$ cd knp-4.19
$ ./configure
$ make
$ sudo make install
$ knp -v
knp 4.19

パスを通す。

$ sudo gedit /etc/ld.so.conf

gedit上で、下の1行を追加して、保存。

include /etc/ld.so.conf.d/*.conf
include /usr/local/lib

パスの読みなおし。

$ sudo ldconfig
juman -v
juman 7.01

JUMANを試す

$ echo "外国人参政権" | juman
外国 がいこく 外国 名詞 6 普通名詞 1 * 0 * 0 "代表表記:外国/がいこく カテゴリ:場所-その他 ドメイン:政治"
人参 にんじん 人参 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人参/にんじん カテゴリ:植物;人工物-食べ物 ドメイン:料理・食事"
政権 せいけん 政権 名詞 6 普通名詞 1 * 0 * 0 "代表表記:政権/せいけん 組織名末尾 カテゴリ:抽象物 ドメイン:政治"

JUMAN++を試す

$ echo "外国人参政権" | jumanpp外国 がいこく 外国 名詞 6 普通名詞 1 * 0 * 0 "代表表記:外国/がいこく カテゴリ:場所-その他 ドメイン:政治"
人 じん 人 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人/じん 漢字読み:音 カテゴリ:人"
@ 人 ひと 人 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人/ひと 漢字読み:訓 カテゴリ:人"
参政 さんせい 参政 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:参政/さんせい カテゴリ:抽象物 ドメイン:政治"
権 けん 権 名詞 6 普通名詞 1 * 0 * 0 "代表表記:権/けん 漢字読み:音 カテゴリ:抽象物"

KNPを試す

$ echo "外国人参政権" | jumanpp | knp
# S-ID:1 KNP:4.19-CF1.1 DATE:2018/05/26 SCORE:-1.20047
外国─────┐         <体言>
          人─────┐     <体言><Wikipediaエントリ:外国人>
                参政─────┐ <体言>
                          権<体言><用言:判><Wikipediaエントリ:参政権><格解析結果:ガ/-;ニ/-;デ/-;カラ/-;時間/-;ノ/->

●●再開
https://deepage.net/machine_learning/2017/01/16/juman++.html#juman%E3%81%A8python%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

余談

●Mecab辞書 ユーザ登録可能
(参考)
http://tech.innovation.co.jp/2017/07/28/mecab.html