[[翻訳API]]
http://simultechnology.blendmix.jp/blog/archives/1101
* Microsoftの翻訳APIはすごいと聞いたので使ってみた。Rubyで。 [#o3be3790]
2010 年 6 月 12 日 simultechnology コメントをどうぞ コメント
以前、phpで簡単な辞書アプリを作ったり、twitterの翻訳botを作ったりしたのだけど、その時はgoogleのAPIと英語学習サイトのiknowのAPIを使っていた。
ikowで「ruby」という単語の情報を取得した場合
http://api.iknow.co.jp/items/matching/ruby.xml
Google翻訳APIのページ
http://code.google.com/intl/ja/apis/ajaxlanguage/documentation/
今、サーバを止めている状態なので、そのアプリは動いてないんだけど、ちょっとまた翻訳APIを使ってみようと思った。
そこで、以前androidもくもく勉強会でhさんにMicrosoftの翻訳APIはかなり正確だと言われたのを思い出し、試してみた。
Microsoftの翻訳APIを使うには「AD697D10EC7A3751BB125AB58715693EBCB224E2」というようなキーを取得しなければいけないらしい。
参考にさせていただいた以下のページ通りに進めたら、キーの取得も含めて、簡単に試せた。
http://bit.ly/9Bwv20
以下、MicrosoftとGoogleの翻訳APIをrubyで使ってみた。
translate.rb
#code(ruby){{
# -*- coding:utf-8 -*-
require 'net/http'
require 'rexml/document'
require 'json'
# 引数が無い場合はエラー
if !ARGV.length
raise "1 argument is needed"
end
# 翻訳対象の文
text = URI.escape(ARGV[0])
h = Net::HTTP.new("api.microsofttranslator.com")
response = h.get("/V2/Http.svc/Translate?appid=AD697D10EC7A3751BB125AB58715693EBCB224E2&from=en&to=ja&text=#{text}")
if response.message == 'OK'
doc = REXML::Document.new(response.body)
puts sprintf("Microsoft API : %s", doc.root.text)
end
h2 = Net::HTTP.new("ajax.googleapis.com")
response2 = h2.get("/ajax/services/language/translate?v=1.0&q=#{text}&langpair=en|ja")
if response2.message == 'OK'
j = JSON.parse(response2.body)
puts sprintf("Google API : %s", j["responseData"]["translatedText"])
end
}}