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

পাইথন: স্ট্রিংয়ে শব্দ ফ্রিকোয়েন্সি গণনা করা (Dictionary Comprehension)

স্ট্রিংয়ে প্রতিটি শব্দ কতবার আবির্ভূত হয়েছে তা গণনা করার জন্য ডিকশনারি কম্প্রিহেনশন এবং split() / count() ব্যবহার করা যায়।

উদাহরণ


my_str = 'Hi there Will, how are you Will, Will you say Hi to me'
print("স্ট্রিং:", my_str)

# ডিকশনারি কম্প্রিহেনশন
word_freq = {word: my_str.count(word) for word in my_str.split()}

print("শব্দ ফ্রিকোয়েন্সি:")
print(word_freq)

আউটপুট


স্ট্রিং: Hi there Will, how are you Will, Will you say Hi to me
শব্দ ফ্রিকোয়েন্সি:
{'Hi': 2, 'there': 1, 'Will,': 2, 'how': 1, 'are': 1, 'you': 2, 'Will': 3, 'say': 1, 'to': 1, 'me': 1}

সমস্যা ও সমাধান

সমস্যা: split() স্পেস দিয়ে ভাগ করে, তাই 'Will,' (কমা সহ) এবং 'Will' আলাদা শব্দ হিসেবে গণনা হয়েছে।

উন্নত সংস্করণ: পাঙ্কচুয়েশন সরিয়ে


import re
from collections import Counter

my_str = 'Hi there Will, how are you Will, Will you say Hi to me'

# শব্দ বের করা (শব্দের সীমানা \b ব্যবহার)
words = re.findall(r'\b\w+\b', my_str.lower())  # lowercase + শব্দ মাত্র
word_freq = Counter(words)

print("শুদ্ধ শব্দ ফ্রিকোয়েন্সি:")
print(word_freq)
# Counter({'will': 3, 'hi': 2, 'you': 2, 'there': 1, 'how': 1, 'are': 1, 'say': 1, 'to': 1, 'me': 1})

Counter.most_common() ব্যবহার


# টপ ৩ সাধারণ শব্দ
print(word_freq.most_common(3))
# [('will', 3), ('hi', 2), ('you', 2)]

পারফরম্যান্স নোট

  • str.count() O(n) প্রতিটি শব্দের জন্য — পুরো স্ট্রিং বারবার স্ক্যান করে
  • Counter O(n) একবার স্ক্যান করে — বড় টেক্সটের জন্য দ্রুত
  • রেগুলার এক্সপ্রেশন \b\w+\b শব্দ সঠিকভাবে বের করে (পাঙ্কচুয়েশন হ্যান্ডেল করে)
  1. পাইথনে স্ট্রিংয়ে প্রতিটি ওয়ার্ডের ফ্রিকোয়েন্সি বের করা

  2. পাইথনে স্ট্রিং-এ একটি শব্দের ঘটনার সংখ্যা গণনা

  3. পাইথনে casefold() স্ট্রিং মেথড

  4. পাইথনে স্ট্রিংয়ের প্রথম পুনরাবৃত্ত শব্দ খুঁজে বের করার প্রোগ্রাম