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/1-Introduction-to-NLP
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

प्राकृतिक भाषा प्रसंस्करण का परिचय

यह पाठ प्राकृतिक भाषा प्रसंस्करण, जो कंप्यूटेशनल भाषाविज्ञान का एक उपक्षेत्र है, के संक्षिप्त इतिहास और महत्वपूर्ण अवधारणाओं को कवर करता है।

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

परिचय

एनएलपी, जैसा कि इसे आमतौर पर जाना जाता है, मशीन लर्निंग के सबसे प्रसिद्ध क्षेत्रों में से एक है, जिसे उत्पादन सॉफ़्टवेयर में लागू और उपयोग किया गया है।

क्या आप किसी ऐसे सॉफ़्टवेयर के बारे में सोच सकते हैं जिसे आप हर दिन उपयोग करते हैं और जिसमें शायद कुछ एनएलपी शामिल है? आपके वर्ड प्रोसेसिंग प्रोग्राम्स या मोबाइल ऐप्स के बारे में क्या, जिन्हें आप नियमित रूप से उपयोग करते हैं?

आप निम्नलिखित के बारे में जानेंगे:

  • भाषाओं का विचार। भाषाओं का विकास कैसे हुआ और अध्ययन के प्रमुख क्षेत्र क्या रहे हैं।
  • परिभाषा और अवधारणाएँ। आप यह भी सीखेंगे कि कंप्यूटर टेक्स्ट को कैसे प्रोसेस करते हैं, जिसमें पार्सिंग, व्याकरण, और संज्ञा और क्रियाओं की पहचान शामिल है। इस पाठ में कुछ कोडिंग कार्य हैं, और कई महत्वपूर्ण अवधारणाएँ पेश की गई हैं जिन्हें आप अगले पाठों में कोड करना सीखेंगे।

कंप्यूटेशनल भाषाविज्ञान

कंप्यूटेशनल भाषाविज्ञान कई दशकों से शोध और विकास का एक क्षेत्र है जो अध्ययन करता है कि कंप्यूटर भाषाओं के साथ कैसे काम कर सकते हैं, उन्हें समझ सकते हैं, अनुवाद कर सकते हैं, और संवाद कर सकते हैं। प्राकृतिक भाषा प्रसंस्करण (एनएलपी) एक संबंधित क्षेत्र है जो 'प्राकृतिक', या मानव, भाषाओं को प्रोसेस करने पर केंद्रित है।

उदाहरण - फोन डिक्टेशन

यदि आपने कभी टाइप करने के बजाय अपने फोन पर बोलकर कुछ कहा है या किसी वर्चुअल असिस्टेंट से कोई सवाल पूछा है, तो आपकी आवाज़ को टेक्स्ट रूप में बदल दिया गया और फिर उस भाषा से पार्स किया गया जिसे आपने बोला। पहचाने गए कीवर्ड्स को फिर उस प्रारूप में प्रोसेस किया गया जिसे फोन या असिस्टेंट समझ सके और उस पर कार्रवाई कर सके।

समझ

असली भाषाविज्ञान समझना कठिन है! छवि: Jen Looper

यह तकनीक कैसे संभव हुई?

यह संभव हुआ क्योंकि किसी ने इसे करने के लिए एक कंप्यूटर प्रोग्राम लिखा। कुछ दशक पहले, कुछ विज्ञान कथा लेखकों ने भविष्यवाणी की थी कि लोग ज्यादातर अपने कंप्यूटर से बात करेंगे, और कंप्यूटर हमेशा ठीक वही समझेंगे जो वे कहना चाहते हैं। दुर्भाग्यवश, यह समस्या उतनी आसान नहीं थी जितनी कई लोगों ने सोची थी, और जबकि आज यह समस्या बेहतर समझी जाती है, 'परफेक्ट' प्राकृतिक भाषा प्रसंस्करण प्राप्त करने में महत्वपूर्ण चुनौतियाँ हैं, खासकर जब वाक्य के अर्थ को समझने की बात आती है। यह समस्या विशेष रूप से कठिन हो जाती है जब हास्य को समझने या वाक्य में व्यंग्य जैसी भावनाओं का पता लगाने की बात आती है।

इस समय, आपको स्कूल की कक्षाओं की याद आ सकती है जहाँ शिक्षक ने वाक्य में व्याकरण के भागों को कवर किया था। कुछ देशों में, छात्रों को व्याकरण और भाषाविज्ञान एक समर्पित विषय के रूप में पढ़ाया जाता है, लेकिन कई देशों में, ये विषय भाषा सीखने का हिस्सा होते हैं: या तो प्राथमिक स्कूल में आपकी पहली भाषा (पढ़ना और लिखना सीखना) और शायद माध्यमिक या हाई स्कूल में दूसरी भाषा। चिंता न करें यदि आप संज्ञा और क्रिया या क्रिया विशेषण और विशेषण के बीच अंतर करने में विशेषज्ञ नहीं हैं!

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

आवश्यकताएँ

इस पाठ के लिए मुख्य आवश्यकता इस पाठ की भाषा को पढ़ने और समझने में सक्षम होना है। कोई गणितीय समस्याएँ या समीकरण हल करने की आवश्यकता नहीं है। जबकि मूल लेखक ने यह पाठ अंग्रेजी में लिखा है, इसे अन्य भाषाओं में भी अनुवादित किया गया है, इसलिए आप एक अनुवाद पढ़ सकते हैं। ऐसे उदाहरण हैं जहाँ विभिन्न भाषाओं का उपयोग किया गया है (विभिन्न भाषाओं के व्याकरण नियमों की तुलना करने के लिए)। ये अनुवादित नहीं हैं, लेकिन व्याख्यात्मक पाठ अनुवादित है, इसलिए अर्थ स्पष्ट होना चाहिए।

कोडिंग कार्यों के लिए, आप Python का उपयोग करेंगे और उदाहरण Python 3.8 का उपयोग कर रहे हैं।

इस खंड में, आपको आवश्यकता होगी और उपयोग करना होगा:

  • Python 3 समझ। Python 3 में प्रोग्रामिंग भाषा की समझ, यह पाठ इनपुट, लूप्स, फाइल रीडिंग, और ऐरे का उपयोग करता है।

  • Visual Studio Code + एक्सटेंशन। हम Visual Studio Code और इसके Python एक्सटेंशन का उपयोग करेंगे। आप अपनी पसंद के Python IDE का भी उपयोग कर सकते हैं।

  • TextBlobTextBlob Python के लिए एक सरलीकृत टेक्स्ट प्रोसेसिंग लाइब्रेरी है। इसे अपने सिस्टम पर इंस्टॉल करने के लिए TextBlob साइट पर दिए गए निर्देशों का पालन करें (कॉर्पोरा को भी इंस्टॉल करें, जैसा कि नीचे दिखाया गया है):

    pip install -U textblob
    python -m textblob.download_corpora
    

💡 टिप: आप Python को सीधे VS Code वातावरण में चला सकते हैं। अधिक जानकारी के लिए डॉक्स देखें।

मशीनों से बात करना

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

'ट्यूरिंग टेस्ट'

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

यदि एक निश्चित अवधि की वार्तालाप के बाद, मानव यह निर्धारित नहीं कर सकता कि उत्तर कंप्यूटर से हैं या नहीं, तो क्या कंप्यूटर को सोचने वाला कहा जा सकता है?

प्रेरणा - 'द इमिटेशन गेम'

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

एलिजा का विकास

1960 के दशक में एमआईटी के वैज्ञानिक जोसफ वीज़नबाम ने एलिजा नामक एक कंप्यूटर 'थेरेपिस्ट' विकसित किया, जो मानव से सवाल पूछता था और उनके उत्तरों को समझने का आभास देता था। हालांकि, जबकि एलिजा एक वाक्य को पार्स कर सकता था और कुछ व्याकरणिक संरचनाओं और कीवर्ड्स की पहचान कर सकता था ताकि एक उचित उत्तर दे सके, इसे वाक्य को समझने वाला नहीं कहा जा सकता था। यदि एलिजा को "I am sad" जैसे वाक्य के साथ प्रस्तुत किया जाता, तो वह वाक्य के शब्दों को पुनः व्यवस्थित और प्रतिस्थापित कर सकता था ताकि उत्तर "How long have you been sad" बन सके।

इससे ऐसा प्रतीत होता कि एलिजा ने कथन को समझा और एक अनुवर्ती प्रश्न पूछा, जबकि वास्तव में, वह केवल काल को बदल रहा था और कुछ शब्द जोड़ रहा था। यदि एलिजा किसी कीवर्ड की पहचान नहीं कर सकता था जिसके लिए उसके पास उत्तर था, तो वह इसके बजाय एक यादृच्छिक उत्तर देता जो कई अलग-अलग कथनों पर लागू हो सकता था। एलिजा को आसानी से मूर्ख बनाया जा सकता था, उदाहरण के लिए यदि उपयोगकर्ता लिखता "You are a bicycle", तो वह उत्तर दे सकता था "How long have I been a bicycle?", बजाय एक अधिक तर्कसंगत उत्तर के।

एलिजा के साथ चैटिंग

🎥 ऊपर दी गई छवि पर क्लिक करें मूल एलिजा प्रोग्राम के बारे में वीडियो देखने के लिए

नोट: आप 1966 में प्रकाशित एलिजा का मूल विवरण पढ़ सकते हैं यदि आपके पास एसीएम खाता है। वैकल्पिक रूप से, एलिजा के बारे में विकिपीडिया पर पढ़ें।

अभ्यास - एक बुनियादी संवादात्मक बॉट को कोड करना

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

योजना

संवादात्मक बॉट बनाने के लिए आपके कदम:

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

बॉट बनाना

आइए अगले चरण में बॉट बनाएं। हम कुछ वाक्यांशों को परिभाषित करके शुरू करेंगे।

  1. निम्नलिखित यादृच्छिक उत्तरों के साथ Python में इस बॉट को स्वयं बनाएं:

    random_responses = ["That is quite interesting, please tell me more.",
                        "I see. Do go on.",
                        "Why do you say that?",
                        "Funny weather we've been having, isn't it?",
                        "Let's change the subject.",
                        "Did you catch the game last night?"]
    

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

    Hello, I am Marvin, the simple robot.
    You can end this conversation at any time by typing 'bye'
    After typing each answer, press 'enter'
    How are you today?
    > I am good thanks
    That is quite interesting, please tell me more.
    > today I went for a walk     
    Did you catch the game last night?
    > I did, but my team lost
    Funny weather we've been having, isn't it?
    > yes but I hope next week is better
    Let's change the subject.
    > ok, lets talk about music
    Why do you say that?
    > because I like music!
    Why do you say that?
    > bye
    It was nice talking to you, goodbye!
    

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

    रुकें और विचार करें

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

🚀चुनौती

ऊपर दिए गए "रुकें और विचार करें" तत्वों में से एक चुनें और या तो इसे कोड में लागू करने का प्रयास करें या कागज पर छद्म कोड का उपयोग करके समाधान लिखें।

अगले पाठ में, आप प्राकृतिक भाषा को पार्स करने और मशीन लर्निंग के कई अन्य दृष्टिकोणों के बारे में जानेंगे।

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

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

नीचे दिए गए संदर्भों को आगे पढ़ने के अवसरों के रूप में देखें।

संदर्भ

  1. शुबर्ट, लेनहार्ट, "कंप्यूटेशनल भाषाविज्ञान", द स्टैनफोर्ड एनसाइक्लोपीडिया ऑफ फिलॉसफी (स्प्रिंग 2020 संस्करण), एडवर्ड एन. ज़ाल्टा (संपादक), URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
  2. प्रिंसटन यूनिवर्सिटी "वर्डनेट के बारे में।" WordNet। प्रिंसटन यूनिवर्सिटी। 2010।

असाइनमेंट

बॉट खोजें


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