समस्या यह है कि यूनिकोड टेक्स्ट (यूटीएफ -8 के बारे में भूल जाओ, मैं आपके डेटा को उचित पायथन 3 तारों में डीकोड करने के बाद बात कर रहा हूं) कुछ पात्रों के लिए एक से अधिक यूनिकोड कोड बिंदु का उपयोग करता है: उदाहरण के लिए 'ą̊' दो अंक हैं , इसलिए उचित सामान्यीकरण के बाद दोनों "ą" और "å" एक वर्ण के रूप में मौजूद हो सकते हैं, एक वर्ण जो दोनों अंकों को लेता है, को यूनिकोड में "संयोजन चिह्न" वर्णों में से एक का उपयोग करना होता है।
इसका मतलब है कि पाइथन Counter
अकेले कम से कम एक अतिरिक्त चरण के बिना इसे संभालने में सक्षम नहीं होगा। पायथन कोड में, इन मार्कर वर्णों के बारे में पता लगाने का तरीका unicodedata.category
का उपयोग करके है - और यह अनुकूल नहीं है, यह सिर्फ two-character identifier for the category.
इसलिए, मुझे लगता है कि एक चीज जो किया जा सकता है वह आपके टेक्स्ट को पूर्व-प्रक्रिया करता है एक सूची जहां कुछ "शुद्ध पायथन" कोड का उपयोग करते हुए प्रत्येक चरित्र और उसके चिह्न सामान्यीकृत होते हैं। फिर, काउंटर अपना काम कर सकता था।
यह साथ कुछ हो सकता है:
import unicodedata
from collections import Counter
characters = []
text = ...
# Decompose all characters into plain letters + marking diacritics:
text = unicodedata.normalize("NFD", text)
for character in text:
if unicodedata.category(character)[0] == "M":
# character is a composing mark, so agregate it with
# previous character
characters[-1] += character
else:
characters.append(character)
counting = Counter(characters)
"चरित्र" लाइन है कि पढ़ता 'पर उद्धरण में नहीं होना चाहिए अगर unicodedata.category (" चरित्र ") [0] ==" एम ":' के रूप में यह एक चर को दर्शाता है। – olooney
स्पॉटिंग के लिए धन्यवाद। – jsbueno
इसके लिए बहुत बहुत धन्यवाद! मैंने परीक्षण किया और यह डबल मार्कर वाले अक्षरों के लिए भी अच्छा काम करता है :) मुझे 'unicodedata.normalize' और' unicodedata.category' 'की जांच करनी थी, इसलिए अगर अन्य लोगों को उनकी आवश्यकता हो तो लिंक यहां दिए गए हैं; https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize https://docs.python.org/2/library/unicodedata.html#unicodedata.category http: // www .fileformat.info/जानकारी/यूनिकोड/श्रेणी/index.htm धन्यवाद मदद के लिए बहुत कुछ! – user11448