File size: 1,444 Bytes
64648bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import re

def clean_arabic_translation(text: str) -> str:
    """
    تنظيف وتحسين الترجمة العربية
    """
    if not text or not isinstance(text, str):
        return text
    
    # إزالة الرموز غير المرغوب فيها
    text = re.sub(r'[^\w\s\u0600-\u06FF،؛؟.!]', '', text)
    
    # تصحيح الأخطاء الشائعة
    correction_rules = {
        " هو ": " هي ",
        " قال ": " قالت ",
        " هذا ": " هذه ",
        " لكن ": " لكنّ ",
        "إلي": "إلى",
        "اللّه": "الله",
        "ان ": "أن ",
        "هي ": "هي ",
        "ة": "ه",  # تحويل التاء المربوطة إلى هاء في بعض السياقات
    }
    
    for wrong, right in correction_rules.items():
        text = text.replace(wrong, right)
    
    # تحويل الترقيم إلى العربية
    punctuation_map = {
        "?": "؟",
        ",": "،",
        ";": "؛",
        ":": ":",
    }
    
    for eng_punct, ar_punct in punctuation_map.items():
        text = text.replace(eng_punct, ar_punct)
    
    # إزالة المسافات الزائدة وتحسين النص
    text = re.sub(r'\s+', ' ', text).strip()
    
    # ضمان أن النص يبدأ بحرف مناسب وينتهي بترقيم مناسب
    if text and text[-1] not in [".", "؟", "!", "،"]:
        text += "."
    
    return text