## 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)