NLTK WordNet: NLTK WordNet से समानार्थी शब्द खोजें Python

⚡ स्मार्ट सारांश

वर्डनेट अंग्रेजी के लिए एक शाब्दिक डेटाबेस और एनएलटीके कॉर्पस रीडर है जो संज्ञाओं, क्रियाओं, विशेषणों और क्रियाविशेषणों को समानार्थक शब्दों में समूहित करता है, जिससे Python प्रोग्राम प्राकृतिक भाषा प्रसंस्करण के लिए समानार्थी शब्द, विलोम शब्द, हाइपरनिम और शब्दार्थ खोजते हैं।

  • 🧩 कॉर्पस रीडर: WordNet को nltk.corpus से आयात किया जाता है और यह अंग्रेजी के अर्थ-आधारित शब्दकोश के रूप में कार्य करता है।
  • 🔁 सिनसेट: सिनसेट समानार्थी शब्दों का एक संग्रह है, जैसे कि "कुत्ता" के लिए लौटाए गए आठ अर्थ।
  • 🔗 शाब्दिक संबंध: पारस्परिक अर्थ संबंधी संबंध पर्यायवाची, विलोम, अतिनाम और उपनाम को जोड़ते हैं।
  • 🧪 समानार्थी और विपरीतार्थी शब्द: अस्तरping ओवर सिनसेट्स एंड लेम्मास किसी शब्द के सभी पर्यायवाची और विलोम शब्दों को एकत्रित करता है।
  • 🌳 पदानुक्रम: हाइपरनिम, हाइपोनिम, होलोनिम और मेरोनिम शब्दों को संज्ञा, क्रिया, विशेषण और क्रियाविशेषण के उपसमूहों में व्यवस्थित करते हैं।
  • 🤖 एआई के लाभ: WordNet वर्तनी सुधार, अनुवाद और स्पैम का पता लगाने जैसे पाठ विश्लेषण कार्यों को शक्ति प्रदान करता है।

एनएलटीके वर्डनेट

वर्डनेट क्या है?

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 इस तरह से सेट किया जाता है कि डुप्लिकेट प्रविष्टियाँ स्वचालित रूप से हटा दी जाती हैं।

पर्यायवाची और विलोम शब्दों के अलावा, वर्डनेट व्यापक शब्द (हाइपरनिम), विशिष्ट शब्द (हाइपोनिम), होलोनिम और मेरोनिम भी प्रदर्शित करता है, जिससे एक ही क्वेरी से किसी शब्द को संपूर्ण 'इज-ए' पदानुक्रम में रखा जा सकता है। ये संबंध वर्डनेट को वर्तनी जांच, भाषा अनुवाद, स्पैम पहचान और कृत्रिम बुद्धिमत्ता में अन्य पाठ-विश्लेषण कार्यों के लिए एक व्यावहारिक थिसॉरस बनाते हैं।

अक्सर पूछे जाने वाले प्रश्न

WordNet अंग्रेजी के लिए एक NLTK कॉर्पस रीडर और लेक्सिकल डेटाबेस है। यह एक अर्थ-आधारित शब्दकोश की तरह काम करता है, जिससे आप किसी शब्द के अर्थ, समानार्थी और विलोम शब्दों को आसानी से खोज सकते हैं। Python आदेश देता है।

सिनीसेट (पर्यायवाची शब्द का संक्षिप्त रूप) शब्दों का एक समूह है जो एक ही अवधारणा को साझा करते हैं। wordnet.synsets(“dog”) को कॉल करने पर कई सिनीसेट प्राप्त होते हैं, जिनमें से प्रत्येक “dog” शब्द के एक अलग अर्थ को दर्शाता है।

wordnet.synsets(word) के माध्यम से लूप करें, फिर प्रत्येक synset के lemmas() को पुनरावृत्त करें। समानार्थी शब्द एकत्रित करने के लिए lemma.name() को जोड़ें, और विलोम शब्द एकत्रित करने के लिए lemma.antonyms() को कॉल करें। अंत में लूप को समाप्त करें।ping set() फ़ंक्शन के परिणाम डुप्लिकेट प्रविष्टियों को हटा देते हैं।

हाइपरनिम एक व्यापक, सामान्य शब्द है (भोजन नाश्ते का हाइपरनिम है), जबकि हाइपोनिम एक अधिक विशिष्ट शब्द है (चावल भोजन का हाइपोनिम है)। वर्डनेट इन्हें जोड़कर एक पदानुक्रम बनाता है।

इंग्लिश वर्डनेट में लगभग 155,287 शब्द हैं, जिन्हें लगभग 117,659 समानार्थी शब्दों के समूहों में व्यवस्थित किया गया है। यह डेटाबेस चार प्रकार के शब्दों को शामिल करता है: संज्ञा, क्रिया, विशेषण और क्रियाविशेषण, जिनमें से प्रत्येक को अपने अलग उपसमूह में संग्रहीत किया गया है।

कृत्रिम बुद्धिमत्ता में, WordNet शब्द-अर्थ स्पष्टीकरण, वर्तनी सुधार, भाषा अनुवाद और स्पैम पहचान जैसे पाठ विश्लेषण कार्यों में सहायक होता है। इसके संरचित संबंध मशीन लर्निंग मॉडल को केवल कच्चे टोकन की तुलना में अधिक समृद्ध भाषाई विशेषताएँ प्रदान करते हैं।

जी हां। एआई और मशीन लर्निंग पाइपलाइन वर्डनेट समानता माप जैसे पथ समानता और वू-पामर समानता का उपयोग करती हैं। वे हाइपरनिम और हाइपोनिम पदानुक्रम में दो सिनसेट के बीच सबसे छोटे पथ को मापकर यह निर्धारित करती हैं कि वे कितने करीब हैं।

एक सामान्य शब्दकोश परिभाषाओं को वर्णानुक्रम में सूचीबद्ध करता है। इसके विपरीत, वर्डनेट समानार्थक शब्दों और शाब्दिक संबंधों के माध्यम से शब्दों को उनके अर्थ से जोड़ता है, इसलिए यह एक संयुक्त शब्दकोश और थिसॉरस की तरह व्यवहार करता है जिसे मशीनें प्रोग्रामेटिक रूप से उपयोग कर सकती हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: