ভাষা ডিটেকশন

ওয়েব ফিচার: ভাষা শনাক্তকারী

Language Detector API হল একটি ক্লায়েন্ট-সাইড ওয়েব API যা কোনও টেক্সট স্ট্রিংয়ের ভাষা শনাক্ত করার জন্য ডিজাইন করা হয়েছে। ব্রাউজারে স্থানীয়ভাবে শনাক্তকরণের মাধ্যমে এটি ব্যবহারকারীর গোপনীয়তা উন্নত করে এবং ভারী এক্সটার্নাল লাইব্রেরি বা ব্যয়বহুল সার্ভার-সাইড কলের প্রয়োজনীয়তা কমায়।

মূল ব্যবহারিক ক্ষেত্র

  • অনুবাদ করার প্রস্তুতি: অনুবাদকের কাছে টেক্সট পাঠানোর আগে সোর্স ভাষা শনাক্ত করা।
  • সুরক্ষা ও ফিল্টারিং: বিষাক্ততা শনাক্তকরণের মতো টাস্কের জন্য নির্দিষ্ট মডেল লোড করা।
  • অ্যাক্সেসিবিলিটি: স্ক্রিন রিডারের জন্য সঠিক lang অ্যাট্রিবিউট সহ কন্টেন্ট লেবেল করা।
  • UI লোকালাইজেশন: ব্যবহারকারীর ইনপুট ভাষার উপর ভিত্তি করে অ্যাপ্লিকেশন ইন্টারফেস অ্যাডজাস্ট করা।

হার্ডওয়্যার ও সিস্টেমের প্রয়োজনীয়তা

  • OS: Windows 10/11, macOS 13+, Linux বা Chromebook Plus.
  • স্টোরেজ: ২২ জিবি খালি জায়গা (১০ জিবির কম জায়গা থাকলে মডেল সরিয়ে দেওয়া হয়)।
  • RAM/CPU: ১৬ জিবি RAM এবং ৪+ CPU কোর।
  • VRAM: GPU ব্যবহার করলে ৪ জিবি বা তার বেশি।

প্রয়োগ করার নির্দেশিকা

১. মডেল ম্যানেজমেন্ট ও ব্যবহারকারী অ্যাক্টিভেশন

ডিটেক্টর ইনস্ট্যান্টিয়েট বা ডাউনলোড ট্রিগার করার চেষ্টা করার আগে মডেলের উপলভ্যতা চেক করুন।

বাধ্যতামূলক: মডেল downloadable বা downloading অবস্থায় থাকলে NotAllowedError প্রতিরোধ করতে, LanguageDetector.create()-এর মাধ্যমে ভাষা শনাক্তকারী ইনস্ট্যান্টিয়েট করা বা মডেল ডাউনলোড ট্রিগার করার কাজটি অবশ্যই ব্যবহারকারীর জেসচারের (যেমন, বোতামে ক্লিক করা) মাধ্যমে শুরু করতে হবে।

// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();

if (availability !== 'unavailable') {
  button.addEventListener('click', async () => {
    const detector = await LanguageDetector.create({
      monitor(m) {
        m.addEventListener('downloadprogress', (e) => {
          console.log(`Downloaded ${e.loaded * 100}%`);
        });
      },
    });
  });
}

২. রানিং ডিটেকশন

API সম্ভাব্য ভাষার একটি র‍্যাঙ্ক করা তালিকা প্রদান করে, যার কনফিডেন্স স্কোর 0.0 থেকে 1.0-এর মধ্যে থাকে।

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);

for (const result of results) {
  // result.detectedLanguage (e.g., 'de')
  // result.confidence (e.g., 0.999)
  console.log(result.detectedLanguage, result.confidence);
}

খুব ছোট বাক্যাংশ বা একক শব্দের ক্ষেত্রে ডিটেক্টর ব্যবহার করা এড়িয়ে চলুন, কারণ এর ফলে নির্ভুলতা উল্লেখযোগ্যভাবে কমে যায়।

নিরাপত্তা ও পরিবেশ

  • Iframes: ক্রস-অরিজিন iframes-এর API অ্যাক্সেস করার জন্য একটি নির্দিষ্ট অনুমতি সংক্রান্ত নীতি প্রয়োজন।

    <iframe
      src="https://cross-origin.example.com/"
      allow="language-detector"
    ></iframe>
    
  • ওয়েব ওয়ার্কার: অনুমতি সংক্রান্ত নীতির জটিলতার কারণে API বর্তমানে ওয়েব ওয়ার্কারে উপলভ্য নেই।

  • গোপনীয়তা: শনাক্তকরণ প্রসেস চলাকালীন Google বা থার্ড-পার্টির কাছে কোনও ডেটা পাঠানো হয় না।

ফলব্যাক স্ট্র্যাটেজি

ব্যবহার করার আগে, গ্লোবাল স্কোপে LanguageDetector অবজেক্ট উপলভ্য আছে কিনা তা চেক করুন:

if ('LanguageDetector' in self) {
  // The Language Detector API is supported.
} else {
  // Execute fallback strategy
}

LanguageDetector API কাজ না করলে বা উপলভ্যতা চেক করার সময় 'unavailable' দেখালে, আপনাকে অবশ্যই আগের অবস্থায় ফিরে যেতে হবে:

  1. রিমোট API ফলব্যাক: ভাষা শনাক্ত করার জন্য শনাক্তকরণ সংক্রান্ত অনুরোধ কোনও সার্ভার এন্ডপয়েন্ট বা ক্লাউড API-তে (যেমন, Vertex AI Gemini API) রিডাইরেক্ট করুন।
  2. গ্রেসফুল ডিগ্রেডেশন: ভাষা শনাক্তকরণ এলিমেন্ট/বোতাম বন্ধ করে দিন এবং ব্যবহারকারীকে জানান যে ক্লায়েন্ট-সাইড শনাক্তকরণ বর্তমানে এই ব্রাউজারে কাজ করে না, যাতে কোনও হ্যান্ডেল না করা ব্যতিক্রম বা ক্র্যাশ এড়ানো যায়।