LoginSignup
38
32

More than 5 years have passed since last update.

Cloud Translation API を使用する際のポイント

Last updated at Posted at 2017-09-27

Google が提供している 翻訳API の Cloud Translation API を使う機会があったので、ポイントをメモしておく。

変換方法

詳細はリファレンスをみよう。
https://cloud.google.com/translate/docs/reference/rest

ざっくり書いておくと
POST https://translation.googleapis.com/language/translate/v2/
を投げる。その際に Body に次のような JSON を指定する。

{
  "q": "hello",
  "target": "ja",
  "format": "text"
}

すると次のような JSON が返ってくる

{
  "data": {
    "translations": [
      {
        "translatedText": "こんにちは", 
        "detectedSourceLanguage": "en"
      }
    ]
  }
}

GETでやるときはURLエンコードが必須

POST じゃなくて GET で流すことも可能。
その場合は、URLエンコードをしないとちゃんと変換されないので注意。

https://translation.googleapis.com/language/translate/v2/?target=en&q=Je%20suis%20ravi(e)%20de%20vous%20rencontrer
{
  "data": {
    "translations": [
      {
        "translatedText": "Nice to meet you", 
        "detectedSourceLanguage": "fr"
      }
    ]
  }
}

2種類の翻訳

デフォルトでは、ニューラル機械翻訳(NMT)モデルで翻訳される。
リクエストした言語の組み合わせが NMT モデルでサポートされていない場合、フレーズベース機械翻訳(PBMT)モデルが使用される。

明示的に指定することも可能

"model": "nmt"
"model": "base"

言語のサポート

変わるだろうからこれはリファレンスを都度見たほうが良い
https://cloud.google.com/translate/docs/languages

価格

Google Translation API の料金は使用量に基づいて月ごとに請求されます。翻訳の使用量は 100 万文字(1,000,000文字)単位で計算されます。

翻訳 20 ドル/100 万文字
言語の検出 20 ドル/100 万文字

ただし100万文字にみたない場合、20ドルかかるわけじゃなくてちゃんと使った分だけになる。

文字数

文字がマルチバイトでも 1 文字ごとに課金される。
こんにちは は 5 文字ということ。

翻訳を POST のリクエストにすれば 日本語で 30,000文字 くらいは一回のリクエストでいける。
あまりにも多いとエラーになると思う。

HTMLの場合の文字数

翻訳対象はformatで指定できるのだが、通常の texthtml がある。
html の場合、タグ等の部分も文字数としてカウントされるのでtextのほうが安くすむ。

特定の文字列を変換対象外にする

HTML を変換する場合は、<span class="notranslate">hello</span> のように囲うことで変換対象外に出来る。

割り当て

Daily Limit は 50,000,000 文字まで増やせる。
それ以上は、増加の申込みをしないといけない。

秒間制限は user だけでなく project にもあるので、システム用のサービスアカウントを作って使う、で良いと思う。
image.png

その他

FAQ があるからこれは必読。
https://cloud.google.com/translate/faq

38
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
32