رسالة الموقع

( اتعلم ) ولا تخلي لشغفك للمعرفة حد ..

preview

Regular Expressions (Regex)

Definition
طريقة لكتابة pattern للبحث عن نصوص
أمثلة:

/[a-z]/ أي حرف صغير

/[0-9]/ أي رقم

/d/ أي digit

Use cases
Search engines
Text editors (find & replace)
Lexical analysis

Tokenization

تقسيم النصوص إلى:
Words (word-based)
Characters (character-based)
Subwords (subword-based: مثل BPE, WordPiece)

Normalization

توحيد شكل النصوص
Lowercasing: تحويل كل الحروف لصغيرة
Removing punctuation: حذف علامات الترقيم
Stopwords Removal: حذف كلمات شائعة زي “the, and”

Stemming vs Lemmatization:

Stemming

إزالة النهايات للحصول على الجذر (غالبًا مش كلمة حقيقية).
مثال:

fishing → fish

policies → polici ❌

Lemmatization

يرجع الكلمة لشكلها القاموسي (كلمة حقيقية).
مثال:

am, are, is → be

better → good

Minimum Edit Distance

هو أقل عدد من التعديلات لتحويل string لـ string تانية.
العمليات:

Insertion (إضافة) = 1

Deletion (حذف) = 1

Substitution (استبدال) = 1 أو 2 حسب النوع.

Levenshtein Distance

شكل خاص من Edit Distance:

Insertion/Deletion cost = 1

Substitution cost = 1

مثال:

  1. intention → execution
    Edit Distance = 5

Dynamic Programming for Edit Distance

بنبني جدول (matrix) D[i,j]:

كل خلية = أقل cost بين:
حذف (delete)
إضافة (insert)
استبدال (substitute)

النتيجة النهائية = D[n,m]

Algorithms

Porter Stemmer: سريع وبسيط، لكن ممكن يرجع كلمات مش حقيقية

Krovetz Stemmer: أبطأ لأنه بيستخدم قاموس، لكنه بيرجع كلمات حقيقية

BPE (Byte-Pair Encoding): يكسر الكلمات الكبيرة لقطع أصغر (subwords)

الزتونة النهائية

Regex → للبحث في النصوص.

Tokenization & Normalization → تجهيز النصوص للمعالجة.

Stemming & Lemmatization → تقليل الكلمات للجذور.

Edit Distance → قياس التشابه بين النصوص.

Dynamic Programming → الحل الأمثل لحساب edit distance.