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

পাইথনে টেনসরফ্লো টেক্সট (TF.Text) দিয়ে হোয়াইটস্পেস টোকেনাইজার (WhitespaceTokenizer) ব্যবহার করা


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

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

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

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

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

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

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

N-gram হলো সিকুয়েনশিয়াল শব্দ যখন n আকারের একটি স্লাইডিং উইন্ডো দেওয়া হয়। যখন টোকেনগুলো কম্বাইন করা হয়, তিনটি রিডাকশন মেকানিজম সাপোর্ট করা হয়। টেক্সটের জন্য Reduction.STRING_JOIN ব্যবহার করা যায়। এটি স্ট্রিংগুলো একে অপরের সাথে অ্যাপেন্ড করে। ডিফল্ট সেপারেটর ক্যারাক্টার হলো স্পেস, কিন্তু string_separater আর্গুমেন্ট দিয়ে বদলানো যায়।

অন্য রিডাকশন মেথডগুলো নিউমেরিক্যাল ভ্যালুর সাথে ব্যবহৃত হয়, এবং সেগুলো হলো Reduction.SUM এবং Reduction.MEAN।

উদাহরণ

print("Whitespace tokenizer is being called")
tokenizer = text.WhitespaceTokenizer()
tokens = tokenizer.tokenize(['Everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("Here, n is 2, hence it is bigram")
bigrams = text.ngrams(tokens, 2, reduction_type=text.Reduction.STRING_JOIN)
print("The bigrams are converted to a list")
print(bigrams.to_list())

আউটপুট

Whitespace tokenizer is being called
Here, n is 2, hence it is bigram
The bigrams are converted to a list
[[b'Everything not', b'not saved', b'saved will', b'will be', b'be lost.'], []]

ব্যাখ্যা

  • হোয়াইটস্পেস টোকেনাইজার কল করা হয়।
  • 'n' এর মান ২ সেট করা হয়েছে, তাই এটি বিগ্রাম (bigram) হিসেবে জানা হয়।
  • টোকেনগুলো লিস্টে সংরক্ষণ করা হয় এবং কনসোলে দেখানো হয়।
  1. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে মডেল ট্রেন (train) করতে ব্যবহৃত হয়?

  2. Keras ব্যবহার করে পাইথনে নতুন কলব্যাক সহ মডেল ট্রেন করা

  3. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

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