Elde ettiğiniz sonuçlar (genellikle) İngilizce bir stemmer bekleniyor. “Bütün nltk yöntemlerini” denediğini söylüyorsun ama örneklerini denediğimde, bu durum böyle görünmüyor. İşte
PorterStemmer
import nltk
ps = nltk.stemmer.PorterStemmer()
ps.stem('grows')
'grow'
ps.stem('leaves')
'leav'
ps.stem('fairly')
'fairli'
kullanarak bazı örneklerdir sonuçlarıdır bunlar, ne istediğini orijinal kelimenin sürümlerini saplı bile hangi 'leav' ve 'fairli' 'büyümek'.
Kartopu dallayıcısına geçersek, dili bir parametre olarak belirtmeliyiz.
import nltk
sno = nltk.stem.SnowballStemmer('english')
sno.stem('grows')
'grow'
sno.stem('leaves')
'leav'
sno.stem('fairly')
'fair'
sonuç 'oldukça' 'adil' olarak saplı olan 'büyür' ve 'yaprakları' ama için daha önce olduğu gibi her iki durumda da Dolayısıyla
(ve ikiden fazla sözcük köklerini nltk mevcut vardır) , söylediğin kelimeler aslında değil. LancasterStemmer, giriş olarak 'kolay' veya 'kolay' sağlandığında 'kolay' dönecektir.
Belki de gerçekten bir parçalayıcı mı istiyorsunuz? Bu 'makale' ve 'kaniş' değişmezdi. Burada tartışılan edilmiştir
import nltk
lemma = nltk..wordnet.WordNetLemmatizer()
lemma.lemmatize('article')
'article'
lemma..lemmatize('leaves')
'leaf'
olup. Daha fazla bilgi için [buradan] (http: //en.wikipedia) adresini kontrol edin.ort/wiki/Stemming) – eliasah
btw NLTK, insan dili verileriyle çalışacak Python programları oluşturmak için en iyi platformdur. – eliasah