পাইথনের জন্য পাঠ্য শ্রেণিবিন্যাস নির্দেশিকা

MediaPipe টেক্সট ক্লাসিফায়ার টাস্ক আপনাকে ইতিবাচক বা নেতিবাচক অনুভূতির মতো সংজ্ঞায়িত বিভাগের একটি সেটে পাঠ্যকে শ্রেণীবদ্ধ করতে দেয়। আপনি যে মডেলটি ব্যবহার করেন এবং সেই মডেলটি কীভাবে প্রশিক্ষিত হয়েছিল তা বিভাগগুলি নির্ধারণ করা হয়। এই নির্দেশাবলী আপনাকে দেখায় কিভাবে Python এর সাথে Text Classifier ব্যবহার করতে হয়।

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

কোড উদাহরণ

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

আপনি যদি রাস্পবেরি পাই এর জন্য টেক্সট ক্লাসিফায়ার প্রয়োগ করছেন, রাস্পবেরি পাই উদাহরণ অ্যাপটি দেখুন।

সেটআপ

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

প্যাকেজ

টেক্সট ক্লাসিফায়ার মিডিয়াপাইপ পাইপ প্যাকেজ ব্যবহার করে। আপনি নিম্নলিখিতগুলির সাথে এই নির্ভরতাগুলি ইনস্টল করতে পারেন:

$ python -m pip install mediapipe

আমদানি

টেক্সট ক্লাসিফায়ার টাস্ক ফাংশন অ্যাক্সেস করতে নিম্নলিখিত ক্লাসগুলি আমদানি করুন:

from mediapipe.tasks import python
from mediapipe.tasks.python import text

মডেল

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

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

model_path = '/absolute/path/to/text_classifier.tflite'

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

base_options = BaseOptions(model_asset_path=model_path)

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

মিডিয়াপাইপ টেক্সট ক্লাসিফায়ার টাস্কটি সেট আপ করতে create_from_options ফাংশন ব্যবহার করে। create_from_options ফাংশন ক্লাসিফায়ার অপশন সেট করতে কনফিগারেশন বিকল্পের মান গ্রহণ করে। আপনি create_from_model_path ফ্যাক্টরি ফাংশন ব্যবহার করে কাজটি শুরু করতে পারেন। create_from_model_path ফাংশন প্রশিক্ষিত মডেল ফাইলের আপেক্ষিক বা পরম পথ গ্রহণ করে। কনফিগারেশন বিকল্প সম্পর্কে আরও তথ্যের জন্য, কনফিগারেশন বিকল্পগুলি দেখুন।

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

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

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

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

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
display_names_locale টাস্কের মডেলের মেটাডেটাতে প্রদত্ত প্রদর্শন নামের জন্য ব্যবহার করার জন্য লেবেলের ভাষা সেট করে, যদি উপলব্ধ থাকে। ইংরেজির জন্য ডিফল্ট হল en । আপনি TensorFlow Lite Metadata Writer API ব্যবহার করে একটি কাস্টম মডেলের মেটাডেটাতে স্থানীয় লেবেল যোগ করতে পারেন স্থানীয় কোড en
max_results ফিরতে সর্বোচ্চ স্কোর করা শ্রেণীবিভাগ ফলাফলের ঐচ্ছিক সর্বোচ্চ সংখ্যা সেট করে। <0 হলে, সমস্ত উপলব্ধ ফলাফল ফেরত দেওয়া হবে। যেকোনো ইতিবাচক সংখ্যা -1
score_threshold ভবিষ্যদ্বাণী স্কোর থ্রেশহোল্ড সেট করে যা মডেল মেটাডেটাতে প্রদত্ত একটিকে ওভাররাইড করে (যদি থাকে)। এই মানের নিচের ফলাফল প্রত্যাখ্যান করা হয়। কোন ভাসা সেট করা হয়নি
category_allowlist অনুমোদিত বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যাদের বিভাগের নাম এই সেটে নেই সেগুলি ফিল্টার আউট করা হবে৷ সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_denylist সাথে পারস্পরিক একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট করা হয়নি
category_denylist অনুমোদিত নয় এমন বিভাগের নামের ঐচ্ছিক তালিকা সেট করে। যদি খালি না থাকে, শ্রেণীবিভাগের ফলাফল যার বিভাগের নাম এই সেটে আছে তা ফিল্টার আউট করা হবে। সদৃশ বা অজানা বিভাগের নাম উপেক্ষা করা হয়। এই বিকল্পটি category_allowlist সাথে পারস্পরিকভাবে একচেটিয়া এবং একটি ত্রুটিতে উভয় ফলাফল ব্যবহার করে। কোনো স্ট্রিং সেট করা হয়নি

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

টেক্সট ক্লাসিফায়ার টেক্সট ( str ) ডেটা দিয়ে কাজ করে। টাস্কটি টোকেনাইজেশন এবং টেনসর প্রিপ্রসেসিং সহ ডেটা ইনপুট প্রিপ্রসেসিং পরিচালনা করে।

সমস্ত প্রিপ্রসেসিং classify ফাংশনের মধ্যে পরিচালিত হয়। আগে থেকে ইনপুট পাঠ্যের অতিরিক্ত প্রিপ্রসেসিংয়ের প্রয়োজন নেই।

input_text = 'The input text to be classified.'

টাস্ক চালান

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

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

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

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

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

নিম্নলিখিত এই টাস্ক থেকে আউটপুট ডেটার একটি উদাহরণ দেখায়:

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

এই ফলাফলটি ইনপুট টেক্সটে BERT-শ্রেণিফায়ার চালানোর মাধ্যমে প্রাপ্ত হয়েছে: "an imperfect but overall entertaining mystery"