पायथन के साथ एनएलटीके का उपयोग करने का परिचय

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

इस आकर्षक तकनीक के पीछे का तर्क जटिल लगता है लेकिन ऐसा नहीं है। और अब भी, बुनियादी पायथन प्रोग्रामिंग की ठोस समझ के साथ, आप प्राकृतिक भाषा टूलकिट (एनएलटीके) के साथ एक नया DIY वर्ड प्रोसेसर बना सकते हैं।

यहां बताया गया है कि पायथन के एनएलटीके के साथ शुरुआत कैसे करें।

एनएलटीके क्या है और यह कैसे काम करता है?

पायथन के साथ लिखित, एनएलटीके में विभिन्न प्रकार की स्ट्रिंग मैनिपुलेटिंग कार्यक्षमताएं हैं। यह विभिन्न प्राकृतिक भाषा अनुप्रयोगों के लिए एक विशाल मॉडल भंडार के साथ एक बहुमुखी प्राकृतिक भाषा पुस्तकालय है।

एनएलटीके के साथ, आप कच्चे ग्रंथों को संसाधित कर सकते हैं और उनसे सार्थक विशेषताएं निकाल सकते हैं। यह एक संपूर्ण भाषा मॉडल के निर्माण के लिए पाठ विश्लेषण मॉडल, फीचर-आधारित व्याकरण और समृद्ध शाब्दिक संसाधन भी प्रदान करता है।

एनएलटीके कैसे सेट करें

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

फिर, pip का उपयोग करके इस वातावरण में प्राकृतिक भाषा टूलकिट स्थापित करें:

 pip install nltk

हालाँकि, NLTK में विभिन्न प्रकार के डेटासेट हैं जो उपन्यास प्राकृतिक भाषा मॉडल के आधार के रूप में काम करते हैं। उन्हें एक्सेस करने के लिए, आपको एनएलटीके बिल्ट-इन डेटा डाउनलोडर को स्पिन करना होगा।

इसलिए, एनएलटीके को सफलतापूर्वक स्थापित करने के बाद, किसी भी कोड संपादक का उपयोग करके अपनी पायथन फ़ाइल खोलें।

फिर nltk मॉड्यूल आयात करें और निम्न कोड का उपयोग करके डेटा डाउनलोडर को तुरंत चालू करें:

 pip install nltk
nltk.download()

टर्मिनल के माध्यम से उपरोक्त कोड को चलाने से डेटा पैकेज चुनने और डाउनलोड करने के लिए एक ग्राफिक-यूजर इंटरफेस आता है। यहां, आपको एक पैकेज चुनना होगा और इसे प्राप्त करने के लिए डाउनलोड बटन पर क्लिक करना होगा।

आपके द्वारा डाउनलोड किया गया कोई भी डेटा पैकेज डाउनलोड निर्देशिका फ़ील्ड में लिखी गई निर्दिष्ट निर्देशिका में जाता है। आप चाहें तो इसे बदल सकते हैं। लेकिन इस स्तर पर डिफ़ॉल्ट स्थान बनाए रखने का प्रयास करें।

संबंधित: आपका पहला ऐप लिखने के लिए सर्वश्रेष्ठ मुफ्त कोड संपादक

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

एनएलटीके टोकेनाइज़र का उपयोग कैसे करें

अंततः, NLTK शब्दों और वाक्यों के लिए प्रशिक्षित टोकन मॉडल प्रदान करता है। इन उपकरणों का उपयोग करके, आप एक वाक्य से शब्दों की एक सूची तैयार कर सकते हैं। या एक पैराग्राफ को एक समझदार वाक्य सरणी में बदल दें।

एनएलटीके word_tokenizer का उपयोग कैसे करें इसका एक उदाहरण यहां दिया गया है :

 import nltk
from nltk.tokenize import word_tokenize
word = "This is an example text"
tokenWord = word_tokenizer(word)
print(tokenWord)
Output:
['This', 'is', 'an', 'example', 'text']

NLTK भी एक पूर्व प्रशिक्षित वाक्य tokenizer PunktSentenceTokenizer कहा जाता है का उपयोग करता है। यह पैराग्राफ को वाक्यों की सूची में विभाजित करके काम करता है।

आइए देखें कि यह दो-वाक्य वाले पैराग्राफ के साथ कैसे काम करता है:

 import nltk
from nltk.tokenize import word_tokenize, PunktSentenceTokenizer
sentence = "This is an example text. This is a tutorial for NLTK"
token = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize(sentence)
print(tokenized_sentence)
Output:
['This is an example text.', 'This is a tutorial for NLTK']

आप उपरोक्त कोड से उत्पन्न सरणी में प्रत्येक वाक्य को वर्ड_टोकनाइज़र और लूप के लिए पायथन का उपयोग करके आगे टोकन कर सकते हैं।

एनएलटीके का उपयोग कैसे करें के उदाहरण

इसलिए जब हम एनएलटीके के सभी संभावित उपयोग-मामलों को प्रदर्शित नहीं कर सकते हैं, तो यहां कुछ उदाहरण दिए गए हैं कि आप वास्तविक जीवन की समस्याओं को हल करने के लिए इसका उपयोग कैसे शुरू कर सकते हैं।

शब्द परिभाषाएँ और उनके भाषण के भाग प्राप्त करें

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

टेक्स्ट के लिए वेरिएबल जेनरेट करने के लिए आप वर्डनेट मॉडल का उपयोग कर सकते हैं। फिर इसका अर्थ और भाषण का हिस्सा निर्धारित करें।

उदाहरण के लिए, "बंदर:" के लिए संभावित चर की जाँच करें।

 import nltk
from nltk.corpus import wordnet as wn
print(wn.synsets('monkey'))
Output:
[Synset('monkey.n.01'), Synset('imp.n.02'), Synset('tamper.v.01'), Synset('putter.v.02')]

उपरोक्त कोड "बंदर" के लिए संभावित शब्द विकल्प या वाक्य रचना और भाषण के कुछ हिस्सों को आउटपुट करता है।

अब परिभाषा पद्धति का उपयोग करके "बंदर" का अर्थ जांचें:

 Monkey = wn.synset('monkey.n.01').definition()
Output:
any of various long-tailed primates (excluding the prosimians)

एनएलटीके आउटपुट क्या है यह देखने के लिए आप अन्य जेनरेट किए गए विकल्पों के साथ कोष्ठक में स्ट्रिंग को प्रतिस्थापित कर सकते हैं।

हालाँकि, pos_tag मॉडल किसी शब्द के भाषण के कुछ हिस्सों को निर्धारित करता है। यदि आप लंबे पैराग्राफ के साथ काम कर रहे हैं तो आप इसका उपयोग word_tokenizer या PunktSentenceTokenizer() के साथ कर सकते हैं।

यहां बताया गया है कि यह कैसे काम करता है:

 import nltk
from nltk.tokenize import word_tokenize, PunktSentenceTokenizer
word = "This is an example text. This is a tutorial on NLTK"
token = PunktSentenceTokenizer()
tokenized_sentence = token.tokenize(word)
for i in tokenized_sentence:
tokenWordArray = word_tokenize(i)
partsOfSpeech = nltk.pos_tag(tokenWordArray)
print(partsOfSpeech)
Output:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('text', 'NN'), ('.', '.')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

उपरोक्त कोड प्रत्येक टोकनयुक्त शब्द को उसके स्पीच टैग के साथ एक टुपल में जोड़ता है। आप इन टैग्स का अर्थ पेन ट्रीबैंक पर देख सकते हैं।

एक क्लीनर परिणाम के लिए, आप प्रतिस्थापन () विधि का उपयोग करके आउटपुट में अवधियों को हटा सकते हैं:

 for i in tokenized_sentence:
tokenWordArray = word_tokenize(i.replace('.', ''))
partsOfSpeech = nltk.pos_tag(tokenWordArray)
print(partsOfSpeech)
Cleaner output:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('text', 'NN')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

कच्चे पाठों से फीचर निकालना अक्सर थकाऊ और समय लेने वाला होता है। लेकिन आप NLTK फ़्रीक्वेंसी डिस्ट्रीब्यूशन ट्रेंड प्लॉट का उपयोग करके टेक्स्ट में सबसे मजबूत फीचर निर्धारक देख सकते हैं।

NLTK, तथापि, matplotlib के साथ समन्वयित करता है आप अपने डेटा में एक विशिष्ट प्रवृत्ति देखने के लिए इसका लाभ उठा सकते हैं।

उदाहरण के लिए, नीचे दिया गया कोड वितरण प्लॉट पर सकारात्मक और नकारात्मक शब्दों के एक सेट की तुलना उनके अंतिम दो अक्षरों का उपयोग करके करता है:

 import nltk
from nltk import ConditionalFreqDist
Lists of negative and positive words:
negatives = [
'abnormal', 'abolish', 'abominable',
'abominably', 'abominate','abomination'
]
positives = [
'abound', 'abounds', 'abundance',
'abundant', 'accessable', 'accessible'
]
# Divide the items in each array into labeled tupple pairs
# and combine both arrays:
pos_negData = ([("negative", neg) for neg in negatives]+[("positive", pos) for pos in positives])
# Extract the last two alphabets from from the resulting array:
f = ((pos, i[-2:],) for (pos, i) in pos_negData)
# Create a distribution plot of these alphabets
cfd = ConditionalFreqDist(f)
cfd.plot()

वर्णमाला वितरण प्लॉट इस तरह दिखता है:

ग्राफ़ को करीब से देखने पर, ce , ds , le , nd , और nt से समाप्त होने वाले शब्दों के सकारात्मक टेक्स्ट होने की संभावना अधिक होती है। लेकिन al , ly , on , और te के साथ समाप्त होने वाले शब्द नकारात्मक होने की अधिक संभावना है।

नोट : यद्यपि हमने यहां स्व-निर्मित डेटा का उपयोग किया है, आप एनएलटीके के कुछ अंतर्निहित डेटासेट को इसके कॉर्पस रीडर का उपयोग करके nltk के कॉर्पस वर्ग से कॉल करके एक्सेस कर सकते हैं। आप इसका उपयोग कैसे कर सकते हैं यह देखने के लिए आप कॉर्पस पैकेज दस्तावेज़ीकरण देखना चाहेंगे।

नेचुरल लैंग्वेज प्रोसेसिंग टूलकिट को एक्सप्लोर करते रहें

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

इस लेख को पढ़ने के बाद, आपको इस बात का अच्छा अंदाजा होना चाहिए कि आधार स्तर पर एनएलटीके का उपयोग कैसे किया जाता है। अब आपके लिए बस इतना करना बाकी है कि इस ज्ञान को स्वयं अमल में लाएं!