Translation API mit Python verwenden

1. Übersicht

1e2217da0416d129.png

Die Translation API bietet eine einfache programmatische Schnittstelle, mit der beliebige Strings mithilfe moderner neuronaler maschineller Übersetzung dynamisch in eine unterstützte Sprache übersetzt werden können. Sie kann auch verwendet werden, um eine Sprache zu erkennen, wenn die Quellsprache unbekannt ist.

In dieser Anleitung verwenden Sie die Translation API mit Python. Unter anderem erfahren Sie, wie Sie verfügbare Sprachen auflisten, Text übersetzen und die Sprache eines bestimmten Texts erkennen.

Aufgaben in diesem Lab

  • Umgebung einrichten
  • Verfügbare Sprachen auflisten
  • Text übersetzen
  • Sprachen erkennen

Voraussetzungen

  • Ein Google Cloud-Projekt
  • Ein Browser, z. B. Chrome oder Firefox
  • Python-Vorkenntnisse

Umfrage

Wie möchten Sie diese Anleitung verwenden?

Nur durchlesen Durchlesen und die Übungen absolvieren

Wie würden Sie Ihre Erfahrung mit Python bewerten?

Anfänger Fortgeschritten Erfahren

Wie würden Sie Ihre Erfahrung mit den Google Cloud-Diensten bewerten?

Anfänger Fortgeschritten Erfahren

2. Einrichtung und Anforderungen

Einrichtung der Umgebung im eigenen Tempo

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es ist ein Zeichenstring, der von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und kann nach der Festlegung nicht mehr geändert werden. In der Cloud Console wird automatisch ein eindeutiger String generiert. In der Regel spielt es keine Rolle, wie er lautet. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (normalerweise als PROJECT_ID gekennzeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige generieren. Alternativ können Sie Ihr eigenes Konto ausprobieren und prüfen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
  1. Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs ist kostenlos oder kostet nur sehr wenig. Wenn Sie die Ressourcen herunterfahren möchten, um Kosten nach Abschluss dieser Anleitung zu vermeiden, können Sie die von Ihnen erstellten Ressourcen oder das Projekt löschen. Neuen Google Cloud-Nutzern steht das kostenlose Testprogramm mit einem Guthaben von 300$ zur Verfügung.

Cloud Shell starten

Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus nutzen, in diesem Codelab verwenden Sie jedoch Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Cloud Shell aktivieren

  1. Klicken Sie in der Cloud Console auf Cloud Shell aktivieren 853e55310c205094.png.

3c1dabeca90e44e5.png

Wenn Sie Cloud Shell zum ersten Mal starten, wird ein Zwischenbildschirm mit einer Beschreibung angezeigt. Klicken Sie in diesem Fall auf Weiter.

9c92662c6a846a5c.png

Die Bereitstellung und Verbindung mit Cloud Shell sollte nur wenige Minuten dauern.

9f0e51b578fecce5.png

Auf dieser virtuellen Maschine sind alle erforderlichen Entwicklungstools installiert. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Die meisten, wenn nicht alle Aufgaben in diesem Codelab können mit einem Browser erledigt werden.

Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie authentifiziert sind und das Projekt auf Ihre Projekt-ID festgelegt ist.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list

Befehlsausgabe

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project

Befehlsausgabe

[core]
project = <PROJECT_ID>

Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:

gcloud config set project <PROJECT_ID>

Befehlsausgabe

Updated property [core/project].

3. Umgebung einrichten

Bevor Sie die Translation API verwenden können, müssen Sie sie in Cloud Shell aktivieren. Führen Sie dazu den folgenden Befehl aus:

gcloud services enable translate.googleapis.com

Auf dem Bildschirm sollte Folgendes zu sehen sein:

Operation "operations/..." finished successfully.

Sie können jetzt die Translation API verwenden.

Legen Sie die folgende Umgebungsvariable fest, die in Ihrer Anwendung verwendet werden soll:

export PROJECT_ID=$(gcloud config get-value core/project)

echo "PROJECT_ID: $PROJECT_ID"

Rufen Sie Ihr Basisverzeichnis auf:

cd ~

Erstellen Sie eine virtuelle Python-Umgebung, um die Abhängigkeiten zu isolieren:

virtualenv venv-translate

Aktivieren Sie die virtuelle Umgebung:

source venv-translate/bin/activate

Installieren Sie IPython und die Translation API-Clientbibliothek:

pip install ipython google-cloud-translate

Auf dem Bildschirm sollte Folgendes zu sehen sein:

...
Installing collected packages: ..., ipython, google-cloud-translate
Successfully installed ... google-cloud-translate-3.16.0 ...

Jetzt können Sie die Clientbibliothek der Translation API verwenden.

In den nächsten Schritten verwenden Sie den interaktiven Python-Interpreter IPython, den Sie im vorherigen Schritt installiert haben. Starten Sie eine Sitzung, indem Sie in Cloud Shell ipython ausführen:

ipython

Auf dem Bildschirm sollte Folgendes zu sehen sein:

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]:

Kopieren Sie den folgenden Code in Ihre IPython-Sitzung:

from os import environ

from google.cloud import translate


PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"

Sie sind bereit, Ihre erste Anfrage zu senden und die unterstützten Sprachen aufzulisten. 

4. Verfügbare Sprachen auflisten

In diesem Abschnitt listen Sie alle in der Translation API verfügbaren Sprachen auf.

Wenn Sie die verfügbaren Sprachen auflisten möchten, kopieren Sie den folgenden Code in Ihre IPython-Sitzung:

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}")
    

Funktion aufrufen:

print_supported_languages("en")

Die Ausgabe sollte in etwa so aussehen:

---------------------- Languages: 137 ----------------------
af        Afrikaans
sq        Albanian
am        Amharic
ar        Arabic
hy        Armenian
...
cy        Welsh
xh        Xhosa
yi        Yiddish
yo        Yoruba
zu        Zulu

Das bietet die Anzeigesprache Französisch:

print_supported_languages("fr")

Sie sollten dieselbe Liste sehen, sortiert nach den französischen Namen, ähnlich der folgenden:

---------------------- Languages: 137 ----------------------
af        Afrikaans
sq        Albanais
de        Allemand
am        Amharique
en        Anglais
...
vi        Vietnamien
xh        Xhosa
yi        Yiddish
yo        Yoruba
zu        Zoulou

Du kannst es mit einem anderen Sprachcode versuchen.

Zusammenfassung

In diesem Schritt haben Sie alle verfügbaren Sprachen in der Translation API aufgelistet. Eine vollständige Liste der unterstützten Sprachen finden Sie auf der Seite Sprachunterstützung.

5. Text übersetzen

Mit der Translation API können Sie Text von einer Sprache in eine andere übersetzen. Der Text wird mit dem NMÜ-Modell (Neuronale maschinelle Übersetzung) übersetzt. Wenn eine Übersetzung mithilfe des NMT-Modells für das angeforderte Sprachenpaar nicht unterstützt wird, wird das PBMT-Modell (Phrase-Based Machine Translation) verwendet. Weitere Informationen zu Google Translate und seinen Übersetzungsmodellen finden Sie im Ankündigungsartikel zu NMÜ.

Wenn Sie Text übersetzen möchten, kopieren Sie den folgenden Code in Ihre IPython-Sitzung:

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]
    

Rufen Sie die Funktion auf, um denselben Text in verschiedene Sprachen zu übersetzen:

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}")
    

Sie sollten Folgendes sehen:

------------------ 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 : 안녕하세요!

Zusammenfassung

In diesem Schritt haben Sie mit der Translation API Text in mehrere Sprachen übersetzt. Weitere Informationen zum Übersetzen von Text

6. Sprachen erkennen

Sie können auch die Translation API verwenden, um die Sprache eines Textstrings zu erkennen.

Kopieren Sie den folgenden Code in Ihre IPython-Sitzung:

def detect_language(text: str) -> translate.DetectedLanguage:
    client = translate.TranslationServiceClient()

    response = client.detect_language(parent=PARENT, content=text)

    return response.languages[0]
    

Rufen Sie die Funktion auf, um die Sprache verschiedener Sätze zu erkennen:

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=" | ",
    )
    

Sie sollten Folgendes sehen:

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    | 안녕하세요!

Zusammenfassung

In diesem Schritt haben Sie mit der Translation API die Sprache eines Texts erkannt. Weitere Informationen zum Erkennen von Sprachen

7. Glückwunsch!

1e2217da0416d129.png

Sie haben gelernt, wie Sie die Translation API mit Python verwenden.

Aufräumen

So bereinigen Sie Ihre Entwicklungsumgebung in Cloud Shell:

  • Wenn Sie sich noch in der IPython-Sitzung befinden, kehren Sie zur Shell zurück: exit
  • Beenden Sie die Verwendung der virtuellen Python-Umgebung: deactivate
  • Löschen Sie den Ordner der virtuellen Umgebung: cd ~ ; rm -rf ./venv-translate.

So löschen Sie Ihr Google Cloud-Projekt in Cloud Shell:

  • Rufen Sie Ihre aktuelle Projekt-ID ab: PROJECT_ID=$(gcloud config get-value core/project)
  • Prüfen Sie, ob es sich dabei um das Projekt handelt, das Sie löschen möchten: echo $PROJECT_ID
  • Projekt löschen: gcloud projects delete $PROJECT_ID

Weitere Informationen

Lizenz

Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.