翻訳API

http://simultechnology.blendmix.jp/blog/archives/1101

Microsoftの翻訳APIはすごいと聞いたので使ってみた。Rubyで。

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

}}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS