मुफ़्त शब्द आवृत्ति गणक

शब्द आवृत्ति गिनने और सबसे अधिक बार आने वाले शब्दों की पहचान करने के लिए टेक्स्ट का विश्लेषण करें। टेक्स्ट विश्लेषण, सामग्री अनुसंधान और पैटर्न पहचान के लिए आदर्श।

शब्द आवृत्ति विश्लेषण के बारे में

शब्द आवृत्ति किसी पाठ में हर शब्द कितनी बार आता है इसकी गिनती है, लेखन के किसी पिंड पर किया जा सकने वाला सबसे सरल सांख्यिकीय विश्लेषण, और फिर भी एक पूरे क्षेत्र का स्रोत। अंग्रेज़ी में शब्द आवृत्तियों का अनुभवजन्य अध्ययन George Kingsley Zipf से शुरू होता है, एक हार्वर्ड भाषाविद् जिनकी 1935 की पुस्तक The Psycho-Biology of Language और 1949 की अगली कड़ी Human Behavior and the Principle of Least Effort ने उसे प्रलेखित किया जिसे अब Zipf का नियम कहा जाता है: किसी भी शब्द की आवृत्ति आवृत्ति-तालिका में उसके क्रम के लगभग व्युत्क्रमानुपाती होती है। अंग्रेज़ी का सबसे आम शब्द («the») एक विशिष्ट अंग्रेज़ी कॉर्पस में सभी शब्द-टोकनों के लगभग 7 % के लिए ज़िम्मेदार है; दूसरा सबसे आम («of») लगभग 3.5 % के लिए; तीसरा लगभग 2.8 % के लिए। यह संबंध लगभग सभी प्राकृतिक भाषाओं और लगभग सभी प्रकार के पाठ में बना रहता है, किताबें, समाचारपत्र, लिप्यांतरित भाषण, कोड टिप्पणियाँ, सोशल मीडिया। यह विलोम के लिए भी बना रहता है: अधिकांश शब्द किसी भी दिए गए पाठ में केवल एक या दो बार आते हैं, चाहे पाठ कितना भी बड़ा हो। Zipf ने इसे न्यूनतम प्रयास के सिद्धांत को जिम्मेदार ठहराया: वक्ता उच्चारण लागत न्यूनतम करते हैं जबकि श्रोता बोध लागत न्यूनतम करते हैं, और संतुलन एक शक्ति-नियम वितरण है।

आवृत्ति विश्लेषण के लिए विशेष रूप से डिज़ाइन किया गया पहला कम्प्यूटेशनल कॉर्पस Brown Corpus था, W. Nelson Francis और Henry Kučera द्वारा Brown University में संकलित और 1961 में प्रकाशित। इसमें 15 शैलियों (समाचारपत्र रिपोर्ताज, कथा, धार्मिक लेखन, वैज्ञानिक शोधपत्र, लोकप्रिय ज्ञान, सरकारी दस्तावेज़, और अधिक) में 500 गद्य नमूनों से 1,014,312 शब्द टोकन शामिल हैं, प्रत्येक नमूना 2,000 शब्द लंबा। Brown Corpus अनुभवजन्य अंग्रेज़ी भाषाविज्ञान की नींव है, अंग्रेज़ी में प्रत्येक आधुनिक शब्द आवृत्ति अध्ययन इस पर प्रत्यक्ष या अप्रत्यक्ष रूप से निर्मित है। ब्रिटिश समकक्ष, LOB Corpus (Lancaster-Oslo/Bergen), 1976 में ब्रिटिश अंग्रेज़ी के लिए उसी संरचना के साथ आया। आज के औद्योगिक-पैमाने के कॉर्पस (8 लाख से अधिक पुस्तकों से Google का n-gram डेटा, 14 अरब शब्दों पर iWeb Corpus, सैकड़ों अरब शब्दों पर OSCAR के वेब-क्रॉल किए कॉर्पस) सभी अपनी कार्यप्रणाली Brown तक खींचते हैं।

स्टॉप शब्द: अवधारणा और सूचियाँ

स्टॉप-शब्द फ़िल्टरिंग के बिना एक आवृत्ति विश्लेषण कार्य-शब्दों से प्रभुत्व करता है, लेख, पूर्वसर्ग, संयोजक, सहायक, जो हर वाक्य में आते हैं और कम विषयगत अर्थ रखते हैं। शब्द «stop words» Hans Peter Luhn द्वारा अपने 1958 के शोधपत्र «The Automatic Creation of Literature Abstracts» में गढ़ा गया था, जो IBM Research में IBM 704 पर लिखा गया था। Luhn ने उन्हें «शोर शब्द» कहा, शब्द इतने सामान्य कि उन्होंने अधिक विषयगत रूप से सूचनात्मक सामग्री-शब्दों को छुपा दिया। आधुनिक स्टॉप-शब्द सूचियाँ अभी भी काफ़ी छोटी हैं। Python NLTK लाइब्रेरी की अंग्रेज़ी स्टॉप-शब्द सूची 179 शब्दों की है; spaCy की लगभग 326। सटीक आकार दर्शन पर निर्भर करता है: NLTK की सूची रूढ़िवादी है (केवल सबसे सार्वभौमिक रूप से कार्य-य शब्द); spaCy की अधिक आक्रामक है (कई सामान्य क्रियाओं और सर्वनामों सहित)। अन्य भाषाओं को अपनी सूचियाँ चाहिए, और सूचियाँ स्वयं रचना करना कठिन हो जाती हैं। जर्मन में कई यौगिक शब्द हैं जो छोटे सामान्य भागों में विघटित होते हैं। चीनी, जापानी और थाई में कोई व्हाइटस्पेस विभाजक बिल्कुल नहीं है, इसलिए «इस शब्द की आवृत्ति क्या है» पूछने से पहले आपको विभाजन करना होगा, यह तय करना कि शब्द सीमाएँ कहाँ हैं, जो अंग्रेज़ी के सीधे स्पेस-टोकनीकरण से एक गहरी समस्या है। यह उपकरण की स्टॉप-शब्द सूची अंग्रेज़ी को कवर करती है; गैर-अंग्रेज़ी पाठ के लिए, case-insensitive कच्ची आवृत्ति आउटपुट स्टॉप-शब्द-फ़िल्टर्ड संस्करण से अधिक उपयोगी होगी।

क्या शब्द के रूप में गिना जाता है, टोकनीकरण की समस्या

शब्द गिनना सरल लगता है जब तक आप ठीक-ठीक यह निर्दिष्ट करने की कोशिश नहीं करते कि एक क्या है। क्या «don't» एक शब्द है या दो (do + n't)? क्या «state-of-the-art» एक शब्द है या चार? क्या URL example.com एक शब्द है? और U.S.A., तीन शब्द, एक शब्द, या एक शब्द जिसे USA में सामान्यीकृत किया जाना चाहिए? Penn Treebank टोकनीकरण नियम (Penn Treebank कॉर्पस के लिए University of Pennsylvania में विकसित, 1989-) अंग्रेज़ी NLP के लिए वास्तविक मानक बन गए और संकुचनों को अलग टोकनों में विभाजित करते हैं (don'tdo + n't)। Unicode मानक का UAX #29 (Unicode Text Segmentation) भाषा-जागरूक शब्द सीमाओं को परिभाषित करता है जो अधिकांश लिपियों में काम करती हैं। आधुनिक वेब प्लेटफ़ॉर्म इसे Intl.Segmenter के रूप में उजागर करता है, 2024 से Chrome, Firefox और Safari में baseline उपलब्ध, इसे एक स्ट्रिंग और एक लोकेल दें, इनपुट भाषा की परंपराओं का सम्मान करने वाली शब्द सीमाओं का एक इटरेटर वापस पाएँ। यह उपकरण एक regex-आधारित दृष्टिकोण (Unicode flag के साथ [\p{L}\p{N}][\p{L}\p{N}_'-]*) का उपयोग करता है जो अधिकांश मामलों को अच्छी तरह संभालता है पर state-of-the-art को चार शब्दों के रूप में मानता है और घुंघराले टाइपोग्राफ़िक एपोस्ट्रोफ़ी (U+2019 वर्ण जिसे Word डिफ़ॉल्ट रूप से उत्पन्न करता है, सीधा ASCII एपोस्ट्रोफ़ U+0027 सही ढंग से काम करता है) के साथ संघर्ष कर सकता है।

स्टेमिंग और लेम्मेटाइज़ेशन

एक भोली आवृत्ति गणना run, runs, running और ran को चार अलग शब्दों के रूप में मानती है। कुछ प्रश्नों के लिए वह सही उत्तर है (आप वास्तव में सतह रूपों को अलग-अलग गिनना चाहते हैं); कई अन्य के लिए, आप उन्हें एक अवधारणा में संक्षिप्त चाहते हैं। स्टेमिंग नियम से प्रत्यय काटती है, Martin Porter (1980) का प्रसिद्ध Porter stemmer शब्दों को बहु-चरण प्रत्यय-हटाने एल्गोरिथम के माध्यम से उनके तने तक कम करता है: runningrun, catscat, generouslygenerous। बाद में Porter ने सिस्टम को Snowball (2001) में परिष्कृत किया, कई भाषाओं में स्टेमर लिखने के लिए एक छोटी भाषा। स्टेमिंग तेज़ और भाषा-अज्ञेय है पर गैर-शब्द उत्पन्न करती है (argues, argued, arguing सभी argu बन जाते हैं)। लेम्मेटाइज़ेशन अधिक परिष्कृत विकल्प है: यह प्रत्येक सतह रूप को उसके विहित लेम्मा पर मैप करने के लिए एक शब्दकोश और व्याकरणिक विश्लेषण का उपयोग करती है, असली शब्द उत्पन्न करते हुए (ranrun, न कि ra)। लेम्मेटाइज़ेशन धीमी है, एक भाषा-विशिष्ट शब्दकोश की आवश्यकता रखती है, और उन अनियमित मामलों को संभालती है जिन्हें स्टेमिंग ग़लत करती है। NLTK और spaCy दोनों लेम्मेटाइज़र भेजते हैं; यह उपकरण न तो करता है, डिज़ाइन से, सतह रूपों पर आवृत्ति विश्लेषण कुछ अनुप्रयोगों (शैली विश्लेषण, शब्दावली विविधता) के लिए लेम्मेटाइज़्ड संस्करण से अधिक उपयोगी है।

TF-IDF: एक दस्तावेज़ में शब्द की आवृत्ति पर्याप्त क्यों नहीं

एकल-दस्तावेज़ आवृत्ति विश्लेषण आपको बता सकता है कि इस विशेष पाठ में कौन से शब्द सबसे अधिक आते हैं, पर यह नहीं बता सकता कि कौन से शब्द इस पाठ के लिए विशिष्ट हैं। The हर अंग्रेज़ी दस्तावेज़ में सबसे अधिक आता है, इसलिए आपके दस्तावेज़ में इसकी उच्च आवृत्ति आपको कुछ नहीं बताती। TF-IDF (Term Frequency-Inverse Document Frequency) क्लासिक समाधान है: यह व्यापक कॉर्पस में शब्द कितनी बार आता है इसके व्युत्क्रम से दस्तावेज़ में प्रत्येक शब्द की आवृत्ति को भारित करती है। हर जगह सामान्य शब्द (the, of, and) छोटे भार प्राप्त करते हैं; आपके दस्तावेज़ में सामान्य पर अन्यत्र दुर्लभ शब्द बड़े भार प्राप्त करते हैं। IDF अवधारणा Karen Spärck Jones द्वारा 1972 के अपने शोधपत्र «A Statistical Interpretation of Term Specificity and Its Application in Retrieval» में Journal of Documentation में पेश की गई थी, Jones कम्प्यूटेशनल भाषाविज्ञान और सूचना पुनर्प्राप्ति की संस्थापक हस्तियों में से एक हैं, और खोज इंजनों में उनका योगदान (PageRank से आगे की हर खोज रैंकिंग एल्गोरिथम TF-IDF को कुछ बकाया है) व्यापक रूप से कम-मान्यता प्राप्त है। यह उपकरण कच्ची आवृत्ति की गणना करता है, TF-IDF नहीं, TF-IDF को तुलना के लिए एक कॉर्पस की आवश्यकता है, और मनमाने उपयोगकर्ता इनपुट के लिए कोई एकल सही कॉर्पस नहीं है।

N-gram और Google Books Ngram Viewer

एकल-शब्द आवृत्ति 1-gram विश्लेषण का विशेष मामला है। Bigrams (दो-शब्द अनुक्रम) और trigrams (तीन-शब्द अनुक्रम) बहु-शब्द वाक्यांशों को पकड़ते हैं, «machine learning» एक bigram है जो एकल-शब्द आवृत्ति विश्लेषण में कभी नहीं दिखाई देगा पर machine और learning की अलग गणनाओं से अधिक सूचनात्मक है। सबसे बड़ा सार्वजनिक रूप से उपलब्ध n-gram डेटासेट Google Books Ngram Viewer है, 16 दिसंबर 2010 को लॉन्च किया गया और लगभग 80 लाख पुस्तकों के ऑप्टिकल-कैरेक्टर-पहचाने गए पाठ से निर्मित, कभी प्रकाशित प्रत्येक पुस्तक का लगभग 6 %। Viewer आपको 1500 से वर्तमान तक अंग्रेज़ी (और कई अन्य भाषाओं) में किसी भी 1-, 2-, 3-, 4- या 5-gram की आवृत्ति को प्लॉट करने देता है। इसका उपयोग सब कुछ के लिए किया गया है, स्लैंग के उत्थान और पतन को ट्रैक करने से लेकर अदिनांकित पांडुलिपियों को दिनांकित करने तक से लेकर ऐतिहासिक अंग्रेज़ी उपयोग में लिंग पूर्वाग्रह को प्रलेखित करने तक। मार्कोव-चेन पाठ निर्माण, आधुनिक भाषा मॉडल का पूर्ववर्ती, n-gram आँकड़ों पर निर्मित था, पिछले N शब्दों से अगले शब्द की भविष्यवाणी करना ठीक वही है जो एक n-gram आवृत्ति तालिका आपको बताती है। यह उपकरण एकल शब्द गिनता है; bigram और trigram विश्लेषण भविष्य की सुविधा सूची पर है।

शब्दावली का आकार और Heaps का नियम

एक वयस्क मूल अंग्रेज़ी वक्ता लगभग 20,000 से 35,000 शब्द परिवारों को जानता है (एक «शब्द परिवार» एक मूल शब्द और उसके रूपों के साथ, run, runs, running, ran एक परिवार के रूप में)। Brysbaert et al. के 2016 के अध्ययन ने Frontiers in Psychology में कॉलेज-शिक्षित अमेरिकी वयस्कों के लिए माध्य लगभग 42,000 आधार शब्द रखा। Heaps का नियम (Heaps 1978; अंतर्निहित अवलोकन 1950 के दशक में जाता है) वर्णन करता है कि शब्दावली कॉर्पस आकार के साथ कैसे बढ़ती है: V ∝ K · Nβ, जहाँ V अद्वितीय-शब्द गणना (शब्दावली) है, N कुल टोकन गणना (कॉर्पस आकार) है, K 10-100 की सीमा में एक स्थिरांक है, और अंग्रेज़ी के लिए β 0.4 और 0.6 के बीच है। सरल शब्दों में: पाठ जितना लंबा होता है, उतने अधिक नए शब्द आप देखते हैं, पर प्रत्येक क्रमिक शब्द के नए होने की संभावना कम है। एक 1,000-शब्द निबंध शायद 400 अद्वितीय शब्द पेश करता है; एक 10,000-शब्द निबंध लगभग 1,300 अद्वितीय शब्द पेश करता है; एक 100,000-शब्द उपन्यास लगभग 4,500। संबंध उप-रैखिक पर अनबाउंडेड है, प्राकृतिक भाषा के लिए कोई सैद्धांतिक «शब्दावली टोपी» नहीं है। कंटेंट लेखकों के लिए अंगूठे का नियम: एक विशिष्ट 1,500-शब्द ब्लॉग पोस्ट में लगभग 500-600 अद्वितीय शब्द होते हैं, और शीर्ष 20 सबसे-आवृत्ति (अधिकतर स्टॉप शब्द) कुल घटनाओं का लगभग आधा कवर करते हैं।

जब शब्द-आवृत्ति विश्लेषण वास्तव में उपयोगी होता है

यह उपकरण आपके ब्राउज़र में कैसे काम करता है

कार्यान्वयन सीधा है। पाठ एक Unicode-aware regex ([\p{L}\p{N}][\p{L}\p{N}_'-]*/gu) के माध्यम से चलता है जो शब्दों के रूप में अक्षरों और संख्याओं के अनुक्रमों से मेल खाता है; यदि केस-insensitive विकल्प चालू है तो मिलान लोअरकेस में सामान्यीकृत होते हैं; प्रत्येक शब्द को JavaScript Map में बढ़ाया जाता है; प्रविष्टियाँ फिर अवरोही गणना द्वारा क्रमबद्ध की जाती हैं और चार्ट और तालिका के रूप में रेंडर की जाती हैं। एक विशिष्ट लैपटॉप पर 100,000-शब्द दस्तावेज़ पर कुल समय एक सेकंड से कम है। Map यहाँ सही डेटा संरचना है, यह सम्मिलन क्रम बनाए रखती है, O(1) लुकअप और अपडेट है, और निर्यात के लिए 2D एरे में साफ़ क्रमबद्ध होती है। एक अधिक परिष्कृत कार्यान्वयन गैर-तुच्छ शब्द सीमाओं वाली भाषाओं, विशेष रूप से CJK, के लिए Intl.Segmenter (Unicode-aware विभाजन API, अप्रैल 2024 से baseline) का उपयोग करेगा; regex दृष्टिकोण यूरोपीय भाषाओं के लिए अच्छी तरह काम करता है और चीनी, जापानी और थाई के लिए टूट जाता है जिनमें कोई व्हाइटस्पेस शब्द विभाजक नहीं है।

गोपनीयता: यहाँ केवल-ब्राउज़र क्यों मायने रखता है

अप्रकाशित लेखन के मसौदे, ब्लॉग पोस्ट, आंतरिक मेमो, ग्राहक डिलीवरेबल, पांडुलिपि अध्याय, प्रगति में अकादमिक शोधपत्र, ठीक वह प्रकार का पाठ हैं जहाँ तृतीय-पक्ष सेवा में अपलोड करना अवांछनीय है। सर्वर-साइड शब्द-आवृत्ति उपकरण पूरे पाठ को दूरस्थ एंडपॉइंट पर भेजने की आवश्यकता रखते हैं, जिसका मतलब है कि यह सर्वर के लॉग में बैठता है, संभवतः CDN कैश में, संभवतः एनालिटिक्स पाइपलाइन में, संभवतः बैकअप में। प्रकाशित पाठ के लिए मुद्दा बेकार है। मसौदा कार्य, NDA के तहत ग्राहक कॉपी, या कोई भी पांडुलिपि जिसे आप अभी तक अपनी टीम के बाहर किसी को देखना नहीं चाहते, के लिए वास्तुकला मायने रखती है। यह उपकरण JavaScript के माध्यम से आपके ब्राउज़र में पूरी पाइपलाइन चलाता है। पाठ कभी नेटवर्क पार नहीं करता, Analyze क्लिक करते समय DevTools के Network टैब में सत्यापित करें, या लोड होने के बाद पृष्ठ को ऑफ़लाइन (एयरप्लेन मोड) करें और पुष्टि करें कि विश्लेषण अभी भी काम करता है। गोपनीय मसौदों, ग्राहक डिलीवरेबल और किसी भी पाठ के लिए सुरक्षित जिसे आप किसी अजनबी की हार्ड ड्राइव पर कॉपी नहीं देखना चाहते।

अक्सर पूछे जाने वाले प्रश्न

स्टॉप वर्ड्स क्या हैं?

स्टॉप वर्ड्स "the", "is", "and", "or" जैसे सामान्य शब्द हैं जो अधिकांश टेक्स्ट में बार-बार आते हैं।

प्रतिशत की गणना कैसे होती है?

प्रतिशत इस प्रकार गणना होता है: (शब्द घटनाएँ ÷ कुल शब्द) × 100। उदाहरण: यदि कोई शब्द 100 शब्दों वाले टेक्स्ट में 5 बार आता है, तो 5%।

क्या यह काउंटर वाक्यांशों (n-grams) को संभालता है?

केवल एकल शब्द, वर्तमान में। Bigrams («machine learning» जैसे दो-शब्द अनुक्रम), trigrams और लंबे n-grams भविष्य की सुविधा सूची पर हैं। Google Books Ngram Viewer (16 दिसंबर 2010 को लॉन्च) पैमाने पर n-gram विश्लेषण के लिए सार्वजनिक संदर्भ है; व्यक्तिगत पाठ के लिए, NLTK और spaCy Python की कुछ पंक्तियों में n-gram निष्कर्षण भेजते हैं।

क्या मैं बहुत लंबे टेक्स्ट का विश्लेषण कर सकता हूँ?

हाँ, यह टूल पूरी तरह आपके ब्राउज़र में चलता है और कई MB के टेक्स्ट प्रसंस्कृत कर सकता है। बहुत बड़े टेक्स्ट को अधिक समय लग सकता है।

क्या यह गैर-अंग्रेज़ी पाठ के लिए काम करता है?

आंशिक रूप से। Unicode-aware regex किसी भी लैटिन-, सिरिलिक-, ग्रीक-, हिब्रू- या अरबी-लिपि भाषा में शब्द वर्णों की सही पहचान करता है। चीनी, जापानी और थाई के लिए, जिनमें कोई व्हाइटस्पेस शब्द विभाजक नहीं है, वर्ण द्वारा कच्ची आवृत्ति काम करेगी पर भाषाई अर्थ में वास्तव में «शब्द आवृत्ति» नहीं है, आपको पहले शब्द विभाजन चाहिए (चीनी के लिए jieba, जापानी के लिए MeCab, ब्राउज़र-साइड समर्थन के लिए ICU का Intl.Segmenter)। स्टॉप-शब्द फ़िल्टर केवल-अंग्रेज़ी है।

क्या मेरे पाठ अपलोड किए जाते हैं?

नहीं। विश्लेषण JavaScript के माध्यम से पूरी तरह आपके ब्राउज़र में चलता है। चिपकाया गया पाठ कभी नेटवर्क पार नहीं करता, Analyze क्लिक करते समय DevTools के Network टैब में सत्यापित करें, या लोड होने के बाद पृष्ठ को ऑफ़लाइन (एयरप्लेन मोड) करें और उपकरण अभी भी काम करेगा। गोपनीय मसौदों, ग्राहक डिलीवरेबल, NDA के तहत पांडुलिपि अध्यायों, आंतरिक मेमो या किसी और चीज़ के लिए सुरक्षित जिसे आप किसी अजनबी की हार्ड ड्राइव पर कॉपी नहीं देखना चाहते।

संबंधित टूल

मुफ़्त शब्द और वर्ण काउंटर ऑनलाइन मुफ़्त शब्द और वर्ण काउंटर ऑनलाइन वर्ण काउंटर