File size: 1,865 Bytes
9faae34
ea8c744
62057e0
 
 
 
 
 
 
 
 
c25287b
62057e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c25287b
62057e0
 
c25287b
9faae34
c25287b
62057e0
 
 
 
 
 
 
 
9faae34
 
 
 
 
62057e0
9faae34
889c102
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import gradio as gr

# ✅ Arabic Semantic Mapping for Customer Satisfaction
arabic_feelings_map = {
    # 😡 Anger / Complaint
    "زعلان": "غضب",
    "معصب": "غضب",
    "سيء": "غضب",
    "خدمة سيئة": "غضب",
    "ما عجبني": "غضب",
    "تجربة سيئة": "غضب",

    # 😢 Sad / Disappointed
    "محبط": "حزن",
    "حزين": "حزن",
    "مكسور": "حزن",
    "ندمت": "حزن",

    # 😍 Happy / Satisfied
    "مبسوط": "سعادة",
    "سعيد": "سعادة",
    "مرتاح": "سعادة",
    "راضي": "سعادة",
    "ممتاز": "سعادة",
    "رهيب": "سعادة",
    "يعجبني": "سعادة",

    # 😨 Fear / Anxiety
    "خايف": "خوف",
    "قلقان": "خوف",
    "متوتر": "خوف",

    # 🤢 Disgust
    "مقرف": "اشمئزاز",
    "مثير للاشمئزاز": "اشمئزاز",

    # 😐 Neutral
    "عادي": "محايد",
    "طبيعي": "محايد"
}

# ✅ Smart Arabic Analyzer
def analyze_arabic_text(text):
    text = text.strip().lower()

    if not text:
        return "❗️ الرجاء إدخال رأي العميل"

    # Try direct match
    for key in arabic_feelings_map:
        if key in text:
            return f"🧠 الشعور ج: {arabic_feelings_map[key]}"

    return f"✅ رأي العميل: {text}\n\n🧠 الشعور المستنتج: غير واضح (محايد)"

# ✅ Build Arabic UI
ui = gr.Interface(
    fn=analyze_arabic_text,
    inputs=gr.Textbox(placeholder="اكتب رأي العميل هنا... (مثال: الخدمة سيئة)"),
    outputs="text",
    title="✅ محلل رضا العملاء بالعربي",
    description="أدخل رأي العميل وسيتم تحليل شعوره تلقائياً (غضب، سعادة، حزن، خوف...)."
)
ui.launch()