2015-02-05 12 views
6

Gibt es eine Möglichkeit, die Liste der englischen Wörter in Python Nltk Bibliothek zu bekommen? Ich habe versucht, es zu finden, aber das einzige, was ich gefunden habe, ist wordnet von nltk.corpus. Aber based on documentation, es hat nicht, was ich brauche (es findet Synonyme für ein Wort).Gibt es Korpora von englischen Wörtern in nltk?

Ich weiß, wie man die Liste dieser Wörter durch mich selbst findet (dieses answer deckt es in den Details ab), also bin ich interessiert, ob ich dies tun kann, indem ich nur nltk Bibliothek verwende.

Antwort

5

Ja, from nltk.corpus import words

Und Prüfung mit:

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

Referenz: Abschnitt 4.1 (Wordlist Corpora), Kapitel 2 von Natural Language Processing with Python.

+0

danke, aber kannst du bitte wo findest du es in der Dokumentation (sieht aus wie ich es irgendwie vermisst habe)? –

+0

@SalvadorDali Haben die Referenz hinzugefügt. – axiom

+0

Es ist hilfreich !!! –

6

Anders als die nltk.corpus.words die @salvadordali hervorgehoben hat ,:

>>> 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'] 

Sie beachten Sie, dass nltk.corpus.words ist eine Liste von Wörtern ohne Frequenzen, so ist es nicht gerade ein Korpora natürlicher Text.

Das corpus Paket, das verschiedene Korpora enthält, von denen einige englische Korpora sind, siehe http://www.nltk.org/nltk_data/. Z.B. 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'] 

Um eine Wortliste aus einem natürlichen Textkorpus zu erhalten:

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

Beachten Sie, dass die brown.words() enthält Wörter mit den beiden unteren und oberen Fälle wie natürliche Text.

In den meisten Fällen ist eine Liste von Wörtern ohne Frequenzen nicht sehr nützlich, so können Sie die FreqDist verwenden:

>>> 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)] 

Weitere Informationen finden sich http://www.nltk.org/book/ch01.html wie Corpora zugreifen und verarbeiten sie in NLTK

Verwandte Themen