べるべる研究日誌

なんでもやる系エンジニアの日々

RubyでYahoo日本語形態素解析Webサービスを使ってみる

テキスト解析:日本語形態素解析API - Yahoo!デベロッパーネットワーク

Yahooから日本語形態素解析Webサービスが出たとか。MeCabとか使って昔にやったこともあるなぁと思いながらRubyでちょちょっと書いてみました。ほうほう、これはWebアプリ屋には便利。

$KCODE="u"
require 'rexml/document'
require 'open-uri'

def Yahoo_TextAnalyze(text)
	appid = 'YahooDemo'	#自分のAPI_IDと置き換え
	uri	= 'http://api.jlp.yahoo.co.jp/MAService/V1/parse'
	result = Array.new()
	body = open("#{uri}?appid=#{appid}&results=ma&sentence="+URI.encode("#{text}"))
	doc = REXML::Document.new(body).elements['ResultSet/ma_result/word_list/']
	doc.elements.each('word') {|item|
		word = Hash.new()
		item.elements.each {|property|
			word["#{property.name}"] = property.text
		}
		result << word
	}
	result
end

result = Yahoo_TextAnalyze("坊主が屏風に上手にジョーズの絵を描いた")
result.each {|item|
	p item["reading"]+" "+item["pos"]
}

"ぼうず 名詞"
"が 助詞"
"びょうぶ 名詞"
"に 助詞"
"じょうず 名詞"
"に 助詞"
"じょーず 名詞"
"の 助詞"
"え 名詞"
"を 助詞"
"えがい 動詞"
"た 助動詞"


こんな感じで。形態素解析情報のだけさくっと書いてみました。ちょっと変更すれば出現頻度情報のuniq_resultもいけますね。ページ内の広告とか検索へのリンクとか作るのに便利かな。サイトに直接実装するには制限が(1日5万件)があるけど、更新時とかクロールとかに使う分には十分な気がします。

後で時間があったらちょっとAPI風に書き直そう。