مشروع لتصنيف بلاغات الأعطال باستخدام تعلم الآلة
# ⚡ Sudan Electricity Faults Classification
تطبيق **تعلم الآلة (Machine Learning)** لتصنيف بلاغات الأعطال في الشركة السودانية لتوزيع الكهرباء بالاعتماد على **النصوص الوصفية** للبلاغات.
---
## 🎯 الهدف
- أتمتة عملية فرز البلاغات النصية.
- مساعدة موظفي الكول سنتر في تحديد نوع العطل بسرعة.
- تحسين زمن الاستجابة وتقليل الأخطاء البشرية.
---
## ⚙️ المميزات
- تصنيف الأعطال بناءً على النص العربي.
- استخدام خوارزمية **Logistic Regression**.
- دعم اللغة العربية (UTF-8).
- عرض تقرير الأداء (الدقة – الاستدعاء – F1-score).
- مصفوفة الارتباك (Confusion Matrix) لقياس أداء النموذج.
---
## 🛠️ المتطلبات
- Python 3.8 أو أحدث
- المكتبات المطلوبة:
```bash
pip install pandas numpy scikit-learn matplotlib seaborn joblib
```
---
## 🚀 طريقة التشغيل
1. ضع ملف البيانات `sudan_faults_text.csv` في مجلد المشروع.
2. شغل ملف التدريب:
```bash
python train_model.py
```
3. بعد التدريب، حيتم حفظ الملفات:
- `model_faults1.pkl` → النموذج المدرب
- `tfidf_faults1.pkl` → محول النصوص
- `label_encoder1.pkl` → مشفر التصنيفات
4. جرب التنبؤ ببلاغ جديد داخل الكود:
```python
new_text = ["المحول ما بشغل المنطقة كلها"]
```
---
## 📊 مثال نتيجة
```
✅ تم تدريب النموذج بالنجاح
🎯 الدقة: 0.87
🔮 العطل المتوقع: عطل محول
```
---
## 📂 هيكل المشروع
```
Sudan-Faults-Classification/
│── main.py # الكود الرئيسي للتدريب والتجربة
│── sudan_faults_text.csv # البيانات النصية للأعطال
│── model_faults1.pkl # النموذج المدرب (يُنشأ بعد التشغيل)
│── tfidf_faults1.pkl # محول النصوص (يُنشأ بعد التشغيل)
│── label_encoder1.pkl # مشفر الأعطال (يُنشأ بعد التشغيل)
│── README.md # ملف التوثيق
```
---
✍️ *تم تطوير المشروع بواسطة: إسماعيل (2025)*