تنظيف النص العربي: متى تحذف التشكيل والتطويل والتكرار؟

دليل عملي لتنظيف النص العربي من التشكيل والتطويل والمسافات والأسطر المكررة، مع شرح الفرق بين التنظيف وUnicode Normalization ومصادر رسمية من Unicode.

تنظيف نص عربي من التشكيل والتطويل والتكرار
تنظيف النص لا يعني إعادة كتابته؛ أحيانًا يكفي حذف عناصر شكلية أو تكرارات تعيق الاستخدام.

تنسخ قائمة من PDF أو من رسالة قديمة، فتجد مسافات غريبة، سطورًا مكررة، تطويلًا وسط الكلمات، وتشكيلًا لا تحتاجه في البحث. هنا تبدأ الرغبة في “تنظيف كل شيء”. المشكلة أن بعض ما يبدو زائدًا قد يكون جزءًا حقيقيًا من المعنى.

قبل التنظيف

مَــرحبًا بكم

مَــرحبًا بكم
النَّصُّ العربيُّ

بعد تنظيف مناسب لقائمة بحث

مرحبا بكم
النص العربي

النسخة الثانية أنظف لهذا الاستخدام، لكنها ليست “أفضل” في كل سياق. لو كان النص تعليميًا أو لغويًا، إزالة التشكيل قد تحذف معلومة مقصودة. ولو كان التكرار متعمدًا، حذف السطر الثاني سيكون خطأ.

ابدأ من الهدف، لا من زر «تنظيف الكل»

إذا كنت تجهز قائمة أسماء للبحث أو المقارنة، فإزالة التطويل والمسافات الزائدة قد تكون منطقية. إذا كنت تعد نصًا للنشر، ربما تحتاج فقط إلى ترتيب الفراغات والأسطر. إذا كان النص مشكولًا لأسباب تعليمية، فلا تلمس الحركات لمجرد أنها “رموز إضافية”.

موقف مألوف: تنسخ 300 سطر من ملف قديم، ثم تكتشف أن نصف الوقت الذي ستقضيه في المراجعة سببه مسافات في البداية وتكرارات واضحة. هنا أداة تنظيف بسيطة توفر وقتًا فعلًا. لكن نفس الأداة على نص قانوني أو تعليمي تحتاج يدًا أهدأ.

التشكيل في Unicode ليس زينة عشوائية

Unicode يوضح في الأسئلة الرسمية عن العربية أن الحركات العربية تُشفّر كـcombining marks تُطبَّق على الحرف الأساسي، وأن العلامات القرآنية وعلامات النطق وغيرها تدخل ضمن منظومة العلامات المركبة في النص العربي. [المصدر: Unicode Consortium — Arabic Script FAQ]

هذا مهم لسبب بسيط: إزالة التشكيل عملية تغيير للمحتوى النصي، وليست مجرد تعديل بصري. عندما تحذف الفتحة أو الشدة أو السكون، أنت تحذف محارف موجودة في السلسلة النصية نفسها.

ما الفرق بين إزالة التشكيل وUnicode Normalization؟

الخلط بينهما شائع. Unicode Normalization لا يعني “احذف الحركات”. الملحق الرسمي UAX #15 يعرّف أشكال التطبيع NFC وNFD وNFKC وNFKD لتوحيد تمثيلات Unicode المتكافئة واختيار ترتيب وتمثيل معياري لبعض السلاسل. الهدف هو التعامل المتسق مع نصوص متكافئة، لا مسح العلامات العربية من النص. [المصدر: Unicode Standard Annex #15]

انتبه: إزالة التشكيل ليست بديلًا عن Normalization، وNormalization ليس أمرًا لحذف التشكيل. كل عملية تحل مشكلة مختلفة.

الشدة والحركات المركبة تحتاج حذرًا أكبر

Unicode نشر UAX #53 خصيصًا لعرض العلامات العربية المركبة، ويوضح أن ترتيب combining marks في العربية أكثر تعقيدًا من مجرد وضع الحركة فوق الحرف. ويشير إلى أن معالجة العرض الصحيحة يجب أن تحافظ على التكافؤ القانوني للسلاسل مع ترتيب ملائم للعرض. [المصدر: Unicode Standard Annex #53]

هذه التفاصيل لا يحتاجها المستخدم العادي كل يوم، لكنها تشرح لماذا يبدو نصان متشابهين بصريًا بينما يختلف تمثيلهما الداخلي، ولماذا لا يصح بناء “تنظيف عربي” قوي على حذف محارف عشوائي.

إزالة الأسطر المكررة وتنظيم النص العربي
تنظيف القوائم والنصوص المنسوخة يفيد عندما تعرف تحديدًا ما الذي تريد إزالته وما الذي يجب أن يبقى.

التطويل «ـ» له محرف مستقل فعلًا

في جدول Unicode الرسمي للعربية، الرمز U+0640 مسجل باسم ARABIC TATWEEL، ويذكر Unicode أنه يُستخدم لتمديد الأحرف أو لحمل تشكيل دون حرف أساسي في بعض الحالات. [المصدر: Unicode 18.0 Arabic Names List]

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

المسافات والتكرار

المسافات الزائدة: مشكلة صغيرة تصنع فوضى كبيرة

المسافة في بداية السطر أو نهايته لا تلفت النظر دائمًا، لكنها قد تؤثر في المطابقة والفرز أو تجعل البيانات تبدو مختلفة في نظام آخر. الأمر نفسه يحدث مع عدة مسافات متتالية بين كلمتين.

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

الأسطر المكررة: ما الذي يُعد تكرارًا فعلًا؟

إذا ظهر السطر نفسه حرفيًا مرتين في قائمة بريدية أو أسماء، فحذفه منطقي غالبًا. لكن «محمد علي» و«محمد علي » قد يختلفان بسبب مسافة مخفية في النهاية. وهنا يظهر سبب تنظيف المسافات قبل البحث عن التكرار. وهذه التفاصيل نفسها تفسر لماذا قد تختلف أدوات عد الكلمات والحروف في النص العربي رغم استخدام النص نفسه.

هناك مستوى آخر: هل تريد اعتبار «المنتج A» و«المنتج a» متساويين؟ في العربية قد تكون المشكلة في علامات أو مسافات أكثر من حالة الحروف، لكن القاعدة العامة واحدة: عرّف معنى “التكرار” قبل أن تحذف.

إزالة التطويل

مفيدة عادة للقوائم والبحث والمقارنة، ما لم يكن التطويل جزءًا مقصودًا من العرض.

إزالة التشكيل

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

توحيد المسافات

مفيد للبيانات المنسوخة والقوائم، مع الانتباه للنصوص التي تستخدم الفراغات للتنسيق.

حذف التكرارات

نفّذه بعد تحديد معنى التكرار وتنظيف الاختلافات الشكلية التي لا تهمك.

ترتيب التنظيف وحدوده

الترتيب الأفضل لعملية التنظيف

لا توجد وصفة واحدة، لكن للقوائم النصية العادية يعمل هذا التسلسل جيدًا في كثير من الحالات:

  • احتفظ بنسخة أصلية قبل أي تغيير جماعي.
  • أزل المسافات الزائدة في البداية والنهاية.
  • قرر هل التطويل جزء من المحتوى أم مجرد تنسيق.
  • قرر هل التشكيل مهم للمعنى في هذا النص.
  • بعد توحيد الشكل، ابحث عن الأسطر المكررة.
  • راجع عينة من البداية والوسط والنهاية قبل اعتماد النتيجة.

لا تخلط تنظيف النص بتصحيح اللغة

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

هذا الفصل مهم لأن المستخدم قد يرى النص “أنظف” بعد العملية فيفترض أنه صار أصح. الشكل والمضمون شيئان مختلفان.

ماذا عن النص المنسوخ من PDF أو مواقع قديمة؟

قد يحتوي النص على محارف عرض توافقية أو تمثيلات مختلفة بصريًا. Unicode يوضح في FAQ الخاص بالعربية أن Arabic Presentation Forms موجودة لأسباب توافقية ولا يُنصح باستخدامها في النص العربي العادي. [المصدر: Unicode Consortium — Arabic Script FAQ]

إذا كان النص سيُخزن في قاعدة بيانات أو يُستخدم في البحث، فقد تحتاج Normalization إلى جانب عمليات التنظيف الظاهرية. هنا لا يكفي “حذف العلامات” يدويًا؛ الأفضل استخدام معالجة Unicode صحيحة في النظام نفسه.

ولماذا لا تستخدم NFKC على كل نص بلا تفكير؟

Unicode يفرق بين التطبيع القانوني مثل NFC/NFD والتطبيع التوافقي مثل NFKC/NFKD. في الأسئلة الرسمية عن Normalization، يوضح Unicode أن NFKC وNFKD قد يزيلان بعض فروق التوافق، ولذلك يكونان أنسب في مجالات محددة مثل المعرّفات أكثر من كونهما اختيارًا عامًا لكل نص. [المصدر: Unicode Consortium — Normalization FAQ]

المغزى العملي بسيط: إذا كنت تنظف نصًا للنشر أو الأرشفة، لا تطبق تحويلات Unicode واسعة فقط لأن اسمها “Normalization”. اختر العملية التي تعرف أثرها، واحتفظ بالنسخة الأصلية عندما يكون النص مهمًا.

مثال عملي قبل اعتماد النص

قائمة أسماء من ثلاثة مصادر

لديك 500 اسم جُمعت من ملف PDF ورسائل ونموذج ويب. بعض الأسماء فيها تطويل، بعضها يحتوي مسافات في النهاية، وبعضها مكرر مع اختلاف بسيط في الشكل. ابدأ بتنظيف المسافات، ثم إزالة التطويل إذا لم يكن مهمًا، وبعدها قرر هل التشكيل يدخل في المقارنة أم لا. أخيرًا نفّذ إزالة التكرارات.

لو بدأت بحذف التكرار قبل توحيد الشكل، ستبقى نسخ تبدو متطابقة للعين لكنها مختلفة تقنيًا. هذه هي الفكرة كلها: الترتيب الصحيح للخطوات يقلل الأخطاء.

نظف النص حسب المهمة، لا بضغطة عمياء

في أدوات النصوص على تولاتي يمكنك إزالة التشكيل أو التطويل والأسطر المكررة وتنفيذ عمليات أخرى بصورة منفصلة، ثم مراجعة الناتج قبل نسخه.

فتح أدوات معالجة النصوص

ع م
عبد الكريم مرجانيكاتب موقع تولاتي — يراجع الأدلة التقنية بالرجوع إلى المصادر الرسمية والوثائق الأصلية.

المصادر الرسمية المستخدمة

  1. Unicode Consortium — Arabic Script FAQ: تمثيل الحروف والعلامات العربية وملاحظات حول Arabic Presentation Forms.
  2. Unicode Standard Annex #15 — Unicode Normalization Forms: المرجع الرسمي لأشكال NFC وNFD وNFKC وNFKD والتكافؤ النصي.
  3. Unicode Standard Annex #53 — Unicode Arabic Mark Rendering: التعامل الصحيح مع سلاسل العلامات العربية المركبة في العرض.
  4. Unicode 18.0 — Arabic Names List: المرجع الرسمي لمحرف ARABIC TATWEEL U+0640 ووصف استخدامه.