使用NLTK在Python中获取大量名词(或形容词); 或Python Mad Libs

cfo*_*ter 8 python machine-learning nltk

就像这个问题一样,我有兴趣通过词性(一长串名词;形容词列表)获得大量单词,以便在其他地方以编程方式使用.这个答案有一个使用WordNet数据库(SQL)格式的解决方案.

有没有办法使用Python NLTK内置的语料库/工具获得此类列表.我可以拿一大堆文本,解析它然后存储名词和形容词.但是考虑到内置的词典和其他工具,是否有一种更简单的方法可以简单地提取已经存在于NLTK数据集中的单词,编码为名词/形容词(无论如何)?

谢谢.

Sla*_*off 9

值得注意的是,Wordnet实际上是默认情况下包含在NLTK下载器中的语料库之一.因此,您可以想象只使用您已经找到的解决方案,而无需重新发明任何车轮.

例如,你可以做这样的事情来得到所有的名词同义词:

from nltk.corpora 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
Run Code Online (Sandbox Code Playgroud)

该示例将为您提供您想要的每个名词,它甚至会将它们分组到它们的同义词中,这样您就可以确保它们在正确的上下文中使用.