2009/07/17

英日翻訳API「JE translation API」を使ってみた

明日の北海道開発オフの予習として、英語・日本語翻訳APIを探していたところ、英語←→日本語の翻訳APIとして使えるYahoo Pipesを作った(管理人日記) - むぅもぉ.jpという記事でJE translation APIと言うものを発見した。早速試してみた。

ちょっと引っかかったのは、翻訳率が低く、翻訳に失敗する単語が多いということと、翻訳に失敗した場合rss.channel.item.descriptonという要素が無い状態でxmlが返って来るということ。久しぶりにREXMLを触ったので2時間くらい悩んでた。


#!ruby -Ks

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

begin
base = "http://pipes.yahoo.com/poolmmjp/je_translation_api?_render=rss&text="
word = Kconv.kconv("勝つ", Kconv::UTF8)

open(base + URI.escape(word)) do |http|
xml = http.read
doc=nil
doc=REXML::Document.new xml
doc.elements.each('rss/channel/item') do |elm|
puts "日本語:" + Kconv.kconv(elm.elements['title'].text.to_s, Kconv::SJIS)
if elm.elements['description'] != nil then
puts "英 語:" + elm.elements['description'].text.to_s
else
puts "英 語:not transformed."
end
end
end

rescue
print "RuntimeError: ", $!, "\n";
end


Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232
島田 浩二 設樂 洋爾 村田 賢太 前田 智樹 谷口 文威
翔泳社
売り上げランキング: 12467