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

26 KiB

प्राकृतिक भाषा प्रशोधनको परिचय

यो पाठले प्राकृतिक भाषा प्रशोधन (NLP), जुन कम्प्युटेशनल भाषाविज्ञान को उपक्षेत्र हो, को संक्षिप्त इतिहास र महत्त्वपूर्ण अवधारणाहरू समेट्छ।

पाठ अघि क्विज

परिचय

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 साइटमा दिइएका निर्देशनहरू पालना गर्नुहोस् (तल देखाइएझैं कर्पोरा पनि स्थापना गर्नुहोस्):

    pip install -U textblob
    python -m textblob.download_corpora
    

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

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

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

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

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

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

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

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

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

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

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

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

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

नोट: तपाईंले एलिजा को १९६६ मा प्रकाशित मूल विवरण पढ्न सक्नुहुन्छ यदि तपाईंको 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. शुबर्ट, लेनहार्ट, "कम्प्युटेशनल भाषाविज्ञान", द स्ट्यानफोर्ड इनसाइक्लोपेडिया अफ फिलोसफी (स्प्रिङ २०२० संस्करण), एडवर्ड एन. जाल्टा (सम्पादक), URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
  2. प्रिन्सटन विश्वविद्यालय "वर्डनेटको बारेमा।" WordNet। प्रिन्सटन विश्वविद्यालय। २०१०।

असाइनमेन्ट

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


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