クイック スタート: Python と Translator Text API を使用して文字列を翻訳するQuickstart: Use the Translator Text API to translate a string using Python

このクイック スタートでは、Python と Translator Text REST API を使用して、テキスト文字列を英語からイタリア語とドイツ語に翻訳する方法を学習します。In this quickstart, you'll learn how to translate a text string from English to Italian and German using Python and the Translator Text REST API.

このクイック スタートでは、Azure Cognitive Services アカウントと Translator Text リソースが必要になります。This quickstart requires an Azure Cognitive Services account with a Translator Text resource. アカウントを持っていない場合は、無料試用版を使用してサブスクリプション キーを取得できます。If you don't have an account, you can use the free trial to get a subscription key.

ヒント

すべてのコードを一度に見たい場合は、このサンプルのソース コードを GitHub で入手できます。If you'd like to see all the code at once, the source code for this sample is available on GitHub.

前提条件Prerequisites

このクイック スタートでは以下が必要です。This quickstart requires:

  • Python 2.7.x または 3.xPython 2.7.x or 3.x
  • Translator Text の Azure サブスクリプション キーAn Azure subscription key for Translator Text

プロジェクトの作成と必要なモジュールのインポートCreate a project and import required modules

普段使用している IDE またはエディターで、新しい Python プロジェクトを作成します。Create a new Python project using your favorite IDE or editor. 次に、このコード スニペットをプロジェクトの translate-text.py という名前のファイルにコピーします。Then copy this code snippet into your project in a file named translate-text.py. ライブラリが認識されるように、IDE のインタープリターが正しいバージョンの Python を参照していることを確認してください。Be sure your IDE's interpreter references the correct version of Python to avoid libraries not being recognized.

# -*- coding: utf-8 -*-
import os
import requests
import uuid
import json

注意

これらのモジュールを使用していない場合は、プログラムを実行する前にこれらをインストールする必要があります。If you haven't used these modules you'll need to install them before running your program. これらのパッケージをインストールするには、pip install requests uuid を実行します。To install these packages, run: pip install requests uuid.

最初のコメントでは、UTF-8 エンコードを使用するように Python インタープリターに指示しています。The first comment tells your Python interpreter to use UTF-8 encoding. 次に、必要なモジュールをインポートして、環境変数からのサブスクリプション キーの読み取り、HTTP 要求の作成、一意識別子の作成、Translator Text API から返された JSON 応答の処理を行っています。Then required modules are imported to read your subscription key from an environment variable, construct the http request, create a unique identifier, and handle the JSON response returned by the Translator Text API.

サブスクリプション キー、ベース URL、パスの設定Set the subscription key, base url, and path

このサンプルでは、環境変数 TRANSLATOR_TEXT_KEY から Translator Text のサブスクリプション キーが読み取られるよう試行されます。This sample will try to read your Translator Text subscription key from the environment variable TRANSLATOR_TEXT_KEY. 環境変数を使い慣れていない場合は、subscriptionKey を文字列として設定し、条件ステートメントをコメント アウトすることができます。If you're not familiar with environment variables, you can set subscriptionKey as a string and comment out the conditional statement.

このコードをプロジェクトにコピーします。Copy this code into your project:

# Checks to see if the Translator Text subscription key is available
# as an environment variable. If you are setting your subscription key as a
# string, then comment these lines out.
if 'TRANSLATOR_TEXT_KEY' in os.environ:
    subscriptionKey = os.environ['TRANSLATOR_TEXT_KEY']
else:
    print('Environment variable for TRANSLATOR_TEXT_KEY is not set.')
    exit()
# If you want to set your subscription key as a string, uncomment the line
# below and add your subscription key.
#subscriptionKey = 'put_your_key_here'

Translator Text のグローバル エンドポイントは、base_url として設定されます。The Translator Text global endpoint is set as the base_url. path によって、translate ルートが設定され、API のバージョン 3 を使用することが識別されます。path sets the translate route and identifies that we want to hit version 3 of the API.

params は、出力言語を設定するために使用されます。The params are used to set the output languages. このサンプルでは、英語からイタリア語とドイツ語 (itde) に翻訳しています。In this sample we're translating from English to Italian and German: it and de.

注意

エンドポイント、ルート、および要求パラメーターの詳細については、「Translator Text API 3.0: Translate」をご覧ください。For more information about endpoints, routes, and request parameters, see Translator Text API 3.0: Translate.

base_url = 'https://api.cognitive.microsofttranslator.com'
path = '/translate?api-version=3.0'
params = '&to=de&to=it'
constructed_url = base_url + path + params

ヘッダーの追加Add headers

要求を認証する最も簡単な方法は、このサンプルで使用している Ocp-Apim-Subscription-Key ヘッダーとしてサブスクリプション キーを渡すことです。The easiest way to authenticate a request is to pass in your subscription key as an Ocp-Apim-Subscription-Key header, which is what we use in this sample. または、アクセス トークンのサブスクリプション キーを交換し、アクセス トークンを一緒に Authorization ヘッダーとして渡して要求を検証することもできます。As an alternative, you can exchange your subscription key for an access token, and pass the access token along as an Authorization header to validate your request. 詳細については、認証に関するページをご覧ください。For more information, see Authentication.

このコード スニペットをプロジェクトにコピーします。Copy this code snippet into your project:

headers = {
    'Ocp-Apim-Subscription-Key': subscriptionKey,
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}

Cognitive Services のマルチサービス サブスクリプションを使用している場合は、要求のパラメーターに Ocp-Apim-Subscription-Region も含める必要があります。If you are using a Cognitive Services multi-service subscription, you must also include the Ocp-Apim-Subscription-Region in your request parameters. マルチサービス サブスクリプションを使用した認証の詳細を参照してくださいLearn more about authenticating with the multi-service subscription.

テキストを翻訳する要求の作成Create a request to translate text

翻訳したい 1 つまたは複数の文字列を定義します。Define the string (or strings) that you want to translate:

body = [{
    'text': 'Hello World!'
}]

次に、requests モジュールを使用して POST 要求を作成します。Next, we'll create a POST request using the requests module. これは、連結された URL、要求ヘッダー、および要求本文の 3 つの引数を受け取ります。It takes three arguments: the concatenated URL, the request headers, and the request body:

request = requests.post(constructed_url, headers=headers, json=body)
response = request.json()

最後の手順では、結果を出力します。The last step is to print the results. このコード スニペットでは、キーを並べ替え、インデントを設定し、項目とキーの区切りを宣言することによって、結果を整形します。This code snippet prettifies the results by sorting the keys, setting indentation, and declaring item and key separators.

print(json.dumps(response, sort_keys=True, indent=4,
                 ensure_ascii=False, separators=(',', ': ')))

すべてをまとめた配置Put it all together

これで、Translator Text API を呼び出して JSON 応答を返す簡単なプログラムが完成しました。That's it, you've put together a simple program that will call the Translator Text API and return a JSON response. ここで、プログラムを実行してみましょう。Now it's time to run your program:

python translate-text.py

作成したコードをサンプル コードと比較したい場合は、完全なサンプルを GitHub から入手できます。If you'd like to compare your code against ours, the complete sample is available on GitHub.

応答のサンプルSample response

[
    {
        "detectedLanguage": {
            "language": "en",
            "score": 1.0
        },
        "translations": [
            {
                "text": "Hallo Welt!",
                "to": "de"
            },
            {
                "text": "Salve, mondo!",
                "to": "it"
            }
        ]
    }
]

リソースのクリーンアップClean up resources

サブスクリプション キーをプログラムにハードコーディングしている場合は、このクイック スタートを終了するときにサブスクリプション キーを必ず削除してください。If you've hardcoded your subscription key into your program, make sure to remove the subscription key when you're finished with this quickstart.

次の手順Next steps

API のリファレンスを見て、Translator Text API でできるすべてのことを理解してください。Take a look at the API reference to understand everything you can do with the Translator Text API.

関連項目See also

Translator Text API を使用して以下を実行する方法を確認します。Learn how to use the Translator Text API to: