使用自适应翻译功能翻译文本

请求自适应翻译时,您需提供要翻译的文本以及 Cloud Translation 用于定制其响应的示例翻译。

对于程序化翻译请求,您可以在数据集中或翻译请求中添加示例翻译。使用数据集时,Cloud Translation 会自动选择与源句子最相似的五个参考句子来自定义翻译。如果您在翻译请求中添加了参考句子,Cloud Translation 会使用所有这些参考句子来自定义翻译。

准备工作

如需使用自适应翻译,您必须在项目中启用 Cloud Translation API,并设置身份验证。如需了解详情,请参阅 Cloud 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 控制台。

    转到“自适应翻译”页面

  2. 选择本地文件或 Cloud Storage 中包含示例翻译的文件。

    选择文件后,Cloud Translation 会根据您的数据设置源语言目标语言字段。例如,如果您导入英语译葡萄牙语数据集,则控制台仅支持将英语句子翻译为葡萄牙语。

  3. 在源语言字段中输入文本。

    自适应翻译对输入和输出字符数量有限制。如需了解详情,请参阅“配额”页面上的自适应翻译限制

  4. 如需调整参数,请使用滑块或文本字段设置值:

    • 温度 - 控制词元选择的随机程度。温度较低时,预期会获得真实或正确的回复。温度较高时,预期会获得更为多样化或意想不到的结果。
    • 示例数 - 设置源数据中用于提示 LLM 的示例数。
  5. 选择与 NMT 模型对比,以包含默认 Google NMT 模型的翻译以及自适应翻译输出。

  6. 点击翻译

    稍等片刻,Cloud Translation 会在“目标语言”字段中返回回复。Cloud Translation 不会返回超过输出字符数限制的任何文本。

API

使用 API 通过添加参考句对或指定数据集来请求自适应翻译。

使用参考句对进行自适应翻译

如需在翻译请求中添加示例翻译,请在 referenceSentencePairs 字段中添加源语言和目标语言示例句对,该字段是 referenceSentenceConfig 对象的一部分。如需了解详情,请参阅 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)

使用数据集进行自适应翻译

如需使用包含翻译内容的数据集,请先创建数据集并导入句对。如果您已有数据集,则可以使用该数据集请求自适应翻译。该数据集将保留在项目中,直到您将其删除。

  1. 创建用于导入示例翻译的数据集。

    源和目标语言必须与您要在翻译中使用的语言相匹配。如需了解详情,请参阅 adaptiveMtDataset.create 方法。

    REST

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_NUMBER_OR_ID:您的 Google Cloud 项目的数字或字母数字 ID
    • LOCATION:源数据集所在的区域,例如 us-central1
    • DATASET_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:要在其中导入数据的数据集的唯一标识符。
    • 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 用于自定义翻译的数据集来请求自适应翻译。

    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)

后续步骤