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/ne/6-NLP/1-Introduction-to-NLP
leestott f915efe2b4
🌐 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) एक सम्बन्धित क्षेत्र हो जसले कम्प्युटरहरूले 'प्राकृतिक', अर्थात् मानव भाषाहरूलाई कसरी प्रशोधन गर्न सक्छन् भन्नेमा केन्द्रित छ।

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

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

समझदारी

वास्तविक भाषाविज्ञानको समझदारी कठिन छ! Jen Looper द्वारा छवि

यो प्रविधि कसरी सम्भव भयो?

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

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

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

पूर्वापेक्षाहरू

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

कोडिङ कार्यहरूको लागि, तपाईंले Python प्रयोग गर्नुहुनेछ र उदाहरणहरू Python 3.8 प्रयोग गर्दै छन्।

यस खण्डमा, तपाईंलाई आवश्यक पर्ने र प्रयोग गर्ने:

  • Python 3 बुझाइ। Python 3 मा प्रोग्रामिङ भाषा बुझाइ, यो पाठले इनपुट, लूपहरू, फाइल पढ्ने, एरेहरू प्रयोग गर्दछ।

  • Visual Studio Code + विस्तार। हामी Visual Studio Code र यसको Python विस्तार प्रयोग गर्नेछौं। तपाईं आफ्नो रोजाइको Python IDE पनि प्रयोग गर्न सक्नुहुन्छ।

  • TextBlobTextBlob Python को लागि सरल पाठ प्रशोधन पुस्तकालय हो। यसलाई तपाईंको प्रणालीमा स्थापना गर्न TextBlob साइटमा दिइएका निर्देशनहरू पालना गर्नुहोस् (नीचे देखाइएको अनुसार corpora पनि स्थापना गर्नुहोस्):

    pip install -U textblob
    python -m textblob.download_corpora
    

💡 सुझाव: तपाईं Python सिधै VS Code वातावरणमा चलाउन सक्नुहुन्छ। थप जानकारीको लागि डक्स जाँच गर्नुहोस्।

मेसिनहरूसँग कुरा गर्नु

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

'ट्युरिङ परीक्षण'

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

यदि वार्तालापको निश्चित समयपछि, मानवले उत्तरहरू कम्प्युटरबाट आएका हुन् वा होइनन् भनेर निर्धारण गर्न सकेन भने, के कम्प्युटरलाई सोचिरहेको भन्न सकिन्छ?

प्रेरणा - 'नक्कल खेल'

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

एलिजा विकास गर्दै

1960 को दशकमा MIT का वैज्ञानिक Joseph Weizenbaum ले Eliza नामक कम्प्युटर 'थेरापिस्ट' विकास गरे जसले मानवलाई प्रश्न सोध्थ्यो र उनीहरूको उत्तर बुझ्ने जस्तो देखिन्थ्यो। तर, एलिजाले वाक्यलाई पार्स गर्न र निश्चित व्याकरण संरचना र कुञ्जी शब्दहरू पहिचान गर्न सक्थ्यो ताकि उचित उत्तर दिन सकियोस्, यसलाई वाक्य बुझ्ने भन्न सकिँदैन। यदि एलिजालाई "म दुखी छु" जस्तो ढाँचाको वाक्य प्रस्तुत गरियो भने यसले वाक्यका शब्दहरू पुनःव्यवस्थित गर्न र प्रतिस्थापन गर्न सक्छ र "तपाईं कति समयदेखि दुखी हुनुहुन्छ?" भन्ने उत्तर दिन सक्छ।

यसले एलिजाले कथनलाई बुझ्यो र अनुगमन प्रश्न सोधिरहेको छ भन्ने प्रभाव दिन्थ्यो, जबकि वास्तवमा, यसले काल परिवर्तन गर्दै केही शब्दहरू थपिरहेको थियो। यदि एलिजाले कुञ्जी शब्द पहिचान गर्न सकेन जसको लागि यसको उत्तर थियो भने, यसले सट्टामा धेरै विभिन्न कथनहरूमा लागू हुन सक्ने अनियमित उत्तर दिन्थ्यो। एलिजालाई सजिलै मूर्ख बनाउन सकिन्थ्यो, उदाहरणका लागि यदि प्रयोगकर्ताले "तपाईं एक साइकल हुनुहुन्छ" लेख्यो भने यसले "म कति समयदेखि एक साइकल भएको छु?" भन्ने उत्तर दिन सक्थ्यो, तर्कसंगत उत्तरको सट्टा।

एलिजासँग कुरा गर्दै

🎥 माथिको छविमा क्लिक गर्नुहोस् एलिजाको मूल कार्यक्रमको बारेमा भिडियो हेर्न

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

अभ्यास - आधारभूत संवादात्मक बोट कोडिङ

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

योजना

संवादात्मक बोट निर्माण गर्दा तपाईंको चरणहरू:

  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. Schubert, Lenhart, "Computational Linguistics", The Stanford Encyclopedia of Philosophy (Spring 2020 Edition), Edward N. Zalta (ed.), URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
  2. Princeton University "About WordNet." WordNet. Princeton University. 2010.

असाइनमेन्ट

बोट खोज्नुहोस्


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