LoginSignup
2
2

More than 5 years have passed since last update.

Microsoft Translator API v3をGoogle Apps Script から使う方法

Last updated at Posted at 2018-07-17

概要

Microsoft Translator API v2が2019年4月にCloseされ、v3に移行する必要があるようです。
いままでGASで動いていたv2のSlack翻訳botをv3にしたので、そのコードを晒しておきます。

関連記事

v1: https://qiita.com/kemayako/items/21fe36005e6e729aff77
v2(GAS): https://qiita.com/sosuke/items/ece4aee023fade0c2d23

ソースコード

https://docs.microsoft.com/en-us/azure/cognitive-services/translator/migrate-to-v3 に従い、認証方法やレスポンスの構造(xml→json)をv2実装から変更しています。
↓の記事の内容から translate() の実装を以下のものと置き換えれば、そのまま動作するはずです。


var MS_API_TOKEN="";
var PRIMARY_LANGUAGE="ja";
var SECONDARY_LANGUAGE="ko";

function translate_v3(text) {
  var detect_url = "https://api.cognitive.microsofttranslator.com/detect?api-version=3.0";
  var options = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Ocp-Apim-Subscription-Key": MS_API_TOKEN
    },
  };
  options["payload"] = JSON.stringify([{"text":text}]);
  var detect_resp_raw = UrlFetchApp.fetch(detect_url, options).getContentText("UTF-8");
  var detect_resp =  JSON.parse(detect_resp_raw);
  var language = detect_resp[0]["language"];

  var from = language;
  var to = PRIMARY_LANGUAGE;
  if (language.indexOf(PRIMARY_LANGUAGE) >= 0) {
    to = SECONDARY_LANGUAGE;
  }

  var translate_url = 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&To='+to;
  options["payload"] = JSON.stringify([{"text":text}]);
  var translate_resp_raw = UrlFetchApp.fetch(translate_url, options).getContentText();
  var translate_resp =  JSON.parse(translate_resp_raw);
  return translate_resp[0]["translations"][0]["text"];

}

Microsoft Translator API v3の所感

Microsoft Translator API v3に関するQiita記事はまだ無いようなので、多少所感を書いておきます。

v2からv3に上げたことで、翻訳の内容が変わり、
やや韓→日、日→韓の翻訳精度が上がったように思います。

例えば、

네, 알겠습니다.

という文は、v2の翻訳だと

私の、サー。

などという、「同音異義語間違え」「英語等の他の言語を経由した形跡」が見られましたが、
v3では、

はい、わかりました。

と正確に訳されるようになりました。
その他、丁寧語の訳も正確に出るようになった気がします。

2
2
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
2
2