शब्द आवृत्ति विश्लेषक
Mira नमस्ते। मुझे मिशन लॉग्स से अंतर्दृष्टि निकालने का काम सौंपा गया है और उनमें से सैकड़ों हैं। मुझे कुछ ऐसा चाहिए जो एक टेक्स्ट फ़ाइल ले, गिने कि प्रत्येक शब्द कितनी बार आता है, और मुझे शीर्ष परिणाम दिखाए। मैं यह पता लगाना चाहती हूं कि कौन से विषय बार-बार आ रहे हैं बिना सब कुछ मैन्युअल रूप से पढ़े।
आप क्या बना रहे हैं
Enter text, or a filename to read from: sample.txt
Top 10 words:
the 42
and 31
python 18
is 16
you 14
...आपको क्या चाहिए होगा
- Strings — टेक्स्ट को शब्दों में विभाजित करना, विराम चिह्न हटाना, छोटे अक्षरों में बदलना
- Dictionaries — गिनना कि प्रत्येक शब्द कितनी बार आता है
- Lists — शीर्ष परिणामों को क्रमबद्ध करना और स्लाइस करना
- Files and exceptions — टेक्स्ट फ़ाइल से पढ़ना
- Lambda, comprehensions, and zip — लिस्ट कॉम्प्रिहेन्शन और
sorted()एक key के साथ यहां अच्छी तरह काम करते हैं
संकेत
गिनती से पहले सामान्यीकृत करें। अपनी गिनती बनाने से पहले सब कुछ छोटे अक्षरों में बदलें और विराम चिह्न हटाएं। अन्यथा "Python", "python" और "Python," सभी अलग-अलग शब्दों के रूप में गिने जाएंगे।
एक डिक्शनरी गिनती करती है। शब्दों के माध्यम से लूप करें। यदि शब्द पहले से ही एक key है, तो उसकी गिनती बढ़ाएं। यदि नहीं है, तो उसे 1 की गिनती के साथ जोड़ें। डिफ़ॉल्ट मान के साथ .get() इसे साफ-सुथरा बनाता है।
डिक्शनरी को मान के अनुसार क्रमबद्ध करना। sorted() एक key= तर्क स्वीकार करता है। एक lambda पास करें जो आवृत्ति के अनुसार क्रमबद्ध करने के लिए प्रत्येक key के लिए मान लौटाता है।
आगे बढ़ना
एक बार मुख्य विश्लेषण काम कर जाए:
- स्टॉप शब्द। "the", "and", "is" जैसे सामान्य शब्दों को अनदेखा करें। स्टॉप शब्दों का एक सेट परिभाषित करें और उसमें आने वाले किसी भी शब्द को छोड़ दें।
- कॉन्फ़िगरेबल टॉप N। उपयोगकर्ता को निर्दिष्ट करने दें कि कितने परिणाम दिखाने हैं, हमेशा 10 दिखाने के बजाय।
- विज़ुअल आउटपुट। प्रत्येक शब्द को उसकी गिनती के अनुपात में दोहराए गए वर्णों से बनी एक बार के साथ प्रिंट करें। एक सरल संस्करण भी आउटपुट को बहुत अधिक पठनीय बनाता है।

