2009-08-12 25 views
9

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

उत्तर

7

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

9

यह आपके से पूछने से थोड़ा अलग हो सकता है, लेकिन नोडबॉक्स लिंगस्टिक्स लाइब्रेरी में is_emotive() फ़ंक्शन शामिल है जो यह देखने के लिए शब्दों को जांचता है कि वे कुछ भावनात्मक शब्दों के पुनरावर्ती hyponyms हैं या नहीं। commonsense.py

ekman = ["anger", "disgust", "fear", "joy", "sadness", "surprise"] 
    other = ["emotion", "feeling", "expression"] 

नहीं स्टेमर, लेकिन एक दिलचस्प दृष्टिकोण से बाहर की जाँच करने के लिए।

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