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/README.md

168 lines
25 KiB

# प्राकृतिक भाषा प्रसंस्करण का परिचय
यह पाठ *प्राकृतिक भाषा प्रसंस्करण*, जो *कंप्यूटेशनल लिंग्विस्टिक्स* का एक उपक्षेत्र है, के संक्षिप्त इतिहास और महत्वपूर्ण अवधारणाओं को कवर करता है।
## [प्री-लेक्चर क्विज़](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/31/)
## परिचय
NLP, जैसा कि आमतौर पर जाना जाता है, उन सबसे प्रसिद्ध क्षेत्रों में से एक है जहाँ मशीन लर्निंग को लागू किया गया है और उत्पादन सॉफ्टवेयर में उपयोग किया गया है।
✅ क्या आप किसी सॉफ्टवेयर के बारे में सोच सकते हैं जिसका आप हर दिन उपयोग करते हैं जिसमें शायद कुछ NLP एम्बेडेड है? आपके वर्ड प्रोसेसिंग प्रोग्राम या मोबाइल ऐप्स के बारे में क्या जो आप नियमित रूप से उपयोग करते हैं?
आप निम्नलिखित के बारे में जानेंगे:
- **भाषाओं का विचार**. भाषाएँ कैसे विकसित हुईं और अध्ययन के प्रमुख क्षेत्र क्या रहे हैं।
- **परिभाषा और अवधारणाएँ**. आप यह भी सीखेंगे कि कंप्यूटर टेक्स्ट को कैसे प्रोसेस करते हैं, जिसमें पार्सिंग, ग्रामर, और संज्ञा और क्रियाओं की पहचान शामिल है। इस पाठ में कुछ कोडिंग कार्य हैं, और कई महत्वपूर्ण अवधारणाओं को पेश किया गया है जिन्हें आप अगले पाठों में कोड करना सीखेंगे।
## कंप्यूटेशनल लिंग्विस्टिक्स
कंप्यूटेशनल लिंग्विस्टिक्स एक अनुसंधान और विकास का क्षेत्र है जो कई दशकों से यह अध्ययन करता है कि कंप्यूटर कैसे भाषाओं के साथ काम कर सकते हैं, और यहां तक कि समझ सकते हैं, अनुवाद कर सकते हैं, और संवाद कर सकते हैं। प्राकृतिक भाषा प्रसंस्करण (NLP) एक संबंधित क्षेत्र है जो इस बात पर केंद्रित है कि कंप्यूटर 'प्राकृतिक', या मानव, भाषाओं को कैसे प्रोसेस कर सकते हैं।
### उदाहरण - फोन डिक्टेशन
यदि आपने कभी टाइपिंग के बजाय अपने फोन पर बोला है या एक वर्चुअल असिस्टेंट से प्रश्न पूछा है, तो आपकी आवाज़ को टेक्स्ट में परिवर्तित किया गया और फिर उस भाषा से प्रोसेस या *पार्स* किया गया जिसे आपने बोला। फिर पहचाने गए कीवर्ड को एक फॉर्मेट में प्रोसेस किया गया जिसे फोन या असिस्टेंट समझ सके और उस पर कार्य कर सके।
![समझ](../../../../translated_images/comprehension.619708fc5959b0f6a24ebffba2ad7b0625391a476141df65b43b59de24e45c6f.hi.png)
> वास्तविक भाषाई समझना कठिन है! छवि [Jen Looper](https://twitter.com/jenlooper) द्वारा
### यह तकनीक कैसे संभव है?
यह संभव है क्योंकि किसी ने ऐसा कंप्यूटर प्रोग्राम लिखा है। कुछ दशक पहले, कुछ विज्ञान कथा लेखकों ने भविष्यवाणी की थी कि लोग ज्यादातर अपने कंप्यूटरों से बात करेंगे, और कंप्यूटर हमेशा यह समझेंगे कि वे क्या मतलब रखते हैं। दुख की बात है कि यह समस्या उतनी आसान नहीं थी जितनी कई लोगों ने कल्पना की थी, और जबकि यह आज एक बेहतर समझी जाने वाली समस्या है, वाक्य के अर्थ को समझने में 'सही' प्राकृतिक भाषा प्रसंस्करण प्राप्त करने में महत्वपूर्ण चुनौतियाँ हैं। यह विशेष रूप से हास्य या वाक्य में व्यंग्य जैसी भावनाओं को समझने में कठिन समस्या है।
इस बिंदु पर, आप स्कूल की कक्षाओं को याद कर सकते हैं जहाँ शिक्षक ने वाक्य में ग्रामर के भागों को कवर किया था। कुछ देशों में, छात्रों को ग्रामर और लिंग्विस्टिक्स एक समर्पित विषय के रूप में पढ़ाया जाता है, लेकिन कई में, ये विषय एक भाषा सीखने का हिस्सा होते हैं: या तो प्राथमिक विद्यालय में आपकी पहली भाषा (पढ़ना और लिखना सीखना) और शायद एक दूसरी भाषा पोस्ट-प्राइमरी, या हाई स्कूल में। चिंता न करें यदि आप संज्ञाओं और क्रियाओं या क्रिया विशेषणों और विशेषणों के बीच अंतर करने में विशेषज्ञ नहीं हैं!
यदि आप *साधारण वर्तमान* और *वर्तमान प्रगतिशील* के बीच के अंतर से संघर्ष करते हैं, तो आप अकेले नहीं हैं। यह कई लोगों के लिए एक चुनौतीपूर्ण चीज है, यहां तक कि एक भाषा के मूल वक्ताओं के लिए भी। अच्छी खबर यह है कि कंप्यूटर औपचारिक नियमों को लागू करने में वास्तव में अच्छे हैं, और आप ऐसा कोड लिखना सीखेंगे जो मानव की तरह एक वाक्य को *पार्स* कर सके। बाद में आप जिस बड़ी चुनौती की जांच करेंगे वह है एक वाक्य के *अर्थ* और *भावना* को समझना।
## पूर्वापेक्षाएँ
इस पाठ के लिए, मुख्य पूर्वापेक्षा इस पाठ की भाषा को पढ़ने और समझने में सक्षम होना है। कोई गणितीय समस्याएं या समीकरण हल करने की आवश्यकता नहीं है। जबकि मूल लेखक ने इस पाठ को अंग्रेजी में लिखा था, इसे अन्य भाषाओं में भी अनुवादित किया गया है, इसलिए आप एक अनुवाद पढ़ सकते हैं। ऐसे उदाहरण हैं जहां कई विभिन्न भाषाओं का उपयोग किया गया है (विभिन्न भाषाओं के विभिन्न ग्रामर नियमों की तुलना करने के लिए)। ये *अनुवादित नहीं* हैं, लेकिन व्याख्यात्मक पाठ अनुवादित है, इसलिए अर्थ स्पष्ट होना चाहिए।
कोडिंग कार्यों के लिए, आप Python का उपयोग करेंगे और उदाहरण Python 3.8 का उपयोग कर रहे हैं।
इस अनुभाग में, आपको आवश्यकता होगी, और उपयोग करेंगे:
- **Python 3 समझ**. Python 3 में प्रोग्रामिंग भाषा समझ, यह पाठ इनपुट, लूप, फ़ाइल पढ़ना, ऐरे का उपयोग करता है।
- **Visual Studio Code + एक्सटेंशन**. हम Visual Studio Code और इसके Python एक्सटेंशन का उपयोग करेंगे। आप अपने पसंदीदा Python IDE का भी उपयोग कर सकते हैं।
- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) Python के लिए एक सरलीकृत टेक्स्ट प्रोसेसिंग लाइब्रेरी है। इसे अपने सिस्टम पर स्थापित करने के लिए TextBlob साइट पर दिए गए निर्देशों का पालन करें (नीचे दिखाए अनुसार कॉर्पोरा को भी इंस्टॉल करें):
```bash
pip install -U textblob
python -m textblob.download_corpora
```
> 💡 टिप: आप सीधे VS Code वातावरण में Python चला सकते हैं। अधिक जानकारी के लिए [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) देखें।
## मशीनों से बात करना
मानव भाषा को समझने के लिए कंप्यूटर बनाने का इतिहास दशकों पुराना है, और सबसे पहले वैज्ञानिकों में से एक जिन्होंने प्राकृतिक भाषा प्रसंस्करण पर विचार किया था, वे *Alan Turing* थे।
### 'ट्यूरिंग टेस्ट'
जब ट्यूरिंग 1950 के दशक में *कृत्रिम बुद्धिमत्ता* पर शोध कर रहे थे, तो उन्होंने सोचा कि क्या एक संवादात्मक परीक्षण दिया जा सकता है जिसमें एक मानव और एक कंप्यूटर (टाइप किए गए संवाद के माध्यम से) शामिल हों जहां बातचीत में मानव यह सुनिश्चित न कर सके कि वे किसी अन्य मानव या कंप्यूटर से बात कर रहे हैं।
यदि, एक निश्चित अवधि की बातचीत के बाद, मानव यह निर्धारित नहीं कर सकता कि उत्तर कंप्यूटर से आ रहे हैं या नहीं, तो क्या कहा जा सकता है कि कंप्यूटर *सोच* रहा है?
### प्रेरणा - 'द इमिटेशन गेम'
इस विचार की प्रेरणा एक पार्टी गेम *द इमिटेशन गेम* से आई थी जिसमें एक पूछताछकर्ता अकेले एक कमरे में होता है और उसे यह निर्धारित करना होता है कि दो लोगों (दूसरे कमरे में) में से कौन पुरुष और कौन महिला है। पूछताछकर्ता नोट भेज सकता है, और उसे ऐसे प्रश्न सोचने होते हैं जिनके लिखित उत्तर रहस्यमय व्यक्ति के लिंग का खुलासा करें। बेशक, दूसरे कमरे में खिलाड़ी पूछताछकर्ता को भ्रमित या गुमराह करने की कोशिश कर रहे होते हैं, जबकि ईमानदारी से उत्तर देने की कोशिश कर रहे होते हैं।
### Eliza का विकास
1960 के दशक में MIT के एक वैज्ञानिक *Joseph Weizenbaum* ने [*Eliza*](https://wikipedia.org/wiki/ELIZA) नामक एक कंप्यूटर 'थेरेपिस्ट' विकसित किया जो मानव से प्रश्न पूछता था और उनके उत्तरों को समझने का आभास देता था। हालांकि, जबकि Eliza एक वाक्य को पार्स कर सकता था और कुछ व्याकरणिक संरचनाओं और कीवर्ड की पहचान कर सकता था ताकि एक उचित उत्तर दे सके, इसे वाक्य को *समझने* के रूप में नहीं कहा जा सकता था। यदि Eliza को एक वाक्य इस प्रारूप में प्रस्तुत किया गया "**I am** <u>sad</u>", तो यह वाक्य को पुनर्व्यवस्थित और प्रतिस्थापित कर सकता है और प्रतिक्रिया में "How long have **you been** <u>sad</u>" बना सकता है।
इससे ऐसा आभास होता था कि Eliza ने कथन को समझा और एक अनुवर्ती प्रश्न पूछ रहा है, जबकि वास्तव में, यह केवल काल को बदल रहा था और कुछ शब्द जोड़ रहा था। यदि Eliza को कोई कीवर्ड नहीं मिलता था जिसके लिए उसके पास उत्तर होता, तो यह इसके बजाय एक रैंडम उत्तर देता जो कई विभिन्न कथनों पर लागू हो सकता था। Eliza को आसानी से मूर्ख बनाया जा सकता था, उदाहरण के लिए यदि उपयोगकर्ता लिखता "**You are** a <u>bicycle</u>", तो यह प्रतिक्रिया देता "How long have **I been** a <u>bicycle</u>?", बजाय एक अधिक तर्कसंगत प्रतिक्रिया के।
[![Eliza से बातचीत](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Eliza से बातचीत")
> 🎥 ऊपर की छवि पर क्लिक करें मूल ELIZA प्रोग्राम के बारे में वीडियो के लिए
> नोट: आप [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) के 1966 में प्रकाशित मूल विवरण को पढ़ सकते हैं यदि आपके पास ACM खाता है। वैकल्पिक रूप से, [wikipedia](https://wikipedia.org/wiki/ELIZA) पर Eliza के बारे में पढ़ें।
## व्यायाम - एक बुनियादी संवादात्मक बॉट को कोड करना
एक संवादात्मक बॉट, जैसे Eliza, एक प्रोग्राम है जो उपयोगकर्ता इनपुट को प्राप्त करता है और समझने और बुद्धिमानी से प्रतिक्रिया देने का आभास देता है। Eliza के विपरीत, हमारे बॉट के पास कई नियम नहीं होंगे जो इसे एक बुद्धिमान बातचीत का आभास देंगे। इसके बजाय, हमारे बॉट में केवल एक ही क्षमता होगी, जो कि बातचीत को यादृच्छिक प्रतिक्रियाओं के साथ जारी रखना है जो लगभग किसी भी सामान्य बातचीत में काम कर सकती हैं।
### योजना
आपके संवादात्मक बॉट बनाने के चरण:
1. उपयोगकर्ता को बॉट के साथ कैसे इंटरैक्ट करना है, इसके निर्देश प्रिंट करें
2. एक लूप शुरू करें
1. उपयोगकर्ता इनपुट स्वीकार करें
2. यदि उपयोगकर्ता ने बाहर निकलने के लिए कहा है, तो बाहर निकलें
3. उपयोगकर्ता इनपुट को प्रोसेस करें और प्रतिक्रिया निर्धारित करें (इस मामले में, प्रतिक्रिया संभावित सामान्य प्रतिक्रियाओं की सूची से एक रैंडम चयन है)
4. प्रतिक्रिया प्रिंट करें
3. चरण 2 पर वापस जाएं
### बॉट बनाना
आइए बॉट को बनाना शुरू करें। हम कुछ वाक्यांशों को परिभाषित करके शुरू करेंगे।
1. निम्नलिखित रैंडम प्रतिक्रियाओं के साथ Python में इस बॉट को स्वयं बनाएं:
```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?"]
```
यहां कुछ नमूना आउटपुट है जो आपको मार्गदर्शन करेगा (उपयोगकर्ता इनपुट `>` से शुरू होने वाली लाइनों पर है):
```output
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!
```
कार्य का एक संभावित समाधान [यहां](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py) है
✅ रुकें और विचार करें
1. क्या आपको लगता है कि रैंडम प्रतिक्रियाएं किसी को यह सोचने में 'धोखा' देंगी कि बॉट वास्तव में उन्हें समझता है?
2. बॉट को अधिक प्रभावी बनाने के लिए उसे किन सुविधाओं की आवश्यकता होगी?
3. यदि बॉट वास्तव में एक वाक्य के अर्थ को 'समझ' सकता है, तो क्या उसे बातचीत में पिछले वाक्यों के अर्थ को 'याद' करने की आवश्यकता होगी?
---
## 🚀चुनौती
ऊपर दिए गए "रुकें और विचार करें" तत्वों में से एक को चुनें और या तो इसे कोड में लागू करने का प्रयास करें या पेपर पर छद्मकोड का उपयोग करके एक समाधान लिखें।
अगले पाठ में, आप प्राकृतिक भाषा को पार्स करने और मशीन लर्निंग के कई अन्य दृष्टिकोणों के बारे में जानेंगे।
## [पोस्ट-लेक्चर क्विज़](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/32/)
## समीक्षा और आत्म-अध्ययन
नीचे दिए गए संदर्भों को आगे पढ़ने के अवसरों के रूप में देखें।
### संदर्भ
1. शुबर्ट, लेनहार्ट, "कंप्यूटेशनल लिंग्विस्टिक्स", *द स्टैनफोर्ड एन्साइक्लोपीडिया ऑफ फिलॉसफी* (स्प्रिंग 2020 संस्करण), एडवर्ड एन. ज़ाल्टा (संपादक), URL = <https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/>.
2. प्रिंसटन यूनिवर्सिटी "वर्डनेट के बारे में।" [WordNet](https://wordnet.princeton.edu/). प्रिंसटन यूनिवर्सिटी। 2010।
## असाइनमेंट
[एक बॉट खोजें](assignment.md)
**अस्वीकरण**:
यह दस्तावेज़ मशीन-आधारित एआई अनुवाद सेवाओं का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ को उसकी मूल भाषा में प्राधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।