आप टेक्स्ट वर्गीकरण पर SMOTE कैसे लागू करते हैं?


14

सिंथेटिक माइनॉरिटी ओवरसैंपलिंग तकनीक (SMOTE) एक ओवरलैप्ड डेटासेट समस्या में इस्तेमाल की जाने वाली ओवरसैंपलिंग तकनीक है। अब तक मेरे पास एक विचार है कि इसे सामान्य, संरचित डेटा पर कैसे लागू किया जाए। लेकिन क्या इसे पाठ वर्गीकरण समस्या पर लागू करना संभव है? डेटा के किस भाग को आपको ओवरस्पीड करने की आवश्यकता है? इसके बारे में पहले से ही एक और सवाल है, लेकिन इसका जवाब नहीं है। मैं संभवतः इसके साथ शुरुआत करना कहां से सीख सकता हूं?

जवाबों:


11

वास्तव में एनएलपी सबसे आम क्षेत्रों में से एक है जिसमें डेटा को फिर से जमा करना आवश्यक है क्योंकि असंतुलित समस्या (स्पैम फ़िल्टरिंग, अपमानजनक टिप्पणी का पता लगाना, लेख वर्गीकरण, आदि) से निपटने के लिए कई पाठ वर्गीकरण कार्य हैं। लेकिन SMOTE कुछ कारणों से यहाँ समस्याग्रस्त लगता है:

  • SMOTE फीचर स्पेस में काम करता है। इसका अर्थ है कि एसएमओटीई का उत्पादन एक सिंथेटिक डेटा नहीं है, जो इसके फीचर स्पेस के अंदर एक टेक्स्ट का वास्तविक प्रतिनिधि है।
  • एक तरफ SMOTE KNN के साथ काम करता है और दूसरी तरफ, NLP समस्या के लिए फ़ीचर स्पेस नाटकीय रूप से बहुत बड़ा है। KNN उन विशाल आयामों में आसानी से विफल हो जाएगा।

इसलिए मैं आपको दो दृष्टिकोण प्रस्तावित कर सकता हूं:

  1. नए सिंथेटिक नमूनों के वास्तविक पाठ प्रतिनिधित्व के बारे में परवाह नहीं है जो मुझे लगता है कि ठीक होना चाहिए। आपको अपने क्लासिफायर के लिए वितरण को संतुलित करना होगा न कि पाठ डेटा के पाठक के लिए। इसलिए पारंपरिक के रूप में SMOTE लागू करें (हालांकि मैं आमतौर पर समाधान 2 bellow का उपयोग करता हूं, इसलिए मैं कुछ आयामी कमी कदम के साथ परिणाम नहीं देता!)।

1) मान लें कि आप 3-एनएन का उपयोग करके अपने डेटा को मामूली वर्ग डबल से बनाना चाहते हैं। प्रमुख वर्ग पर ध्यान न दें और केवल छोटे वर्ग के नमूने रखें।

2) सुविधा स्थान में प्रत्येक नमूना बिंदु के लिए 5 निकटतम पड़ोसियों का चयन करें। फिर उनमें से 3 को यादृच्छिक रूप से चुनें (क्या यह अनावश्यक जटिल नहीं है? यदि मैं मूल एल्गोरिथ्म को स्पष्ट नहीं करना चाहता था तो मैं कहूंगा कि सिर्फ 3 पड़ोसी चुनें!)

3) प्रत्येक आयाम के लिए नमूना और पड़ोसियों के बीच की दूरी की गणना करें और इसे 0-1 के बीच एक यादृच्छिक संख्या में गुणा करें और इसे उस आयाम में नमूना के मूल मूल्य में जोड़ें। (यह जटिल पैराग्राफ बस प्रत्येक आयाम के लिए मूल नमूने और उस पड़ोसी के बीच एक यादृच्छिक मान का चयन करता है!)

  1. लेकिन मैं आमतौर पर एक और ओवरसैंपलिंग करता हूं जो पाठ पर है (इसलिए अधिक सहज) और एसएमओटीई की तरह है।

1) प्रमुख वर्ग की उपेक्षा करें। मामूली वर्ग में सभी दस्तावेजों का एक लंबा वितरण प्राप्त करें ताकि हम सही दस्तावेज़ की लंबाई (शब्दों / वाक्यांशों की संख्या) के अनुसार नए नमूने उत्पन्न करें। हम मानते हैं कि हम वर्ग के आकार (इसलिए उत्पादन) करना चाहते हैंk=2 मूल दस्तावेज प्रति सिंथेटिक दस्तावेज)

2) का एक क्रम उत्पन्न करें nउस वितरण के अनुसार यादृच्छिक पूर्णांक। इसका उपयोग नए सिंथेटिक दस्तावेज़ की लंबाई निर्धारित करने के लिए किया जाता है।

3) प्रत्येक दस्तावेज़ के लिए: यादृच्छिक लंबाई अनुक्रम से एक पूर्णांक चुनें और mयादृच्छिक दस्तावेज़ जिसकी लंबाई पूर्णांक के करीब है। सभी के टोकन लगाएंm एक सेट में दस्तावेजों और बेतरतीब ढंग से चुनते हैं n टोकन kबार। ये आपके हैंk नए दस्तावेज़।


उत्तर के लिए धन्यवाद, लेकिन क्या नमूनों को नमूनों के लिए लागू किया जा सकता है यदि उन्हें एक-गर्म एन्कोडिंग का उपयोग करके दिखाया गया है? या उन्हें दूसरे तरीके से प्रस्तुत किया जाना चाहिए?
२३:०६ ​​पर adnanmuttaleb

हाय कासरा, क्या आप बताए गए चरणों से संबंधित कुछ कार्यान्वयन साझा कर सकते हैं
पायल भाटिया

2

यदि आप अधिक पाठ / वाक्यों को ट्रांसिंग डेटा जोड़ना चाहते हैं, तो आप पूर्व-प्रशिक्षित शब्द एम्बेडिंग का उपयोग कर सकते हैं। प्रिटेंडेड मॉडल जैसे शब्द प्रत्येक और हर शब्द के शब्द सदिश प्रतिनिधित्व प्रदान करते हैं। यह 'Most_smiliar' शब्द भी प्रदान करता है।

आप बस नमूना वाक्य का उपयोग कर सकते हैं और इसके सबसे TOP_N समान शब्दों के साथ प्रत्येक शब्द के क्रमपरिवर्तन करके नए नमूने उत्पन्न कर सकते हैं।

उदाहरण के लिए यदि आपके वाक्य में 3 शब्द हैं, और यदि आप प्रत्येक शब्द के लिए 3 सबसे अधिक समान चुनते हैं, तो आप 27 गुना तक अप-अप कर सकते हैं।


हाय यशोधान, अगर हम डोमेन-विशिष्ट हैं तो हम इस प्रक्रिया का उपयोग कैसे कर सकते हैं? साभार
पायल भाटिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.