টেক্সট অ্যানালিটিক্সের অংশ হিসেবে, আমরা প্রায়ই ওয়ার্ড কাউন্ট করতে হয় এবং বিভিন্ন অ্যালগরিদমে প্রসেসিং-এর জন্য ওয়েটেজ অ্যাসাইন করতে হয়। তাই এই আর্টিকেলে আমরা দেখব কিভাবে একটি দেওয়া সেন্টেন্সে প্রতিটি ওয়ার্ডের ফ্রিকোয়েন্সি বের করা যায়। আমরা তিনটি অ্যাপ্রোচে এটি করতে পারি।
Counter ব্যবহার
আমরা collections মডিউলের Counter() ব্যবহার করে ওয়ার্ডের ফ্রিকোয়েন্সি পেতে পারি। এখানে আমরা প্রথমে split() অ্যাপ্লাই করে লাইন থেকে ওয়ার্ড জেনারেট করি, তারপর most_common() অ্যাপ্লাই করি।
উদাহরণ
from collections import Counter line_text = "Learn and practice and learn to practice" freq = Counter(line_text.split()).most_common() print(freq)
উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়:
[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]
FreqDist() ব্যবহার
ন্যাচারাল ল্যাঙ্গুয়েজ টুলকিট FreqDist ফাংশন প্রদান করে যা স্ট্রিংয়ে ওয়ার্ডের সংখ্যা এবং ডISTINCT ওয়ার্ডের সংখ্যা দেখায়। most_common() অ্যাপ্লাই করলে প্রতিটি ওয়ার্ডের ফ্রিকোয়েন্সি मिलে।
উদাহরণ
from nltk import FreqDist text = "Learn and practice and learn to practice" words = text.split() fdist1 = FreqDist(words) print(fdist1) print(fdist1.most_common())
উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়:
[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]
ডিকশনারি ব্যবহার
এই অ্যাপ্রোচে আমরা লাইনটির ওয়ার্ডগুলো একটি ডিকশনারিতে স্টোর করি। তারপর count() অ্যাপ্লাই করে প্রতিটি ওয়ার্ডের ফ্রিকোয়েন্সি বের করি। তারপর ওয়ার্ডগুলোর সাথে ওয়ার্ড ফ্রিকোয়েন্সি ভ্যালু জিপ করি। ফাইনাল রেজাল্ট ডিকশনারি হিসেবে দেখানো হয়।
উদাহরণ
text = "Learn and practice and learn to practice" words = [] words = text.split() wfreq = [words.count(w) for w in words] print(dict(zip(words, wfreq)))
উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়:
{'Learn': 1, 'and': 2, 'practice': 2, 'learn': 1, 'to': 1}