هو المعالجة الصرفية للكلمات بردها لاأصلها أن كانت اللغة إشتقاقية كالعربي أو إلصاقية كإنجليزية
والغرض من ذالك هم تقليل العمليات الحسابية الذي تقوم بة الخورزمية لتقليل الوقت والذاكرة الحاسوبية المطلوبة
ويتميز stemming السرعة لإعتمادة علي قواعد للمعالجة معتمدة علي تركيب الكلمة بغض النظر عن معني الكلمة في القاموس
import nltk
from nltk.stem.porter import PorterStemmer
هناك أنواع متعددة للStemer بناَ علي طريقة العمل سنركز في هذا المثال علي PorterStemmer
p_stemmer=PorterStemmer()
worde=['run','runner','ran','runs']
for word in words:
print(word + '---->' +p_stemmer.stem(word))
from nltk.steam.snowball import SnowballStemmer
s_stemmer=SnowballsStemmer(language='english')
for word in words:
print(word +' ---->'+s_stemmer.stem(word))
as_stemmer=SnowballStemmer(language='arabic')
awords=['مصباح','يصبح','أصبح','يجري','الجري','مصابيح']
for word in awords:
print(word +' ---->'+as_stemmer.stem(word))
مصباح ---->مصباح
يصبح ---->يصبح
أصبح ---->اصبح
يجري ---->يجر
الجري ---->الجر
مصابيح ---->مصابيح