ওয়েবের জন্য ভাষা সনাক্তকরণ নির্দেশিকা

MediaPipe ল্যাঙ্গুয়েজ ডিটেক্টর টাস্ক আপনাকে পাঠ্যের একটি অংশের ভাষা সনাক্ত করতে দেয়। এই নির্দেশাবলী আপনাকে দেখায় কিভাবে ওয়েব এবং জাভাস্ক্রিপ্ট অ্যাপের জন্য ভাষা সনাক্তকারী ব্যবহার করতে হয়। এই নির্দেশাবলীতে বর্ণিত কোড নমুনা GitHub এ উপলব্ধ।

আপনি ডেমো দেখে এই কাজটি কার্যকর দেখতে পারেন। এই কাজের ক্ষমতা, মডেল এবং কনফিগারেশন বিকল্প সম্পর্কে আরও তথ্যের জন্য, ওভারভিউ দেখুন।

কোড উদাহরণ

ল্যাঙ্গুয়েজ ডিটেক্টরের উদাহরণ কোড আপনার রেফারেন্সের জন্য জাভাস্ক্রিপ্টে এই টাস্কটির সম্পূর্ণ বাস্তবায়ন প্রদান করে। এই কোডটি আপনাকে এই কাজটি পরীক্ষা করতে এবং আপনার নিজস্ব ভাষা আবিষ্কারক বৈশিষ্ট্য তৈরি করতে শুরু করতে সহায়তা করে। আপনি শুধুমাত্র আপনার ওয়েব ব্রাউজার ব্যবহার করে ভাষা সনাক্তকারী উদাহরণ কোড দেখতে, চালাতে এবং সম্পাদনা করতে পারেন।

সেটআপ

এই বিভাগে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট এবং কোড প্রোজেক্ট সেট আপ করার জন্য বিশেষভাবে ল্যাঙ্গুয়েজ ডিটেক্টর ব্যবহার করার জন্য মূল ধাপগুলি বর্ণনা করে। প্ল্যাটফর্ম সংস্করণ প্রয়োজনীয়তা সহ MediaPipe কার্যগুলি ব্যবহার করার জন্য আপনার বিকাশের পরিবেশ সেট আপ করার বিষয়ে সাধারণ তথ্যের জন্য, ওয়েবের জন্য সেটআপ নির্দেশিকা দেখুন।

জাভাস্ক্রিপ্ট প্যাকেজ

ভাষা সনাক্তকারী কোড @mediapipe/tasks-text প্যাকেজের মাধ্যমে উপলব্ধ। আপনি প্ল্যাটফর্ম সেটআপ গাইডে দেওয়া লিঙ্কগুলি থেকে এই লাইব্রেরিগুলি খুঁজে পেতে এবং ডাউনলোড করতে পারেন৷

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে স্থানীয় স্টেজিংয়ের জন্য নিম্নলিখিত কোড সহ প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে পারেন:

npm install @mediapipe/tasks-text

আপনি যদি একটি সার্ভারে স্থাপন করতে চান, আপনি একটি সামগ্রী বিতরণ নেটওয়ার্ক (CDN) পরিষেবা ব্যবহার করতে পারেন, যেমন jsDelivr , সরাসরি আপনার HTML পৃষ্ঠায় কোড যোগ করতে, নিম্নরূপ:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

মডেল

MediaPipe ল্যাঙ্গুয়েজ ডিটেক্টর টাস্কের জন্য একটি প্রশিক্ষিত মডেল প্রয়োজন যা এই কাজের সাথে সামঞ্জস্যপূর্ণ। ল্যাঙ্গুয়েজ ডিটেক্টরের জন্য উপলব্ধ প্রশিক্ষিত মডেল সম্পর্কে আরও তথ্যের জন্য, টাস্ক ওভারভিউ মডেল বিভাগটি দেখুন।

একটি মডেল নির্বাচন করুন এবং ডাউনলোড করুন, এবং তারপর এটি আপনার প্রকল্প ডিরেক্টরির মধ্যে সংরক্ষণ করুন:

<dev-project-root>/app/shared/models

baseOptions অবজেক্ট modelAssetPath প্যারামিটার সহ মডেলের পাথ নির্দিষ্ট করুন, যেমনটি নীচে দেখানো হয়েছে:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

টাস্ক তৈরি করুন

অনুমান চালানোর জন্য টাস্ক প্রস্তুত করতে ভাষা আবিষ্কারক LanguageDetector.createFrom...() ফাংশনগুলির একটি ব্যবহার করুন। আপনি প্রশিক্ষিত মডেল ফাইলের আপেক্ষিক বা পরম পাথ সহ createFromModelPath() ফাংশনটি ব্যবহার করতে পারেন। নিচের কোড উদাহরণ createFromOptions() ফাংশন ব্যবহার করে দেখায়। কাজগুলি কনফিগার করার বিষয়ে আরও তথ্যের জন্য, কনফিগারেশন বিকল্পগুলি দেখুন।

নিম্নলিখিত কোডটি এই কাজটি কীভাবে তৈরি এবং কনফিগার করতে হয় তা প্রদর্শন করে।

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

কনফিগারেশন বিকল্প

এই কাজটিতে ওয়েব এবং জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলির জন্য নিম্নলিখিত কনফিগারেশন বিকল্প রয়েছে:

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
maxResults ফিরতে সর্বোচ্চ স্কোর করা ভাষার পূর্বাভাসের ঐচ্ছিক সংখ্যা সেট করে। এই মান শূন্যের কম হলে, সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হয়। যেকোনো ইতিবাচক সংখ্যা -1
scoreThreshold ভবিষ্যদ্বাণী স্কোর থ্রেশহোল্ড সেট করে যা মডেল মেটাডেটাতে প্রদত্ত একটিকে ওভাররাইড করে (যদি থাকে)। এই মানের নিচের ফলাফল প্রত্যাখ্যান করা হয়। কোন ভাসা সেট করা হয়নি
categoryAllowlist অনুমোদিত ভাষা কোডের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, ভাষার ভবিষ্যদ্বাণী যার ভাষার কোড এই সেটে নেই সেগুলি ফিল্টার করা হবে৷ এই বিকল্পটি categoryDenylist সাথে পারস্পরিকভাবে একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট করা হয়নি
categoryDenylist অনুমোদিত নয় এমন ভাষা কোডের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, ভাষার ভবিষ্যদ্বাণী যার ভাষার কোড এই সেটে আছে তা ফিল্টার করা হবে। এই বিকল্পটি categoryAllowlist সাথে পারস্পরিকভাবে একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট করা হয়নি

ডেটা প্রস্তুত করুন

ভাষা আবিষ্কারক টেক্সট ( string ) ডেটা নিয়ে কাজ করে। টাস্কটি টোকেনাইজেশন এবং টেনসর প্রিপ্রসেসিং সহ ডেটা ইনপুট প্রিপ্রসেসিং পরিচালনা করে। সমস্ত প্রিপ্রসেসিং detect ফাংশনের মধ্যে পরিচালিত হয়। আগে থেকে ইনপুট পাঠ্যের অতিরিক্ত প্রিপ্রসেসিংয়ের প্রয়োজন নেই।

const inputText = "The input text for the detector.";

টাস্ক চালান

ল্যাঙ্গুয়েজ ডিটেক্টর অনুমানগুলিকে ট্রিগার করতে detect ফাংশন ব্যবহার করে। ভাষা সনাক্তকরণের জন্য, এর অর্থ ইনপুট পাঠ্যের জন্য সম্ভাব্য ভাষাগুলি ফিরিয়ে দেওয়া।

নিম্নলিখিত কোডটি প্রদর্শন করে কিভাবে টাস্ক মডেলের সাথে প্রক্রিয়াকরণ চালানো যায়:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

হ্যান্ডেল এবং প্রদর্শন ফলাফল

ভাষা সনাক্তকারীর কাজটি সেই ভবিষ্যদ্বাণীগুলির সম্ভাব্যতা সহ ভাষার পূর্বাভাসগুলির একটি তালিকা সমন্বিত একটি LanguageDetectorResult প্রকাশ করে। নিম্নলিখিত এই টাস্ক থেকে আউটপুট ডেটার একটি উদাহরণ দেখায়:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

ইনপুট টেক্সটে মডেলটি চালানোর মাধ্যমে এই ফলাফলটি পাওয়া গেছে: "Il ya beaucoup de bouches qui parlent et fort peu de têtes qui pensent." .

এই টাস্কের ফলাফল প্রক্রিয়া এবং কল্পনা করার জন্য প্রয়োজনীয় কোডের উদাহরণের জন্য, ওয়েব নমুনা অ্যাপটি দেখুন।