使用 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。
前往 AutoML Translation 主控台。
選取包含範例翻譯的本機檔案或 Cloud Storage 檔案。
選取檔案後,Cloud Translation 會根據資料設定「原文語言」和「譯文語言」欄位。舉例來說,如果您匯入英葡資料集,控制台只會將英文句子翻譯成葡萄牙文。
在來源語言欄位中輸入文字。
自動調整翻譯功能對輸入和輸出字元數設有限制。詳情請參閱「配額」頁面的自適應翻譯限制。
如要調整參數,請使用滑桿或文字欄位設定值:
- 溫度:控制選取詞元的隨機程度。 如果溫度參數較低,生成的回覆會較為正確或適當。如果溫度參數較高,可能會生成多樣化或預料之外的結果。
- 範例數量:設定要從來源資料中使用的範例數量,以提示 LLM。
選取「與 NMT 模型比較」,即可一併查看預設 Google NMT 模型的翻譯結果和適應性翻譯輸出內容。
按一下 [翻譯]。
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/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
在試用這個範例之前,請先按照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)
使用資料集進行適應性翻譯
如要使用含翻譯內容的資料集,請先建立資料集並匯入句子配對。如果您已有資料集,可以要求使用該資料集進行適應性翻譯。資料集會保留在專案中,直到您刪除為止。
建立資料集,並匯入範例翻譯。
來源和目標語言必須與您打算在翻譯中使用的語言一致。詳情請參閱 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)
建立資料集後,請從 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)
提供要翻譯的來源文字,以及 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
在試用這個範例之前,請先按照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)
後續步驟
- 搭配自動調整翻譯功能使用字彙表
- 管理資料集 (僅限 API)