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

পাইথনে টেনসরফ্লো টেক্সট দিয়ে UTF-8 স্ট্রিং স্প্লিট করা (UnicodeScriptTokenizer)


UTF-8 স্ট্রিং টেনসরফ্লো টেক্সট দিয়ে স্প্লিট করা যায়। এটি 'UnicodeScriptTokenizer' দিয়ে করা যায়। 'UnicodeScriptTokenizer' হলো একটি টোকেনাইজার যা তৈরি হয়, তারপর 'UnicodeScriptTokenizer'-এ থাকা 'tokenize' মেথড স্ট্রিংয়ে কল করা হয়।

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

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

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

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

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

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

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

সব টোকেনাইজার RaggedTensors রিটার্ন করে যেখানে ইনারমোস্ট ডাইমেনশন টোকেনগুলোকে মূল ইনডিভিজুয়াল স্ট্রিংসে ম্যাপ করে। ফলস্বরূপ শেপের র‍্যাঙ্ক এক বাড়ে।

উদাহরণ

print("Unicode script tokenizer is being called")
tokenizer = text.UnicodeScriptTokenizer()
tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("The tokenized data is converted to a list")
print(tokens.to_list())

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

আউটপুট

Unicode script tokenizer is being called
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost', b'.'], [b'Sad', b'\xe2\x98\xb9']]

ব্যাখ্যা

  • টোকেনাইজার UTF-8 স্ট্রিংকে ইউনিকোড স্ক্রিপ্ট বাউন্ডারি (Unicode script boundaries) অনুযায়ী স্প্লিট করে।

  • স্ক্রিপ্ট কোডগুলো ICU UScriptCode ভ্যালুর সাথে মিলে।

  • এটি WhitespaceTokenizer-এর সাথে মিলতাজুলতা কিন্তু পার্থক্য হলো এটি পাঙ্কচুয়েশন (USCRIPT_COMMON) কে ভাষা টেক্সট থেকে আলাদা করে এবং বিভিন্ন ভাষা টেক্সটকে একে অপরের থেকে আলাদা করে।

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

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

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

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