2017-06-09 43 views
7

Korpus słowa NLTK nie ma zwrotu "okay", "ok", "w porządku"?nltk słowa corpus nie zawierają "w porządku"?

> from nltk.corpus import words 
> words.words().__contains__("check") 
> True 

> words.words().__contains__("okay") 
> False 

> len(words.words()) 
> 236736 

Jakieś pomysły, dlaczego?

+0

Heh, TIL 'zymolysis',' okupukupu' i wiele niejasnych słów jest w korpusie, a 'okay' nie. Powinieneś zapytać go w [nltk github] (https://github.com/nltk/nltk) lub użyć innego korpusu, ale dobrego złapania. – umutto

+0

Szczegóły zawartości poszczególnych korpusów nie są pytaniami programistycznymi, nawet jeśli ktoś może na nie odpowiedzieć, jest to dość nietypowe. Wydaje się bardziej sensowne, aby poprosić opiekunów korpusu. – pvg

+0

Zgadzam się z @kindall –

Odpowiedz

7

TL; DR

from nltk.corpus import words 
from nltk.corpus import wordnet 

manywords = words.words() + wordnet.words() 

w Long

Z docs The nltk.corpus.words są słowa lista wyrazów z "http://en.wikipedia.org/wiki/Words_(Unix)

Które w Unix, można to zrobić:

ls /usr/share/dict/ 

i czytanie README:

$ cd /usr/share/dict/ 
/usr/share/dict$ cat README 
# @(#)README 8.1 (Berkeley) 6/5/93 
# $FreeBSD$ 

WEB ---- (introduction provided by [email protected]) ------------------------- 

Welcome to web2 (Webster's Second International) all 234,936 words worth. 
The 1934 copyright has lapsed, according to the supplier. The 
supplemental 'web2a' list contains hyphenated terms as well as assorted 
noun and adverbial phrases. The wordlist makes a dandy 'grep' victim. 

    -- James A. Woods {ihnp4,hplabs}!ames!jaw (or [email protected]) 

Country names are stored in the file /usr/share/misc/iso3166. 


FreeBSD Maintenance Notes --------------------------------------------- 

Note that FreeBSD is not maintaining a historical document, we're 
maintaining a list of current [American] English spellings. 

A few words have been removed because their spellings have depreciated. 
This list of words includes: 
    corelation (and its derivatives) "correlation" is the preferred spelling 
    freen    typographical error in original file 
    freend    archaic spelling no longer in use; 
        masks common typo in modern text 

-- 

A list of technical terms has been added in the file 'freebsd'. This 
word list contains FreeBSD/Unix lexicon that is used by the system 
documentation. It makes a great ispell(1) personal dictionary to 
supplement the standard English language dictionary. 

Ponieważ jest to ustalona lista 234,936, nie są zobowiązane do słowa, które nie istnieją w tym wykazie.

Jeśli chcesz rozszerzyć listę słów, możesz dodać ją do listy, używając słów z WordNet, używając nltk.corpus.wordnet.words().

Najprawdopodobniej wystarczy tylko wystarczająco duży korpus tekstu, np. Zrzut Wikipedii, a następnie tokenizacja i wyodrębnienie wszystkich unikalnych słów.

+2

"Istnieje korpus zawierający słowo, którego szukasz" tak naprawdę nie odpowiada "dlaczego ten korpus nie zawiera tego słowa". Nie jest też jasne, w jaki sposób "TL; DR" ma zastosowanie lub wyjaśnia. – pvg

+0

@alvas Dzięki za pracę. To jest to, co już zrobiłem, wraz ze stosowaniem niestandardowego słownika. Łącznie trzy słowniki. Fajne wyjaśnienie – MonsieurBeilto

+2

z nltk.corpus import wordnet jako wn? –