تنظيف النص: احذف الضوضاء دون حذف المعنى

قد تبدو قائمة منسوخة فوضوية بسبب فراغات زائدة أو أسطر مكررة. التنظيف الجيد يعالج المشكلة المحددة، ولا يفترض أن كل مساحة أو تكرار خطأ.

حدد نوع الفوضى قبل الإزالة

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

قص الفراغ من طرفي السطر يختلف عن ضغط المسافات داخله. ابدأ بالعملية الأضيق التي تحقق غرضك، ثم قارن بعينة من الأصل.

التكرار يحتاج تعريفًا

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

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

التشابه البصري لا يثبت تطابق النص

يمكن تمثيل بعض الحروف في Unicode بأكثر من تسلسل متكافئ، مثل حرف ذي علامة مركبة أو حرف تتبعه علامة منفصلة. المظهر المتشابه لا يعني تطابق الرموز حرفيًا.

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

المراجع: Unicode Standard Annex #15 — Canonical equivalence and normalization

مثال: لماذا يختلف عدد الأسطر المتبقية؟

لنفترض قائمة من 4 أسطر: «ورشة»، ثم «ورشة » بمسافة أخيرة، ثم «تدريب»، ثم «ورشة». إزالة الأسطر المتطابقة وحدها تُبقي 3 أسطر؛ السطر ذو المسافة ليس مطابقًا تمامًا.

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

المراجع