Spaces:
Sleeping
Sleeping
File size: 1,405 Bytes
c62252d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # ============================================================
# 📄 الملف: app/text_utils.py
# 🎯 الغرض: أدوات معالجة مسبقة للنص العربي (مشتركة بين بناء البيانات والبحث).
#
# يجب أن يُعالَج جانب المستندات (بناء الـ embedding) وجانب الاستعلام
# بنفس الطريقة، لذا توضع الدالة هنا ويستوردها الطرفان.
# ============================================================
import re
# علامات التشكيل العربية: الفتحة/الضمة/الكسرة/السكون/الشدة/التنوين
# والمدّة والألف الخنجرية وعلامات الضبط القرآنية + التطويل (ـ).
_ARABIC_DIACRITICS = re.compile(
"["
"ؐ-ؚ" # علامات وإشارات عربية (honorifics)
"ً-ٟ" # تنوين + فتحة/ضمة/كسرة + شدّة + سكون + علامات إضافية
"ٰ" # ألف خنجرية (ألف فوقية)
"ۖ-ۭ" # علامات ضبط قرآنية
"ـ" # التطويل (ـ)
"]"
)
def strip_diacritics(text: str) -> str:
"""يحذف التشكيل من النص العربي قبل المعالجة (يحافظ على الحروف كما هي)."""
if not isinstance(text, str):
return ""
return _ARABIC_DIACRITICS.sub("", text)
|