Using this [x for x in wn.all_synsets('n')] I am able to get a list allnouns with all nouns from Wordnet with help from NLTK.
The list allnouns looks like this Synset('pile.n.01'), Synset('compost_heap.n.01'), Synset('mass.n.03') and so on. Now I am able to get any element by using allnouns[2] and this should be Synset('mass.n.03').
I would like to extract only the word mass but for some reason I cannot treat it like a string and everything I try shows a AttributeError: 'Synset' object has no attribute or TypeError: 'Synset' object is not subscriptable or <bound method Synset.name of Synset('mass.n.03')> if I try to use .name or .pos
How about trying this solution:
For your case:
The item at 23rd index is "Synset('substance.n.07')". Now, you can extract its name field like
If you want only the 'name' fields of the synsets of 'noun' category in the list, then use:
should exactly give the result you need.
Note: In wordnet,
nameis not an attribute rather it is a function!