適応型翻訳を使用してテキストを翻訳する
適応型翻訳をリクエストするときに、翻訳するテキストと、Cloud Translation がレスポンスの調整に使用する翻訳例を指定します。
プログラムによる翻訳リクエストの場合、データセットに翻訳サンプルを含めるか、翻訳リクエストの一部として翻訳サンプルを含めることができます。データセットを使用する場合、Cloud Translation は原文と最も類似する 5 つの参照文を自動的に選択して翻訳をカスタマイズします。翻訳リクエストに参照文を含める場合、Cloud Translation はすべての参照文を使用して翻訳をカスタマイズします。
始める前に
適応型翻訳を使用するには、プロジェクトで Cloud Translation API を有効にして、認証を設定する必要があります。詳細については、Cloud Translation の設定をご覧ください。
また、ソースとターゲットの言語が適応型翻訳でサポートされていることも確認します。
データの要件と推奨事項
データセットを作成するか、Google Cloud コンソールを使用する場合は、TSV ファイルまたは TMX ファイルで翻訳サンプルを指定する必要があります。サンプルは、目的の原文の言語と翻訳する言語のセンテンスペアにする必要があります。該当分野の語彙、用法、文法上の特性を網羅した例を提示することをおすすめします。その他のヒントについては、AutoML Translation ドキュメントのデータの準備をご覧ください。
データに含まれるセンテンスペアは 5 個以上で、コンソールを使用する場合は 10,000 個以下、API を使用する場合は 30,000 個以下である必要があります。セグメントペアの最大文字数は 512 文字(合計)です。
制限事項
- 一度に翻訳できる原文の言語は 1 つのみです。
- 適応型翻訳では用語集は使用できません。
- 適応型翻訳では、入力と出力の文字数に上限があります。詳細については、[割り当て] ページで適応型翻訳の上限をご覧ください。
翻訳をリクエストする
翻訳の入力には、プレーン テキストまたは HTML を使用できます。Cloud Translation は入力内の HTML タグは翻訳せず、タグ間にあるテキストのみを翻訳します。出力では、(未翻訳の)HTML タグは保持されます。タグは翻訳されたテキストに合わせて挿入されますが、ソース言語とターゲット言語には差異があるため、その位置調整は可能な範囲で行われます。
コンソール
Google Cloud コンソールを使用する場合は、翻訳サンプルを含むファイルを選択し、翻訳をリクエストします。インポートしたデータは Cloud Translation に保存されません。永続的なデータセットを操作する場合は API を使用します。
AutoML Translation のコンソールに移動します。
翻訳サンプルを含むローカル ファイルまたは Cloud Storage 内のファイルを選択します。
ファイルを選択すると、Cloud Translation がデータに応じて [ソース言語] フィールドと [ターゲット言語] フィールドを設定します。たとえば、英語からポルトガル語への翻訳データセットをインポートする場合、コンソールでは英語のセンテンスをポルトガル語に翻訳できます。
ソース言語のフィールドにテキストを入力します。
適応型変換では、入力と出力の文字数に上限があります。詳細については、[割り当て] ページで適応型翻訳の制限をご覧ください。
パラメータを調整するには、スライダーまたはテキスト フィールドを使用して値を設定します。
- temperature - トークン選択のランダム性の度合いを制御します。temperature を低くすると、正しいレスポンスや適切なレスポンスになる可能性があります。temperature を高くすると、ばらつきの大きい結果や想定外の結果になる可能性があります。
- サンプル数 - LLM に対するプロンプトでソースデータから使用するサンプルの数を設定します。
デフォルトの Google NMT モデルからの翻訳と適応型翻訳の出力を含めるには、[NMT モデルとの比較] を選択します。
[翻訳] をクリックします。
しばらくすると、Cloud Translation からターゲット言語のフィールドにレスポンスが返されます。Cloud Translation は、出力文字数の上限を超えるテキストを返しません。
API
API を使用して、参照センテンスペアを含めるかデータセットを指定して、適応型翻訳をリクエストします。
参照センテンスペアを使用した適応型翻訳
翻訳リクエストの一部として翻訳サンプルを含めるには、referenceSentenceConfig
オブジェクトの一部である referenceSentencePairs
フィールドに原文と翻訳する言語のサンプルペアを含めます。詳細については、adaptiveMtTranslate メソッドをご覧ください。最大 5 つのセンテンスペアを含めることができます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID。
- LOCATION: 翻訳リクエストが処理されるリージョン(
us-central1
など)。 - REFERENCE_SOURCE: 参照センテンスペアの一部である原文の言語の文。
- REFERENCE_TARGET: 参照センテンスペアの一部である翻訳する言語の文。
- SOURCE_LANGUAGE: 原文テキストの言語コード。
- TARGET_LANGUAGE: 原文テキストの翻訳先言語の言語コード。
- SOURCE_TEXT: 翻訳するテキスト。
- MIME_TYPE(省略可): ソーステキストの形式(
text/html
、text/plain
など)。デフォルトでは、MIME タイプはtext/plain
に設定されます。
HTTP メソッドと URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:adaptiveMtTranslate
リクエストの本文(JSON):
{ "referenceSentenceConfig": { "referenceSentencePairLists": [ { "referenceSentencePairs": [{ "sourceSentence": REFERENCE_SOURCE_1_1, "targetSentence": REFERENCE_TARGET_1_1 }, { "sourceSentence": REFERENCE_SOURCE_1_2, "targetSentence": REFERENCE_SOURCE_1_2 }] } ], "sourceLanguageCode": SOURCE_LANGUAGE, "targetLanguageCode": TARGET_LANGUAGE } "content": ["SOURCE_TEXT"], "mimeType": "MIME_TYPE" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "translations": [ { "translatedText": "TRANSLATED_TEXT" } ], "languageCode": "TARGET_LANGUAGE" }
Java
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
/** Translates using AdaptiveMt. */ private static void adaptiveMtTranslate( TranslationServiceClient translationServiceClient, String projectId, String sourceLang, String targetLang, Pair<String, String> referencePairs) { ReferenceSentencePairList refList = ReferenceSentencePairList.newBuilder(); for (Pair<String, String> referencePair: referencePairs) { ReferenceSentencePair refPair = ReferenceSentencePair.newBuilder() .setSourceSentence(referencePair.getKey()) .setTargetSentence(referencePair.getValue()); refList.addReferenceSentencePair(refPair); } AdaptiveMtTranslateRequest request = AdaptiveMtTranslateRequest.newBuilder() .setParent(LocationName.of(projectId, "us-central1").toString()) .setSourceLanguageCode(sourceLang) .setTargetLanguageCOde(targetLang) .addReferenceSentencePairLists(refList) .build(); AdaptiveMtTranslateResponse response = translationServiceClient.adaptiveMtTranslate(request); System.out.println("Translating using AdaptiveMt"); System.out.println(response); }
Node.js
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
async function translate() { const request = { parent: `projects/${projectId}/locations/${location}`, referenceSentenceConfig: { referenceSentencePairLists: [ { referenceSentencePairs: [{ sourceSentence: 'Sample reference source 1' targetSentence: 'Sample reference target 1' }, { sourceSentence: 'Sample reference source 2' targetSentence: 'Sample reference target 2' }] } ], sourceLanguageCode: 'en' targetLanguageCode: 'ja' }, content: ['Sample translate query'] } const [response] = await translationClient.adaptiveMtTranslate(request) console.log('Translating') console.log(response) }
Python
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
def adaptive_mt_translate(): # Create a client client = translate.TranslationServiceClient() # Initialize the request request = translate.AdaptiveMtTranslateRequest( parent="projects/PROJECT_ID/locations/LOCATION", reference_sentence_config=[ "reference_sentence_pair_lists": [ "reference_sentence_pairs": { "source_sentence": 'REFERENCE_SOURCE_1_1' "target_sentence": 'REFERENCE_TARGET_1_1' }, "reference_sentence_pairs": { "source_sentence": 'REFERENCE_SOURCE_1_2' "target_sentence": 'REFERENCE_TARGET_1_2' } ], "source_language_code": 'SOURCE_LANGUAGE' "target_language_code": 'TARGET_LANGUAGE' ], content=["SOURCE_TEXT"] ) # Make the request response = client.adaptive_mt_translate(request) # Handle the response print(response)
データセットを使用した適応型翻訳
翻訳でデータセットを使用するには、まずデータセットを作成してセンテンスペアをインポートします。データセットがすでにある場合は、そのデータセットを使用した適応型翻訳をリクエストできます。データセットは、削除するまでプロジェクトに保持されます。
翻訳サンプルをインポートするデータセットを作成します。
原文および翻訳する言語は、翻訳で使用する言語と一致する必要があります。詳細については、adaptiveMtDataset.create メソッドをご覧ください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
- LOCATION: ソース データセットが配置されているリージョン(
us-central1
など)。 - DATASET_ID: データセットの一意の識別子。
- DISPLAY_NAME: データセットのわかりやすい名前。
- SOURCE_LANGUAGE: 入力テキストの言語コード。サポートされている言語コードについては、サポートされている言語をご覧ください。
- TARGET_LANGUAGE: 入力テキストを翻訳する言語。サポートされている言語コードについては、サポートされている言語をご覧ください。
HTTP メソッドと URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets
リクエストの本文(JSON):
{ "name": "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID, "display_name": "DISPLAY_NAME", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID", "displayName": "DISPLAY_NAME", "sourceLanguageCode": "SOURCE_LANGUAGE", "targetLanguageCode": "TARGET_LANGUAGE" }
Java
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
/** Creates an AdaptiveMtDataset. */ private static void createAdaptiveMtDataset( TranslationServiceClient translationServiceClient, String projectName, String datasetName) { String adaptiveMtDatasetName = String.format( "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectName, datasetName); AdaptiveMtDataset adaptiveMtDataset = AdaptiveMtDataset.newBuilder() .setName(adaptiveMtDatasetName) .setDisplayName("DATASET_DISPLAY_NAME") .setSourceLanguageCode("SOURCE_LANGUAGE_CODE") .setTargetLanguageCode("TARGET_LANGUAGE_CODE") .build(); CreateAdaptiveMtDatasetRequest request = CreateAdaptiveMtDatasetRequest.newBuilder() .setParent(LocationName.of("PROJECT_NAME", "LOCATION").toString()) .setAdaptiveMtDataset(adaptiveMtDataset) .build(); AdaptiveMtDataset dataset = translationServiceClient.createAdaptiveMtDataset(request); System.out.println("Created dataset"); System.out.println(dataset); }
Node.js
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
async function createAdaptiveMtDataset() { // Construct request const request = { parent: `projects/${projectId}/locations/${location}`, adaptiveMtDataset: { name: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${ adaptiveMtDatasetName}`, displayName: 'DATASET_DISPLAY_NAME', sourceLanguageCode: 'SOURCE_LANGUAGE_CODE', targetLanguageCode: 'TARGET_LANGUAGE_CODE', } }; // Run request const [response] = await translationClient.createAdaptiveMtDataset(request); console.log('Created') console.log(response) }
Python
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
def create_adaptive_mt_dataset(): # Create a client client = translate.TranslationServiceClient() # Initialize request argument(s) adaptive_mt_dataset = translate.AdaptiveMtDataset() adaptive_mt_dataset.name = "projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID" adaptive_mt_dataset.display_name = "DATASET_DISPLAY_NAME" adaptive_mt_dataset.source_language_code = "SOURCE_LANGUAGE_CODE" adaptive_mt_dataset.target_language_code = "TARGET_LANGUAGE_CODE" request = translate.CreateAdaptiveMtDatasetRequest( parent="projects/PROJECT_ID/locations/LOCATION", adaptive_mt_dataset=adaptive_mt_dataset, ) # Make the request response = client.create_adaptive_mt_dataset(request=request) # Handle the response print(response)
データセットを作成したら、TSV ファイルまたは TMX ファイルから翻訳サンプルを読み込みます。
1 つのデータセットに複数のファイルからデータをインポートできます。詳細については、adaptiveMtDatasets.importAdaptiveMtFile メソッドをご覧ください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
- LOCATION: データセットが配置されているリージョン(
us-central1
など)。 - DATASET_ID: データのインポート先であるデータセットの一意の識別子。
- GCS_FILE_PATH: Cloud Storage のソースデータ ファイルのパス(
gs://example/data.tsv
など)。
HTTP メソッドと URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID:importAdaptiveMtFile
リクエストの本文(JSON):
{ "gcs_input_source": { "input_uri": "GCS_FILE_PATH" } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "adaptiveMtFile": { "name": "DATASET_NAME", "displayName": "FILE_NAME", "entryCount": TOTAL_ENTRIES } }
Java
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
/** Imports an AdaptiveMtFile. */ private static String importAdaptiveMtFile( TranslationServiceClient translationServiceClient, String projectId, String datasetId, String gcsUri) { String adaptiveMtDatasetName = String.format( "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectId, datasetId); ImportAdaptiveMtFileRequest importAdaptiveMtFileRequest = ImportAdaptiveMtFileRequest.newBuilder() .setParent(adaptiveMtDatasetName) .setGcsInputSource(GcsInputSource.newBuilder().setInputUri(gcsUri).build()) .build(); ImportAdaptiveMtFileResponse response = translationServiceClient.importAdaptiveMtFile(importAdaptiveMtFileRequest); System.out.println("Importing file"); System.out.println(response); return response.getAdaptiveMtFile().getName(); }
Node.js
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
async function importAdaptiveMtFile() { const request = { parent: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${ adaptiveMtDatasetName}`, gcsInputSource: {inputUri: gcs_file_uri} } const [response] = await translationClient.importAdaptiveMtFile(request) console.log('Importing file') console.log(response) }
Python
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
def import_adaptive_mt_file(): # Create a client client = translate.TranslationServiceClient() gcs_input_source = translate.GcsInputSource() gcs_input_source.input_uri = "gs://SOURCE_LOCATION/FILE.tsv" # Initialize the request request = translate.ImportAdaptiveMtFileRequest( parent="projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID", gcs_input_source=gcs_input_source ) # Make the request response = client.import_adaptive_mt_file(request) # Handle the response print(response)
翻訳する原文と、Cloud Translation が翻訳のカスタマイズに使用するデータセットを指定して、適応型翻訳をリクエストします。
Cloud Translation は、データセットの原文の言語と翻訳する言語を使用して、翻訳に使用する言語を決定します。たとえば、
en
からes
へのデータセットは、テキストを英語からスペイン語に翻訳します。詳細については、adaptiveMtTranslate メソッドをご覧ください。REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER_OR_ID: Google Cloud プロジェクトの数字または英数字の ID
- LOCATION: ソース データセットが配置されているリージョン(
us-central1
など)。 - DATASET_NAME: Cloud Translation が翻訳のカスタマイズに使用するデータセットの名前(
projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID
形式)。データセット名を取得するには、プロジェクト内のすべてのデータセットを一覧表示します。 - SOURCE_TEXT: 翻訳するテキスト。
- MIME_TYPE(省略可): ソーステキストの形式(
text/html
、text/plain
など)。デフォルトでは、MIME タイプはtext/plain
に設定されます。
HTTP メソッドと URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:adaptiveMtTranslate
リクエストの本文(JSON):
{ "dataset": "DATASET_NAME", "content": ["SOURCE_TEXT"], "mimeType": "MIME_TYPE" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "translations": [ { "translatedText": "TRANSLATED_TEXT" } ], "languageCode": "TARGET_LANGUAGE" }
Java
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Cloud Translation Java API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
/** Translates using AdaptiveMt. */ private static void adaptiveMtTranslate( TranslationServiceClient translationServiceClient, String projectId, String datasetId) { String adaptiveMtDatasetName = String.format( "projects/%s/locations/LOCATION/adaptiveMtDatasets/%s", projectId, datasetId); AdaptiveMtTranslateRequest request = AdaptiveMtTranslateRequest.newBuilder() .setParent(LocationName.of(projectId, "us-central1").toString()) .setDataset(adaptiveMtDatasetName) .addContent("Sample translation text") .build(); AdaptiveMtTranslateResponse response = translationServiceClient.adaptiveMtTranslate(request); System.out.println("Translating using AdaptiveMt"); System.out.println(response); }
Node.js
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Cloud Translation Node.js API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
async function translate() { const request = { parent: `projects/${projectId}/locations/${location}`, dataset: `projects/${projectId}/locations/${location}/adaptiveMtDatasets/${ adaptiveMtDatasetName}`, content: ['Sample translate query'] } const [response] = await translationClient.adaptiveMtTranslate(request) console.log('Translating') console.log(response) }
Python
このサンプルを試す前に、Cloud Translation クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Cloud Translation Python API リファレンス ドキュメントをご覧ください。
Cloud Translation に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
def adaptive_mt_translate(): # Create a client client = translate.TranslationServiceClient() # Initialize the request request = translate.AdaptiveMtTranslateRequest( parent="projects/PROJECT_ID/locations/LOCATION", dataset="projects/PROJECT_ID/locations/LOCATION/adaptiveMtDatasets/DATASET_ID", content=["Sample translation request"] ) # Make the request response = client.adaptive_mt_translate(request) # Handle the response print(response)
次のステップ
- データセットを管理する(API のみ)