JUMAN++で可能性のある形態素解析パターンをPythonで複数取り出す

## 環境を作る
過去に記事を書いているのでそちらを参考に環境を構築してください。
https://qiita.com/TakayoshiK/items/2fed43b2ed4e6433ab1b

## 今回の背景
普通にJUMAN++を呼び出して実行すると形態素解析の結果を得ることができます。
しかし、形態素解析のパターンは複数考えられ、考えられるパターンを知りたいというシーンもあるかと思います。
[Media of Langue](https://www.media-of-langue.org/)のデータを作成する過程で私もこの複数パターンを取り出したいと考え調べたのでメモとして残します。

## JUMAN++を詳細モードで準備する
JUMAN++を詳細モードで準備します。
ここではs-5で上位5個のパターンを取得するように指定しています。
タイムアウトを防ぎたいため念の為タイムアウトの時間も伸ばしています。
```python
from pyknp import Juman
jumanpp_detail = Juman(timeout=300, jumanpp=True, option='-s 5')
```

## 情報を取り出し、並べる
出力がなぜかテキストでされるのでその情報を分解してランキング順に並び替えます。
```python
juman_mrph_l = jumanpp_detail.analysis("あなたはいい人ですね").mrph_list()
ranking_l = [[],[],[],[],[]]
for mrph_detail in juman_mrph_l:
    mrph_l = mrph_detail.midasi.split("\t")
    detail_l = mrph_l[-1].split("|")
    ranks = detail_l[-1].replace("ランク:","").split(";")
    for rank in ranks:
        try:
            rank = int(rank)
            info_dict = {
                "midasi": mrph_l[5],
                "repname": mrph_l[6],
                "hinsi": mrph_l[9],
                "bunrui": mrph_l[11],
                "katuyou1": mrph_l[13],
                "genkei": mrph_l[7]
            }

            ranking_l[rank-1].append(info_dict)
        except Exception as e:
            print(e)
            pass
print(ranking_l)
```
```output
[[{'midasi': 'あなた', 'repname': 'あなた/あなた', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'あなた'}, {'midasi': 'は', 'repname': 'は/は', 'hinsi': '助詞', 'bunrui': '副助詞', 'katuyou1': '*', 'genkei': 'は'}, {'midasi': 'いい', 'repname': '良い/よい', 'hinsi': '形容詞', 'bunrui': '*', 'katuyou1': 'イ形容詞イ段', 'genkei': 'いい'}, {'midasi': '人', 'repname': '人/ひと', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'ひと'}, {'midasi': 'です', 'repname': 'だ/です', 'hinsi': '判定詞', 'bunrui': '*', 'katuyou1': '判定詞', 'genkei': 'です'}, {'midasi': 'ね', 'repname': 'ね/ね', 'hinsi': '助詞', 'bunrui': '終助詞', 'katuyou1': '*', 'genkei': 'ね'}],
[{'midasi': 'あなた', 'repname': 'あなた/あなた', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'あなた'}, {'midasi': 'は', 'repname': 'は/は', 'hinsi': '助詞', 'bunrui': '副助詞', 'katuyou1': '*', 'genkei': 'は'}, {'midasi': 'いい', 'repname': '良い/よい', 'hinsi': '形容詞', 'bunrui': '*', 'katuyou1': 'イ形容詞イ段', 'genkei': 'いい'}, {'midasi': '人', 'repname': '人/じん', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'じん'}, {'midasi': 'です', 'repname': 'だ/です', 'hinsi': '判定詞', 'bunrui': '*', 'katuyou1': '判定詞', 'genkei': 'です'}, {'midasi': 'ね', 'repname': 'ね/ね', 'hinsi': '助詞', 'bunrui': '終助詞', 'katuyou1': '*', 'genkei': 'ね'}],
[{'midasi': 'あなた', 'repname': 'あなた/あなた', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'あなた'}, {'midasi': 'は', 'repname': 'は/は', 'hinsi': '助詞', 'bunrui': '副助詞', 'katuyou1': '*', 'genkei': 'は'}, {'midasi': 'いい', 'repname': '言い/いいv', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'いい'}, {'midasi': '人', 'repname': '人/じん', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'じん'}, {'midasi': 'です', 'repname': 'だ/です', 'hinsi': '判定詞', 'bunrui': '*', 'katuyou1': '判定詞', 'genkei': 'です'}, {'midasi': 'ね', 'repname': 'ね/ね', 'hinsi': '助詞', 'bunrui': '終助詞', 'katuyou1': '*', 'genkei': 'ね'}], 
[{'midasi': 'あなた', 'repname': 'あなた/あなた', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'あなた'}, {'midasi': 'は', 'repname': 'は/は', 'hinsi': '助詞', 'bunrui': '副助詞', 'katuyou1': '*', 'genkei': 'は'}, {'midasi': 'いい', 'repname': '良い/よい', 'hinsi': '形容詞', 'bunrui': '*', 'katuyou1': 'イ形容詞イ段', 'genkei': 'いい'}, {'midasi': '人', 'repname': '人/ひと', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'ひと'}, {'midasi': 'で', 'repname': 'で/で', 'hinsi': '助詞', 'bunrui': '格助詞', 'katuyou1': '*', 'genkei': 'で'}, {'midasi': 'すね', 'repname': '臑/すね', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'すね'}], 
[{'midasi': 'あなた', 'repname': 'あなた/あなた', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'あなた'}, {'midasi': 'は', 'repname': 'は/は', 'hinsi': '助詞', 'bunrui': '副助詞', 'katuyou1': '*', 'genkei': 'は'}, {'midasi': 'いい', 'repname': '良い/よい', 'hinsi': '形容詞', 'bunrui': '*', 'katuyou1': 'イ形容詞イ段', 'genkei': 'いい'}, {'midasi': '人', 'repname': '人/じん', 'hinsi': '名詞', 'bunrui': '普通名詞', 'katuyou1': '*', 'genkei': 'じん'}, {'midasi': 'で', 'repname': 'で/で', 'hinsi': '助詞', 'bunrui': '格助詞', 'katuyou1': '*', 'genkei': 'で'}, {'midasi': 'すね', 'repname': '拗ねる/すねる', 'hinsi': '動詞', 'bunrui': '*', 'katuyou1': '母音動詞', 'genkei': 'すね'}]]
```
## 最後に
誰かが詰まった時の助けになれば幸いです。
[Media of Langueプロジェクト](https://www.media-of-langue.org/)でも私が代表をしている[Enginee](https://www.enginee.co.jp/)でもエンジニアを探しています。