检测语言(高级版)

本文档介绍了如何使用 Cloud Translation 高级版检测字符串的语言。

准备工作

在开始使用 Cloud Translation API 之前,您必须具有启用了 Cloud Translation API 的项目,并且必须具有适当的凭据。您还可以安装常用编程语言的客户端库,以便调用 API。如需了解详情,请参阅设置页面。

限制

语言检测不支持语言代码 fr-CR 和 pt-BR。

检测文本字符串的语言

要检测文本字符串的语言,使用以下格式的网址发送 HTTP 请求即可:

https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/global:detectLanguage

检测单个字符串的语言

REST

要检测部分文本的语言,请发出 POST 请求并提供相应的请求正文。下面显示了使用 curl 和 PowerShell 的 POST 请求的示例。该示例使用通过 Google Cloud Google Cloud CLI 为项目设置的服务账号的访问令牌。如需了解有关安装 Google Cloud CLI、使用服务账号设置项目以及获取访问令牌的说明,请参阅设置页面。

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

  • PROJECT_NUMBER_OR_ID:您的 Google Cloud 项目的数字或字母数字 ID

HTTP 方法和网址:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/global:detectLanguage

请求 JSON 正文:

 {    "content":"Доктор Ватсон, иди сюда!" } 

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

 {   "languages": [     {       "languageCode": "ru",       "confidence": 1     }   ] } 
在响应中,languageCode 提供检测到的语言的代码。confidence 的范围从 0 到 1。1 表示置信度为 100%。

Go

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Go 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Go API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

import ( 	"context" 	"fmt" 	"io"  	translate "cloud.google.com/go/translate/apiv3" 	"cloud.google.com/go/translate/apiv3/translatepb" )  // detectLanguage detects the language of a text string. func detectLanguage(w io.Writer, projectID string, text string) error { 	// projectID := "my-project-id" 	// text := "Hello, world!"  	ctx := context.Background() 	client, err := translate.NewTranslationClient(ctx) 	if err != nil { 		return fmt.Errorf("NewTranslationClient: %w", err) 	} 	defer client.Close()  	req := &translatepb.DetectLanguageRequest{ 		Parent:   fmt.Sprintf("projects/%s/locations/global", projectID), 		MimeType: "text/plain", // Mime types: "text/plain", "text/html" 		Source: &translatepb.DetectLanguageRequest_Content{ 			Content: text, 		}, 	}  	resp, err := client.DetectLanguage(ctx, req) 	if err != nil { 		return fmt.Errorf("DetectLanguage: %w", err) 	}  	// Display list of detected languages sorted by detection confidence. 	// The most probable language is first. 	for _, language := range resp.GetLanguages() { 		// The language detected. 		fmt.Fprintf(w, "Language code: %v\n", language.GetLanguageCode()) 		// Confidence of detection result for this language. 		fmt.Fprintf(w, "Confidence: %v\n", language.GetConfidence()) 	}  	return nil } 

Java

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Java 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Java API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

import com.google.cloud.translate.v3.DetectLanguageRequest; import com.google.cloud.translate.v3.DetectLanguageResponse; import com.google.cloud.translate.v3.DetectedLanguage; import com.google.cloud.translate.v3.LocationName; import com.google.cloud.translate.v3.TranslationServiceClient; import java.io.IOException;  public class DetectLanguage {    public static void detectLanguage() throws IOException {     // TODO(developer): Replace these variables before running the sample.     String projectId = "YOUR-PROJECT-ID";     String text = "your-text";      detectLanguage(projectId, text);   }    // Detecting the language of a text string   public static void detectLanguage(String projectId, String text) throws IOException {      // Initialize client that will be used to send requests. This client only needs to be created     // once, and can be reused for multiple requests. After completing all of your requests, call     // the "close" method on the client to safely clean up any remaining background resources.     try (TranslationServiceClient client = TranslationServiceClient.create()) {       // Supported Locations: `global`, [glossary location], or [model location]       // Glossaries must be hosted in `us-central1`       // Custom Models must use the same location as your model. (us-central1)       LocationName parent = LocationName.of(projectId, "global");        // Supported Mime Types: https://cloud.google.com/translate/docs/supported-formats       DetectLanguageRequest request =           DetectLanguageRequest.newBuilder()               .setParent(parent.toString())               .setMimeType("text/plain")               .setContent(text)               .build();        DetectLanguageResponse response = client.detectLanguage(request);        // Display list of detected languages sorted by detection confidence.       // The most probable language is first.       for (DetectedLanguage language : response.getLanguagesList()) {         // The language detected         System.out.printf("Language code: %s\n", language.getLanguageCode());         // Confidence of detection result for this language         System.out.printf("Confidence: %s\n", language.getConfidence());       }     }   } }

Node.js

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Node.js API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

/**  * TODO(developer): Uncomment these variables before running the sample.  */ // const projectId = 'YOUR_PROJECT_ID'; // const location = 'global'; // const text = 'text to translate';  // Imports the Google Cloud Translation library const {TranslationServiceClient} = require('@google-cloud/translate');  // Instantiates a client const translationClient = new TranslationServiceClient();  async function detectLanguage() {   // Construct request   const request = {     parent: `projects/${projectId}/locations/${location}`,     content: text,   };    // Run request   const [response] = await translationClient.detectLanguage(request);    console.log('Detected Languages:');   for (const language of response.languages) {     console.log(`Language Code: ${language.languageCode}`);     console.log(`Confidence: ${language.confidence}`);   } }  detectLanguage();

Python

试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Cloud Translation Python API 参考文档

如需向 Cloud Translation 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证

from google.cloud import translate   def detect_language(     project_id: str = "YOUR_PROJECT_ID", ) -> translate.DetectLanguageResponse:     """Detecting the language of a text string.      Args:         project_id: The GCP project ID.      Returns:         The detected language of the text.     """     client = translate.TranslationServiceClient()      location = "global"      parent = f"projects/{project_id}/locations/{location}"      # Detail on supported types can be found here:     # https://cloud.google.com/translate/docs/supported-formats     response = client.detect_language(         content="Hello, world!",         parent=parent,         mime_type="text/plain",  # mime types: text/plain, text/html     )      # Display list of detected languages sorted by detection confidence.     # The most probable language is first.     for language in response.languages:         # The language detected         print(f"Language code: {language.language_code}")         # Confidence of detection result for this language         print(f"Confidence: {language.confidence}")      return response  

其他语言

C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Cloud Translation 参考文档

PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 Cloud Translation 参考文档

Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Cloud Translation 参考文档

其他资源

  • 如需有关解决常见问题或错误的帮助,请参阅问题排查页面。