Python 如何在WordNet中提取名词食品类别中的所有单词?

Python 如何在WordNet中提取名词食品类别中的所有单词?,python,nltk,python-3.7,wordnet,Python,Nltk,Python 3.7,Wordnet,我正在努力获取Wordnet字典中所有属于名词和食物类的单词 我找到了一种检查单词是否为名词的方法。食品,但我需要相反的方法: import nltk nltk.download('wordnet') from nltk.corpus import wordnet as wn def if_food(word): syns = wn.synsets(word, pos = wn.NOUN) for syn in syns: print(syn.lexname()

我正在努力获取Wordnet字典中所有属于名词和食物类的单词

我找到了一种检查单词是否为名词的方法。食品,但我需要相反的方法:

import nltk
nltk.download('wordnet')
from nltk.corpus import wordnet as wn

def if_food(word):
    syns = wn.synsets(word, pos = wn.NOUN)
    for syn in syns:
        print(syn.lexname())
        if 'food' in syn.lexname():
            return 1
    return 0

所以我想我找到了一个解决办法:

# Using the NLTK WordNet dictionary check if the word is noun and a food.
import nltk
nltk.download('wordnet')
from nltk.corpus import wordnet as wn

def if_food(word):

    syns = wn.synsets(str(word), pos = wn.NOUN)

    for syn in syns:
        if 'food' in syn.lexname():
            return 1
    return 0
然后使用
qdapdicures::GradyAugmented
R英语单词词典,我检查了每个单词是否为名词。食品:

en_dict = pd.read_csv("GradyAugmentedENDict.csv")

en_dict['is_food'] = en_dict.word.apply(if_food)

en_dict[en_dict.is_food == 1].to_csv("en_dict_is_food.csv")
它确实做到了

希望它能帮助别人