WordNet is the lexical database i.e. dictionary for the English language, specifically designed for natural language processing.
Synset is a special kind of a simple interface that is present in NLTK to look up words in WordNet. Synset instances are the groupings of synonymous words that express the same concept. Some of the words have only one Synset and some have several.
Code #1 : Understanding Synset
from nltk.corpus import wordnet syn = wordnet.synsets('hello')[0] print ("Synset name : ", syn.name()) # Defining the word print ("\nSynset meaning : ", syn.definition()) # list of phrases that use the word in context print ("\nSynset example : ", syn.examples()) |
Output:
Synset name : hello.n.01 Synset meaning : an expression of greeting Synset example : ['every morning they exchanged polite hellos']
wordnet.synsets(word) can be used to get a list of Synsets. This list can be empty (if no such word is found) or can have few elements.
Hypernyms and Hyponyms –
Hypernyms: More abstract terms
Hyponyms: More specific terms.
Both come to picture as Synsets are organized in a structure similar to that of an inheritance tree. This tree can be traced all the way up to a root hypernym. Hypernyms provide a way to categorize and group words based on their similarity to each other.
Code #2 : Understanding Hypernerms and Hyponyms
from nltk.corpus import wordnet syn = wordnet.synsets('hello')[0] print ("Synset name : ", syn.name()) print ("\nSynset abstract term : ", syn.hypernyms()) print ("\nSynset specific term : ", syn.hypernyms()[0].hyponyms()) syn.root_hypernyms() print ("\nSynset root hypernerm : ", syn.root_hypernyms()) |
Output:
Synset name : hello.n.01
Synset abstract term : [Synset('greeting.n.01')]
Synset specific term : [Synset('calling_card.n.02'), Synset('good_afternoon.n.01'),
Synset('good_morning.n.01'), Synset('hail.n.03'), Synset('hello.n.01'),
Synset('pax.n.01'), Synset('reception.n.01'), Synset('regard.n.03'),
Synset('salute.n.02'), Synset('salute.n.03'), Synset('welcome.n.02'),
Synset('well-wishing.n.01')]
Synset root hypernerm : [Synset('entity.n.01')]

Code #3 : Part of Speech (POS) in Synset.
syn = wordnet.synsets('hello')[0] print ("Syn tag : ", syn.pos()) syn = wordnet.synsets('doing')[0] print ("Syn tag : ", syn.pos()) syn = wordnet.synsets('beautiful')[0] print ("Syn tag : ", syn.pos()) syn = wordnet.synsets('quickly')[0] print ("Syn tag : ", syn.pos()) |
Output:
Syn tag : n Syn tag : v Syn tag : a Syn tag : r
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.
Recommended Posts:
- NLP | WuPalmer - WordNet Similarity
- NLP | WordNet for tagging
- How to get synonyms/antonyms from NLTK WordNet in Python?
- NLP | Word Collocations
- NLP | Part of speech tagged - word corpus
- NLP | Likely Word Tags
- Word Embeddings in NLP
- Python program to read file word by word
- NLP | Classifier-based Chunking | Set 2
- Processing text using NLP | Basics
- Readability Index in Python(NLP)
- Feature Extraction Techniques - NLP
- Python | NLP analysis of Restaurant reviews
- Applying Multinomial Naive Bayes to NLP Problems
- NLP | Chunking and chinking with RegEx
- NLP | Training Unigram Tagger
- NLP | Part of Speech - Default Tagging
- NLP | Training a tokenizer and filtering stopwords in a sentence
- NLP | How tokenizing text, sentence, words works
- NLP | Splitting and Merging Chunks
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.