Python ile Translation API'yi kullanma

1. Genel Bakış

1e2217da0416d129.png

Translation API, en gelişmiş nöral makine çevirisini kullanarak rastgele bir dizenin desteklenen herhangi bir dile dinamik olarak çevrilmesi için basit ve programatik bir arayüz sunar. Ayrıca, kaynak dilin bilinmediği durumlarda bir dili algılamak için de kullanılabilir.

Bu eğitimde, Translation API'yi Python ile kullanacaksınız. Kullanılabilir dillerin nasıl listeleneceği, metnin nasıl çevrileceği ve belirli bir metnin dilinin nasıl algılanacağı gibi konular ele alınmaktadır.

Neler öğreneceksiniz?

  • Ortamınızı ayarlama
  • Kullanılabilir dilleri listeleme
  • Metin nasıl çevrilir?
  • Dilleri algılama

Gerekenler

  • Google Cloud projesi
  • Chrome veya Firefox gibi bir tarayıcı
  • Python hakkında bilgi sahibi olma

Anket

Bu eğitimi nasıl kullanacaksınız?

Yalnızca okuyun Okuyup alıştırmaları tamamlayın

Python ile ilgili deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta Uzman

Google Cloud hizmetleriyle ilgili deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta Seviye Uzman

2. Kurulum ve şartlar

Kendine ait tempoda ortam oluşturma

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu belirtmek isteriz. Bu üç değer hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmak çok pahalı değildir. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak istiyorsanız oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz deneme programına uygundur.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir olsa da bu kod laboratuvarında bulutta çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız.

Cloud Shell'i etkinleştirme

  1. Cloud Console'da Cloud Shell'i etkinleştir 'i 853e55310c205094.png tıklayın.

3c1dabeca90e44e5.png

Cloud Shell'i ilk kez başlatıyorsanız Cloud Shell'in ne olduğunu açıklayan bir ara ekran gösterilir. Ara ekran gösterildiyse Devam'ı tıklayın.

9c92662c6a846a5c.png

Cloud Shell'e bağlanmak ve ortam oluşturmak yalnızca birkaç dakikanızı alır.

9f0e51b578fecce5.png

Bu sanal makinede, ihtiyaç duyulan tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu kod laboratuvarındaki çalışmanızın tamamı olmasa da büyük bir kısmı tarayıcıda yapılabilir.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını görürsünüz.

  1. Kimliğinizi doğrulamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud auth list

Komut çıkışı

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project

Komut çıkışı

[core]
project = <PROJECT_ID>

Aksi takdirde aşağıdaki komutla ayarlayabilirsiniz:

gcloud config set project <PROJECT_ID>

Komut çıkışı

Updated property [core/project].

3. Ortam kurulumu

Translation API'yi kullanmaya başlamadan önce API'yi etkinleştirmek için Cloud Shell'de aşağıdaki komutu çalıştırın:

gcloud services enable translate.googleapis.com

Aşağıdakine benzer bir tablo görürsünüz:

Operation "operations/..." finished successfully.

Artık Translation API'yi kullanabilirsiniz.

Aşağıdaki ortam değişkenini ayarlayın (uygulamanızda kullanılacak):

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

echo "PROJECT_ID: $PROJECT_ID"

Ana dizininize gidin:

cd ~

Bağımlılıkları izole etmek için bir Python sanal ortamı oluşturun:

virtualenv venv-translate

Sanal ortamı etkinleştirin:

source venv-translate/bin/activate

IPython ve Translation API istemci kitaplığını yükleyin:

pip install ipython google-cloud-translate

Aşağıdakine benzer bir tablo görürsünüz:

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

Artık Translation API istemci kitaplığını kullanmaya hazırsınız.

Sonraki adımlarda, önceki adımda yüklediğiniz IPython adlı etkileşimli bir Python yorumlayıcısı kullanacaksınız. Cloud Shell'de ipython komutunu çalıştırarak oturum başlatın:

ipython

Aşağıdakine benzer bir tablo görürsünüz:

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

Aşağıdaki kodu IPython oturumunuza kopyalayın:

from os import environ

from google.cloud import translate


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

İlk isteğinizi göndermeye ve desteklenen dilleri listelemeye hazırsınız...

4. Kullanılabilir dilleri listeleme

Bu bölümde, Translation API'de kullanılabilen tüm dilleri listeleyebilirsiniz.

Kullanılabilir dilleri listelemek için aşağıdaki kodu IPython oturumunuza kopyalayın:

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

İşlevi çağırın:

print_supported_languages("en")

Şuna benzer bir sonuç alırsınız:

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

Fransızca görüntüleme dilini kullanarak neler elde edebileceğinize göz atın:

print_supported_languages("fr")

Aşağıdakine benzer şekilde, Fransızca adlarla sıralanmış aynı listeyi alırsınız:

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

Başka bir dil kodu ile deneyebilirsiniz.

Özet

Bu adımda, Translation API'de kullanılabilen tüm dilleri listelediniz. Desteklenen dillerin tam listesini dil desteği sayfasında bulabilirsiniz.

5. Metin çevirme

Metni bir dilden başka bir dile çevirmek için Translation API'yi kullanabilirsiniz. Metin, Nöral Makine Çevirisi (NMT) modeli kullanılarak çevrilir. İstenen dil çevirisi çifti için NMT modeli desteklenmiyorsa Kelime Tabanlı Makine Çevirisi (PBMT) modeli kullanılır. Google Çeviri ve çeviri modelleri hakkında daha fazla bilgi için NMT duyuru yayınını inceleyin.

Metni çevirmek için aşağıdaki kodu IPython oturumunuza kopyalayın:

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]
    

Aynı metni farklı dillere çevirmek için işlevi çağırın:

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

Aşağıdakileri göreceksiniz:

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

Özet

Bu adımda, metni birden fazla dile çevirmek için Translation API'yi kullanabildiniz. Metin çevirme hakkında daha fazla bilgi edinin.

6. Dilleri algılama

Bir metin dizesinin dilini tespit etmek için Translation API'yi de kullanabilirsiniz.

Aşağıdaki kodu IPython oturumunuza kopyalayın:

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

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

    return response.languages[0]
    

Farklı cümlelerin dilini algılamak için işlevi çağırın:

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

Aşağıdakileri göreceksiniz:

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

Özet

Bu adımda, Translation API'yi kullanarak bir metnin dilini tespit edebildiniz. Dil algılama hakkında daha fazla bilgi edinin.

7. Tebrikler!

1e2217da0416d129.png

Python'u kullanarak Translation API'yi nasıl kullanacağınızı öğrendiniz.

Temizleme

Geliştirme ortamınızı temizlemek için Cloud Shell'de:

  • IPython oturumunuzdaysanız kabuğa geri dönün: exit
  • Python sanal ortamını kullanmayı bırakın: deactivate
  • Sanal ortam klasörünüzü silin: cd ~ ; rm -rf ./venv-translate

Google Cloud projenizi silmek için Cloud Shell'de:

  • Geçerli proje kimliğinizi alın: PROJECT_ID=$(gcloud config get-value core/project)
  • Silmek istediğiniz projenin bu olduğundan emin olun: echo $PROJECT_ID
  • Projeyi silme: gcloud projects delete $PROJECT_ID

Daha fazla bilgi

Lisans

Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.