NLTK WordNet: NLTK WordNet से समानार्थी शब्द खोजें Python
⚡ स्मार्ट सारांश
वर्डनेट अंग्रेजी के लिए एक शाब्दिक डेटाबेस और एनएलटीके कॉर्पस रीडर है जो संज्ञाओं, क्रियाओं, विशेषणों और क्रियाविशेषणों को समानार्थक शब्दों में समूहित करता है, जिससे Python प्रोग्राम प्राकृतिक भाषा प्रसंस्करण के लिए समानार्थी शब्द, विलोम शब्द, हाइपरनिम और शब्दार्थ खोजते हैं।
वर्डनेट क्या है?
WordNet WordNet एक NLTK कॉर्पस रीडर है, जो अंग्रेजी के लिए एक लेक्सिकल डेटाबेस है। इसका उपयोग शब्दों के अर्थ, पर्यायवाची या विलोम शब्द खोजने के लिए किया जा सकता है। इसे अंग्रेजी का अर्थ-उन्मुख शब्दकोश कहा जा सकता है। WordNet को निम्न कमांड से इम्पोर्ट किया जाता है:
from nltk.corpus import wordnet as guru
क्योंकि WordNet एक तैयार कॉर्पस के रूप में आता है, आप इसे एक बार लोड कर सकते हैं और बिना खुद कोई शब्दकोश बनाए तुरंत शब्दों के संबंधों की खोज शुरू कर सकते हैं।
NLTK WordNet से समानार्थी शब्द खोजें Python
आंकड़े बताते हैं कि 155287 शब्द और 117659 समानार्थी शब्द इंग्लिश वर्डनेट के साथ सेट शामिल हैं। वर्डनेट के साथ उपलब्ध विभिन्न विधियों को टाइप करके खोजा जा सकता है।ping dir(guru), जो कॉर्पस रीडर द्वारा उजागर किए गए प्रत्येक लोडर विशेषता और सहायक विधि को सूचीबद्ध करता है।
सिनसेट: इसे पर्यायवाची शब्दों का समुच्चय या पर्यायवाची शब्दों का संग्रह भी कहा जाता है। आइए एक उदाहरण देखते हैं।
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
आउटपुट:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
शाब्दिक संबंध: ये अर्थपरक संबंध हैं जो परस्पर क्रिया करते हैं। यदि {x1,x2,…xn} और {y1,y2,…yn} के बीच संबंध है, तो {y1,y2,…yn} और {x1,x2,…xn} के बीच भी संबंध होगा। उदाहरण के लिए, पर्यायवाची विलोम शब्द का विपरीत होता है, जबकि अतिनाम और उपनाम एक प्रकार की शाब्दिक अवधारणाएँ हैं।
आइये एक प्रोग्राम लिखें Python WordNet का उपयोग करके "active" शब्द के समानार्थी और विलोम शब्द ज्ञात करना।
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
कोड का आउटपुट:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
कोड का स्पष्टीकरण:
- WordNet एक कॉर्पस है, इसलिए इसे nltk.corpus पैकेज से आयात किया जाता है।
- समानार्थी और विपरीतार्थी शब्दों की दो सूचियों को खाली माना जाता है, जिनका उपयोग जोड़ने के लिए किया जाएगा।
- शब्द “सक्रिय” के समानार्थी शब्दों को सिनसेट विधि द्वारा खोजा जाता है और समानार्थी शब्दों की सूची में जोड़ा जाता है। इसी प्रक्रिया से विलोम शब्द भी एकत्रित किए जाते हैं।
- आउटपुट इस प्रकार प्रिंट होता है Python इस तरह से सेट किया जाता है कि डुप्लिकेट प्रविष्टियाँ स्वचालित रूप से हटा दी जाती हैं।
पर्यायवाची और विलोम शब्दों के अलावा, वर्डनेट व्यापक शब्द (हाइपरनिम), विशिष्ट शब्द (हाइपोनिम), होलोनिम और मेरोनिम भी प्रदर्शित करता है, जिससे एक ही क्वेरी से किसी शब्द को संपूर्ण 'इज-ए' पदानुक्रम में रखा जा सकता है। ये संबंध वर्डनेट को वर्तनी जांच, भाषा अनुवाद, स्पैम पहचान और कृत्रिम बुद्धिमत्ता में अन्य पाठ-विश्लेषण कार्यों के लिए एक व्यावहारिक थिसॉरस बनाते हैं।

