目的
JUMAN++ と KNP を使って係り受け解析をしたかったのですが、手元にwindows PCしかないために、Docker for Windowsを使って環境構築しました。
手作業では辛い作業があったので、pyKNPも使えるようにしたかった。
Dockerコンテナはこちら
簡単な説明です。
- pythonの3-stretchを継承してます。
- 日本語化済み
- pyKNPは初期状態では入っていないです。
- デカイです。3GBあります…。
使い方
基本的には、コンテナの標準出力を繋いでコンテナ内のJUMAN++とKNPを利用します。
CMDには/bin/bash
を指定してます。
docker run -it --name jumanpp_knp yusanish/jumanpp_knp:latest
root@CONTAINER_ID:~#
root@CONTAINER_ID:~# echo "今日のご飯はカレーです。" | jumanpp | knp
今日の═════╗ <体言><NE:DATE:今日>
ご飯は═════╗ <体言>
カレーです。<体言><用言:判><格解析結果:ガ/ご飯;ガ2/->
EOS
root@CONTAINER_ID:~#
pyKNPを使いたいとき
とても簡単なサンプル
>>> import pyknp
>>> knp = pyknp.KNP()
>>> knp = pyknp.KNP(jumanpp=True)
>>> result = knp.parse("今日の晩御飯はカレーだった。")
>>> result.draw_bnst_tree()
使用できる関数や変数に関しては、こちらに詳しくまとめてあります。
pyKNPについてのメモ
参考文献・コード
- JUMAN++ のコンテナ yamitzky/jumanpp
- JUMAN++をPythonから使う
- Dockerで立てたDebianコンテナの日本語環境を整えた