কম্পিউটার টিউটোরিয়াল

পাইথনে টেনসরফ্লো টেক্সট দিয়ে unicode_split() ব্যবহার করে স্ট্রিং ক্যারেক্টার অনুযায়ী স্প্লিট করা


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

আরও পড়ুন: টেনসরফ্লো কী এবং কেরাস কীভাবে টেনসরফ্লোর সাথে কাজ করে নিউরাল নেটওয়ার্ক তৈরির জন্য?

আমরা কেরাস সিকুয়েনশিয়াল API ব্যবহার করব, যা একটি সিকুয়েনশিয়াল মডেল বানাতে সাহায্য করে যেখানে প্রতিটি লেয়ারের ঠিক একটি ইনপুট টেনসর এবং একটি আউটপুট টেনসর থাকে।

কমপক্ষে একটি লেয়ার থাকা নিউরাল নেটওয়ার্ককে কনভোল্যুশনাল লেয়ার বলা হয়। আমরা কনভোল্যুশনাল নিউরাল নেটওয়ার্ক ব্যবহার করে লার্নিং মডেল বানাতে পারি।

টেনসরফ্লো টেক্সট (TensorFlow Text) টেক্সট-রিলেটেড ক্লাস ও অপ্সের সংকলন যা টেনসরফ্লো ২.০-এর সাথে ব্যবহার করা যায়। টেনসরফ্লো টেক্সট সিকুয়েন্স মডেলিং প্রিপ্রসেস করতে ব্যবহৃত হয়।

নিচের কোড চালানোর জন্য আমরা গুগল কোলাবরেটরি ব্যবহার করছি। গুগল কোল্যাব বা কোলাবরেটরি ব্রাউজারের ওপর পাইথন কোড চালাতে সাহায্য করে এবং জিরো কনফিগারেশন ও ফ্রি জিপিইউ (GPU) অ্যাক্সেস দেয়। কোলাবরেটরি জুপিটার নোটবুকের ওপর বিল্ড করা হয়েছে।

টোকেনাইজেশন (Tokenization) হলো একটি স্ট্রিংকে টোকেনে ভাঙা পদ্ধতি। এই টোকেনগুলো শব্দ, সংখ্যা, বা পাঙ্কচুয়েশন (punctuation) হতে পারে।

গুরুত্বপূর্ণ ইন্টারফেসগুলো হলো Tokenizer এবং TokenizerWithOffsets, যাদের masing-masingে একটি মেথড রয়েছে tokenize এবং tokenize_with_offsets। একাধিক টোকেনাইজার রয়েছে, যারা TokenizerWithOffsets ইমপ্লিমেন্ট করে (যা Tokenizer ক্লাসকে এক্সটেন্ড করে)। এতে একটি অপশন রয়েছে বাইট অফসেট (byte offsets) পাওয়ার মূল স্ট্রিংয়ে। এটি জানতে সাহায্য করে যে মূল স্ট্রিংয়ের কোন বাইটগুলো থেকে টোকেন তৈরি হয়েছে।

উদাহরণ

print("The encoded characters are split")
tokens = tf.strings.unicode_split([u"仅今年前".encode('UTF-8')], 'UTF-8')
print("The tokenized data is converted to a list")
print(tokens.to_list())

কোড ক্রেডিট: https://www.tensorflow.org/tutorials/tensorflow_text/intro

আউটপুট

The encoded characters are split
The tokenized data is converted to a list
[[b'\xe4\xbb\x85', b'\xe4\xbb\x8a', b'\xe5\xb9\xb4', b'\xe5\x89\x8d']]

ব্যাখ্যা

  • সব টোকেনাইজার RaggedTensors রিটার্ন করে যেখানে ইনারমোস্ট ডাইমেনশন টোকেনগুলোকে মূল אינডিভিজুয়াল স্ট্রিংসে ম্যাপ করে।

  • ফলস্বরূপ শেপের র‍্যাঙ্ক এক বাড়ে।

  • যখন হোয়াইটস্পেস ছাড়া ভাষায় শব্দ সেগমেন্ট করা হয়, তখন ক্যারেক্টার অনুযায়ী স্প্লিট করা সাধারণ।

  • এটি টেনসরফ্লো কোরে পাওয়া unicode_split অপ দিয়ে করা যায়।

  • একবার unicode_split কল হলে, টোকেনাইজড ডেটা লিস্টে যোগ হয়।

  1. টেনসরফ্লোতে ফ্লাওয়ার ডেটাসেট ভিজ্যুয়ালাইজ করা

  2. Keras ব্যবহার করে পাইথনে পুনরুদ্ধারকৃত মডেল মূল্যায়ন করা

  3. Keras ব্যবহার করে পাইথনে সম্পূর্ণ মডেল সংরক্ষণ করা

  4. Python-এ Keras ব্যবহার করে মডেল প্লট কীভাবে করা যায়?