सभी लेख

कैरेक्टर और शब्द गिनना: यूनिकोड इसे जटिल क्यों बनाता है

टेक्स्ट में कैरेक्टर और शब्द गिनना आसान लगता है, लेकिन देवनागरी लिपि की बनावट की वजह से "एक कैरेक्टर" की गिनती ख़ुद ही उलझन भरी हो जाती है।

संयुक्ताक्षर: एक दिखने वाला अक्षर, कई कोड पॉइंट

देवनागरी में व्यंजन और मात्राएँ मिलकर एक संयुक्ताक्षर (conjunct) बनाते हैं — जैसे "क्" + "ष" मिलकर "क्ष" बनता है, जो विज़ुअली एक ही अक्षर जैसा दिखता है। यूनिकोड में इसे कई कोड पॉइंट (व्यंजन + विराम चिह्न/हलंत + दूसरा व्यंजन) जोड़कर दर्शाया जाता है, इसलिए कोड-पॉइंट आधारित कैरेक्टर गिनती अक्सर उतनी नहीं आती जितनी आँख से दिखने वाले अक्षरों की संख्या होती है।

मात्रा भी एक अलग कोड पॉइंट है

किसी व्यंजन पर लगी मात्रा (जैसे "कि" में "ि") विज़ुअली उस अक्षर का ही हिस्सा लगती है, लेकिन यूनिकोड में यह एक अलग कॉम्बाइनिंग कैरेक्टर होती है जो मुख्य व्यंजन के कोड पॉइंट के बाद जुड़ता है। इस वजह से एक शब्द में दिखने वाले अक्षरों से ज़्यादा कोड पॉइंट गिने जा सकते हैं, भले ही पढ़ने में वह एक ही अक्षर जैसा लगे।

हिंदी में शब्दों के बीच स्पेस, फिर भी उलझन

हिंदी में शब्दों को आमतौर पर स्पेस से अलग किया जाता है, इसलिए स्पेस-आधारित शब्द गिनती लैटिन लिपि की तरह ही काम करती है। लेकिन परसर्ग (postposition) जैसे "का", "के", "में" कभी अलग शब्द के रूप में लिखे जाते हैं तो कभी पिछले शब्द से जुड़कर, जिससे एक ही वाक्य के दो अलग-अलग लेखन शैलियों में शब्दों की गिनती अलग आ सकती है।

यह किस काम आता है

  • किसी टेक्स्ट को कैरेक्टर लिमिट (ट्वीट, SMS, फ़ॉर्म फ़ील्ड) के हिसाब से जाँचना।
  • किसी आर्टिकल के शब्दों की संख्या से पढ़ने का अनुमानित समय निकालना।
  • यह समझना कि संयुक्ताक्षर और मात्राओं की वजह से "अक्षरों जैसा दिखने वाला" और "कोड पॉइंट में गिना गया" कैरेक्टर काउंट अलग क्यों आता है।

बिना स्पेस वाली भाषाओं में शब्द गिनना

चीनी, जापानी या थाई भाषा में परंपरागत रूप से शब्दों को स्पेस से अलग नहीं किया जाता — शब्दों की सीमा स्पेस से नहीं, बल्कि व्याकरण और संदर्भ से तय होती है। इसलिए ऐसी भाषाओं के लिए "शब्द गिनना" असल में एक अलग टेक्स्ट-सेगमेंटेशन एल्गोरिदम की माँग करता है, और सिर्फ़ स्पेस के आधार पर गिनती वहाँ या तो पूरे टेक्स्ट को एक "शब्द" गिन देगी, या पूरी तरह अर्थहीन हो जाएगी।

टूल आज़माएँ