Menggunakan Translation API dengan Python

1. Ringkasan

1e2217da0416d129.pngS

Translation API menyediakan antarmuka yang sederhana dan terprogram untuk menerjemahkan string arbitrer secara dinamis ke dalam bahasa apa pun yang didukung menggunakan Terjemahan Mesin Neural yang canggih. Alat ini juga dapat digunakan untuk mendeteksi bahasa jika bahasa sumber tidak diketahui.

Dalam tutorial ini, Anda akan menggunakan Translation API dengan Python. Konsep yang dibahas mencakup cara mencantumkan bahasa yang tersedia, menerjemahkan teks, dan mendeteksi bahasa teks tertentu.

Yang akan Anda pelajari

  • Cara menyiapkan lingkungan Anda
  • Cara menampilkan bahasa yang tersedia
  • Cara menerjemahkan teks
  • Cara mendeteksi bahasa

Yang Anda butuhkan

  • Project Google Cloud
  • Browser, seperti Chrome atau Firefox
  • Pemahaman dalam menggunakan Python

Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana penilaian Anda terhadap pengalaman dengan Python?

Pemula Menengah Mahir

Bagaimana Anda menilai pengalaman Anda dengan layanan Google Cloud?

Pemula Menengah Mahir

2. Penyiapan dan persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan secara jarak jauh dari laptop Anda, dalam codelab ini Anda akan menggunakan Cloud Shell, yakni lingkungan command line yang berjalan di Cloud.

Mengaktifkan Cloud Shell

  1. Dari Cloud Console, klik Aktifkan Cloud Shell 853e55310c205094.pngS.

55efc1aaa7a4d3ad.png

Jika ini pertama kalinya Anda memulai Cloud Shell, Anda akan melihat layar perantara yang menjelaskan apa itu Cloud Shell. Jika Anda melihat layar perantara, klik Lanjutkan.

9c92662c6a846a5c.pngS

Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.

9f0e51b578fecce5.pngS

Mesin virtual ini dimuat dengan semua alat pengembangan yang diperlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan dengan browser.

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda telah diautentikasi dan project sudah ditetapkan ke project ID Anda.

  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list

Output perintah

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika tidak, Anda dapat menyetelnya dengan perintah ini:

gcloud config set project <PROJECT_ID>

Output perintah

Updated property [core/project].

3. Penyiapan lingkungan

Sebelum dapat mulai menggunakan Translation API, jalankan perintah berikut di Cloud Shell untuk mengaktifkan API:

gcloud services enable translate.googleapis.com

Anda akan melihat sesuatu seperti ini:

Operation "operations/..." finished successfully.

Sekarang, Anda dapat menggunakan Translation API.

Setel variabel lingkungan berikut (untuk digunakan dalam aplikasi Anda):

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

echo "→ PROJECT_ID: $PROJECT_ID"

Buka direktori utama Anda:

cd ~

Buat lingkungan virtual Python untuk mengisolasi dependensi:

virtualenv venv-translate

Aktifkan lingkungan virtual:

source venv-translate/bin/activate

Instal IPython dan library klien Translation API:

pip install ipython google-cloud-translate

Anda akan melihat sesuatu seperti ini:

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

Sekarang, Anda siap untuk menggunakan library klien Translation API.

Pada langkah berikutnya, Anda akan menggunakan penafsir Python interaktif yang disebut IPython, yang Anda instal di langkah sebelumnya. Mulai sesi dengan menjalankan ipython di Cloud Shell:

ipython

Anda akan melihat sesuatu seperti ini:

Python 3.9.2 (default, Feb 28 2021, 17:03:44)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

Salin kode berikut ke dalam sesi IPython:

from os import environ

from google.cloud import translate


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

Anda siap membuat permintaan pertama dan mencantumkan bahasa yang didukung...

4. Mencantumkan bahasa yang tersedia

Di bagian ini, Anda akan mencantumkan semua bahasa yang tersedia di Translation API.

Untuk mencantumkan bahasa yang tersedia, salin kode berikut ke sesi 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}")
    

Memanggil fungsi:

print_supported_languages("en")

Anda akan mendapatkan tampilan seperti ini:

---------------------- Languages: 136 ----------------------
af        Afrikaans
ak        Akan
sq        Albanian
am        Amharic
ar        Arabic
...
cy        Welsh
xh        Xhosa
yi        Yiddish
yo        Yoruba
zu        Zulu

Lihat apa yang Anda dapatkan dengan bahasa tampilan dalam bahasa Prancis:

print_supported_languages("fr")

Anda akan mendapatkan daftar yang sama, diurutkan dengan nama Prancis, mirip dengan berikut ini:

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

Anda dapat mencoba dengan kode bahasa lain.

Ringkasan

Pada langkah ini, Anda dapat mencantumkan semua bahasa yang tersedia di Translation API. Anda dapat menemukan daftar lengkap bahasa yang didukung di halaman dukungan bahasa.

5. Terjemahkan teks

Anda dapat menggunakan Translation API untuk menerjemahkan teks dari satu bahasa ke bahasa lainnya. Teks diterjemahkan menggunakan model Terjemahan Mesin Neural (NMT). Jika model NMT tidak didukung untuk pasangan terjemahan bahasa yang diminta, model Terjemahan Mesin Berbasis Frasa (PBMT) akan digunakan. Untuk informasi selengkapnya tentang Google Terjemahan dan model terjemahannya, lihat postingan pengumuman NMT.

Untuk menerjemahkan teks, salin kode berikut ke sesi 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]
    

Panggil fungsi untuk menerjemahkan teks yang sama dalam bahasa yang berbeda:

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

Anda akan mendapatkan tampilan berikut:

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

Ringkasan

Pada langkah ini, Anda dapat menggunakan Translation API untuk menerjemahkan teks ke dalam beberapa bahasa. Baca selengkapnya tentang menerjemahkan teks.

6. Deteksi bahasa

Anda juga bisa menggunakan Translation API untuk mendeteksi bahasa string teks.

Salin kode berikut ke dalam sesi IPython:

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

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

    return response.languages[0]
    

Panggil fungsi untuk mendeteksi bahasa kalimat yang berbeda:

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

Anda akan mendapatkan tampilan berikut:

Confidence: 100% | Language: tr    | Selam Dünya!
Confidence:  80% | 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    | 안녕하세요 세계!

Ringkasan

Pada langkah ini, Anda dapat mendeteksi bahasa sebuah teks menggunakan Translation API. Baca selengkapnya tentang cara mendeteksi bahasa.

7. Selamat!

1e2217da0416d129.pngS

Anda telah mempelajari cara menggunakan Translation API dengan Python.

Pembersihan

Untuk membersihkan lingkungan pengembangan Anda, dari Cloud Shell:

  • Jika Anda masih berada dalam sesi IPython, kembali ke shell: exit
  • Berhenti menggunakan lingkungan virtual Python: deactivate
  • Hapus folder lingkungan virtual Anda: cd ~ ; rm -rf ./venv-translate

Untuk menghapus project Google Cloud Anda dari Cloud Shell:

  • Ambil project ID Anda saat ini: PROJECT_ID=$(gcloud config get-value core/project)
  • Pastikan project ini yang ingin Anda hapus: echo $PROJECT_ID
  • Hapus project: gcloud projects delete $PROJECT_ID

Pelajari lebih lanjut

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.