यह ट्यूटोरियल हमारे समुदाय का एक मूल्यवान योगदान है और DataCamp द्वारा स्पष्टता और शुद्धता के लिए संपादित किया गया है।
क्या आप अपना विशेषज्ञता साझा करना चाहते हैं? हमें आपसे सुनकर खुशी होगी! आप अपने लेख या विचार हमारे Community Contribution Form के माध्यम से भेज सकते हैं।
एक डेटा प्रैक्टिशनर के रूप में, आप किसी भी मशीन लर्निंग प्रोजेक्ट में एक मजबूत डेटा क्लीनिंग और प्रिपरेशन पाइपलाइन बनाने के महत्त्व से भली-भांति परिचित होंगे। हालांकि, जब बात पाठ्य (टेक्स्ट) डेटा की आती है, तो ऐसी पाइपलाइन का महत्त्व और भी बढ़ जाता है क्योंकि पाठ्य डेटा अपनी विशिष्ट चुनौतियाँ लेकर आता है। शोरयुक्त डेटा, वर्तनी की त्रुटियाँ, संक्षिप्तियाँ, बोलचाल (स्लैंग), और व्याकरणिक गलतियाँ जैसे मुद्दे मशीन लर्निंग मॉडलों के प्रदर्शन पर नकारात्मक प्रभाव डाल सकते हैं।
यह सुनिश्चित करने के लिए कि मशीन लर्निंग मॉडलों में उपयोग किया जाने वाला पाठ्य डेटा सटीक, सुसंगत और त्रुटि-मुक्त हो, एक सुव्यवस्थित डेटा क्लीनिंग और प्रिपरेशन पाइपलाइन अत्यंत आवश्यक है। इसमें आमतौर पर टेक्स्ट नॉर्मलाइज़ेशन, टोकनाइज़ेशन, स्टॉपवर्ड हटाना, स्टेमिंग, लेमाटाइज़ेशन और डेटा मास्किंग जैसे कई कार्य शामिल होते हैं।
हालाँकि NLTK, gensim, और spaCy जैसी लोकप्रिय लाइब्रेरियाँ टेक्स्ट प्रोसेसिंग और क्लीनिंग के लिए व्यापक टूल प्रदान करती हैं, फिर भी पाठ्य डेटा से निपटते समय कुछ विशिष्ट चुनौतियाँ आती हैं जो मॉडलों के प्रदर्शन को काफी प्रभावित कर सकती हैं। ये चुनौतियाँ कैरेक्टर नॉर्मलाइज़ेशन से लेकर डेटा मास्किंग और बहुत कुछ तक फैली हो सकती हैं। यद्यपि इन समस्याओं का समाधान ऊपर बताई गई लाइब्रेरियों से किया जा सकता है, परन्तु उन्हें हल करने में अक्सर काफ़ी समय और प्रयास लगता है।
यही वह जगह है जहाँ Textacy उत्कृष्ट साबित होती है। Textacy एक Python लाइब्रेरी है जो पाठ्य डेटा से जुड़ी आम समस्याओं से निपटने का सरल और सहज तरीका प्रदान करती है। जबकि अन्य लाइब्रेरियाँ भी समान क्षमताएँ देती हैं, परंतु इस संदर्भ में Textacy का विशेष फोकस—जैसे कैरेक्टर नॉर्मलाइज़ेशन और डेटा मास्किंग—इसे अलग बनाता है।
Textacy कैरेक्टर नॉर्मलाइज़ेशन
कैरेक्टर नॉर्मलाइज़ेशन वह प्रक्रिया है जिसमें टेक्स्ट डेटा को एक मानक प्रारूप में बदला जाता है, जो विशेष रूप से बहुभाषी टेक्स्ट डेटा के साथ काम करते समय महत्त्वपूर्ण हो सकता है।
Text = ‘ the cafe “Saint-Raphaël” is loca-/nted on Cote d’Azur.’
एक्सेंट वाले अक्षर टेक्स्ट नॉर्मलाइज़ेशन में आम समस्या हैं, जो मशीन लर्निंग मॉडलों की सटीकता पर उल्लेखनीय प्रभाव डाल सकते हैं।
समस्या इसलिए उत्पन्न होती है क्योंकि लोग एक्सेंट वाले अक्षरों का एकसमान उपयोग नहीं करते, जिससे डेटा में असंगतियाँ आ जाती हैं।
उदाहरण के लिए, "Saint-Raphaël" और "Saint-Raphael" टोकन एक ही इकाई को संदर्भित कर सकते हैं, लेकिन नॉर्मलाइज़ेशन के बिना, उन्हें समान नहीं पहचाना जाएगा। इसके अलावा, पाठ में अक्सर शब्द हाइफ़न से अलग किए होते हैं, और ऊपर दिए गए पाठ में प्रयुक्त अपॉस्ट्रॉफी जैसी चीज़ें टोकनाइज़ेशन के लिए समस्या बन सकती हैं। इन सभी मुद्दों के लिए, टेक्स्ट को नॉर्मलाइज़ करना और एक्सेंट व विशेष अक्षरों को उनके ASCII समकक्षों से बदलना समझदारी है।
हम इस उद्देश्य के लिए Textacy का उपयोग करेंगे क्योंकि इसमें इस समस्या को आसान और दक्ष तरीके से हल करने के लिए पूर्व-परिभाषित फ़ंक्शनों का अच्छा संग्रह है। निम्न तालिका Textacy के कुछ प्रीप्रोसेसिंग फ़ंक्शनों का चयन दिखाती है, जो अन्य लाइब्रेरियों से स्वतंत्र रूप से काम कर सकते हैं।
|
फ़ंक्शन |
विवरण |
|---|---|
|
normalize _hyphentated_words |
ऐसे शब्दों को फिर से जोड़ता है जिन्हें पंक्ति-विराम के कारण अलग कर दिया गया था |
|
normalize_quotation_marks |
विभिन्न प्रकार के आकर्षक उद्धरण चिह्नों को उनके ASCII समकक्ष से बदलता है |
|
normalize_unicode |
Unicode में एक्सेंट वाले अक्षरों के अलग-अलग कोड को एकरूप करता है |
|
remove_accents |
एक्सेंट वाले अक्षरों को ASCII से बदलता है |
|
replace_emails |
ईमेल पतों को __EMAIL__ से बदलता है |
|
replace_urls |
URLs को __URL__ से बदलता है |
text = "The café "Saint-Raphaël" is loca-\nted on Cote dʼAzur."
import textacy
import textacy.preprocessing as tprep
def normalize(text):
text = tprep.normalize_hyphenated_words(text)
text = tprep.normalize_quotation_marks(text)
text = tprep.normalize_unicode(text)
text = tprep.remove_accents(text)
return text
ऊपर दिए गए normalize फ़ंक्शन का उपयोग, जो Textacy के पूर्व-परिभाषित प्रीप्रोसेसिंग फ़ंक्शनों पर आधारित है, हमें नॉर्मलाइज़ेशन समस्या को न्यूनतम प्रयास से हल करने में मदद करेगा।
print(normalize(text)
आउटपुट:
The cafe Saint-Raphael is located in Cote d' Azure
Textacy डेटा मास्किंग
पाठ्य डेटा में अक्सर सामान्य शब्दों के साथ-साथ कई प्रकार के पहचानकर्ता भी होते हैं, जैसे URLs, ईमेल पते या फ़ोन नंबर। कभी-कभी हम विशेष रूप से इन्हीं तत्वों में रुचि रखते हैं। लेकिन कई मामलों में, या तो अप्रासंगिक होने के कारण या गोपनीयता के मद्देनज़र, इस जानकारी को हटाना या मास्क करना बेहतर होता है।
डेटा मास्किंग के लिए Textacy में कुछ सुविधाजनक replace फ़ंक्शन हैं, जैसा कि ऊपर दी गई तालिका में दिखाया गया है। ये replace फ़ंक्शन पूर्व-परिभाषित हैं, जिससे संवेदनशील या अप्रासंगिक जानकारी को बिना कस्टम रेगुलर एक्सप्रेशन लिखे आसानी से मास्क किया जा सकता है।
text = "Check out https://spacy.io/usage/spacy-101"print(replace_urls(text))
आउटपुट:
Check out __URL__
सारांश
इस लेख में, हमने दिखाया कि Textacy का उपयोग पाठ्य डेटा के लिए डेटा प्रीप्रोसेसिंग प्रक्रिया को कैसे सरल बना सकता है। अपनी अंतर्निहित फ़ंक्शनों की विविधता के साथ, Textacy कैरेक्टर नॉर्मलाइज़ेशन और डेटा मास्किंग जैसी सामान्य प्रीप्रोसेसिंग चुनौतियों को संभालना आसान बना देता है।
प्रीप्रोसेसिंग प्रक्रिया को सुव्यवस्थित करके, Textacy प्राकृतिक भाषा संसाधन (NLP) के अधिक जटिल और चुनौतीपूर्ण पहलुओं पर ध्यान केंद्रित करने का मार्ग प्रशस्त करता है। चाहे आप सेंटिमेंट एनालिसिस, टॉपिक मॉडलिंग या किसी अन्य NLP कार्य पर काम कर रहे हों, Textacy आपके डेटा को विश्लेषण के लिए तेज़ी और कुशलता से तैयार करने में मदद कर सकता है।
इसलिए, अगली बार जब आप किसी प्रीप्रोसेसिंग चुनौती का सामना करें, तो अपने वर्कफ़्लो को सरल बनाने और अपना कीमती समय व प्रयास बचाने के लिए Textacy का उपयोग करने पर विचार करें।
यदि आपको Textacy पर यह मार्गदर्शिका सहायक लगी और आप पाठ डेटा प्रीप्रोसेसिंग तथा प्राकृतिक भाषा संसाधन की समझ को और गहरा करना चाहते हैं, तो DataCamp के Natural Language Processing Fundamentals in Python कोर्स में नामांकन करने पर विचार करें।