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

পাইথনে tf.text দিয়ে স্ট্রিংয়ের নির্দিষ্ট প্রপার্টি যাচাই করা (wordshape)


'wordshape' মেথডটি নির্দিষ্ট শর্তাবলী যেমন 'HAS_TITLE_CASE', 'IS_NUMERIC_VALUE', বা 'HAS_SOME_PUNCT_OR_SYMBOL' সহ ব্যবহার করা যায় একটি স্ট্রিংয়ের নির্দিষ্ট প্রপার্টি আছে কিনা যাচাই করতে।

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

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

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

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

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

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

সmiral natureza language understanding মডেলে একটি সাধারণ ফিচার হলো টেক্সট স্ট্রিংয়ের নির্দিষ্ট প্রপার্টি আছে কিনা যাচাই করা। Wordshape রেগুলার এক্সপ্রেশন-ভিত্তিক হেল্পার ফাংশনগুলোর çeşitবিধ দিয়ে ইনপুট টেক্সটে প্রাসঙ্গিক প্যাটার্ন ম্যাচ করতে সাহায্য করে। নিচে কিছু উদাহরণ দেওয়া হলো:

উদাহরণ

print("Whitespace tokenizer is being called")
tokenizer = text.WhitespaceTokenizer()
print("Tokens being generated")
tokens = tokenizer.tokenize(['Everything that is not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("Checking if it is capitalized")
f1 = text.wordshape(tokens, text.WordShape.HAS_TITLE_CASE)
print("Checking if all the letters are uppercase")
f2 = text.wordshape(tokens, text.WordShape.IS_UPPERCASE)
print("Checking if the tokens contain punctuation")
f3 = text.wordshape(tokens, text.WordShape.HAS_SOME_PUNCT_OR_SYMBOL)
print("Checking if the token is a number")
f4 = text.wordshape(tokens, text.WordShape.IS_NUMERIC_VALUE)
print("Printing the results")
print(f1.to_list())
print(f2.to_list())
print(f3.to_list())
print(f4.to_list())

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

আউটপুট

Whitespace tokenizer is being called
Tokens being generated
Checking if it is capitalized
Checking if all the letters are uppercase
Checking if the tokens contain punctuation
Checking if the token is a number
Printing the results
[[True, False, False, False, False, False, False, False], [True]]
[[False, False, False, False, False, False, False, False], [False]]
[[False, False, False, False, False, False, False, True], [True]]
[[False, False, False, False, False, False, False, False], [False]]

ব্যাখ্যা

  • 'WhitespaceTokenizer' কল করা হয়, এবং টোকেনগুলো জেনারেট করা হয়।
  • অক্ষরগুলো চেক করা হয় কি তারা আপারকেস (uppercase)।
  • পাঙ্কচুয়েশন এবং নম্বর কিনা তা চেক করা হয়।
  • এই কম্পিউটেশনগুলোর পর বুলিয়ান (bool) ভ্যালুগুলো দেখানো হয়।
  1. পাইথনে পাইগ্যাল (Pygal) ব্যবহার করে ফানেল প্লট (Funnel plots) জেনারেট করার পদ্ধতি

  2. পাইথনে পাইগ্যাল (Pygal) ব্যবহার করে ডট প্লট (Dot plots) জেনারেট করার পদ্ধতি

  3. পাইথনে পাইগ্যাল (Pygal) ব্যবহার করে লাইন প্লট (Line plots) জেনারেট করার পদ্ধতি

  4. পাইথনে Bokeh ব্যবহার করে বার প্লট ভিজ্যুয়ালাইজ করার পদ্ধতি