【翻訳API】IBMのWatson Language Translator APIの使い方

概要

  • IBMはIBM Cloudというプラットフォームの中で翻訳APIを提供している。(制限付き無料)
  • IBM Cloudのアカウントを作成しAPIを有効化。
  • APIキーをゲットして以下のリクエストを投げる。
(コマンドプロンプトの場合)
curl -X POST -u "apikey:(ここにAPIキーを貼り付け)" -H "Content-Type: application/json" -d "{\"text\": [\"Hello, world! \", \"How are you?\"], \"model_id\":\"en-es\"}" "(ここに専用URLを貼り付け)/v3/translate?version=2018-05-01"

(PowerShellの場合)
(まずはBASIC認証情報の作成)
$cred = Get-Credential
(これをするとダイアログが出てユーザー名とパスワードを求められるので、ユーザー名は"apikey"の6文字、パスワードはAPIキーを貼り付ける)
(然る後に以下のコマンド)
Invoke-WebRequest `
-Method POST `
-ContentType: "application/json" `
-Body '{"text": ["Hello, world!", "How are you?"], "model_id":"en-es"}' `
-Credential $cred `
-Uri "(ここに専用URLを貼り付け)/v3/translate?version=2018-05-01" | Select-Object -Expand Content

返ってくるデータはこちら。

{
  "translations" : [ {
    "translation" : "¡ Hola, mundo!"
  }, {
    "translation" : "¿Cómo estás?"
  } ],
  "word_count" : 5,
  "character_count" : 25
}

解説

アカウント作成

適当に「IBM translator api」で検索すると「Watson Language Translator」というのが出てくる。「登録する」または「今すぐ使う」をクリックすると、アカウント作成後すぐにTranslator APIを有効化するページに飛びます。

アカウント作成のためのメールアドレス確認。

アカウント作成。自分は実はすでにログインIDを持っていたけどアカウントは持っていなかったという謎な状態だったので、個人情報・パスワード等を入力するタイミングが無かった。でも作るにしてもそんなに難しくないはず。

API有効化ページ。右下のCreateをクリック。

クイックスタート的なページに飛ばされるので、APIキーをゲットするためにページ左部のManageをクリック。

APIキーと専用URLゲット。

コマンドについて

BASIC認証が必要。curl-uコマンドでやってくれるけど、Invoke-WebRequestは暗号化を自分でしないといけない。

↓これをすると

↓これが出て

ユーザー名 : apikey
パスワード : (APIキーを貼り付け)

で、以下のコマンドを打つとよい。

Invoke-WebRequest `
-Method POST `
-ContentType: "application/json" `
-Body '{"text": ["Hello, world!", "How are you?"], "model_id":"en-es"}' `
-Credential $cred `
-Uri "(ここに専用URLを貼り付け)v3/translate?version=2018-05-01" | Select-Object -Expand Content

参考
Invoke-WebRequest , Invoke-RestMethod で 基本認証 – Qiita

送信するJSONについて

見やすくするとこう。

{
    "text": [
        "Hello, world!",
        "How are you?"
        ],
    "model_id": "en-es"
}

model_idで翻訳元、翻訳先を同時に指定できるみたい。翻訳元を自動検出するなら、

{
    "text": [
        "Hello, world!",
        "How are you?"
        ],
    "target": "es"
}

参考
Language Translator – IBM Cloud API Docs

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です