2015-02-05 15 views
6

Czy istnieje sposób, aby uzyskać listę angielskich słów w bibliotece Python nltk? Próbowałem go znaleźć, ale jedyne co znalazłem to wordnet z nltk.corpus. Ale based on documentation, nie ma tego, czego potrzebuję (znajduje synonimy słowa).Czy w języku nltk istnieją corpory angielskich słów?

Wiem, jak znaleźć listę tych słów osobiście (to answer opisuje to szczegółowo), więc jestem zainteresowany, czy mogę to zrobić, używając tylko biblioteki nltk.

Odpowiedz

5

Tak, from nltk.corpus import words

i sprawdzić za pomocą:

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

referencyjny: Sekcja 4.1 (Wordlist Corpora), rozdział 2 Natural Language Processing with Python.

+0

dziękuję, ale czy możesz, gdzie możesz go znaleźć w dokumentacji (wygląda na to, że jakoś tęskniłem)? –

+0

@SalvadorDali Dodano odniesienie. – axiom

+0

To jest pomocne !!! –

6

Inne niż nltk.corpus.words że @salvadordali uwidocznił ,:

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

Należy pamiętać, że nltk.corpus.words jest lista słów bez częstotliwości więc nie jest to dokładnie korpusy naturalnego tekstu.

Pakiet corpus zawierający różne korpusy, z których niektóre są korpusami angielskimi, patrz http://www.nltk.org/nltk_data/. Na przykład. 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'] 

Aby uzyskać listę słów z naturalnego korpus:

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

Należy pamiętać, że brown.words() zawiera rozmowę z obu dolnych i górnych takich przypadkach naturalnym tekstu.

W większości przypadków, lista słów nie jest bardzo użyteczny bez częstotliwościach, dzięki czemu można korzystać z FreqDist:

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

więcej, zobacz http://www.nltk.org/book/ch01.html na temat dostępu do korpusów i przetwarzać je w NLTK

Powiązane problemy