পাইথনের জন্য টেক্সট এম্বেডিং গাইড

MediaPipe টেক্সট এমবেডার টাস্ক আপনাকে এর শব্দার্থগত অর্থ ক্যাপচার করতে পাঠ্য ডেটার একটি সংখ্যাসূচক উপস্থাপনা তৈরি করতে দেয়। এই নির্দেশাবলী আপনাকে দেখায় কিভাবে পাইথনের সাথে টেক্সট এমবেডার ব্যবহার করতে হয়।

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

কোড উদাহরণ

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

সেটআপ

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

প্যাকেজ

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

$ python -m pip install mediapipe

আমদানি

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

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

মডেল

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

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

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

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 ফাংশন প্রশিক্ষিত মডেল ফাইলের আপেক্ষিক বা পরম পথ গ্রহণ করে। কনফিগারেশন বিকল্প সম্পর্কে আরও তথ্যের জন্য, কনফিগারেশন বিকল্পগুলি দেখুন।

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

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
TextEmbedder = mp.tasks.text.TextEmbedder
TextEmbedderOptions = mp.tasks.text.TextEmbedderOptions

# For creating a text embedder instance:
options = TextEmbedderOptions(
    base_options=BaseOptions(model_asset_path=model_path),
    quantize=True)
text_embedder = TextEmbedder.create_from_options(options)

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

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

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
l2_normalize L2 আদর্শের সাথে প্রত্যাবর্তিত বৈশিষ্ট্য ভেক্টরকে স্বাভাবিক করতে হবে কিনা। এই বিকল্পটি ব্যবহার করুন শুধুমাত্র যদি মডেলটিতে ইতিমধ্যে একটি নেটিভ L2_NORMALIZATION TFLite Op না থাকে৷ বেশিরভাগ ক্ষেত্রে, এটি ইতিমধ্যেই হয় এবং এইভাবে এই বিকল্পের প্রয়োজন ছাড়াই TFLite অনুমানের মাধ্যমে L2 স্বাভাবিককরণ অর্জন করা হয়। Boolean False
quantize প্রত্যাবর্তিত এমবেডিং স্কেলার কোয়ান্টাইজেশনের মাধ্যমে বাইটে পরিমাপ করা উচিত কিনা। এমবেডিংগুলিকে পরোক্ষভাবে ইউনিট-নর্ম হিসাবে ধরে নেওয়া হয় এবং তাই যে কোনও মাত্রা [-1.0, 1.0]-এ একটি মান থাকার নিশ্চয়তা দেওয়া হয়। যদি এটি না হয় তবে l2_normalize বিকল্পটি ব্যবহার করুন। Boolean False

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

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

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

input_text = "The input text to be embedded."

টাস্ক চালান

টেক্সট এমবেডার ইনফারেন্স ট্রিগার করতে embed ফাংশন ব্যবহার করে। টেক্সট এম্বেডিংয়ের জন্য, এর মানে হল ইনপুট টেক্সটের জন্য এমবেডিং ভেক্টর ফিরিয়ে দেওয়া।

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

# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)

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

টেক্সট এমবেডার একটি TextEmbedderResult আউটপুট করে যাতে ইনপুট টেক্সটের জন্য এমবেডিংয়ের একটি তালিকা থাকে (হয় ফ্লোটিং-পয়েন্ট বা স্কেলার-কোয়ান্টাইজড)।

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

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

আপনি TextEmbedder.cosine_similarity ফাংশন ব্যবহার করে দুটি এম্বেডিংয়ের শব্দার্থগত মিল তুলনা করতে পারেন। একটি উদাহরণের জন্য নিম্নলিখিত কোড দেখুন.

# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])