翻訳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

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
# -*- 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