2015-02-05 6 views
6

क्या python nltk लाइब्रेरी में अंग्रेजी शब्दों की सूची प्राप्त करने का कोई तरीका है? मैंने इसे खोजने का प्रयास किया लेकिन मुझे मिली एकमात्र चीज wordnetnltk.corpus से है। लेकिन based on documentation, में मेरे पास जो चाहिए वह नहीं है (यह एक शब्द के लिए समानार्थी शब्द पाता है)।क्या nltk में अंग्रेजी शब्दों का एक निगम है?

मुझे पता है कि मेरे द्वारा इस शब्द की सूची कैसे प्राप्त करें (यह answer इसे विवरण में शामिल करता है), इसलिए मुझे दिलचस्पी है कि मैं केवल nltk लाइब्रेरी का उपयोग करके ऐसा कर सकता हूं।

उत्तर

5

हाँ, from nltk.corpus import words

और जाँच का उपयोग कर:

>>> "fine" in words.words() 
True 

संदर्भ: अनुभाग 4.1 (Wordlist कॉर्पोरा), Natural Language Processing with Python के 2 अध्याय।

+0

धन्यवाद, लेकिन क्या आप कृपया इसे दस्तावेज़ीकरण में कहां पा सकते हैं (ऐसा लगता है कि मैंने इसे किसी भी तरह याद किया है)? –

+0

@ सल्वाडोरडाली ने संदर्भ जोड़ा है। – axiom

+0

यह सहायक है !!! –

6

nltk.corpus.words कि @salvadordali पर प्रकाश डाला अलावा ,:

>>> from nltk.corpus import words 
>>> print words.readme() 
Wordlists 

en: English, http://en.wikipedia.org/wiki/Words_(Unix) 
en-basic: 850 English words: C.K. Ogden in The ABC of Basic English (1932) 
>>> print words.words()[:10] 
[u'A', u'a', u'aa', u'aal', u'aalii', u'aam', u'Aani', u'aardvark', u'aardwolf', u'Aaron'] 

ध्यान दें कि nltk.corpus.words आवृत्तियों के बिना शब्दों की एक सूची है, इसलिए यह वास्तव में प्राकृतिक पाठ का एक कॉर्पोरा नहीं है।

corpus पैकेज जिसमें विभिन्न निगम शामिल हैं, जिनमें से कुछ अंग्रेजी निगम हैं, http://www.nltk.org/nltk_data/ देखें। जैसे nltk.corpus.brown:

>>> from nltk.corpus import brown 
>>> brown.words()[:10] 
[u'The', u'Fulton', u'County', u'Grand', u'Jury', u'said', u'Friday', u'an', u'investigation', u'of'] 

एक प्राकृतिक पाठ कोष से एक शब्द सूची प्राप्त करने के लिए:

>>> wordlist = set(brown.words()) 
>>> print len(wordlist) 
56057 
>>> wordlist_lowercased = set(i.lower() for i in brown.words()) 
>>> print len(wordlist_lowercased) 
49815 

ध्यान दें कि brown.words() प्राकृतिक पाठ की तरह दोनों लोअर और अपर मामलों के साथ शब्द हैं।

ज्यादातर मामलों में, शब्दों की एक सूची आवृत्तियों के बिना बहुत उपयोगी नहीं है, तो आप FreqDist उपयोग कर सकते हैं: NLTK

में

>>> from nltk import FreqDist 
>>> from nltk.corpus import brown 
>>> frequency_list = FreqDist(i.lower() for i in brown.words()) 
>>> frequency_list.most_common()[:10] 
[(u'the', 69971), (u',', 58334), (u'.', 49346), (u'of', 36412), (u'and', 28853), (u'to', 26158), (u'a', 23195), (u'in', 21337), (u'that', 10594), (u'is', 10109)] 

अधिक के लिए, कैसे कॉर्पोरा तक पहुँचने के लिए पर http://www.nltk.org/book/ch01.html देख सकते हैं और उन्हें प्रोसेस

संबंधित मुद्दे