Layan22 commited on
Commit
62057e0
·
verified ·
1 Parent(s): 0b6f92c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -12
app.py CHANGED
@@ -1,26 +1,64 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
 
4
- # Load Hugging Face sentiment pipeline with Arabic model
5
- analyzer = pipeline("sentiment-analysis", model="aubmindlab/bert-base-arabertv2")
 
 
 
 
 
 
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def analyze_arabic_text(text):
8
- text = text.strip()
 
9
  if not text:
10
  return "❗️ الرجاء إدخال رأي العميل"
11
-
12
- result = analyzer(text)[0]
13
- label = result['label']
14
- score = result['score']
15
- return f"✅ رأي العميل: {text}\n\n🧠 الشعور المستنتج: {label} (الثقة: {score:.2f})"
16
 
17
- # Build Arabic UI
 
 
 
 
 
 
 
18
  ui = gr.Interface(
19
  fn=analyze_arabic_text,
20
  inputs=gr.Textbox(placeholder="اكتب رأي العميل هنا... (مثال: الخدمة سيئة)"),
21
  outputs="text",
22
  title="✅ محلل رضا العملاء بالعربي",
23
- description="أدخل رأي العميل وسيتم تحليل شعوره تلقائياً باستخدام نموذج عربي من Hugging Face."
24
  )
25
-
26
  ui.launch()
 
1
  import gradio as gr
 
2
 
3
+ # Arabic Semantic Mapping for Customer Satisfaction
4
+ arabic_feelings_map = {
5
+ # 😡 Anger / Complaint
6
+ "زعلان": "غضب",
7
+ "معصب": "غضب",
8
+ "سيء": "غضب",
9
+ "خدمة سيئة": "غضب",
10
+ "ما عجبني": "غضب",
11
+ "تجربة سيئة": "غضب",
12
 
13
+ # 😢 Sad / Disappointed
14
+ "محبط": "حزن",
15
+ "حزين": "حزن",
16
+ "مكسور": "حزن",
17
+ "ندمت": "حزن",
18
+
19
+ # 😍 Happy / Satisfied
20
+ "مبسوط": "سعادة",
21
+ "سعيد": "سعادة",
22
+ "مرتاح": "سعادة",
23
+ "راضي": "سعادة",
24
+ "ممتاز": "سعادة",
25
+ "رهيب": "سعادة",
26
+ "يعجبني": "سعادة",
27
+
28
+ # 😨 Fear / Anxiety
29
+ "خايف": "خوف",
30
+ "قلقان": "خوف",
31
+ "متوتر": "خوف",
32
+
33
+ # 🤢 Disgust
34
+ "مقرف": "اشمئزاز",
35
+ "مثير للاشمئزاز": "اشمئزاز",
36
+
37
+ # 😐 Neutral
38
+ "عادي": "محايد",
39
+ "طبيعي": "محايد"
40
+ }
41
+
42
+ # ✅ Smart Arabic Analyzer
43
  def analyze_arabic_text(text):
44
+ text = text.strip().lower()
45
+
46
  if not text:
47
  return "❗️ الرجاء إدخال رأي العميل"
 
 
 
 
 
48
 
49
+ # Try direct match
50
+ for key in arabic_feelings_map:
51
+ if key in text:
52
+ return f"🧠 الشعور ج: {arabic_feelings_map[key]}"
53
+
54
+ return f"✅ رأي العميل: {text}\n\n🧠 الشعور المستنتج: غير واضح (محايد)"
55
+
56
+ # ✅ Build Arabic UI
57
  ui = gr.Interface(
58
  fn=analyze_arabic_text,
59
  inputs=gr.Textbox(placeholder="اكتب رأي العميل هنا... (مثال: الخدمة سيئة)"),
60
  outputs="text",
61
  title="✅ محلل رضا العملاء بالعربي",
62
+ description="أدخل رأي العميل وسيتم تحليل شعوره تلقائياً (غضب، سعادة، حزن، خوف...)."
63
  )
 
64
  ui.launch()