استفاده از Translation API با پایتون

1. بررسی اجمالی

1e2217da0416d129.png

Translation API یک رابط برنامه نویسی ساده برای ترجمه پویا یک رشته دلخواه به هر زبان پشتیبانی شده با استفاده از پیشرفته ترین ترجمه ماشین عصبی فراهم می کند. همچنین می تواند برای تشخیص زبان در مواردی که زبان مبدأ ناشناخته است استفاده شود.

در این آموزش، شما از Translation API با پایتون استفاده خواهید کرد. مفاهیم تحت پوشش شامل نحوه فهرست کردن زبان های موجود، ترجمه متن و تشخیص زبان یک متن معین است.

چیزی که یاد خواهید گرفت

  • چگونه محیط خود را تنظیم کنیم
  • نحوه فهرست کردن زبان های موجود
  • نحوه ترجمه متن
  • چگونه زبان ها را تشخیص دهیم

آنچه شما نیاز دارید

  • یک پروژه Google Cloud
  • مرورگری مانند کروم یا فایرفاکس
  • آشنایی با استفاده از پایتون

نظرسنجی

چگونه از این آموزش استفاده خواهید کرد؟

فقط از طریق آن را بخوانید آن را بخوانید و تمرینات را کامل کنید

تجربه خود را با پایتون چگونه ارزیابی می کنید؟

تازه کار متوسط مسلط

تجربه خود را با خدمات Google Cloud چگونه ارزیابی می کنید؟

تازه کار متوسط مسلط

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

Cloud Shell را فعال کنید

  1. از Cloud Console، روی Activate Cloud Shell کلیک کنید 853e55310c205094.png .

3c1dabeca90e44e5.png

اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.

9c92662c6a846a5c.png

تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.

9f0e51b578fecce5.png

این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می‌کند و در Google Cloud اجرا می‌شود، که عملکرد و احراز هویت شبکه را بسیار افزایش می‌دهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.

پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.

  1. برای تایید احراز هویت، دستور زیر را در Cloud Shell اجرا کنید:
gcloud auth list

خروجی فرمان

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد:
gcloud config list project

خروجی فرمان

[core]
project = <PROJECT_ID>

اگر اینطور نیست، می توانید آن را با این دستور تنظیم کنید:

gcloud config set project <PROJECT_ID>

خروجی فرمان

Updated property [core/project].

3. راه اندازی محیط

قبل از اینکه بتوانید از Translation API استفاده کنید، دستور زیر را در Cloud Shell اجرا کنید تا API فعال شود:

gcloud services enable translate.googleapis.com

شما باید چیزی شبیه به این را ببینید:

Operation "operations/..." finished successfully.

اکنون، می توانید از API ترجمه استفاده کنید!

متغیر محیطی زیر را تنظیم کنید (برای استفاده در برنامه شما):

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

echo "PROJECT_ID: $PROJECT_ID"

به فهرست اصلی خود بروید:

cd ~

یک محیط مجازی پایتون برای جداسازی وابستگی ها ایجاد کنید:

virtualenv venv-translate

فعال کردن محیط مجازی:

source venv-translate/bin/activate

IPython و کتابخانه سرویس گیرنده Translation API را نصب کنید:

pip install ipython google-cloud-translate

شما باید چیزی شبیه به این را ببینید:

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

اکنون، شما آماده استفاده از کتابخانه سرویس گیرنده Translation API هستید!

در مراحل بعدی، از یک مفسر تعاملی پایتون به نام IPython استفاده خواهید کرد که در مرحله قبل آن را نصب کردید. یک جلسه را با اجرای ipython در Cloud Shell شروع کنید:

ipython

شما باید چیزی شبیه به این را ببینید:

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

کد زیر را در جلسه IPython خود کپی کنید:

from os import environ

from google.cloud import translate


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

شما آماده هستید اولین درخواست خود را انجام دهید و زبان های پشتیبانی شده را فهرست کنید...

4. زبان های موجود را فهرست کنید

در این بخش، همه زبان‌های موجود در Translation API را فهرست می‌کنید.

برای فهرست کردن زبان‌های موجود، کد زیر را در جلسه 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}")
    

فراخوانی تابع:

print_supported_languages("en")

شما باید چیزی شبیه به این دریافت کنید:

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

بررسی کنید که با زبان نمایشگر به زبان فرانسوی چه چیزی به دست می آورید:

print_supported_languages("fr")

شما باید همان لیست را دریافت کنید که با نام های فرانسوی مرتب شده است، مشابه موارد زیر:

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

می توانید با کد زبان دیگری امتحان کنید.

خلاصه

در این مرحله، می‌توانید تمام زبان‌های موجود را در Translation API فهرست کنید. می توانید لیست کامل زبان های پشتیبانی شده را در صفحه پشتیبانی زبان بیابید.

5. متن را ترجمه کنید

می توانید از Translation API برای ترجمه متن از یک زبان به زبان دیگر استفاده کنید. متن با استفاده از مدل ترجمه ماشین عصبی (NMT) ترجمه می شود. اگر مدل NMT برای جفت ترجمه زبان درخواستی پشتیبانی نمی شود، از مدل ترجمه ماشینی مبتنی بر عبارت (PBMT) استفاده می شود. برای اطلاعات بیشتر در مورد Google Translate و مدل های ترجمه آن، به پست اعلامیه NMT مراجعه کنید.

برای ترجمه متن، کد زیر را در جلسه 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]
    

برای ترجمه یک متن به زبان های مختلف تابع را فراخوانی کنید:

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

شما باید موارد زیر را دریافت کنید:

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

خلاصه

در این مرحله، می‌توانید از Translation API برای ترجمه متن به چندین زبان استفاده کنید. در مورد ترجمه متن بیشتر بخوانید.

6. تشخیص زبان

همچنین می توانید از Translation API برای تشخیص زبان یک رشته متن استفاده کنید.

کد زیر را در جلسه IPython خود کپی کنید:

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

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

    return response.languages[0]
    

برای تشخیص زبان جملات مختلف تابع را فراخوانی کنید:

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

شما باید موارد زیر را دریافت کنید:

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

خلاصه

در این مرحله با استفاده از Translation API توانستید زبان یک متن را تشخیص دهید. درباره تشخیص زبان ها بیشتر بخوانید.

7. تبریک می گویم!

1e2217da0416d129.png

شما یاد گرفتید که چگونه از API ترجمه با استفاده از پایتون استفاده کنید!

تمیز کردن

برای پاکسازی محیط توسعه خود، از Cloud Shell:

  • اگر هنوز در جلسه IPython خود هستید، به پوسته برگردید: exit
  • استفاده از محیط مجازی پایتون را متوقف کنید: deactivate
  • پوشه محیط مجازی خود را حذف کنید: cd ~ ; rm -rf ./venv-translate

برای حذف پروژه Google Cloud خود از Cloud Shell:

  • شناسه پروژه فعلی خود را بازیابی کنید: PROJECT_ID=$(gcloud config get-value core/project)
  • مطمئن شوید که این پروژه ای است که می خواهید حذف کنید: echo $PROJECT_ID
  • پروژه را حذف کنید: gcloud projects delete $PROJECT_ID

بیشتر بدانید

مجوز

این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.