Stanford Pos-Taggerをサーバーで起動

Stanford Pos-Taggerを(なんとなく)使ってるんだけど、起動が遅い。どうにかならないの?と思ったらFAQに書いてあって、サーバーを立ち上げてからクライアントで接続しろとのことだったので、それの方法をメモ。

まず、サーバーを起動。

cd /path/to/stanford-postagger
java -mx300m -cp stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTaggerServer -model "models/left3words-distsim-wsj-0-18.tagger" -port 2020

次にクライアントでテキストを投げる。

java -cp stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTaggerServer -client -port 2020 < input.txt 1> output.txt 2> /dev/null

これで起動時のオーバーヘッドはなくなるようなのでましになる。

Rubyのスクリプトの中でこういう処理をやってるんだけど、面倒な感じがしまくっているのでnltkとかでmaxentとか叩くほうが楽なのか...。みんな英語のpos taggerって何使ってますかね?