使用自适应翻译功能翻译文本
请求自适应翻译时,您需提供要翻译的文本以及 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。
进入 AutoML Translation 控制台。
选择本地文件或 Cloud Storage 中包含示例翻译的文件。
选择文件后,Cloud Translation 会根据您的数据设置源语言和目标语言字段。例如,如果您导入英语译葡萄牙语数据集,则控制台仅支持将英语句子翻译为葡萄牙语。
在源语言字段中输入文本。
自适应翻译对输入和输出字符数量有限制。如需了解详情,请参阅“配额”页面上的自适应翻译限制。
如需调整参数,请使用滑块或文本字段设置值:
- 温度 - 控制词元选择的随机程度。温度较低时,预期会获得真实或正确的回复。温度较高时,预期会获得更为多样化或意想不到的结果。
- 示例数 - 设置源数据中用于提示 LLM 的示例数。
选择与 NMT 模型对比,以包含默认 Google NMT 模型的翻译以及自适应翻译输出。
点击翻译。
稍等片刻,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/html
或text/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)
使用数据集进行自适应翻译
如需使用包含翻译内容的数据集,请先创建数据集并导入句对。如果您已有数据集,则可以使用该数据集请求自适应翻译。该数据集将保留在项目中,直到您将其删除。
创建用于导入示例翻译的数据集。
源和目标语言必须与您要在翻译中使用的语言相匹配。如需了解详情,请参阅 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)
创建数据集后,使用 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)
通过提供要翻译的源文本以及 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 方法和网址:
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)