NLTK WordNet: NLTK WordNet से समानार्थी शब्द खोजें Python
वर्डनेट क्या है?
वर्डनेट एक NLTK कॉर्पस रीडर है, जो अंग्रेजी के लिए एक शाब्दिक डेटाबेस है। इसका उपयोग शब्दों, समानार्थी या विलोम के अर्थ खोजने के लिए किया जा सकता है। इसे अंग्रेजी के अर्थ-उन्मुख शब्दकोश के रूप में परिभाषित किया जा सकता है। इसे निम्नलिखित कमांड के साथ आयात किया जाता है:
from nltk.corpus import wordnet as guru
NLTK WordNet से समानार्थी शब्द खोजें Python
आंकड़े बताते हैं कि 155287 शब्द और 117659 समानार्थी शब्द अंग्रेजी वर्डनेट के साथ शामिल सेट।
WordNet के साथ उपलब्ध विभिन्न विधियों को dir(guru) टाइप करके पाया जा सकता है
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
आइये वर्डनेट में उपलब्ध कुछ विशेषताओं को समझें:
सिन्सेट: इसे पर्यायवाची शब्दों का समूह या पर्यायवाची शब्दों का संग्रह भी कहा जाता है। आइए एक उदाहरण देखें
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} के बीच भी संबंध है। उदाहरण के लिए पर्यायवाची शब्द विलोम का विपरीत है या हाइपरनिम और हाइपोनिम एक प्रकार की शाब्दिक अवधारणा है।
आइये एक प्रोग्राम लिखें अजगर वर्डनेट का उपयोग करके शब्द “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))
कोड का आउटपुट:
{'गतिशील', 'लड़ाई', 'लड़ाई के लिए तैयार', 'सक्रिय_आवाज़', 'सक्रिय_एजेंट', 'भाग लेने वाला', 'जीवित', 'सक्रिय'} — समानार्थी शब्द
{'स्थिर', 'निष्क्रिय', 'शांत', 'निष्क्रिय_आवाज़', 'विलुप्त', 'निष्क्रिय'} — विलोम
कोड की व्याख्या
- वर्डनेट एक कॉर्पस है, इसलिए इसे ntlk.corpus से आयात किया जाता है
- समानार्थी और विलोम दोनों की सूची रिक्त मानी जाती है जिसका उपयोग जोड़ने के लिए किया जाएगा
- एक्टिव शब्द के समानार्थी शब्द मॉड्यूल synsets में खोजे जाते हैं और समानार्थी शब्दों की सूची में जोड़ दिए जाते हैं। दूसरे के लिए भी यही प्रक्रिया दोहराई जाती है।
- आउटपुट मुद्रित है
निष्कर्ष
वर्डनेट एक शाब्दिक डेटाबेस है जिसका उपयोग प्रमुख द्वारा किया गया है search engineवर्डनेट से किसी दिए गए शब्द या वाक्यांश के बारे में जानकारी की गणना की जा सकती है जैसे
- समानार्थी शब्द (समान अर्थ वाले शब्द)
- हाइपरनीम्स (विशिष्ट वर्ग को निर्दिष्ट करने के लिए प्रयुक्त सामान्य शब्द (जैसे, भोजन एक नाश्ता है), हाइपोनीम्स (चावल एक भोजन है)
- होलोनिम्स (प्रोटीन, कार्बोहाइड्रेट भोजन का हिस्सा हैं)
- मेरोनिम्स (भोजन दैनिक भोजन का हिस्सा है)
वर्डनेट समन्वय शब्दों, व्युत्पन्नों, अर्थों और बहुत कुछ के बारे में जानकारी भी प्रदान करता है। इसका उपयोग किसी भी दो शब्दों के बीच समानताएँ खोजने के लिए किया जाता है। यह संबंधित शब्द के परिणामों के बारे में भी जानकारी रखता है। संक्षेप में या संक्षेप में कोई इसे शब्दकोश या थिसॉरस के रूप में मान सकता है। वर्डनेट में गहराई से जाने पर, इसे कुल चार सबनेट में विभाजित किया गया है जैसे कि
- संज्ञा
- क्रिया
- विशेषण
- क्रिया - विशेषण
इसका उपयोग कृत्रिम बुद्धिमत्ता के क्षेत्र में पाठ विश्लेषण के लिए किया जा सकता है। वर्डनेट की मदद से, आप वर्तनी जाँच, भाषा अनुवाद, स्पैम पहचान और कई अन्य कार्यों के लिए अपना कॉर्पस बना सकते हैं।
उसी तरह, आप इस कॉर्पस का उपयोग कर सकते हैं और इसे कुछ गतिशील कार्यक्षमता के लिए ढाल सकते हैं। यह आपके लिए तैयार कॉर्पस की तरह है। आप इसे अपने तरीके से इस्तेमाल कर सकते हैं।