جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
تقليل تباين النصوص باستخدام الاشتقاق، والتحليل الصرفي، والتطبيع الخاص باللغة العربية
lovely وluv وloveeeالمفهوم الأساسي
Lemma)الاشتقاق
ing من الأفعالfrom nltk.stem.porter import PorterStemmer
stemmer = PorterStemmer()
singles = [stemmer.stem(w) for w in plurals]
# 'caresses' -> 'caress', 'flies' -> 'fli', 'meeting' -> 'meet'flies -> fli تظهر أن الاشتقاق قد ينتج كلمات غير حقيقيةالتحليل الصرفي
WordNet لإيجاد جذرها المعجميfrom nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize("rocks") # "rock"
lemmatizer.lemmatize("better", pos="a") # "good"pos مهم: الافتراض الافتراضي هو الاسم، مقابل صورة الصفةdef normalize(sentence):
sentence = re.sub("[إأآا]", "ا", sentence)
sentence = re.sub("ى", "ي", sentence)
sentence = re.sub("ؤ", "ء", sentence)
sentence = re.sub("ئ", "ء", sentence)
sentence = re.sub("ة", "ه", sentence)
return sentenceNLTKdef removing_ar_stopwords(text):
words = word_tokenize(text)
return " ".join(w for w in words if w not in stopwords)Pipeline) الكاملالاشتقاق العربي
NLTK؛ يحذف السوابق واللواحق باستخدام قواعد خاصة بالعربيةfrom nltk import ISRIStemmer
st = ISRIStemmer()
stemmed = " ".join(st.stem(w) for w in word_tokenize(text))حدثني تصبح حدث)الاشتقاق العربي
from tashaphyne.stemming import ArabicLightStemmer
ArListem = ArabicLightStemmer()
ArListem.light_stem(word)
stem = ArListem.get_stem()ISRIStemmer في تجارب هذا الدرسFarasa كأفضل محلل صرفي عربي أداء (خدمة خارجية)الاشتقاق مقابل التحليل الصرفي
ISRIStemmer وTashaphyne)Farasa للعربية)Farasa أفضل النتائج للنصوص العربيةpandascleared = [removing_ar_stopwords(h) for h in hadiths]
cleared = [normalize(h) for h in cleared]
cleared = [stemming_1(h) for h in cleared] # ISRIStemmerإزالة كلمات التوقف
تطبيع الأحرف
الاشتقاق
DataFrame تمهيدا للنمذجة اللاحقةISRIStemmer/Tashaphyne (للعربية) من أشهر أدوات الاشتقاقFarasa تفوق على أدوات الاشتقاق المختبرة في النصوص العربية في هذا الدرسMahmoud Abas|تطبيع النصوص