aya99ma's picture
Update README.md
bae0be7 verified
---
language: ar
license: apache-2.0
library_name: transformers
pipeline_tag: text-classification
tags:
- arabic
- medical
- nlp
- bert
- text-classification
metrics:
- accuracy
- f1
base_model: aubmindlab/bert-base-arabertv02
datasets:
- Ahmed-Selem/Shifaa_Arabic_Medical_Consultations
---
# 🩺 Shifaa Medical Question Classifier | مصنّف أسئلة شفاء الطبية
## العربية
### نظرة عامة
هذا الموديل يقوم **بتصنيف الأسئلة الطبية العربية** إلى **16 فئة** (تخصص/قسم طبي متوقع) باستخدام **AraBERT** بعد Fine-tuning على بيانات منصة شفاء.
- **المهمة:** تصنيف نصوص متعدد الفئات (16 فئة)
- **اللغة:** العربية
- **أفضل النتائج:** Accuracy ≈ **0.82** | F1-macro ≈ **0.70**
- **المخرجات:** اسم الفئة المتوقعة + احتمالية (Confidence)
### روابط المشروع
- 🔗 **Live Demo (Streamlit):** https://shifaa-app-app-kphfdr6vpdwjnhkfirlgpu.streamlit.app/
- 🧾 **GitHub Repository:** https://github.com/Ayama11/shifaa-streamlit-app
- 🤗 **Model on HuggingFace:** https://huggingface.co/aya99ma/shifaa-bert-classifier
- 📦 **Dataset:** https://huggingface.co/datasets/Ahmed-Selem/Shifaa_Arabic_Medical_Consultations
### الفئات (16)
0. أمراض الأطفال ومشاكلهم
1. أمراض الباطنية والصدر
2. أمراض الجلدية
3. أمراض الجهاز البولي والتناسلي
4. أمراض الجهاز العصبي
5. أمراض الدم والأورام
6. أمراض الرأس
7. أمراض العضلات
8. أمراض العظام
9. أمراض الغدد والهرمونات
10. أمراض النساء والولادة
11. الأدوية والمستحضرات
12. الجراحة العامة والتجميل
13. الصحة البدنية
14. الطب البديل
15. شئون طبية ومشاكل متفرقة
### طريقة الاستخدام (Transformers)
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
MODEL_ID = "aya99ma/shifaa-bert-classifier"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
model.eval()
text = "لدي صداع شديد منذ يومين"
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.inference_mode():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=-1)[0]
pred_id = int(torch.argmax(probs))
label = model.config.id2label[pred_id]
confidence = float(probs[pred_id])
print(label, confidence)