2010-05-14 15 views
17

मैं भावना विश्लेषण के लिए एक एनएलपी परियोजना शुरू कर रहा हूं।एनएलटीके पायथन के साथ भावना विश्लेषण?

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

  1. मैं डेटा से एक लंबा टुकड़ा के साथ शुरू (मान लीजिए कि उनके वेब सेवा से ब्रिटेन चुनाव के विषय पर कई सौ ट्वीट्स)
  2. मैं इस को तोड़ने के लिए करना चाहते हैं:

    यहाँ मेरी काम है वाक्यों में (या जानकारी 100 या उससे अधिक वर्णों से नहीं) (मुझे लगता है कि मैं इसे पायथन में कर सकता हूं ??)

  3. फिर उस वाक्य के भीतर विशिष्ट उदाहरणों के लिए सभी वाक्यों को खोजने के लिए "डेविड कैमरून"
  4. तब मैं प्रत्येक वाक्य में सकारात्मक/नकारात्मक भावना के लिए जाँच और तदनुसार उन्हें गिनती

नायब चाहते हैं: मैं वास्तव में चिंतित बहुत अधिक सटीकता के बारे में क्योंकि मेरी डेटा सेट बड़े और भी कर रहे हैं नहीं कर रहा हूँ कटाक्ष के बारे में ज्यादा चिंतित नहीं है।

  1. सभी डेटा सेट मैं जैसे पा सकते हैं:

    यहाँ मुसीबतों मैं कर रहा हूँ कर रहे हैं एनएलटीके के साथ आने वाली कॉर्पस मूवी समीक्षा डेटा webservice प्रारूप में नहीं है। ऐसा लगता है कि इसने कुछ प्रसंस्करण पहले से ही किया है। जहां तक ​​मैं प्रसंस्करण (स्टैनफोर्ड द्वारा) देख सकता हूं, वेका के साथ किया गया था। क्या एनएलटीके के लिए यह सब संभव नहीं है? यहां सभी डेटा सेट पहले ही सकारात्मक/नकारात्मक में व्यवस्थित किए जा चुके हैं उदा। ध्रुवीय डेटासेट http://www.cs.cornell.edu/People/pabo/movie-review-data/ यह कैसे किया जाता है? (भावनाओं द्वारा वाक्यों को व्यवस्थित करने के लिए, क्या यह निश्चित रूप से WEKA है? या कुछ और?)

  2. मुझे यकीन नहीं है कि मैं समझता हूं कि क्यों WEKA और NLTK का उपयोग किया जाएगा। ऐसा लगता है कि वे एक ही चीज़ करते हैं। अगर मैं पहली बार वीकेए के साथ डेटा को संसाधित करने के लिए संसाधित करता हूं तो मुझे एनएलटीके की आवश्यकता क्यों होगी? क्या यह समझाया जा सकता है कि यह क्यों आवश्यक हो सकता है?

मुझे कुछ स्क्रिप्ट मिली हैं जो इस कार्य के करीब कुछ हद तक मिलती हैं, लेकिन सभी एक ही पूर्व-संसाधित डेटा का उपयोग कर रहे हैं। लिंक में दिए गए डेटा नमूनों का उपयोग करने के बजाए वाक्यों में भावनाओं को खोजने के लिए इस डेटा को स्वयं संसाधित करना संभव नहीं है?

किसी भी मदद की बहुत सराहना की है और मुझे बहुत बाल बचाएगा!

चीयर्स Ke

उत्तर

12

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

NLTK साथ भावना विश्लेषण के लिए अनुभवहीन Bayes का उपयोग करने का एक विवरण के लिए: http://streamhacker.com/2010/05/10/text-classification-sentiment-analysis-naive-bayes-classifier/

फिर उस कोड में, बजाय फिल्म कोष का उपयोग कर के, अपने खुद के डेटा का उपयोग शब्द मायने रखता है की गणना करने के (word_feats विधि में)।

+0

हां, मैं थोड़ी सी खोज के बाद उस साइट पर समाप्त हुआ, लेकिन मुझे लगता है कि प्रत्येक समीक्षा के लिए आंकड़े कैसे प्राप्त करें इस पर थोड़ा फंस गया। मैं पीएल/नकारात्मक के लिए 1 या 0 के साथ समीक्षा आईडी की एक सूची देने के लिए nltk का उपयोग कैसे कर सकता हूं? चीयर्स के –

+0

भविष्य के पाठकों के लिए संभवतः उपयोगी: फिल्म समीक्षा कॉर्पस में "pos" और "neg" श्रेणियां हैं। "Neg" catogory में फ़ाइल आईडी की सूची प्राप्त करने के लिए, बस 'movie_reviews.fileids ("neg")' का उपयोग करें। आप सीधे नकारात्मक श्रेणी में सभी पाठों को सीधे कहकर निकाल सकते हैं, उदाहरण के लिए, 'movie_reviews.sents (श्रेणियां = ["नकारात्मक"]) '। (ये विधियां सभी वर्गीकृत nltk निगम के साथ काम करती हैं। किसी कॉर्पस में श्रेणियों की सूची बनाने के लिए, 'corpus.categories() '।) – alexis

1

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

+1

का उपयोग करें। क्या आपके पास कोई पेपर या ऐप इसका उल्लेख है? – mixdev

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