بسم الله الرحمن الرحيم

المعالجة الصرفية لخوارزمية Stemmer في مكتبة NLTK

تاريخ النشر : July 16, 2020

إنها عملية تشبة Normalization في قواعد البيانات


هو المعالجة الصرفية للكلمات بردها لاأصلها أن كانت اللغة إشتقاقية كالعربي أو إلصاقية كإنجليزية

والغرض من ذالك هم تقليل العمليات الحسابية الذي تقوم بة الخورزمية لتقليل الوقت والذاكرة الحاسوبية المطلوبة

ويتميز 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))
مصباح ---->مصباح
يصبح ---->يصبح
أصبح ---->اصبح
يجري ---->يجر
الجري ---->الجر
مصابيح ---->مصابيح

العودة إلي مكتبة NLTK