পাইথনের সাথে অনুবাদ API ব্যবহার করা

1. ওভারভিউ

1e2217da0416d129.png

অনুবাদ API অত্যাধুনিক নিউরাল মেশিন অনুবাদ ব্যবহার করে যেকোনো সমর্থিত ভাষায় একটি নির্বিচারী স্ট্রিংকে গতিশীলভাবে অনুবাদ করার জন্য একটি সহজ, প্রোগ্রাম্যাটিক ইন্টারফেস প্রদান করে। উত্স ভাষা অজানা ক্ষেত্রে এটি একটি ভাষা সনাক্ত করতে ব্যবহার করা যেতে পারে।

এই টিউটোরিয়ালে, আপনি পাইথনের সাথে অনুবাদ API ব্যবহার করবেন। আচ্ছাদিত ধারণাগুলি�� মধ্যে রয়েছে কীভাবে উপলব্ধ ভাষাগুলি তালিকাভুক্ত করা যায়, পাঠ্য অনুবাদ করা যায় এবং একটি প্রদত্ত পাঠ্যের ভাষা সনাক্ত করা যায়।

আপনি কি শিখবেন

  • আপনার পরিবেশ কিভাবে সেট আপ করবেন
  • উপলব্ধ ভাষাগুলি কীভাবে তালিকাভুক্ত করবেন
  • কিভাবে পাঠ্য অনুবাদ করতে হয়
  • কিভাবে ভাষা সনাক্ত করতে হয়

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড প্রকল্প
  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • পাইথন ব্যবহার করে পরিচিতি

সমীক্ষা

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

আপনি Google ক্লাউড পরিষেবাগুলির সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জ��্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 853e55310c205094.png .

55efc1aaa7a4d3ad.png

যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।

9c92662c6a846a5c.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

9f0e51b578fecce5.png

এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি এ��টি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

3. পরিবেশ সেটআপ

আপনি অনুবাদ API ব্যবহার শুরু করার আগে, 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 এবং অনুবাদ API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন:

pip install ipython google-cloud-translate

আপনি এই মত কিছু দেখতে হবে:

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

এখন, আপনি অনুবাদ API ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য প্রস্তুত!

পরবর্তী ধাপে, আপনি IPython নামে একটি ইন্টারেক্টিভ পাইথন ইন্টারপ্রেটার ব্যবহার করবেন, যা আপনি আগের ধাপে ইনস্টল করেছেন। ক্লাউড শেলে 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. উপলব্ধ ভাষার তালিকা করুন

এই বিভাগে, আপনি অনুবাদ 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

আপনি অন্য ভাষার কোড দিয়ে চেষ্টা করতে পারেন।

সারাংশ

এই ধাপে, আপনি অনুবাদ API-এ সমস্ত উপলব্ধ ভাষা তালিকাভুক্ত করতে সক্ষম হয়েছেন। আপনি ভাষা সমর্থন পৃষ্ঠায় সমর্থিত ভাষার সম্পূর্ণ তালিকা খুঁজে পেতে পারেন।

5. পাঠ্য অনুবাদ করুন

আপনি এক ভাষা থেকে অন্য ভাষাতে পাঠ্য অনুবাদ করতে অনুবাদ API ব্যবহার করতে পারেন। নিউরাল মেশিন ট্রান্সলেশন (NMT) মডেল ব্যবহার করে পাঠ্য অনুবাদ করা হয়। NMT মডেলটি অনুরোধকৃত ভাষা অনুবাদ জোড়ার জন্য সমর্থিত না হলে, ফ্রেজ-ভিত্তিক মেশিন অনুবাদ (PBMT) মডেল ব্যবহার করা হয়। Google অনুবাদ এবং এর অনুবাদ মডেল সম্পর্কে আরও জানতে, 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 : 안녕하세요 세계!

সারাংশ

এই ধাপে, আপনি একাধিক ভাষায় পাঠ্য অনুবাদ করতে অনুবাদ API ব্যবহার করতে সক্ষম হয়েছেন। পাঠ্য অনুবাদ সম্পর্কে আরও পড়ুন।

6. ভাষা সনাক্ত করুন

আপনি একটি টেক্সট স্ট্রিং এর ভাষা সনাক্ত করতে অনুবাদ 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    | 안녕하세요 세계!

সারাংশ

এই ধাপে, আপনি অনুবাদ API ব্যবহার করে পাঠ্যের একটি অংশের ভাষা সনাক্ত করতে সক্ষম হয়েছেন। ভাষা সনাক্তকরণ সম্পর্কে আরও পড়ুন।

7. অভিনন্দন!

1e2217da0416d129.png

আপনি শিখেছেন কিভাবে পাইথন ব্যবহার করে অনুবাদ API ব্যবহার করতে হয়!

পরিষ্কার করুন

ক্লাউড শেল থেকে আপনার উন্নয়ন পরিবেশ পরিষ্কার করতে:

  • আপনি যদি এখনও আপনার IPython সেশনে থাকেন, তাহলে শেল এ ফিরে যান: exit
  • পাইথন ভার্চুয়াল পরিবেশ ব্যবহার বন্ধ করুন: deactivate
  • আপনার ভার্চুয়াল পরিবেশ ফোল্ডার মুছুন: cd ~ ; rm -rf ./venv-translate

ক্লাউড শেল থেকে আপনার Google ক্লাউড প্রকল্প মুছে ফেলতে:

  • আপনার বর্তমান প্রকল্প আইডি পুনরুদ্ধার করুন: PROJECT_ID=$(gcloud config get-value core/project)
  • নিশ্চিত করুন যে এই প্রকল্পটি আপনি মুছতে চান: echo $PROJECT_ID
  • প্রকল্পটি মুছুন: gcloud projects delete $PROJECT_ID

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।