प्राकृतिक भाषा प्रसंस्करण में चंकिंग क्या है?

स्रोत नोड: 1878431

प्रिय पाठकों,

इस ब्लॉग में, मैं पायथन में सैद्धांतिक और व्यावहारिक दोनों तरह से चंकिंग पर चर्चा करूंगा।

तो चलिए शुरू करते हैं…

नोट: कार्यान्वयन के लिए, पायथन आईडीएलई का उपयोग करना बेहतर है क्योंकि आउटपुट एक पेड़ का चित्र है जो एक अलग विंडो में पॉप अप होता है।

कार्यसूची

  • चंकिंग क्या है?
  • चंकिंग का उपयोग कहाँ किया जाता है?
  • चंकिंग के प्रकार
  • पायथन में चंकिंग का कार्यान्वयन
  • परिणाम

चंकिंग क्या है?

चंकिंग को प्राकृतिक भाषा प्रसंस्करण की प्रक्रिया के रूप में परिभाषित किया गया है जिसका उपयोग किसी दिए गए वाक्य में मौजूद भाषण के हिस्सों और छोटे वाक्यांशों की पहचान करने के लिए किया जाता है।

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

उदाहरण के लिए, अकेले संज्ञा वाक्यांशों या संज्ञाओं, विशेषणों या विशेषण वाक्यांशों इत्यादि को पहचानने और इस प्रकार समूहीकृत करने के लिए खंडन किया जा सकता है। नीचे दिए गए वाक्य पर विचार करें:

"मैंने नाश्ते में बर्गर और पेस्ट्री खाईं।"

इस मामले में, यदि हम संज्ञा वाक्यांशों को समूह या खंड करना चाहते हैं, तो हमें "बर्गर", "पेस्ट्री" और "लंच" मिलेंगे जो वाक्य के संज्ञा या संज्ञा समूह हैं।

चंकिंग का उपयोग कहाँ किया जाता है?

हम यह जाने बिना कुछ क्यों सीखना चाहेंगे कि इसका व्यापक रूप से कहाँ उपयोग किया जाता है?! ब्लॉग के इस अनुभाग में चर्चा किए गए एप्लिकेशन को देखने से आपको अंत तक उत्सुक बने रहने में मदद मिलेगी!

किसी दिए गए वाक्य से आवश्यक वाक्यांश प्राप्त करने के लिए चंकिंग का उपयोग किया जाता है। हालाँकि, पीओएस टैगिंग का उपयोग केवल भाषण के उन हिस्सों को पहचानने के लिए किया जा सकता है जो वाक्य के प्रत्येक शब्द से संबंधित हैं।

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

दिलचस्प बात यह है कि एनएलपी में चंकिंग की यह प्रक्रिया विभिन्न अन्य अनुप्रयोगों तक विस्तारित है; उदाहरण के लिए, एक विशिष्ट श्रेणी के फलों का समूह बनाना, जैसे प्रोटीन से भरपूर फलों को एक समूह के रूप में, विटामिन से भरपूर फलों को दूसरे समूह के रूप में, इत्यादि। इसके अलावा, चंकिंग का उपयोग समान कारों को समूहित करने के लिए भी किया जा सकता है, उदाहरण के लिए, ऑटो-गियर का समर्थन करने वाली कारों को एक समूह में और अन्य जो मैनुअल गियर का समर्थन करते हैं उन्हें दूसरे समूह में रखा जा सकता है और इसी तरह।

चंकिंग के प्रकार

मोटे तौर पर चंकिंग दो प्रकार की होती है:

  • चंकिंग अप
  • नीचे चबाना

टुकड़े-टुकड़े करना:

यहां, हम गहराई में नहीं उतरते; इसके बजाय, हम जानकारी के केवल एक अवलोकन से ही खुश हैं। यह हमें दिए गए डेटा का एक संक्षिप्त विचार प्राप्त करने में मदद करता है।

नीचे टुकड़े करना:

पिछले प्रकार के चंकिंग के विपरीत, चंकिंग डाउन करने से हमें विस्तृत जानकारी प्राप्त करने में मदद मिलती है।

इसलिए, यदि आप केवल एक अंतर्दृष्टि चाहते हैं, तो "चंकिंग अप" पर विचार करें अन्यथा "चंकिंग डाउन" को प्राथमिकता दें।

पायथन में चंकिंग का कार्यान्वयन

एक ऐसी स्थिति की कल्पना करें जिसमें आप अपने विश्लेषण के लिए दिए गए पाठ से सभी क्रियाएं निकालना चाहते हैं। इस प्रकार, इस मामले में, हमें क्रिया वाक्यांशों के विखंडन पर विचार करना चाहिए। ऐसा इसलिए है क्योंकि हमारा उद्देश्य पाठ के दिए गए भाग से सभी क्रिया वाक्यांशों को निकालना है। चंकिंग नियमित अभिव्यक्तियों की सहायता से की जाती है।

यदि आप पहली बार "रेगुलर एक्सप्रेशन" शब्द से परिचित हो रहे हैं तो चिंता न करें। नीचे दी गई तालिका आपकी सहायता के लिए यहां है:

आइकॉन

अर्थ

उदाहरण

*

पूर्ववर्ती वर्ण शून्य या अधिक बार आ सकता है अर्थात पूर्ववर्ती वर्ण हो भी सकता है और नहीं भी।

एबी* एबी से शुरू होने वाले सभी इनपुट से मेल खाता है और उसके बाद शून्य या अधिक संख्या में बी होता है। पैटर्न एबी, एबीबी, एबीबीबी इत्यादि से मेल खाएगा।

+

पूर्ववर्ती वर्ण कम से कम एक बार आना चाहिए।

a+, a, aa, aaa इत्यादि से मेल खाता है।

?

पूर्ववर्ती वर्ण बिल्कुल भी घटित नहीं हो सकता है या केवल एक बार घटित हो सकता है, जिसका अर्थ है कि पूर्ववर्ती वर्ण वैकल्पिक है।

अब? एबी, एबीबी से मेल खाता है लेकिन एबीबीबी वगैरह से नहीं।

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

वैसे भी, इस कार्यान्वयन के लिए, हम केवल * का उपयोग करेंगे। प्रतीक से परिचित होने के लिए बेझिझक उपरोक्त तालिका को देखें!

हम सबसे लोकप्रिय एनएलपी लाइब्रेरी, एनएलटीके का उपयोग करके चंकिंग करेंगे। तो, आइए पहले इसे आयात करें।

आयात nltk

आइए नीचे दिए गए नमूना पाठ पर विचार करें जिसे मैंने स्वयं बनाया है। चंकिंग लागू करने के लिए आप बेझिझक नीचे दिए गए किसी भी नमूना पाठ को प्रतिस्थापित कर सकते हैं!

नमूना_पाठ=''''
सीता को लंका से बचाने के लिए राम ने रावण का वध किया। रामायण की कथा सबसे लोकप्रिय भारतीय महाकाव्य है। पहले से ही बहुत सारी फिल्में और धारावाहिक बन चुके हैं
रामायण पर आधारित भारत में कई भाषाओं में फिल्मांकन किया गया है। """

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

टोकनाइजेशन के बाद, प्रत्येक शब्द के लिए पीओएस (पार्ट-ऑफ-स्पीच) टैगिंग की जाती है, जिसमें प्रत्येक शब्द के पार्ट-ऑफ-स्पीच की पहचान की जाएगी। अब, हम केवल क्रिया भाग-के-भाषण में रुचि रखते हैं और उसी को निकालना चाहते हैं।

इसलिए, आवश्यक नियमित अभिव्यक्ति का उपयोग करके हमारी रुचि के भाषण के भाग को निम्नानुसार निर्दिष्ट करें:

वीबी: {}

टोकनयुक्त=nltk.sent_tokenize(sample_text)
टोकन में i के लिए: शब्द=nltk.word_tokenize(i) # print(शब्द) tag_words=nltk.pos_tag(शब्द) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( चंकग्राम) चंकड=चंकपार्सर.पार्स(टैग_वर्ड्स) चंकड.ड्रॉ()

नियमित अभिव्यक्ति (आरई) कोणीय कोष्ठक () के भीतर संलग्न है जो बदले में घुंघराले कोष्ठक ({ और }) के भीतर संलग्न है।

नोट:  आवश्यक पीओएस के अनुसार आरई निर्दिष्ट करें

VB क्रिया POS के लिए है। VB के बाद आने वाले बिंदु का अर्थ VB के बाद आने वाले किसी भी वर्ण से मेल खाना है। बिंदु के बाद प्रश्न चिह्न निर्दिष्ट करता है कि B के बाद कोई भी वर्ण केवल एक बार आना चाहिए या बिल्कुल नहीं आना चाहिए। हालाँकि, जो तालिका हमने पहले देखी थी, उसमें यह वर्ण वैकल्पिक है। हमने रेगुलर एक्सप्रेशन को इस तरीके से तैयार किया है, क्योंकि एनएलटीके में, क्रिया वाक्यांशों में निम्नलिखित पीओएस टैग शामिल होते हैं:

स्थिति

अर्थ

VB

क्रिया अपने मूल रूप में

वीबीडी

क्रिया अपने भूतकाल में

वीबीजी

क्रिया अपने वर्तमान काल में

वीबीएन

क्रिया अपने पिछले कृदंत रूप में

वीबीपी

क्रिया वर्तमान काल में है लेकिन तीसरे व्यक्ति एकवचन में नहीं

वीबीजेड

क्रिया अपने वर्तमान काल में तृतीय पुरुष एकवचन है

इस प्रकार, क्रिया वाक्यांश उपरोक्त किसी भी पीओएस से संबंधित हो सकते हैं। इसीलिए रेगुलर एक्सप्रेशन को VB के रूप में तैयार किया गया है? जिसमें उपरोक्त सभी श्रेणियां शामिल हैं। रेगएक्सप पार्सर पैकेज का उपयोग यह जांचने के लिए किया जाता है कि क्या पीओएस हमारे आवश्यक पैटर्न को संतुष्ट करता है जिसका हमने पहले आरई का उपयोग करके उल्लेख किया है।

संपूर्ण कोड इस प्रकार देखा जा सकता है:

nltk आयात करें
nltk.download('average_perceptron_tagger')
नमूना_पाठ=''''
सीता को लंका से बचाने के लिए राम ने रावण का वध किया। रामायण की कथा सबसे लोकप्रिय भारतीय महाकाव्य है। पहले से ही बहुत सारी फिल्में और धारावाहिक बन चुके हैं
रामायण पर आधारित भारत में कई भाषाओं में फिल्मांकन किया गया है। """
टोकनयुक्त=nltk.sent_tokenize(sample_text)
टोकन में i के लिए: शब्द=nltk.word_tokenize(i) # print(शब्द) tag_words=nltk.pos_tag(शब्द) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( चंकग्राम) चंकड=चंकपार्सर.पार्स(टैग_वर्ड्स) चंकड.ड्रॉ()

परिणाम

खंडन परिणाम
खंडन परिणाम

अंत में, हम उन शब्दों के साथ शब्दों के पीओएस का एक ट्री फॉर्म प्राप्त करते हैं जिनका पीओएस दिए गए आरई से मेल खाता है। हमारे द्वारा पारित नमूना पाठ के लिए प्राप्त आउटपुट का स्नैपशॉट उपरोक्त आंकड़ों में देखा जा सकता है।

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

आशा है आपको मेरा लेख उपयोगी लगा होगा।

शुक्रिया!

संदर्भ

1. पायथन में चंकिंग लागू करना

2. खंडन के पीछे सिद्धांत

3. एनएलपी में उपलब्ध पीओएस की पूरी सूची

मेरे बारे में

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

यहाँ मेरी लिंक्डइन प्रोफ़ाइल है: मेरा लिंक्डइन

आप विश्लेषिकी विद्या पर मेरे अन्य लेख यहां से पढ़ सकते हैं यहाँ उत्पन्न करें.

इस लेख में दिखाया गया मीडिया एनालिटिक्स विद्या के स्वामित्व में नहीं है और इसका उपयोग लेखक के विवेक पर किया जाता है।

स्रोत: https://www.analyticsvidya.com/blog/2021/10/what-is-chunking-in-प्राकृतिक-भाषा-प्रसंस्करण/

समय टिकट:

से अधिक एनालिटिक्स विधा