読者です 読者をやめる 読者になる 読者になる

kitak.blog

Kみたいなエンジニアになりたいブログ

RubyでYahoo!の形態素解析APIをつかってみました

こんにちは。
最近,「集合知プログラミング」っていう本の第6章を試してみたくて,うずうずしていたkitakです。
でも,この本,サンプルがPythonで書かれてるんですよね・・・
というわけで,まずはRubyの勉強がてら,日本語処理の書かれた付録Cのsplit関数をRubyで書いてみました。

# coding: utf-8

require 'open-uri'
require 'rexml/document'

def split(text)
    appid = 'Your AppID'
    filter = '1|2|4|5|9|10'
    uri = 'http://jlp.yahooapis.jp/MAService/V1/parse'
    result = []

    body = open("#{uri}?appid=#{appid}&results=ma&filter=#{URI.escape(filter)}&sentence="+URI.encode(text))
    doc = REXML::Document.new(body).elements['ResultSet/ma_result/word_list/']
    doc.elements.each('word/surface') do |item|
        result.push(item.text)
    end

    return result
end

result = split("すもももももももものうち");

result.each do |word|
    puts word
end

Pythonでforを使うところが,Rubyではeachになるんですね。
あとはXMLパーサの使い方を調べたりしました。
Rubyだとこう書くんだよ!っていうツッコミがあったら,コメントください
参考にしたサイト
yahoo!の日本語形態素解析をrubyから使おうとしたらはまった - 歩くパンケーキたち

集合知プログラミング

集合知プログラミング