معالجة اللغات الطبيعية مبتدئ · Beginner 12 دقيقة

المعالجة المسبقة للنصوص

Text Preprocessing

تنظيف النص وتطبيعه، مع خطوات خاصة بالعربية: الحروف والتشكيل والتطويل.

تقدّمك في المسار0%

خطوات عامة

  • إزالة الروابط والوسوم والرموز التعبيرية أو تحويلها إلى رموز خاصة.
  • توحيد المسافات.
  • توحيد الحالة في الإنجليزية (lower).
  • التعامل مع الأرقام (إبقاؤها أو استبدالها برمز).

خطوات خاصة بالعربية

import re

DIACRITICS = re.compile(r"[ؗ-ًؚ-ْٰ]")   # الحركات والتنوين والشدة والسكون

def normalize_ar(text: str) -> str:
    text = DIACRITICS.sub("", text)          # إزالة التشكيل
    text = text.replace("ـ", "")        # إزالة التطويل
    text = re.sub("[إأآ]", "ا", text)        # توحيد الألف
    text = text.replace("ى", "ي")            # الألف المقصورة (اختياري)
    text = text.replace("ة", "ه")            # التاء المربوطة (اختياري)
    text = re.sub(r"https?://\S+", " ", text)
    return re.sub(r"\s+", " ", text).strip()

print(normalize_ar("الذَّكَاءُ الاصطــــناعيّ في أَبحاث https://example.org"))
# الذكاء الاصطناعي في ابحاث

بعض خطوات التطبيع تزيل فروقاً حقيقية (مثل ة/ه)؛ قرر بحسب المهمة وقِس أثرها.

كلمات التوقف

import nltk
nltk.download("stopwords")
from nltk.corpus import stopwords
ar_stop = set(stopwords.words("arabic"))
tokens = [w for w in "هذا البحث في معالجة اللغة".split() if w not in ar_stop]

راجع القائمة قبل استخدامها، واحذف منها أدوات النفي إذا كانت المهمة تتأثر بها.

قاعدة ذهبية

  • مع النماذج الكلاسيكية (BoW وTF-IDF): التطبيع يقلل حجم المعجم ويحسن الأداء غالباً.
  • مع النماذج المدربة مسبقاً: استخدم المعالجة التي يوصي بها مؤلفو النموذج فقط.
  • وثّق خطوات المعالجة وطبقها بالطريقة نفسها على التدريب والاختبار والاستخدام الفعلي.

مصطلحات الدرس

التطويل Tatweel / Kashida
الحرف «ـ» المستخدم لمد الكلمات العربية لأغراض جمالية دون تغيير معناها.
تطبيع النص Text Normalization
توحيد الأشكال المختلفة للكتابة نفسها، مثل توحيد أشكال الهمزة أو حالة الأحرف.
كلمات التوقف Stop Words
كلمات شائعة جداً مثل «في» و«من» و«the» قد تُحذف في بعض المهام لقلة دلالتها.

الملخص

المعالجة المسبقة تحول النص الخام إلى شكل منتظم يناسب النموذج، وتشمل إزالة الروابط والرموز غير المرغوبة، وتوحيد الحالة في الإنجليزية، وإزالة كلمات التوقف عند الحاجة. في العربية تشمل غالباً إزالة التشكيل والتطويل (الكشيدة) وتوحيد أشكال الهمزات والألف المقصورة والتاء المربوطة. يجب أن تتناسب المعالجة مع المهمة والنموذج: النماذج المدربة مسبقاً تحتاج عادة إلى المعالجة نفسها التي دُربت بها فقط.

أسئلة مراجعة

  1. لماذا قد يضر حذف كلمات التوقف في تحليل المشاعر؟

    لأن كلمات مثل «لا» و«ليس» تقلب المعنى، وحذفها يحول «ليس جيداً» إلى «جيداً».

  2. لماذا يُنصح بعدم الإفراط في التنظيف مع نماذج مثل AraBERT؟

    لأن النموذج دُرب على نصوص بمعالجة محددة، ويجب مطابقتها لا اختراع معالجة مختلفة.

المصادر والمراجع

  1. Python — re: Regular expression operations
  2. CAMeL Tools (Arabic NLP toolkit)
  3. Jurafsky & Martin — SLP3, Ch. 2: Regular Expressions, Tokenization, Edit Distance

إكمال الدرس