使用 Adaptive Translation 翻譯文字

要求使用 Adaptive Translation 時,系統會請您提供想翻譯的文字和範例譯文,Cloud Translation 會根據這些資訊調整回覆內容。

如果您提出程式輔助翻譯要求,可以在資料集或翻譯要求中加入範例譯文。使用資料集時,Cloud Translation 會自動選取與原文語句最相似的五個參考語句,用來自訂翻譯內容。假如您在翻譯要求中加入參考語句,Cloud Translation 會全部用來自訂翻譯內容。

事前準備

如要使用 Adaptive Translation,您必須在專案中啟用 Cloud Translation API 並設定驗證,詳情請參閱 Cloud Translation 設定

此外,請確認 Adaptive Translation 是否支援原文和譯文語言

資料規定和建議

如果您建立資料集或使用 Google Cloud 控制台,請務必在 TSV 或 TMX 檔案中提供範例譯文。範例必須是您要使用的原文和譯文語言的語句組合,建議提供涵蓋網域詞彙、用法和文法特性的範例。如需更多訣竅,請參閱 AutoML Translation 說明文件中的「資料準備」。

如果您使用控制台,資料必須包含至少 5 個語句組合,上限為 10,000 個;如果您使用 API,上限為 30,000 個。一個區隔組合最多可包含總共 512 個字元。

限制

  • 一次只能翻譯成一種譯文語言。
  • Adaptive Translation 的輸入和輸出內容字元數設有限制,詳情請參閱「配額」頁面的 Adaptive Translation 限制說明。

要求翻譯

進行翻譯作業時,輸入內容可以是純文字或 HTML。Cloud Translation 不會翻譯輸入內容中的任何 HTML 標記,只會翻譯標記之間的文字。輸出內容會保留 (沒有翻譯的) HTML 標記,由於原文與譯文語言之間存在差異,系統會盡可能在標記間加入翻譯過的文字。

控制台

使用 Google Cloud 控制台時,請選取包含範例譯文的檔案,然後要求翻譯。Cloud Translation 不會儲存匯入的資料,如要使用永久性資料集,請改用 API。

  1. 前往 AutoML Translation 控制台。

    前往 Adaptive Translation 頁面

  2. 選取包含範例譯文的本機檔案或 Cloud Storage 檔案。

    選取檔案後,Cloud Translation 會根據資料設定「原文語言」和「譯文語言」欄位。舉例來說,如果您匯入英文翻葡萄牙文資料集,控制台只會將英文語句翻譯成葡萄牙文。

  3. 在原文語言欄位中輸入文字。

    Adaptive Translation 的輸入和輸出內容字元數設有限制。詳情請參閱「配額」頁面的Adaptive Translation 限制說明

  4. 如要調整參數,請使用滑桿或文字欄位設定值:

    • 溫度參數:決定選取詞元時的隨機程度。如果溫度參數較低,生成的回覆會較為正確或適當;如果溫度參數較高,可能會生成多樣化或預料之外的結果。
    • 範例數量:設定要從來源資料中使用的範例數量,用於提示 LLM。
  5. 選取「Compare with NMT model」(與 NMT 模型比較),即可一併查看預設 Google NMT 模型的翻譯結果和 Adaptive Translation 輸出內容。

  6. 按一下「Translate」(翻譯)

    Cloud Translation 會在幾分鐘內將回覆傳回至譯文語言欄位,但不會傳回超出輸出字元限制的文字。

API

使用 API 提出 Adaptive Translations 要求時,請納入參考語句組合或指定資料集。

使用參考語句組合進行 Adaptive Translation

如要在翻譯要求中加入範例譯文,請在 referenceSentenceConfig 物件的 referenceSentencePairs 欄位中,加入原文和譯文語句組合範例。詳情請參閱 adaptiveMtTranslate 方法。最多可加入五組語句組合。

REST

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_NUMBER_OR_ID: Google Cloud 專案的數值或英數字元 ID。
  • LOCATION:處理翻譯要求的區域,例如 us-central1
  • REFERENCE_SOURCE:參考語句組合中的原文語言句子。
  • REFERENCE_TARGET:參考語句組合中的譯文語言句子。
  • SOURCE_LANGUAGE:原文文字的語言代碼
  • TARGET_LANGUAGE:原文文字的譯文語言代碼
  • SOURCE_TEXT:要翻譯的文字。
  • MIME_TYPE (選用):原文文字的格式,例如 text/htmltext/plain。根據預設,MIME 類型會設為 text/plain

HTTP 方法和網址:

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)

使用資料集進行 Adaptive Translation

如要使用資料集進行翻譯,請先建立資料集並匯入語句組合。如果您已有資料集,可以要求使用該資料集進行 Adaptive Translation。資料集會保留在專案中,直到您刪除為止。

  1. 建立資料集,並匯入範例譯文內容。

    原文和譯文語言必須與您要用於翻譯作業的語言一致。詳情請參閱 adaptiveMtDataset.create 方法。

    REST

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_NUMBER_OR_ID: Google Cloud 專案的數值或英數字元 ID。
    • LOCATION:來源資料集所在的區域,例如 us-central1
    • DATASET_ID:資料集的專屬 ID。
    • DISPLAY_NAME:資料集的說明名稱。
    • SOURCE_LANGUAGE:輸入文字的語言代碼。如要查看支援的語言代碼,請參閱這篇文章
    • TARGET_LANGUAGE:輸入文字的譯文語言。如要查看支援的語言代碼,請參閱這篇文章

    HTTP 方法和網址:

    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)

  2. 建立資料集後,請從 TSV 或 TMX 檔案填入範例譯文。

    您可以將多個檔案中的資料匯入單一資料集,詳情請參閱 adaptiveMtDatasets.importAdaptiveMtFile 方法。

    REST

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_NUMBER_OR_ID: Google Cloud 專案的數值或英數字元 ID。
    • LOCATION:資料集所在的區域,例如 us-central1
    • DATASET_ID:要匯入資料的資料集專屬 ID。
    • GCS_FILE_PATH:Cloud Storage 中來源資料檔案的路徑,例如 gs://example/data.tsv

    HTTP 方法和網址:

    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)

  3. 提供要翻譯的原文文字,以及讓 Cloud Translation 執行自訂翻譯的資料集,即可進行 Adaptive Translation。

    Cloud Translation 會使用資料集的原文和譯文語言,判斷進行翻譯時使用的語言。舉例來說,enes 資料集會將英文翻譯成西班牙文。詳情請參閱 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/htmltext/plain。根據預設,MIME 類型會設為 text/plain

    HTTP 方法和網址:

    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)

後續步驟