একটি সেন্টেন্সের প্রতিটি শব্দের কোড পয়েন্ট পেতে, প্রথমে চেক করা হয় সেন্টেন্সটি শব্দের শুরু কিনা। তারপর চেক করা হয় ক্যারেক্টারের ইন্ডেক্স সব সেন্টেন্সের ক্যারেক্টারের ফ্ল্যাটেন্ড লিস্টে নির্দিষ্ট শব্দের ইন্ডেক্স থেকে শুরু হয়েছে কিনা। একবার যাচাই হয়ে গেলে, নিচের পদ্ধতিতে প্রতিটি শব্দের প্রতিটি ক্যারেক্টারের কোড পয়েন্ট প্রাপ্ত হয়।
স্ক্রিপ্ট আইডেন্টিফায়ারগুলো ওয়ার্ড বাউন্ডারি এবং কোথায় যোগ করা উচিত তা নির্ধারণ করতে সাহায্য করে। সেন্টেন্সের শুরুতে এবং প্রতিটি ক্যারেক্টারের জন্য যাদের স্ক্রিপ্ট তাদের আগের ক্যারেক্টারের থেকে আলাদা, তাদের জন্য ওয়ার্ড বাউন্ডারি যোগ করা হয়। স্টার্ট অফসেটগুলো ব্যবহার করে একটি RaggedTensor তৈরি করা যায়। এই RaggedTensor-এ সব ব্যাচের শব্দের তালিকা থাকে।
আরও পড়ুন: টেনসরফ্লো কী এবং কেরাস কীভাবে টেনসরফ্লোর সাথে কাজ করে নিউরাল নেটওয়ার্ক তৈরি করতে?
আমরা বুঝব কিভাবে পাইথনে ইউনিকোড স্ট্রিং রিপ্রেজেন্ট করতে হয় এবং ইউনিকোড সমতুল্য ব্যবহার করে সেগুলো ম্যানিপুলেট করতে হয়। প্রথমে, আমরা ইউনিকোড স্ট্রিংগুলোর টোকেনে আলাদা করব স্ক্রিপ্ট ডিটেকশনের সাহায্যে স্ট্যান্ডার্ড স্ট্রিং অপারেশনগুলির ইউনিকোড সমতুল্য ব্যবহার করে।
নিচের কোড চালাতে আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে পাইথন কোড চালাতে সাহায্য করে এবং শূন্য কনফিগারেশনের সাথে ফ্রি GPU (গ্রাফিক্যাল প্রসেসিং ইউনিট) অ্যাক্সেস দেয়। Colaboratory Jupyter Notebook-এর উপরে তৈরি।
print("Check if sentence is the start of the word")
sentence_char_starts_word = tf.concat(
[tf.fill([sentence_char_script.nrows(), 1], True),
tf.not_equal(sentence_char_script[:, 1:], sentence_char_script[:, :-1])],
axis=1)
print("Check if index of character starts from specific index of word in flattened list of characters from all sentences")
word_starts = tf.squeeze(tf.where(sentence_char_starts_word.values), axis=1)
print(word_starts)
print("Get the code point of every character in every word")
word_char_codepoint = tf.RaggedTensor.from_row_starts(
values=sentence_char_codepoint.values,
row_starts=word_starts)
print(word_char_codepoint)
কোড ক্রেডিট: https://www.tensorflow.org/tutorials/load_data/unicode
আউটপুট
Check if sentence is the start of the word Check if index of character starts from specific index of word in flattened list of characters from all sentences tf.Tensor([ 0 5 7 12 13 15], shape=(6,), dtype=int64) Get the code point of every character in every word <tf.RaggedTensor [[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46], [19990, 30028], [12371, 12435, 12395, 12385, 12399]]>
ব্যাখ্যা
- স্ক্রিপ্ট আইডেন্টিফায়ারগুলো ওয়ার্ড বাউন্ডারি কোথায় যোগ করা উচিত তা নির্ধারণ করতে সাহায্য করে।
- প্রতিটি সেন্টেন্সের শুরুতে এবং প্রতিটি ক্যারেক্টারের জন্য যাদের স্ক্রিপ্ট তাদের আগের ক্যারেক্টারের থেকে আলাদা, তাদের জন্য একটি ওয়ার্ড বাউন্ডারি যোগ করা হয়।
- পরবর্তীতে, এই স্টার্ট অফসেটগুলো ব্যবহার করে একটি RaggedTensor তৈরি করা যায়।
- এই RaggedTensor-এ সব ব্যাচের শব্দের তালিকা থাকে।