स्टॉपवर्ड्स की एक अच्छी सूची कैसे बनाएं


9

मैं कुछ संकेतों की तलाश कर रहा हूं कि स्टॉपवार्ड की सूची को कैसे क्यूरेट किया जाए। क्या कोई जानता है / क्या कोई प्रीप्रोसेसिंग और फ़िल्टरिंग के लिए डेटासेट सूचियों को स्वयं डेटासेट से निकालने के लिए एक अच्छी विधि सुझा सकता है?

आँकड़े:

चर की लंबाई (खोजकर्ता और पूरे वाक्य (200 अक्षर तक)) के कई वर्षों में मानव पाठ इनपुट की एक बड़ी राशि। पाठ में बहुत सारे स्पैम होते हैं (जैसे बॉट से मशीन इनपुट, एकल शब्द, बेवकूफ खोजें, उत्पाद खोज ...) और उपयोगी होने के लिए केवल कुछ% लगता है। मुझे एहसास हुआ कि कभी-कभी (केवल बहुत कम ही) लोग वास्तव में शांत प्रश्न पूछकर मेरा पक्ष खोजते हैं। ये प्रश्न इतने मस्त हैं, कि मुझे लगता है कि यह देखने लायक है कि लोग समय के साथ कैसे खोजते हैं और मेरी वेबसाइट का उपयोग करने के लिए लोगों ने किन विषयों में रुचि ली है।

मेरी समस्या:

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

अपने विचारों और चर्चा लोगों के लिए धन्यवाद!


1
पायथन एनएलटीके मॉड्यूल स्टॉपवर्ड्स डेटा प्रदान करता है और अगर यह आपके डेटासेट के बारे में अधिक जानकारी प्रदान करने में आपकी मदद नहीं करता है। यह आपके मामले में मददगार क्यों नहीं था?
कसरा मंशाई

@kasramsh: जब मैंने इन SWs के लिए फ़िल्टर किया तो मुझे आभास हुआ कि इससे स्पैम को महत्वपूर्ण रूप से फ़िल्टर नहीं किया गया था। मुझे लगता है कि इसका कारण यह है कि ये सूची प्राकृतिक ग्रंथों (सुनिश्चित नहीं) पर बनाई गई है और इसलिए खोज और साइट प्रश्नों के लिए उपयोग करने योग्य नहीं है। जब आप क्लस्टर करते हैं (खोज स्ट्रिंग समानता के आधार पर) तो मुझे आभास था कि स्पैम का एन्ट्रापी स्तर पर एक मजबूत प्रभाव है और इस तरह अंतिम परिणाम मिल रहा है: - /।
प्लेगटैग

1
मुझे लगता है कि @PlagTag समझ में नहीं आता कि क्या है stop words। बंद करो-wrods कुछ भाषा के सबसे आम शब्दों, उदाहरण के लिए की एक सूची है I, the, aऔर इतने पर। आप अपने एल्गोरिथ्म को प्रशिक्षित करने से पहले अपने पाठ से इस शब्द को हटा देंगे, जो यह पहचानने की कोशिश करेगा कि कौन सा पाठ स्पैम है या नहीं। इसने आपको यह पहचानने में मदद नहीं की कि कौन सा पाठ स्पैम है या नहीं, यह आपके सीखने के एल्गोरिथ्म को कुछ सुधार दे सकता है।
itdxer

@itdxer, आपकी टिप्पणी के लिए धन्यवाद। मैंने यहां स्टॉपवार्ड शब्द का व्यापक रूप से उपयोग किया (जैसा कि मैंने सोचा कि यह उद्देश्य के लिए ठीक हो सकता है)। इस मुद्दे को साफ करने के लिए धन्यवाद ;-)
प्लेगटैग

जवाबों:


5

एक दृष्टिकोण tf-idf स्कोर का उपयोग करना होगा । अधिकांश प्रश्नों में होने वाले शब्दों से अच्छे खोज प्रश्नों को बुरे लोगों से अलग करने में बहुत मदद मिलेगी। लेकिन जो बहुत कम प्रश्नों (उच्च आईडीएफ या उलटा दस्तावेज़ आवृत्ति) में अक्सर (उच्च tf या शब्द-आवृत्ति) होते हैं, वे अच्छे प्रश्नों को बुरे लोगों से अलग करने में अधिक महत्वपूर्ण होते हैं।


बहुत बहुत, मैं इस एक की कोशिश करेंगे और यहाँ रिपोर्ट!
प्लेगटैग

वास्तव में एक उच्च आईडीएफ स्कोर अकेले ही चाल
चलेगा

2

यह आपके आवेदन पर निर्भर करता है।

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

उदाहरण के लिए, आंकड़े और सारणीबद्ध सामग्री वाले ग्रंथों में, शब्द "अंजीर", "आकृति", "टैब", या "तालिका" अच्छे अतिरिक्त स्टॉपवार्ड हैं। परिणाम में, आपके विषय अधिक अच्छी तरह से परिभाषित हो जाते हैं।


1

TFIDF (टर्म फ़्रीक्वेंसी इनवर्स डॉक्यूमेंट फ़्रीक्वेंसी) का उपयोग करने से आपका उद्देश्य हल हो जाएगा। अपने दस्तावेज़ में प्रत्येक शब्द के लिए TFIDF स्कोर प्राप्त करें और शब्दों को उनके अंकों के अनुसार क्रमबद्ध करें, जिससे आप अपने डेटा के महत्वपूर्ण शब्दों का चयन कर सकते हैं।


1

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

यह रणनीति प्रभावी है क्योंकि यह स्टॉपवार्ड सूची का निर्माण करते समय टोकन के प्रभाव को ध्यान में रखती है।


0

स्टॉपवॉच किसी बिंदु पर समाधान का हिस्सा हो सकता है, लेकिन कुंजी नहीं। किसी भी प्रमुख भाषाओं के लिए स्टॉप शब्दों की अच्छी सूची मौजूद है, यह डोमेन विशिष्ट नहीं होना चाहिए।

मैं यह भी नहीं सोचता कि टीडी-आईडीएफ का उपयोग करना वास्तव में सही है। खराब गुणवत्ता वाले तार में बहुत दुर्लभ (संभावित कचरा) शब्द हो सकते हैं।

यह अनुमान लगाने की कोशिश करने के बजाय कि कौन सी सटीक सुविधाएँ उपयोगी हैं: मैं कुछ डेटा को बेतरतीब ढंग से चुनकर डेटा सेट करके शुरू करूँगा और उन्हें हाथ से लेबल करूँगा ( goodया)bad , या 0.0 से 1.0 के पैमाने पर) । फिर कुछ को कोड करें जो कई विशेषताओं (लंबाई, शब्दों की संख्या (टोकन), स्पैम स्कोर, चाहे वह URL या बॉटिश वर्ण हो, भाषा का पता लगाता है, चाहे उसमें प्रश्न चिह्न हो, चाहे उसका उचित पूंजीकरण हो) को खींचता है। इसके अलावा गैर-भाषाई विशेषताओं को शामिल करना न भूलें, जो आपके पास हो सकता है, जैसे कि उपयोगकर्ता के भू-भाग का देश, जिसने क्वेरी बनाई है, चाहे उपयोगकर्ता लॉग इन किया हो, उपयोगकर्ता का खाता कितना पुराना है। तो इस बिंदु पर आपके पास एक विशाल तालिका / CSV होगी, और आपके द्वारा जोड़े गए लेबल के लिए एक अतिरिक्त कॉलम वाला एक छोटा।

फिर एक मॉडल बनाने के लिए उन लेबल उदाहरणों के साथ कुछ मशीन लर्निंग पैकेज को प्रशिक्षित करें जो आपके लिए पर्याप्त सटीक हो। फिर उस मॉडल को बाकी डेटा पर चलने दें।

यदि आप बहुत अधिक कोड नहीं करना चाहते हैं, तो आप बस उन सुविधाओं को सीएसवी फॉर्म में प्राप्त कर सकते हैं, और उन्हें Google प्रिडिक्शन एपीआई के स्प्रेडशीट इंटरफ़ेस को दे सकते हैं

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