आपके द्वारा प्राप्त किए जा रहे परिणाम (आमतौर पर) अंग्रेजी में एक स्टेमर के लिए अपेक्षित होते हैं। आप कहते हैं कि आपने "सभी एनएलटीके विधियों" की कोशिश की लेकिन जब मैं आपके उदाहरणों का प्रयास करता हूं, तो यह मामला प्रतीत नहीं होता है।
यहाँ कुछ PorterStemmer
import nltk
ps = nltk.stemmer.PorterStemmer()
ps.stem('grows')
'grow'
ps.stem('leaves')
'leav'
ps.stem('fairly')
'fairli'
का उपयोग कर उदाहरण हैं परिणाम हैं 'हो जाना', 'leav' और 'fairli' जो, भले ही वे जैसे आप चाहते हैं कर रहे हैं, मूल शब्द के संस्करणों उपजी कर रहे हैं।
यदि हम स्नोबॉल स्टेमर पर स्विच करते हैं, तो हमें भाषा को पैरामीटर के रूप में प्रदान करना होगा।
import nltk
sno = nltk.stem.SnowballStemmer('english')
sno.stem('grows')
'grow'
sno.stem('leaves')
'leav'
sno.stem('fairly')
'fair'
परिणाम 'बढ़ता है' और 'पत्ते' लेकिन 'काफी' 'निष्पक्ष' के लिए उपजी है के लिए पहले की तरह कर रहे हैं
दोनों ही मामलों में
तो (और वहाँ nltk में उपलब्ध दो से अधिक stemmers कर रहे हैं) , जो शब्द आप कहते हैं वे वास्तव में नहीं हैं, वास्तव में हैं। इनपुट के रूप में 'आसानी से' या 'आसान' के साथ प्रदान किए जाने पर लंकास्टरस्टेमर 'आसान' वापस आ जाएगा।
शायद आप वास्तव में एक लेमैमाइज़र चाहते थे? वह 'लेख' और 'पूडल' अपरिवर्तित वापस आ जाएगा।
import nltk
lemma = nltk..wordnet.WordNetLemmatizer()
lemma.lemmatize('article')
'article'
lemma..lemmatize('leaves')
'leaf'
है के बाद से 'stemming' विभक्ति (या कभी कभी व्युत्पन्न) उनके स्टेम, आधार या मूल रूप-आम तौर पर एक प्रश्न के लिखित शब्द फार्म के लिए शब्द कम करने के लिए प्रक्रिया है इन परिणामों अजीब नहीं हैं। अधिक जानकारी के लिए, [यहां] जांचें (http: //en.wikipedia।संगठन/विकी/स्टेमिंग) – eliasah
बीटीडब्ल्यू एनएलटीके पाइथन कार्यक्रमों के निर्माण के लिए मानव भाषा डेटा के साथ काम करने का सबसे अच्छा मंच है। – eliasah