1. Panoramica
L'API Translation offre un'interfaccia programmatica semplice per tradurre dinamicamente una stringa arbitraria in qualsiasi lingua supportata utilizzando un sistema di traduzione automatica neurale all'avanguardia. Può essere utilizzata anche per rilevare una lingua nei casi in cui la lingua di origine sia sconosciuta.
In questo tutorial utilizzerai l'API Translation con Python. I concetti trattati includono come elencare le lingue disponibili, tradurre il testo e rilevare la lingua di un determinato testo.
Cosa imparerai a fare
- Come configurare l'ambiente
- Come elencare le lingue disponibili
- Come tradurre testo
- Come rilevare le lingue
Che cosa ti serve
- Un progetto Google Cloud
- Un browser, ad esempio Chrome o Firefox
- Familiarità con l'utilizzo di Python
Sondaggio
Come utilizzerai questo tutorial?
Come valuteresti la tua esperienza con Python?
Come valuteresti la tua esperienza con i servizi Google Cloud?
2. Configurazione e requisiti
Configurazione dell'ambiente a tuo ritmo
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.
- Il nome del progetto è il nome visualizzato per i partecipanti al progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
- L'ID progetto è univoco per tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca; di solito non ti interessa quale sia. Nella maggior parte dei codelab, dovrai fare riferimento al tuo ID progetto (in genere identificato come
PROJECT_ID
). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare il tuo e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane invariato per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un Numero progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare le API/risorse Cloud. La partecipazione a questo codelab non ha costi, o quasi. Per arrestare le risorse ed evitare di incorrere in fatturazione al termine di questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud sono idonei al programma Prova senza costi di 300$.
Avvia Cloud Shell
Sebbene Google Cloud possa essere utilizzato da remoto dal tuo laptop, in questo codelab utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Attiva Cloud Shell
- Nella console Cloud, fai clic su Attiva Cloud Shell
.
Se è la prima volta che avvii Cloud Shell, viene visualizzata una schermata intermedia che descrive di cosa si tratta. Se viene visualizzata una schermata intermedia, fai clic su Continua.
Dovrebbero bastare pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.
Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte, se non tutto, del lavoro in questo codelab può essere svolto con un browser.
Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è già autenticato e il progetto è già impostato sul tuo ID progetto.
- Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list
Output comando
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Esegui il seguente comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto:
gcloud config list project
Output comando
[core] project = <PROJECT_ID>
In caso contrario, puoi impostarlo con questo comando:
gcloud config set project <PROJECT_ID>
Output comando
Updated property [core/project].
3. Configurazione dell'ambiente
Prima di poter iniziare a utilizzare l'API Translation, esegui il seguente comando in Cloud Shell per attivarla:
gcloud services enable translate.googleapis.com
Il risultato dovrebbe essere simile a questo:
Operation "operations/..." finished successfully.
Ora puoi utilizzare l'API Translation.
Imposta la seguente variabile di ambiente (da utilizzare nell'applicazione):
export PROJECT_ID=$(gcloud config get-value core/project)
echo "PROJECT_ID: $PROJECT_ID"
Vai alla home directory:
cd ~
Crea un ambiente virtuale Python per isolare le dipendenze:
virtualenv venv-translate
Attiva l'ambiente virtuale:
source venv-translate/bin/activate
Installa IPython e la libreria client dell'API Translation:
pip install ipython google-cloud-translate
Il risultato dovrebbe essere simile a questo:
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
Ora puoi utilizzare la libreria client dell'API Translation.
Nei passaggi successivi, utilizzerai un interprete Python interattivo chiamato IPython, che hai installato nel passaggio precedente. Avvia una sessione eseguendo ipython
in Cloud Shell:
ipython
Il risultato dovrebbe essere simile a questo:
Python 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.27.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Copia il seguente codice nella sessione IPython:
from os import environ
from google.cloud import translate
PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"
Ora puoi effettuare la tua prima richiesta e elencare le lingue supportate…
4. Elenco delle lingue disponibili
In questa sezione, elencherai tutte le lingue disponibili nell'API Translation.
Per elencare le lingue disponibili, copia il seguente codice nella sessione IPython:
def print_supported_languages(display_language_code: str):
client = translate.TranslationServiceClient()
response = client.get_supported_languages(
parent=PARENT,
display_language_code=display_language_code,
)
languages = response.languages
print(f" Languages: {len(languages)} ".center(60, "-"))
for language in languages:
language_code = language.language_code
display_name = language.display_name
print(f"{language_code:10}{display_name}")
Chiama la funzione:
print_supported_languages("en")
Dovresti visualizzare qualcosa di simile a questo:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanian am Amharic ar Arabic hy Armenian ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
Scopri cosa puoi ottenere con la lingua di visualizzazione in francese:
print_supported_languages("fr")
Dovresti visualizzare lo stesso elenco, ordinato con i nomi francesi, simile al seguente:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yoruba zu Zoulou
Puoi provare con un altro codice lingua.
Riepilogo
In questo passaggio, hai elencato tutte le lingue disponibili nell'API Translation. Puoi trovare l'elenco completo delle lingue supportate nella pagina Supporto delle lingue.
5. Traduci testo
Puoi utilizzare l'API Translation per tradurre il testo da una lingua all'altra. Il testo viene tradotto utilizzando il modello di traduzione automatica neurale (NMT). Se il modello NMT non è supportato per la coppia di lingue di traduzione richiesta, viene utilizzato il modello di traduzione automatica basata su frasi (PBMT). Per saperne di più su Google Traduttore e sui suoi modelli di traduzione, consulta il post di annuncio sull'NMT.
Per tradurre il testo, copia il seguente codice nella sessione IPython:
def translate_text(text: str, target_language_code: str) -> translate.Translation:
client = translate.TranslationServiceClient()
response = client.translate_text(
parent=PARENT,
contents=[text],
target_language_code=target_language_code,
)
return response.translations[0]
Chiama la funzione per tradurre lo stesso testo in lingue diverse:
text = "Hello World!"
target_languages = ["tr", "de", "es", "it", "el", "zh", "ja", "ko"]
print(f" {text} ".center(50, "-"))
for target_language in target_languages:
translation = translate_text(text, target_language)
source_language = translation.detected_language_code
translated_text = translation.translated_text
print(f"{source_language} → {target_language} : {translated_text}")
Dovresti visualizzare quanto segue:
------------------ Hello World! ------------------ en → tr : Selam Dünya! en → de : Hallo Welt! en → es : ¡Hola Mundo! en → it : Ciao mondo! en → el : Γεια σου Κόσμο! en → zh : 你好世界! en → ja : 「こんにちは世界」 en → ko : 안녕하세요!
Riepilogo
In questo passaggio hai potuto utilizzare l'API Translation per tradurre il testo in più lingue. Scopri di più sulla traduzione del testo.
6. Rileva le lingue
Puoi anche utilizzare l'API Translation per rilevare la lingua di una stringa di testo.
Copia il seguente codice nella sessione IPython:
def detect_language(text: str) -> translate.DetectedLanguage:
client = translate.TranslationServiceClient()
response = client.detect_language(parent=PARENT, content=text)
return response.languages[0]
Chiama la funzione per rilevare la lingua di frasi diverse:
sentences = [
"Selam Dünya!",
"Hallo Welt!",
"¡Hola Mundo!",
"Ciao mondo!",
"Γεια σου Κόσμο!",
"你好世界!",
"「こんにちは世界」",
"안녕하세요!",
]
for sentence in sentences:
language = detect_language(sentence)
confidence = language.confidence
language_code = language.language_code
print(
f"Confidence: {confidence:4.0%}",
f"Language: {language_code:5}",
sentence,
sep=" | ",
)
Dovresti visualizzare quanto segue:
Confidence: 100% | Language: tr | Selam Dünya! Confidence: 81% | Language: de | Hallo Welt! Confidence: 100% | Language: es | ¡Hola Mundo! Confidence: 100% | Language: it | Ciao mondo! Confidence: 100% | Language: el | Γεια σου Κόσμο! Confidence: 100% | Language: zh-CN | 你好世界! Confidence: 100% | Language: ja | 「こんにちは世界」 Confidence: 100% | Language: ko | 안녕하세요!
Riepilogo
In questo passaggio, hai rilevato la lingua di un testo utilizzando l'API Translation. Scopri di più sul rilevamento delle lingue.
7. Complimenti!
Hai imparato a utilizzare l'API Translation con Python.
Pulizia
Per ripulire l'ambiente di sviluppo, da Cloud Shell:
- Se sei ancora nella sessione IPython, torna alla shell:
exit
- Interrompi l'utilizzo dell'ambiente virtuale Python:
deactivate
- Elimina la cartella dell'ambiente virtuale:
cd ~ ; rm -rf ./venv-translate
Per eliminare il progetto Google Cloud, da Cloud Shell:
- Recupera l'ID progetto corrente:
PROJECT_ID=$(gcloud config get-value core/project)
- Assicurati che si tratti del progetto che vuoi eliminare:
echo $PROJECT_ID
- Elimina il progetto:
gcloud projects delete $PROJECT_ID
Scopri di più
- Documentazione di Cloud Translation: https://cloud.google.com/translate/docs
- Python su Google Cloud: https://cloud.google.com/python
- Librerie client di Cloud per Python: https://github.com/googleapis/google-cloud-python
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.