दिलचस्प पोस्ट
अजाक्स का उपयोग करके पीडीएफ फाईल को डाउनलोड और खोलें विंडोज 8 की स्वचालित रंग थीम का सक्रिय रंग प्राप्त करें एरो फ़ंक्शन बनाम फ़ंक्शन घोषणा / अभिव्यक्ति: क्या वे बराबर / विनिमेय हैं? एनजी-दोहराने के साथ एनजी-एक निर्देश के अंदर शामिल करें ग्रहण: एक जावा प्रोग्राम को एक .jar फ़ाइल के रूप में कैसे डीबग करना है? क्या आप एक एम्बेडेड नल के साथ एक std :: स्ट्रिंग का निर्माण करते हैं? स्विफ्ट में NSURL सत्र डाउनलोड टास्क का उपयोग करते हुए बहुसंख्यक फ़ाइलों को डाउनलोड करने के लिए कैसे करें पायथन इमेजिंग पुस्तकालय (पीआईएल) के साथ, एक छवि को एक अन्य छवि पर एक अल्फा चैनल के साथ कैसे तैयार किया जाता है? कॉलम हेडर क्लिक करने पर WPF ListView / GridView सॉर्ट करने का सर्वोत्तम तरीका? एसक्यूएल में नंबर युक्त स्ट्रिंग कॉलम छंटनी? पिपोला.शो () को लागू करने के बाद एक आंकड़ा सहेजना एक खाली फ़ाइल में परिणाम कैसे एक जीआईटी रिपॉजिटरी को एक दूसरे पर रिबेस करने के लिए? PHP के साथ HTTP कैश हेडर का उपयोग कैसे करें IIS अनुरोध समयबाह्य लंबे asp.net ऑपरेशन पर कैसे PHP का उपयोग कर एक पूरा फ़ोल्डर ज़िप करने के लिए

पायथन की संग्रह में अंतर। काउंटर और nltk.probability.FreqDist

मैं एक टेक्स्ट कॉरपस में शब्दों के शब्द-आवृत्तियों की गणना करना चाहता हूं। मैं एनएलटीके के शब्द का उपयोग कर रहा हूं जो कि उसके बाद संभावना है। फ़्रीकडिस्ट कुछ समय के लिए यह किया जाता है। Word_tokenize एक सूची देता है, जिसे फ़्रीकडिस्ट द्वारा आवृत्ति वितरण में परिवर्तित किया जाता है। हालांकि, हाल ही में मैं कलेक्शन (कलेक्शन। क्वॉर्टर) में काउंटर फंक्शन के पास आया था, जो ऐसा ही लगता है कि वही चीज है दोनों FreqDist और काउंटर में एक सबसे अधिक असामान्य (एन) फ़ंक्शन होता है जो n सबसे सामान्य शब्द वापस करता है क्या किसी को पता है कि इन दोनों के बीच अंतर है? क्या दूसरे की तुलना में तेज़ है? क्या ऐसे मामले हैं जहां एक काम करेगा और दूसरा नहीं होगा?

Solutions Collecting From Web of "पायथन की संग्रह में अंतर। काउंटर और nltk.probability.FreqDist"

nltk.probability.FreqDist collections.Counter उपवर्ग है।

डॉक्स से :

एक प्रयोग के परिणामों के लिए एक आवृत्ति वितरण। एक आवृत्ति वितरण एक प्रयोग के प्रत्येक परिणाम हुई बार की संख्या को रिकॉर्ड करता है। उदाहरण के लिए, किसी दस्तावेज़ में प्रत्येक शब्द प्रकार की आवृत्ति को रिकॉर्ड करने के लिए आवृत्ति वितरण का उपयोग किया जा सकता है। औपचारिक रूप से, एक आवृत्ति वितरण को प्रत्येक नमूने से फ़ंक्शन मैपिंग के रूप में परिभाषित किया जा सकता है कि नमूने एक परिणाम के रूप में हुईं।

इस विरासत को स्पष्ट रूप से कोड से दिखाया गया है और अनिवार्य रूप से, Counter और FreqDist को आरंभ करने के तरीके में कोई अंतर नहीं है, https://github.com/nltk/nltk/blob/develop/nltk/probability.py#L106 देखें

तो गति-वार, एक Counter और FreqDist बनाना समान होना चाहिए। गति में अंतर छोटा होना चाहिए, लेकिन यह ध्यान रखना अच्छा है कि ओवरहेड्स हो सकते हैं:

  • एक दुभाषिया में परिभाषित करते समय कक्षा का संकलन
  • बतख-टाइपिंग की लागत .__init__()

मुख्य अंतर यह है कि विभिन्न कार्य जो कि FreqDist सांख्यिकीय / संभाव्य प्राकृतिक भाषा संसाधन (एनएलपी) के लिए प्रदान करता है, जैसे हापैक्स ढूंढना । FreqDist फ़ंक्शन की पूरी सूची Counter तक फैली हुई है:

 >>> from collections import Counter >>> from nltk import FreqDist >>> x = FreqDist() >>> y = Counter() >>> set(dir(x)).difference(set(dir(y))) set(['plot', 'hapaxes', '_cumulative_frequencies', 'r_Nr', 'pprint', 'N', 'unicode_repr', 'B', 'tabulate', 'pformat', 'max', 'Nr', 'freq', '__unicode__']) 

जब यह FreqDist.most_common() का उपयोग करने के लिए आता है, तो यह वास्तव में Counter से मूल फ़ंक्शन का उपयोग कर रहा है, ताकि क्रमबद्ध सबसे most_common सूची को पुनर्प्राप्त करने की गति दोनों प्रकारों के लिए समान होती है।

व्यक्तिगत तौर पर, जब मैं मायने रखता हूं, तो मैं collections.Counter उपयोग करता हूं। लेकिन जब मुझे कुछ सांख्यिकीय हेरफेर करने की आवश्यकता होती है, तो मैं या तो nltk.FreqDist उपयोग करता nltk.FreqDist या मैं काउंटर को एक पंडों में डाट करता हूँ । pandas.DataFrame (देखें एक pandas.DataFrame एक काउंटर ऑब्जेक्ट रूपांतरण )