使用 Adaptive Translation 翻譯文字

要求自適應翻譯時,您會提供要翻譯的文字和範例翻譯,Cloud Translation 會根據這些內容調整回覆。

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

事前準備

如要使用自適應翻譯,您必須在專案中啟用 Cloud Translation API,並設定驗證。詳情請參閱 Cloud Translation 設定

此外,請確認來源和目標語言是否支援 Adaptive Translation。

資料規定和建議

如果您建立資料集或使用 Google Cloud 控制台,必須在 TSV 或 TMX 檔案中提供翻譯範例。範例必須是您預期使用的來源和目標語言的句子配對。建議您提供涵蓋網域詞彙、用法和文法特性的範例。如需其他提示,請參閱 AutoML Translation 說明文件中的「資料準備」。

如果使用控制台,資料必須至少包含 5 組句子,最多 10,000 組;如果使用 API,最多 30,000 組。一個區隔配對最多可有 512 個字元 (總計)。

限制

  • 一次只能翻譯成一種目標語言。
  • 自適應翻譯的輸入和輸出字元數設有限制。 詳情請參閱「配額」頁面上的自適應翻譯限制。

要求翻譯

如要翻譯,輸入內容可以是純文字或 HTML。Cloud Translation 不會翻譯輸入內容中的任何 HTML 標記,只會翻譯出現在標記之間的文字。輸出內容會保留沒有翻譯的 HTML 標記,由於原文與譯文語言間之間有所差異,系統會儘可能在標記間加入翻譯過的文字。

控制台

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

  1. 前往 AutoML Translation 主控台。

    前往「Adaptive Translation」頁面

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

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

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

    自動調整翻譯功能對輸入和輸出字元數設有限制。詳情請參閱「配額」頁面的自適應翻譯限制

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

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

  6. 按一下 [翻譯]

    Cloud Translation 稍後會在目標語言欄位中傳回回應。Cloud Translation 不會傳回超出輸出字元限制的任何文字。

API

使用 API 時,只要納入參考句子配對或指定資料集,即可要求適應性翻譯。

使用參考句子組合進行適應性翻譯

如要在翻譯要求中加入例句翻譯,請在 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

在試用這個範例之前,請先按照Java使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

在試用這個範例之前,請先按照Python使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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)

使用資料集進行適應性翻譯

如要使用含翻譯內容的資料集,請先建立資料集並匯入句子配對。如果您已有資料集,可以要求使用該資料集進行適應性翻譯。資料集會保留在專案中,直到您刪除為止。

  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

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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 用於自訂翻譯的資料集,即可要求進行適應性翻譯。

    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

    在試用這個範例之前,請先按照Java使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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

    在試用這個範例之前,請先按照Python使用用戶端程式庫的 Cloud Translation 快速入門導覽課程中的操作說明進行設定。詳情請參閱 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)

後續步驟