Rilevamento delle lingue (di base)

Questo documento descrive come utilizzare Cloud Translation - Basic (v2) per rilevare la lingua di una stringa.

Prima di iniziare

Prima di poter iniziare a utilizzare l'API Cloud Translation, devi avere un progetto in cui è attivata l'API Cloud Translation e devi disporre delle credenziali appropriate. Puoi anche installare librerie client per linguaggi di programmazione comuni per aiutarti a effettuare chiamate all'API. Per ulteriori informazioni, consulta la pagina Configurazione.

Rilevamento della lingua di una stringa di testo

Puoi rilevare la lingua di una stringa di testo inviando una richiesta HTTP utilizzando un URL del seguente formato:

https://translation.googleapis.com/language/translate/v2/detect

Rilevamento della lingua di una singola stringa

REST

Per rilevare la lingua di un testo, effettua una richiesta POST e fornisci il corpo della richiesta appropriato. Di seguito è riportato un esempio di richiesta POST con curl o PowerShell. L'esempio utilizza il token di accesso per un account di servizio configurato per il progetto utilizzando Google Cloud CLI. Per istruzioni su come installare Google Cloud CLI, configurare un progetto con un account di servizio e ottenere un token di accesso, consulta la pagina Configurazione.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud

Metodo HTTP e URL:

POST https://translation.googleapis.com/language/translate/v2/detect

Corpo JSON della richiesta:

{
  "q": "Mi comida favorita es una enchilada."
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "data": {
    "detections": [
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "es"
        }
      ]
    ]
  }
}

Nella risposta, language è il codice lingua rilevato. Gli altri due campi, isReliable e confidence, sono campi ritirati inclusi per la compatibilità con le versioni precedenti. Ti consigliamo di non basare decisioni o soglie sui relativi valori.

Go

Prima di provare questo esempio, segui le istruzioni di configurazione di Go riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Go.

Per autenticarti a Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

import (
	"context"
	"fmt"

	"cloud.google.com/go/translate"
)

func detectLanguage(text string) (*translate.Detection, error) {
	// text := "こんにちは世界"
	ctx := context.Background()
	client, err := translate.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("translate.NewClient: %w", err)
	}
	defer client.Close()
	lang, err := client.DetectLanguage(ctx, []string{text})
	if err != nil {
		return nil, fmt.Errorf("DetectLanguage: %w", err)
	}
	if len(lang) == 0 || len(lang[0]) == 0 {
		return nil, fmt.Errorf("DetectLanguage return value empty")
	}
	return &lang[0][0], nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Java.

Per autenticarti a Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

// TODO(developer): Uncomment these lines.
// import com.google.cloud.translate.*;
// Translate translate = TranslateOptions.getDefaultInstance().getService();

List<String> texts = new LinkedList<>();
texts.add("Hello, World!");
texts.add("¡Hola Mundo!");
List<Detection> detections = translate.detect(texts);

System.out.println("Language(s) detected:");
for (Detection detection : detections) {
  System.out.printf("\t%s\n", detection);
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.

Per autenticarti a Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

// Imports the Google Cloud client library
const {Translate} = require('@google-cloud/translate').v2;

// Creates a client
const translate = new Translate();

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const text = 'The text for which to detect language, e.g. Hello, world!';

// Detects the language. "text" can be a string for detecting the language of
// a single piece of text, or an array of strings for detecting the languages
// of multiple texts.
async function detectLanguage() {
  let [detections] = await translate.detect(text);
  detections = Array.isArray(detections) ? detections : [detections];
  console.log('Detections:');
  detections.forEach(detection => {
    console.log(`${detection.input} => ${detection.language}`);
  });
}

detectLanguage();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.

Per autenticarti a Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def detect_language(text: str) -> dict:
    """Detects the text's language."""
    from google.cloud import translate_v2 as translate

    translate_client = translate.Client()

    # Text can also be a sequence of strings, in which case this method
    # will return a sequence of results for each text.
    result = translate_client.detect_language(text)

    print(f"Text: {text}")
    print("Confidence: {}".format(result["confidence"]))
    print("Language: {}".format(result["language"]))

    return result

Linguaggi aggiuntivi

C#: segui le istruzioni di configurazione per C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di Cloud Translation per .NET.

PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di Cloud Translation per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi consulta la documentazione di riferimento di Cloud Translation per Ruby.

Rilevamento della lingua di più di una stringa

REST

Per rilevare la lingua di più di una stringa, utilizza il parametro q per specificare ogni stringa. Questo esempio passa due stringhe separate per il rilevamento:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud

Metodo HTTP e URL:

POST https://translation.googleapis.com/language/translate/v2/detect

Corpo JSON della richiesta:

{
  "q": ["Hello world", "我的名字叫傑夫"]
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "data": {
    "detections": [
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "en"
        }
      ],
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "zh-TW"
        }
      ]
    ]
  }
}

In questo caso, la risposta contiene due rilevamenti, nello stesso ordine in cui le stringhe di origine corrispondenti sono state fornite nella richiesta.

Go

Per rilevare la lingua di più testi, includi più stringhe nel segmento passato al metodo Client#DetectLanguage mostrato nell' esempio precedente.

Java

Per rilevare la lingua di più testi, passa un elenco di stringhe al metodo Translate#detect mostrato nell'esempio precedente.

Node.js

Per rilevare la lingua di più testi, passa semplicemente un array di stringhe al metodo Translate#detect mostrato nell'esempio precedente.

Python

Per rilevare la lingua di più testi, passa un elenco di stringhe al metodo Client#detect_language mostrato nell'esempio precedente.

Linguaggi aggiuntivi

C#: segui le istruzioni di configurazione per C# riportate nella pagina delle librerie client e consulta la documentazione di riferimento di Cloud Translation per .NET.

PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di Cloud Translation per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi consulta la documentazione di riferimento di Cloud Translation per Ruby.

Ruby

Per rilevare la lingua di più testi, passa semplicemente più stringhe al metodo Translate#detect mostrato nell'esempio precedente.

Risorse aggiuntive