একটি লিস্ট থেকে পরপর তিনটি উপাদান নিয়ে স্লাইডিং উইন্ডো পদ্ধতিতে ট্রিপলেট তৈরি করা একটি সাধারণ টেক্সট প্রসেসিং এবং NLP টাস্ক। নিচে দুটি পদ্ধতি দেখানো হলো।
উদাহরণ
list_of_words = ['I', 'am', 'Vishesh', 'and', 'I', 'like', 'Python', 'programming'] # প্রত্যাশিত: [['I','am','Vishesh'], ['am','Vishesh','and'], ...]
১. লিস্ট কাম্প্রিহেনশন + স্লাইসিং (সংক্ষিপ্ত এবং দ্রুত)
triplets = [list_of_words[i:i + 3] for i in range(len(list_of_words) - 2)] print(triplets)
২. স্পষ্ট লুপ ব্যবহার করে (বোঝার জন্য সহজ)
out = []
length = len(list_of_words)
for z in range(0, length - 2):
temp = [
list_of_words[z],
list_of_words[z + 1],
list_of_words[z + 2]
]
out.append(temp)
print(out)
আউটপুট (দুই পদ্ধতিরই একই)
[ ['I', 'am', 'Vishesh'], ['am', 'Vishesh', 'and'], ['Vishesh', 'and', 'I'], ['and', 'I', 'like'], ['I', 'like', 'Python'], ['like', 'Python', 'programming'] ]
সাধারণীকরণ: যেকোনো উইন্ডো সাইজের জন্য
def sliding_window(lst, window_size):
return [lst[i:i + window_size] for i in range(len(lst) - window_size + 1)]
# ব্যবহার
print(sliding_window(list_of_words, 3)) # ট্রিপলেট
print(sliding_window(list_of_words, 2)) # পেয়ার (বিগ্রাম)
print(sliding_window(list_of_words, 4)) # কোয়াড্রুপলেট
NLP-এ ব্যবহার
এই প্যাটার্নটি n-gram তৈরি, ভাষা মডেল ট্রেনিং, টেক্সট জেনারেশন এবং সিকোয়েন্স প্রেডিকশনে ব্যাপকভাবে ব্যবহৃত হয়। বড় ডেটাসেটের জন্য itertools.islice বা more_itertools.windowed ব্যবহার করা আরও দক্ষ।