You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/hi/6-NLP/2-Tasks
leestott aa4b119744
🌐 Update translations via Co-op Translator
2 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 2 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

सामान्य प्राकृतिक भाषा प्रसंस्करण कार्य और तकनीकें

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

प्री-लेक्चर क्विज़

आइए उन सामान्य तकनीकों की खोज करें जो पाठ को संसाधित करने में उपयोग की जाती हैं। मशीन लर्निंग के साथ मिलकर, ये तकनीकें आपको बड़े पैमाने पर पाठ को कुशलतापूर्वक विश्लेषण करने में मदद करती हैं। हालांकि, इन कार्यों पर मशीन लर्निंग लागू करने से पहले, आइए उन समस्याओं को समझें जिनका सामना एक NLP विशेषज्ञ करता है।

NLP के सामान्य कार्य

पाठ का विश्लेषण करने के कई तरीके हैं जिन पर आप काम कर रहे हैं। ऐसे कार्य हैं जिन्हें आप कर सकते हैं और इन कार्यों के माध्यम से आप पाठ को समझने और निष्कर्ष निकालने में सक्षम होते हैं। आप आमतौर पर इन कार्यों को एक क्रम में करते हैं।

टोकनाइजेशन

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

टोकनाइजेशन

Pride and Prejudice से एक वाक्य को टोकनाइज करना। Jen Looper द्वारा इन्फोग्राफिक

एम्बेडिंग्स

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

शब्द एम्बेडिंग्स

"I have the highest respect for your nerves, they are my old friends." - Pride and Prejudice के एक वाक्य के लिए शब्द एम्बेडिंग्स। Jen Looper द्वारा इन्फोग्राफिक

इस दिलचस्प टूल को आज़माएं और शब्द एम्बेडिंग्स के साथ प्रयोग करें। किसी एक शब्द पर क्लिक करने से समान शब्दों के क्लस्टर दिखते हैं: 'toy' 'disney', 'lego', 'playstation', और 'console' के साथ क्लस्टर करता है।

पार्सिंग और पार्ट-ऑफ-स्पीच टैगिंग

हर शब्द जिसे टोकनाइज किया गया है, उसे पार्ट-ऑफ-स्पीच के रूप में टैग किया जा सकता है - जैसे संज्ञा, क्रिया, या विशेषण। वाक्य the quick red fox jumped over the lazy brown dog को POS टैग किया जा सकता है जैसे fox = संज्ञा, jumped = क्रिया।

पार्सिंग

Pride and Prejudice से एक वाक्य को पार्स करना। Jen Looper द्वारा इन्फोग्राफिक

पार्सिंग यह पहचानने की प्रक्रिया है कि वाक्य में कौन से शब्द एक-दूसरे से संबंधित हैं - उदाहरण के लिए the quick red fox jumped एक विशेषण-संज्ञा-क्रिया अनुक्रम है जो lazy brown dog अनुक्रम से अलग है।

शब्द और वाक्यांश आवृत्तियां

किसी बड़े पाठ का विश्लेषण करते समय एक उपयोगी प्रक्रिया यह है कि हर शब्द या रुचि के वाक्यांश का एक शब्दकोश बनाया जाए और यह कितनी बार दिखाई देता है। वाक्यांश the quick red fox jumped over the lazy brown dog में 'the' की आवृत्ति 2 है।

आइए एक उदाहरण पाठ देखें जहां हम शब्दों की आवृत्ति गिनते हैं। रुडयार्ड किपलिंग की कविता The Winners में निम्नलिखित छंद है:

What the moral? Who rides may read.
When the night is thick and the tracks are blind
A friend at a pinch is a friend, indeed,
But a fool to wait for the laggard behind.
Down to Gehenna or up to the Throne,
He travels the fastest who travels alone.

जैसा कि वाक्यांश आवृत्तियां केस सेंसिटिव या केस इंसेंसिटिव हो सकती हैं, वाक्यांश a friend की आवृत्ति 2 है और the की आवृत्ति 6 है, और travels की 2 है।

एन-ग्राम्स

पाठ को एक निश्चित लंबाई के शब्द अनुक्रमों में विभाजित किया जा सकता है, एक शब्द (यूनिग्राम), दो शब्द (बाइग्राम), तीन शब्द (ट्राइग्राम) या किसी भी संख्या के शब्द (एन-ग्राम्स)।

उदाहरण के लिए the quick red fox jumped over the lazy brown dog के साथ एन-ग्राम स्कोर 2 निम्नलिखित एन-ग्राम्स उत्पन्न करता है:

  1. the quick
  2. quick red
  3. red fox
  4. fox jumped
  5. jumped over
  6. over the
  7. the lazy
  8. lazy brown
  9. brown dog

इसे वाक्य पर एक स्लाइडिंग बॉक्स के रूप में देखना आसान हो सकता है। यहां यह 3 शब्दों के एन-ग्राम्स के लिए है, प्रत्येक वाक्य में एन-ग्राम बोल्ड है:

  1. the quick red fox jumped over the lazy brown dog
  2. the quick red fox jumped over the lazy brown dog
  3. the quick red fox jumped over the lazy brown dog
  4. the quick red fox jumped over the lazy brown dog
  5. the quick red fox jumped over the lazy brown dog
  6. the quick red fox jumped over the lazy brown dog
  7. the quick red fox jumped over the lazy brown dog
  8. the quick red fox jumped over the lazy brown dog

एन-ग्राम्स स्लाइडिंग विंडो

एन-ग्राम मान 3: Jen Looper द्वारा इन्फोग्राफिक

संज्ञा वाक्यांश निष्कर्षण

अधिकांश वाक्यों में एक संज्ञा होती है जो वाक्य का विषय या वस्तु होती है। अंग्रेजी में, इसे अक्सर 'a', 'an', या 'the' के पहले होने के रूप में पहचाना जा सकता है। वाक्य का अर्थ समझने का प्रयास करते समय 'संज्ञा वाक्यांश निकालना' NLP में एक सामान्य कार्य है।

वाक्य "I cannot fix on the hour, or the spot, or the look or the words, which laid the foundation. It is too long ago. I was in the middle before I knew that I had begun." में क्या आप संज्ञा वाक्यांशों की पहचान कर सकते हैं?

वाक्य the quick red fox jumped over the lazy brown dog में 2 संज्ञा वाक्यांश हैं: quick red fox और lazy brown dog

भावना विश्लेषण

किसी वाक्य या पाठ का विश्लेषण किया जा सकता है कि वह कितना सकारात्मक या नकारात्मक है। भावना को ध्रुवता और वस्तुनिष्ठता/विषयात्मकता में मापा जाता है। ध्रुवता -1.0 से 1.0 (नकारात्मक से सकारात्मक) और 0.0 से 1.0 (सबसे वस्तुनिष्ठ से सबसे विषयात्मक) तक मापी जाती है।

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

इन्फ्लेक्शन

इन्फ्लेक्शन आपको एक शब्द लेने और उस शब्द का एकवचन या बहुवचन प्राप्त करने में सक्षम बनाता है।

लेमाटाइजेशन

एक लेम्मा शब्दों के एक सेट के लिए मूल या मुख्य शब्द है, उदाहरण के लिए flew, flies, flying का लेम्मा क्रिया fly है।

NLP शोधकर्ता के लिए उपयोगी डेटाबेस भी उपलब्ध हैं, विशेष रूप से:

वर्डनेट

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

NLP लाइब्रेरीज़

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

अभ्यास - TextBlob लाइब्रेरी का उपयोग करना

आइए एक लाइब्रेरी का उपयोग करें जिसे TextBlob कहा जाता है क्योंकि इसमें इन प्रकार के कार्यों को हल करने के लिए उपयोगी APIs हैं। TextBlob "NLTK और pattern के विशाल कंधों पर खड़ा है, और दोनों के साथ अच्छी तरह से काम करता है।" इसमें अपने API में काफी मात्रा में मशीन लर्निंग शामिल है।

नोट: TextBlob के लिए एक उपयोगी Quick Start गाइड उपलब्ध है जिसे अनुभवी Python डेवलपर्स के लिए अनुशंसित किया गया है।

जब संज्ञा वाक्यांशों की पहचान करने का प्रयास किया जाता है, तो TextBlob कई विकल्प प्रदान करता है जो संज्ञा वाक्यांशों को खोजने के लिए एक्सट्रैक्टर्स का उपयोग करते हैं।

  1. ConllExtractor पर एक नज़र डालें।

    from textblob import TextBlob
    from textblob.np_extractors import ConllExtractor
    # import and create a Conll extractor to use later 
    extractor = ConllExtractor()
    
    # later when you need a noun phrase extractor:
    user_input = input("> ")
    user_input_blob = TextBlob(user_input, np_extractor=extractor)  # note non-default extractor specified
    np = user_input_blob.noun_phrases                                    
    

    यहां क्या हो रहा है? ConllExtractor "एक संज्ञा वाक्यांश एक्सट्रैक्टर है जो ConLL-2000 प्रशिक्षण कॉर्पस के साथ प्रशिक्षित चंक पार्सिंग का उपयोग करता है।" ConLL-2000 2000 में Computational Natural Language Learning पर सम्मेलन को संदर्भित करता है। प्रत्येक वर्ष सम्मेलन ने एक कठिन NLP समस्या को हल करने के लिए एक कार्यशाला आयोजित की, और 2000 में यह संज्ञा चंकिंग थी। एक मॉडल को Wall Street Journal पर प्रशिक्षित किया गया था, "सेक्शन 15-18 को प्रशिक्षण डेटा (211727 टोकन) और सेक्शन 20 को परीक्षण डेटा (47377 टोकन) के रूप में उपयोग किया गया।" आप उपयोग की गई प्रक्रियाओं को यहां और परिणाम देख सकते हैं।

चुनौती - अपने बॉट को NLP के साथ बेहतर बनाना

पिछले पाठ में आपने एक बहुत ही सरल Q&A बॉट बनाया। अब, आप मार्विन को थोड़ा अधिक सहानुभूतिपूर्ण बनाएंगे, उपयोगकर्ता इनपुट का विश्लेषण करके और उस भावना से मेल खाने के लिए प्रतिक्रिया प्रिंट करके। आपको एक noun_phrase की पहचान भी करनी होगी और उसके बारे में अधिक इनपुट पूछना होगा।

अपने बॉट को बेहतर संवादात्मक बनाने के लिए आपके चरण:

  1. उपयोगकर्ता को बॉट के साथ कैसे इंटरैक्ट करें, इसके निर्देश प्रिंट करें
  2. लूप शुरू करें
    1. उपयोगकर्ता इनपुट स्वीकार करें
    2. यदि उपयोगकर्ता ने बाहर निकलने के लिए कहा है, तो बाहर निकलें
    3. उपयोगकर्ता इनपुट को संसाधित करें और उपयुक्त भावना प्रतिक्रिया निर्धारित करें
    4. यदि भावना में एक संज्ञा वाक्यांश का पता चलता है, तो इसे बहुवचन बनाएं और उस विषय पर अधिक इनपुट पूछें
    5. प्रतिक्रिया प्रिंट करें
  3. चरण 2 पर वापस लूप करें

यहां TextBlob का उपयोग करके भावना निर्धारित करने के लिए कोड स्निपेट है। ध्यान दें कि केवल चार ग्रेडिएंट्स हैं भावना प्रतिक्रिया के (आप चाहें तो अधिक जोड़ सकते हैं):

if user_input_blob.polarity <= -0.5:
  response = "Oh dear, that sounds bad. "
elif user_input_blob.polarity <= 0:
  response = "Hmm, that's not great. "
elif user_input_blob.polarity <= 0.5:
  response = "Well, that sounds positive. "
elif user_input_blob.polarity <= 1:
  response = "Wow, that sounds great. "

यहां कुछ नमूना आउटपुट है जो आपको मार्गदर्शन करेगा (उपयोगकर्ता इनपुट > से शुरू होने वाली पंक्तियों पर है):

Hello, I am Marvin, the friendly robot.
You can end this conversation at any time by typing 'bye'
After typing each answer, press 'enter'
How are you today?
> I am ok
Well, that sounds positive. Can you tell me more?
> I went for a walk and saw a lovely cat
Well, that sounds positive. Can you tell me more about lovely cats?
> cats are the best. But I also have a cool dog
Wow, that sounds great. Can you tell me more about cool dogs?
> I have an old hounddog but he is sick
Hmm, that's not great. Can you tell me more about old hounddogs?
> bye
It was nice talking to you, goodbye!

इस कार्य का एक संभावित समाधान यहां है।

ज्ञान जांच

  1. क्या आपको लगता है कि सहानुभूतिपूर्ण प्रतिक्रियाएं किसी को यह सोचने में 'धोखा' दे सकती हैं कि बॉट वास्तव में उन्हें समझता है?
  2. क्या संज्ञा वाक्यांश की पहचान करना बॉट को अधिक 'विश्वसनीय' बनाता है?
  3. वाक्य से 'संज्ञा वाक्यांश' निकालना उपयोगी क्यों हो सकता है?

पिछले ज्ञान जांच में बॉट को लागू करें और इसे किसी मित्र पर परीक्षण करें। क्या यह उन्हें धोखा दे सकता है? क्या आप अपने बॉट को अधिक 'विश्वसनीय' बना सकते हैं?

🚀चुनौती

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

पोस्ट-लेक्चर क्विज़

समीक्षा और स्व-अध्ययन

अगले कुछ पाठों में आप भावना विश्लेषण के बारे में अधिक जानेंगे। इस दिलचस्प तकनीक पर शोध करें जैसे KDNuggets पर लेख।

असाइनमेंट

बॉट को बात करने के लिए बनाएं


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