たのしい駆動開発

たのしいアウトプットの場所

pyKNPをインストールして日本語構文解析器KNPを使う

pyKNPをインストールしていきます。
pyKNPのgithubのrequirementにknpとjumanと書かれているので、インストールしていきます。

brew install knp
brew install jumanapp

どちらもそれなりにインストールに時間がかかります。


次に、pipでpyknpをインストールします。

pip install pyknp


インストールできているか確認しましょう

brew list
pip freeze



次に、KNPを使って構文解析を試してみます。

from pyknp import KNP


line = "クロールで泳いでいる少女を見た"
knp = KNP()
result = knp.parse(line)

print("文節")
for bnst in result.bnst_list(): # 各文節へのアクセス
    print("\tID:%d, 見出し:%s, 係り受けタイプ:%s, 親文節ID:%d, 素性:%s" \
            % (bnst.bnst_id, "".join(mrph.midasi for mrph in bnst.mrph_list()), bnst.dpndtype, bnst.parent_id, bnst.fstring))


print("基本句")
for tag in result.tag_list(): # 各基本句へのアクセス
    print("\tID:%d, 見出し:%s, 係り受けタイプ:%s, 親基本句ID:%d, 素性:%s" \
            % (tag.tag_id, "".join(mrph.midasi for mrph in tag.mrph_list()), tag.dpndtype, tag.parent_id, tag.fstring))


print("形態素")
for mrph in result.mrph_list(): # 各形態素へのアクセス
    print("\tID:%d, 見出し:%s, 読み:%s, 原形:%s, 品詞:%s, 品詞細分類:%s, 活用型:%s, 活用形:%s, 意味情報:%s, 代表表記:%s" \
            % (mrph.mrph_id, mrph.midasi, mrph.yomi, mrph.genkei, mrph.hinsi, mrph.bunrui, mrph.katuyou1, mrph.katuyou2, mrph.imis, mrph.repname))



参考文献

jumanとKNPの使い方 pyknp.readthedocs.io


knpのモジュールなど pyknp.readthedocs.io


さらに説明 pyKNPについてのメモ(自分用) · GitHub


jumanだけど参考になりそう chuckischarles.hatenablog.com

追記(2019-12-12)

brewでJuman++のインストールを行って、Juman++のユーザー辞書を追加しようとしたらJuman++が壊れました。
もしユーザー辞書をのちのち追加したいよ、という方はおとなしく公式の通りにダウンロードしたほうが懸命だと思います。 (もし壊れた原因など知りたければコメントください)