SteveS
SteveS

Reputation: 4070

How to extract all words in a noun food category in WordNet?

I am trying to get all the words in Wordnet dictionary that are of type noun and category food.

I have found a way to check if a word is noun.food but I need the reverse method:

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

Upvotes: 2

Views: 2062

Answers (1)

SteveS
SteveS

Reputation: 4070

So I think I have found a solution:

# 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

Then using the qdapDictionaries::GradyAugmented R English words dictionary I have checked each word if it's a noun.food:

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

It it actually did the job.

Hope it will help others.

Upvotes: 2

Related Questions