JUMAN/KNPをpythonで

KNPを使うことがあったので,pythonで使えるラッパー的なものを作ってみた.
以下,かなり参考にさせていただいたエントリです.

恥ずかしながらもgithubに公開したので(初!),ご自由にどーぞ.

使い方は参考エントリとほぼ同じですが,JUMAN/KNPサーバを立ち上げてー,

juman -S
knp -S

あとはクライアントを作って操作(パスが通った所にKNPJumanConnect.pyをおく).

from KNPJumanConnect import KNPJumanConnect

s = KNPJumanConnect()
s.juman_socket("localhost", 32000) #Jumanサーバのデフォルトは32000
s.knp_socket("localhost", 31000, "-tab") #KNPサーバのデフォルトは31000

print s.post_knp("解析したい文をここに入力.")

s.juman_close()
s.knp_close()

5行目の3番目の引数(option)は「-tab」オプションをつけなければ係り受けのツリーが出力されます.

オプションで 「-print-num」を指定すればフレーズIDも出力されるかと思ったのですが,このオプションはサーバ起動時にしか効かないみたい.

というわけで,フレーズIDの出力も欲しい場合はKNPのサーバ起動を以下のように.

knp -print-num -S

これはJUMAN/KNPをソケットでつないで入出力するだけなので,ちゃんとKNPの結果を利用していくにはパースとかする必要がありますね.

おわり.

Leave a Reply