Modèle de traduction automatique neuronale (NMT)
La traduction automatique neuronale (NMT) standard de Google a évolué à partir du système de traduction de réseau neuronal que Google a lancé en novembre 2016, avec de nombreuses améliorations. Elle peut traduire de nombreuses langues en temps réel.
L'ID de son modèle est general/nmt.
Vous pouvez accéder au modèle NMT sans modification via l'API Cloud Translation – Basic ou l'API Cloud Translation – Advanced. Avec l'API Cloud Translation – Advanced, vous pouvez également le personnaliser.
Dans les deux cas, vous devez disposer d'un Google Cloud projet pour lequel l'API Cloud Translation est activée, ainsi que d'identifiants pour effectuer des appels authentifiés. Pour accéder au modèle à l'aide de Python ou d'un autre langage de programmation, installez la bibliothèque cliente v2 ou v3 appropriée.
Dans les exemples présentés ici, PROJECT_ID représente l'ID de votre projet et
REGION_NAME représente le nom technique de la Google Cloud région
dans laquelle vous souhaitez exécuter l'opération de traduction (par exemple, us-central1).
Utilisez les codes ISO-639 pour identifier les langues source
et cible si nécessaire.
Exemple REST de l'API Cloud Translation – Basic
Vous pouvez effectuer un appel REST avec l'API Cloud Translation – Basic pour
TranslateText à l'aide du
modèle NMT. Vous pouvez placer les champs de requête dans un fichier JSON nommé, par exemple, request.json, comme suit :
{
"q": ["Hello world", "My name is Jeff"],
"target": "de"
}
L'API Cloud Translation – Basic est compatible avec le modèle NMT par défaut. Vous n'avez pas besoin de le spécifier. Vous pouvez également spécifier le modèle TLLM standard si vous transmettez son nom de ressource complet. Cloud Translation – Basic n'est pas compatible avec les modèles personnalisés.
Vous pouvez ensuite utiliser une commande curl pour envoyer la requête :
!curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: cloud-ml-translate-e2e-testing" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translate.googleapis.com/language/translate/v2"
La réponse est un document JSON qui se présente comme suit :
{
"data": {
"translations": [
{
"translatedText": "Hallo Welt",
"detectedSourceLanguage": "en"
},
{
"translatedText": "Mein Name ist Jeff",
"detectedSourceLanguage": "en"
}
]
}
}
Exemple Python de l'API Cloud Translation – Basic
Voici un exemple de code Python pour appeler TranslateText sur le modèle NMT à l'aide de l'API Cloud Translation – Basic.
Comme aucune langue source n'est spécifiée, l'API tente de la détecter automatiquement.
def translate_text(
text: str | bytes | list[str] = "¡Hola amigos y amigas!",
target_language: str = "en",
source_language: str | None = None,
) -> dict:
translate_client = translate_v2.Client()
if isinstance(text, bytes):
text = [text.decode("utf-8")]
if isinstance(text, str):
text = [text]
results = translate_client.translate(
values=text,
target_language=target_language,
source_language=source_language
)
for result in results:
if "detectedSourceLanguage" in result:
print(f"Detected source language: {result['detectedSourceLanguage']}")
print(f"Input text: {result['input']}")
print(f"Translated text: {result['translatedText']}")
print()
return results
translate_text()
Voici le résultat :
Detected source language: es
Input text: ¡Hola amigos y amigas!
Translated text: Hello friends!
[{'translatedText': 'Hello friends!',
'detectedSourceLanguage': 'es',
'input': '¡Hola amigos y amigas!'}]
Exemple REST de l'API Cloud Translation – Advanced
Vous pouvez effectuer un appel REST avec l'API Cloud Translation – Advanced pour
TranslateText à l'aide du modèle
NMT par défaut en ne spécifiant aucun modèle ou en
demandant explicitement le modèle NMT. Placez les champs de requête dans un fichier JSON nommé, par exemple, request.json, comme suit :
{
"sourceLanguageCode": "en",
"targetLanguageCode": "ru",
"contents": ["Dr. Watson, come here!", "Bring me some coffee!"],
"model": "projects/PROJECT_ID/locations/REGION_NAME/models/general/nmt"
}
Vous pouvez ensuite utiliser une commande curl pour envoyer la requête :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_NAME:translateText"
La réponse est un document JSON qui se présente comme suit :
{
"translations": [
{
"translatedText": "Доктор Ватсон, иди сюда!",
},
{
"translatedText": "Принеси мне кофе!",
}
]
}
Exemple Python de l'API Cloud Translation – Advanced
def translate():
response = translate_v3.TranslationServiceClient().translate_text(
contents=["Life is short.",
"Art is long."],
target_language_code='fr',
source_language_code='en',
parent=f"projects/{project_id}/locations/us-central1",
model=f"{parent}/models/general/nmt"
)
print(response)
return response
translate()
La réponse est un document JSON qui se présente comme suit :
translations {
translated_text: "La vie est courte."
model: "projects/261347268520/locations/us-central1/models/general/nmt"
}
translations {
translated_text: "L'art est long."
model: "projects/261347268520/locations/us-central1/models/general/nmt"
}