Dhom1 commited on
Commit
a83b920
·
verified ·
1 Parent(s): a3fed16

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +25 -6
src/streamlit_app.py CHANGED
@@ -4,8 +4,8 @@ import pandas as pd
4
  from transformers import pipeline
5
  import joblib
6
  from offensive_keywords import offensive_keywords
7
- st.write(f"🔎 تم تحميل {len(offensive_keywords)} عبارة من الملف.")
8
 
 
9
 
10
  # ✅ إعداد التخزين المؤقت للنماذج
11
  os.environ["HF_HOME"] = "/tmp"
@@ -75,17 +75,36 @@ with col2:
75
  # ✅ إدخال الإعلان
76
  uploaded_text = st.text_area("✍️ أدخل نص الإعلان هنا:", height=150)
77
 
78
- # ✅ نموذج التصنيف
79
- st.subheader("📊 تصنيف الإعلان")
80
-
81
  if uploaded_text:
82
  try:
 
83
  pred = classifier.predict([uploaded_text])[0]
84
- label = "✅ إعلان سليم" if pred == 1 else "❌ إعلان مخالف"
85
- st.markdown(f'<div class="metric-container"><h4>{label}</h4></div>', unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  except Exception as e:
87
  st.error(f"حدث خطأ في التنبؤ: {str(e)}")
88
 
 
89
  if st.button("🔍 تحليل العبارات"):
90
  if uploaded_text:
91
  violations = [kw for kw in offensive_keywords if kw in uploaded_text]
 
4
  from transformers import pipeline
5
  import joblib
6
  from offensive_keywords import offensive_keywords
 
7
 
8
+ st.write(f"🔎 تم تحميل {len(offensive_keywords)} عبارة من الملف.")
9
 
10
  # ✅ إعداد التخزين المؤقت للنماذج
11
  os.environ["HF_HOME"] = "/tmp"
 
75
  # ✅ إدخال الإعلان
76
  uploaded_text = st.text_area("✍️ أدخل نص الإعلان هنا:", height=150)
77
 
78
+ # ✅ تصنيف الإعلان + فحص العبارات في نفس الوقت
 
 
79
  if uploaded_text:
80
  try:
81
+ # تصنيف النموذج ML
82
  pred = classifier.predict([uploaded_text])[0]
83
+ ml_label = "✅ إعلان سليم" if pred == 1 else "❌ إعلان مخالف"
84
+
85
+ # فحص العبارات المخالفة
86
+ violations = [kw for kw in offensive_keywords if kw in uploaded_text]
87
+ has_violations = len(violations) > 0
88
+
89
+ # منطق التصنيف النهائي
90
+ if has_violations:
91
+ final_label = "❌ إعلان مخالف (عبارات)"
92
+ elif pred == 1:
93
+ final_label = "✅ إعلان سليم"
94
+ else:
95
+ final_label = "❌ إعلان مخالف"
96
+
97
+ # ✅ عرض التصنيف النهائي
98
+ st.markdown(f'<div class="metric-container"><h4>{final_label}</h4></div>', unsafe_allow_html=True)
99
+
100
+ # ✅ عرض تنبيه إن كان فيه تعارض منطقي
101
+ if has_violations and pred == 1:
102
+ st.warning("⚠️ تم تصنيفه كـ 'إعلان سليم' حسب النموذج، لكنه يحتوي على عبارات قد تُعد مخالفة.")
103
+
104
  except Exception as e:
105
  st.error(f"حدث خطأ في التنبؤ: {str(e)}")
106
 
107
+ # ✅ تحليل العبارات (تفصيل العبارات المخالفة + نسبة)
108
  if st.button("🔍 تحليل العبارات"):
109
  if uploaded_text:
110
  violations = [kw for kw in offensive_keywords if kw in uploaded_text]