Wordnet は、実際にはデフォルトで NLTK ダウンローダに含まれるコーパスの 1 つであることは注目に値します。したがって、車輪を再発明することなく、すでに見つけたソリューションを使用することができます。
たとえば、次のようにして、すべての名詞 synset を取得できます。
from nltk.corpus import wordnet as wn
for synset in list(wn.all_synsets('n')):
print synset
# Or, equivalently
for synset in list(wn.all_synsets(wn.NOUN)):
print synset
この例では、必要なすべての名詞が得られ、それらを synset にグループ化することもできるため、それらが正しいコンテキストで使用されていることを確認できます。
それらをすべてリストに入れたい場合は、次のようにすることができます (ただし、これは、単語と synset をどのように使用するかによってかなり異なります)。
all_nouns = []
for synset in wn.all_synsets('n'):
all_nouns.extend(synset.lemma_names())
またはワンライナーとして:
all_nouns = [word for synset in wn.all_synsets('n') for word in synset.lemma_names()]