yahoo!の日本語形態素解析をrubyから使おうとしたらはまった
テキスト解析:日本語形態素解析 - Yahoo!デベロッパーネットワークが便利そうなので、今更ながら使おうとしてみた…ら、1時間くらいはまったのでメモ。ってか間抜けすぎるので、こんなところではまるのは私だけかも。
結局、動いたのは下のような見た目簡単すぎるコード
require 'open-uri' require 'nkf' require 'kconv' $KCODE = "s" sentence = "裏庭には二羽、庭には二羽ニワトリがいる。" open(URI.escape("http://jlp.yahooapis.jp/MAService/V1/parse?appid=<自分のAPIのID>&results=uniq&uniq_filter=1|2|3|4|9|10&sentence=" + sentence.toutf8)){|file| file.each{|line| p NKF.nkf("-s",line) } }
はまったポイントは、
に尽きるんですが…。下は[ruby-dev:32169] Re: Can't use "|" in open-uriから割とすぐ解決しましたが、上ではまった。文字コードかなーとは早いうちから気がついてたのですが、NKFのUTF8変換のときの引数が-uでなかったところが致命的すぎて…(プログラミング言語 Ruby リファレンスマニュアル)。確かめろという話なのですが。