## JUMAN++とは
JUMAN++は言語モデルを利用した高性能な[[形態素解析]]システムです.言語モデルとして Recurrent Neural Network Language Model(RNNLM) を用いることにより,単語の並びの意味的な自然さを考慮した解析を行います.それにより JUMAN,MeCab に比べ大きく性能が向上しています.文法・辞書・出力フォーマット等は JUMAN から引き継いだものを利用しています.
## 公式サイト
- [http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++](http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++)
- [https://github.com/ku-nlp/jumanpp](https://github.com/ku-nlp/jumanpp)
## インストール
- GitHubからtar.gzをダウンロードし解凍・ビルドします
- [https://github.com/ku-nlp/jumanpp#building-from-a-package](https://github.com/ku-nlp/jumanpp#building-from-a-package)
- Pythonから使うためにPyKNPをインストールします
```bash
pip install pyknp
```
## 使い方
### CLIから
```python
root@dc4bb0b66ff4:/# echo "今日は晴れです。" | jumanpp
今日 きょう 今日 名詞 6 時相名詞 10 * 0 * 0 "代表表記:今日/きょう カテゴリ:時間"
は は は 助詞 9 副助詞 2 * 0 * 0 NIL
晴れ はれ 晴れる 動詞 2 * 0 母音動詞 1 基本連用形 8 "代表表記:晴れる/はれる 反義:動詞:曇る/くもる 自他動詞:他:晴らす/はらす"
です です だ 判定詞 4 * 0 判定詞 25 デス列基本形 27 NIL
。 。 。 特殊 1 句点 1 * 0 * 0 NIL
EOS
```
### Pythonから
- Juman().analysis()を使うことで[[形態素解析]]ができる
```python
from pyknp import Juman
document = '今日は晴れです。'
result = Juman().analysis(document)
for mrph in result.mrph_list():
print("見出し:%s, 読み:%s, 原形:%s, 品詞:%s, 品詞細分類:%s, 活用型:%s, 活用形:%s, 意味情報:%s, 代表表記:%s" \\
% (mrph.midasi, mrph.yomi, mrph.genkei, mrph.hinsi, mrph.bunrui, mrph.katuyou1, mrph.katuyou2, mrph.imis, mrph.repname))
words = [mrph.midasi for mrph in result.mrph_list()]
print(words)
--- 実行結果 ---
見出し:今日, 読み:こんにち, 原形:今日, 品詞:名詞, 品詞細分類:時相名詞, 活用型:*, 活用形:*, 意味情報:代表表記:今日/こんにち カテゴリ:時間, 代表表記:今日/こんにち
見出し:は, 読み:は, 原形:は, 品詞:助詞, 品詞細分類:副助詞, 活用型:*, 活用形:*, 意味情報:NIL, 代表表記:
見出し:晴れ, 読み:はれ, 原形:晴れ, 品詞:名詞, 品詞細分類:普通名詞, 活用型:*, 活用形:*, 意味情報:代表表記:晴れ/はれv 自他動詞:他:晴らす/はらす 反義:動詞:曇る/くもる 連用形名詞化:形態素解析, 代表表記:晴れ/はれv
見出し:です, 読み:です, 原形:だ, 品詞:判定詞, 品詞細分類:*, 活用型:判定詞, 活用形:デス列基本形, 意味情報:NIL, 代表表記:
見出し:。, 読み:。, 原形:。, 品詞:特殊, 品詞細分類:句点, 活用型:*, 活用形:*, 意味情報:NIL, 代表表記:
['今日', 'は', '晴れ', 'です', '。']
```
## 独自辞書の追加
- 辞書ファイルを作成
```
# 辞書ファイルの内容
(名詞 (普通名詞
((見出し語 東雲めぐ) (読み しののめめぐ) (意味情報 バーチャルSHOWROOMER))
((見出し語 化物語) (読み ばけものがたり))
))
```
- jumanrcに辞書ファイルのパスを追加
```
# jumanrc
(辞書ファイル
/usr/lib/juman/dic
/usr/lib/juman/autodic
/usr/lib/juman/wikipediadic
/usr/lib/juman/mydic <- 追加
)
```
- 参考リンク
- [https://qiita.com/1O1/items/956f64af69ac99e62acf](https://qiita.com/1O1/items/956f64af69ac99e62acf)
- [https://symfoware.blog.fc2.com/blog-entry-1996.html](https://symfoware.blog.fc2.com/blog-entry-1996.html)