2012-01-08 17 views
6

मैं वर्तमान में NLTK में अनुभवहीन Bayes क्लासिफ़ायर का उपयोग ट्वीट वर्गीकृत करने के लिए कोशिश कर रहा हूँ। मैं '$' उपसर्ग (उदाहरण: $ एएपीएल) का उपयोग करके विशेष स्टॉक प्रतीकों से संबंधित ट्वीट्स वर्गीकृत कर रहा हूं। मैं इस ब्लॉग पोस्ट को बंद करने के लिए अपनी पायथन लिपि का आधार रहा हूं: Twitter Sentiment Analysis using Python and NLTK। अब तक, मुझे उचित अच्छे परिणाम मिल रहे हैं। हालांकि, मुझे लगता है कि सुधार के लिए बहुत अधिक जगह है।ट्वीट वर्गीकरणकर्ता फ़ीचर-चुनाव NLTK

मेरे वचन-फीचर चयन विधि में, मैं सबसे जानकारीपूर्ण शब्द का चयन करने के tf-आईडीएफ एल्गोरिथ्म लागू करने का फैसला। ऐसा करने के बाद, मुझे लगा कि परिणाम प्रभावशाली नहीं थे।

मैं उसके बाद निम्न ब्लॉग पर तकनीक को लागू किया: Text Classification Sentiment Analysis Eliminate Low Information Features। परिणाम टीएफ-आईडीएफ एल्गोरिदम के साथ प्राप्त किए गए लोगों के समान ही थे, जिसने मुझे अपने वर्गीकृत की 'सर्वाधिक जानकारीपूर्ण विशेषताओं' सूची का अधिक निरीक्षण करने का नेतृत्व किया।

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

अगर मैं कर सकता, मैं अक्सर सूची अद्यतन करने की आवश्यकता की वजह से, stopwords का उपयोग नहीं करना चाहते हैं। हालांकि, अगर यह मेरा एकमात्र विकल्प है, तो मुझे लगता है कि मुझे इसके साथ जाना होगा।

तो, मेरे प्रश्न को सारांशित करने के लिए, क्या कोई जानता है कि सचमुच एक विशिष्ट स्रोत में सबसे अधिक जानकारीपूर्ण शब्द प्राप्त करें जो एक ट्वीट है?

संपादित करें: मैं तीन समूहों में वर्गीकृत करने की कोशिश कर रहा हूं: सकारात्मक, नकारात्मक, और तटस्थ। इसके अलावा, मैं सोच रहा था, टीएफ-आईडीएफ के लिए, क्या मुझे केवल निम्न स्कोर वाले शब्दों को कम करना चाहिए, या कुछ उच्च स्कोर वाले भी? प्रत्येक मामले में, पाठ स्रोत की शब्दावली का प्रतिशत प्रतिशत आप सुविधा चयन प्रक्रिया से बाहर क्यों करेंगे?

+0

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

+0

मैंने अन्य सुविधाओं का उपयोग नहीं किया है: लेखक बहुत विविध होंगे। इस समय के लिए मेरा कॉर्पस केवल दो सौ ट्वीट्स के क्रम में है। स्कोर के लिए, मेरे टेस्ट कॉर्पस (हमेशा बड़ा हो रहा है) के आकार के आधार पर, वे 0 से 0.3 तक हैं, मैं कहूंगा। स्कोर द्वारा – elliottbolzan

+0

, मेरा मतलब शुद्धता/एफ 1/जो भी आप माप रहे हैं। और यदि आपके पास बड़ा कॉर्पस है तो आपको बेहतर परिणाम मिल सकते हैं: उदा। आईडीएफ अधिक सटीक हो सकता है। –

उत्तर

3

ब्लॉग पोस्ट आप लिंक show_most_informative_features विधि का वर्णन करने के लिए, लेकिन यह भी एक NaiveBayesClassifiermost_informative_features विधि है कि रिटर्न बजाय सुविधाओं सिर्फ उन्हें मुद्रण। आप अपने प्रशिक्षण सेट के आधार पर एक कटऑफ सेट कर सकते हैं- "द", "और" जैसी सुविधाएं और सूचनात्मकता के मामले में अन्य महत्वपूर्ण विशेषताएं सूची के नीचे होंगी।

यह सच है कि इस दृष्टिकोण overfitting के अधीन हो सकता है (कुछ सुविधाओं को और अधिक अपने परीक्षण सेट की तुलना में अपने प्रशिक्षण सेट में महत्वपूर्ण होगा), लेकिन यह कुछ भी है कि अपने प्रशिक्षण सेट के आधार पर सुविधाओं फिल्टर का सच होगा।

+0

क्या आपका मतलब show_most_informative_features विधि है? यदि ऐसा है, तो मुझे काम करने का आपका समाधान, लेकिन यह मेरी समस्या है: यह पता चला है कि 'द', क्लासिफायर के मानकों द्वारा, बहुत जानकारीपूर्ण है। वास्तव में, ट्वीट्स में मैं विश्लेषण कर रहा हूं, यह इतना दिखाई नहीं देता है! – elliottbolzan

+0

मेरा मतलब है "most_informative_features", "show_most_informative_features" नहीं - अंतर यह है कि show_most_informative_features केवल उन्हें प्रिंट करता है (जो एल्गोरिदम के लिए बेकार है), जबकि अधिकांश_इनफॉर्मेटिव_फेचर उन्हें वापस लौटाते हैं (ऊपर से जुड़े एपीआई को देखें)। "द" के लिए सूचनात्मक होने के लिए, जैसा कि मैं वर्णन कर रहा हूं कि अति उत्तम है। लेकिन यह क्रमी मेट्रिक से भी संबंधित हो सकता है कि एनएलटीके "सूचनात्मकता" को मापने के लिए उपयोग करता है, जो सूचना लाभ नहीं है। महत्वपूर्ण प्रश्न: आपके पास कितने वर्गीकरण हैं? –

+0

मैंने केवल 200 ट्वीट्स को वर्गीकृत किया है। चूंकि एनएलटीके की सूचना लाभ विधि खराब है, इसलिए ब्लॉग पोस्ट पर मिले किसी का उपयोग करना चाहिए, मैंने किसी भी तरह से मदद का उल्लेख किया है? – elliottbolzan

संबंधित मुद्दे