Python के साथ Translation API का इस्तेमाल करना

1. खास जानकारी

1e2217da0416d129.png

Translation API बेहतरीन बेहतर मशीनी अनुवाद सुविधा का इस्तेमाल करके किसी आर्बिट्रेरी स्ट्रिंग को किसी भी काम करने वाली भाषा में डायनैमिक तरीके से अनुवाद करने के लिए एक आसान, प्रोग्रामैटिक इंटरफ़ेस उपलब्ध कराता है. जिन मामलों में सोर्स भाषा के बारे में जानकारी नहीं है, तब भी इनका इस्तेमाल किसी भाषा का पता लगाने के लिए किया जा सकता है.

इस ट्यूटोरियल में, आपको Python के साथ Translation API का इस्तेमाल करने का तरीका बताया जाएगा. इसमें दिए गए कॉन्सेप्ट में, उपलब्ध भाषाओं की सूची बनाने, टेक्स्ट का अनुवाद करने, और दिए गए टेक्स्ट की भाषा का पता लगाने का तरीका शामिल है.

आपको इनके बारे में जानकारी मिलेगी

  • अपना एनवायरमेंट सेट अप करने का तरीका
  • उपलब्ध भाषाओं की सूची बनाने का तरीका
  • पाठ का अनुवाद कैसे करें
  • भाषाओं का पता लगाने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud प्रोजेक्ट
  • Chrome या Firefox जैसा ब्राउज़र
  • Python का इस्तेमाल करना

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

Python के साथ अपने अनुभव को आप कितनी रेटिंग देंगे?

शुरुआती इंटरमीडिएट कुशल

Google Cloud की सेवाओं का इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको अपना प्रोजेक्ट आईडी बताना होगा. आम तौर पर, इसकी पहचान PROJECT_ID के रूप में की जाती है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. दूसरा तरीका यह है कि आप खुद भी आज़माकर देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. साथ ही, यह प्रोजेक्ट के खत्म होने तक बना रहता है.
  • आपकी जानकारी के लिए, प्रोजेक्ट नंबर नाम की एक तीसरी वैल्यू दी गई है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, बिलिंग से बचने के लिए संसाधनों को बंद करें. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें 853e55310c205094.png पर क्लिक करें.

55efc1aaa7a4d3ad.png

अगर आपने Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको बीच में आने वाली स्क्रीन दिखेगी. इसमें यह बताया जाएगा कि यह क्या है. अगर आपको बीच के लेवल पर मिलने वाली स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.

9c92662c6a846a5c.png

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

9f0e51b578fecce5.png

इस वर्चुअल मशीन में डेवलपमेंट के सभी ज़रूरी टूल मौजूद हैं. इसमें लगातार पांच जीबी की होम डायरेक्ट्री मिलती है और यह Google Cloud में काम करती है. यह नेटवर्क की परफ़ॉर्मेंस और ऑथेंटिकेशन को बेहतर बनाने में मदद करती है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम ब्राउज़र से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है.

  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 में यह कमांड चलाएं:

gcloud services enable translate.googleapis.com

आपको कुछ ऐसा दिखेगा:

Operation "operations/..." finished successfully.

अब, आप Translation API का इस्तेमाल कर सकते हैं!

अपने ऐप्लिकेशन में इस्तेमाल करने के लिए, यहां दिया गया एनवायरमेंट वैरिएबल सेट करें:

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

echo "→ PROJECT_ID: $PROJECT_ID"

अपनी होम डायरेक्ट्री पर जाएं:

cd ~

डिपेंडेंसी को अलग करने के लिए, Python वर्चुअल एनवायरमेंट बनाएं:

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.11.0 ...

अब, आप Translation API क्लाइंट लाइब्रेरी का इस्तेमाल करने के लिए तैयार हैं!

अगले चरणों में, आपको IPython नाम के एक इंटरैक्टिव Python इंटरप्रेटर का इस्तेमाल करना होगा, जिसे आपने पिछले चरण में इंस्टॉल किया था. Cloud Shell में ipython चलाकर सेशन शुरू करें:

ipython

आपको कुछ ऐसा दिखेगा:

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

यहां दिए गए कोड को अपने 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: 136 ----------------------
af        Afrikaans
ak        Akan
sq        Albanian
am        Amharic
ar        Arabic
...
cy        Welsh
xh        Xhosa
yi        Yiddish
yo        Yoruba
zu        Zulu

देखें कि आपको फ़्रेंच में डिसप्ले भाषा में क्या मिलता है:

print_supported_languages("fr")

आपको नीचे दी गई सूची की तरह, फ़्रांसीसी नामों से क्रम से लगाई गई एक जैसी सूची मिलनी चाहिए:

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

कृपया किसी दूसरे भाषा कोड से कोशिश करें.

खास जानकारी

इस चरण में, आप Translation API में उपलब्ध सभी भाषाओं की सूची बना सकते थे. भाषा की सुविधा वाले पेज पर, उन भाषाओं की पूरी सूची देखी जा सकती है जिनका इस्तेमाल किया जा सकता है.

5. टेक्स्ट का अनुवाद करें

आप टेक्स्ट का एक से दूसरी भाषा में अनुवाद करने के लिए, Translate API का इस्तेमाल कर सकते हैं. टेक्स्ट का अनुवाद, न्यूरल मशीन ट्रांसलेशन (एनएमटी) मॉडल का इस्तेमाल करके किया जाता है. अगर एनएमटी मॉडल, अनुरोध की गई भाषा के अनुवाद वाले जोड़े के साथ काम नहीं करता है, तो फ़्रेज़-आधारित मशीन ट्रांसलेशन (पीबीएमटी) मॉडल का इस्तेमाल किया जाता है. 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. भाषाओं का पता लगाएं

किसी टेक्स्ट स्ट्रिंग की भाषा का पता लगाने के लिए, Translate 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:  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    | 안녕하세요 세계!

खास जानकारी

इस चरण में, आपने Translation API का इस्तेमाल करके किसी टेक्स्ट की भाषा की पहचान की. भाषाओं का पता लगाने के बारे में और पढ़ें.

7. बधाई हो!

1e2217da0416d129.png

आपने Python का इस्तेमाल करके Translation API को इस्तेमाल करने का तरीका सीखा!

खाली करने के लिए जगह

Cloud Shell की मदद से, अपने डेवलपमेंट एनवायरमेंट को खाली करने के लिए:

  • अगर आप अब भी अपने IPython सेशन में हैं, तो शेल पर वापस जाएं: exit
  • Python वर्चुअल एनवायरमेंट का इस्तेमाल बंद करें: deactivate
  • अपना वर्चुअल एनवायरमेंट फ़ोल्डर मिटाएं: cd ~ ; rm -rf ./venv-translate

Cloud Shell से अपना Google Cloud प्रोजेक्ट मिटाने के लिए:

  • अपना मौजूदा प्रोजेक्ट आईडी वापस पाएं: PROJECT_ID=$(gcloud config get-value core/project)
  • पक्का करें कि यह वही प्रोजेक्ट है जिसे आपको मिटाना है: echo $PROJECT_ID
  • प्रोजेक्ट मिटाएं: gcloud projects delete $PROJECT_ID

ज़्यादा जानें

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.