# Tashkeel

> Arabic diacritization (tashkeel) via Farasa API, pyarabic, and LLM fallback

- Skill: `moshe-ship/tashkeel-3` (Agent Skill)
- Install (CLI): `npx skillmds@latest add moshe-ship/tashkeel-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/moshe-ship/tashkeel-3/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: moshe-ship (https://skillmd.com/u/moshe-ship)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/moshe-ship/tashkeel-3

---

# التشكيل العربي

أداة لتشكيل النصوص العربية بالحركات (فتحة، ضمة، كسرة، سكون، شدة، تنوين). التشكيل مهم للنطق الصحيح، خصوصاً في النصوص القرآنية والشعرية والتعليمية. يدعم عدة طرق: واجهة Farasa البرمجية من QCRI، مكتبة pyarabic المحلية، أو الاعتماد على نموذج اللغة الكبير مباشرة كحل أخير.

## متى تستخدم
- المستخدم يطلب تشكيل نص عربي
- يريد نطق صحيح لكلمة أو جملة
- نص قرآني أو شعري يحتاج تشكيل
- يريد تحسين نطق TTS بإضافة الحركات

## الطريقة الأولى: Farasa API من QCRI (الأساسية)

```bash
curl -s -X POST "https://farasa-api.qcri.org/diacritize" \
  -H "Content-Type: application/json" \
  -d '{"text": "ذهب الولد الى المدرسة"}'
```

النتيجة المتوقعة:
```
ذَهَبَ الوَلَدُ إِلَى المَدْرَسَةِ
```

## الطريقة الثانية: pyarabic (محلي — بدون إنترنت)

```bash
pip install pyarabic
```

```python
import pyarabic.araby as araby

text = "بسم الله الرحمن الرحيم"

# التحقق من وجود تشكيل
print(araby.is_vocalized(text))  # False

# إزالة التشكيل (مفيد للمقارنة)
vocalized = "بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ"
print(araby.strip_tashkeel(vocalized))  # بسم الله الرحمن الرحيم
```

> **ملاحظة**: pyarabic يوفر أدوات للتعامل مع التشكيل (فحص، إزالة، تحليل) لكنه لا يولّد تشكيلاً كاملاً تلقائياً. للتشكيل التلقائي استخدم Farasa أو نموذج اللغة.

## الطريقة الثالثة: نموذج اللغة الكبير (احتياطي)

إذا كانت واجهة Farasa غير متاحة و pyarabic لا يكفي، يمكن الاعتماد على نموذج اللغة الكبير مباشرة:

```
"شكّل النص التالي بالحركات العربية الكاملة: ذهب الولد الى المدرسة"
```

النموذج يستطيع تشكيل النصوص بدقة جيدة خصوصاً للنصوص الفصحى المعروفة.

## أمثلة إدخال وإخراج

| الإدخال (بدون تشكيل) | الإخراج (مع تشكيل) |
|----------------------|---------------------|
| كتب الطالب الدرس | كَتَبَ الطَّالِبُ الدَّرْسَ |
| ذهب الولد الى المدرسة | ذَهَبَ الوَلَدُ إِلَى المَدْرَسَةِ |
| بسم الله الرحمن الرحيم | بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ |
| العلم نور | العِلْمُ نُورٌ |

## الحركات الأساسية
| الحركة | الرمز | المثال |
|--------|-------|--------|
| فتحة | َ | كَتَبَ |
| ضمة | ُ | كُتُبٌ |
| كسرة | ِ | بِسْمِ |
| سكون | ْ | مِنْ |
| شدة | ّ | محمَّد |
| تنوين فتح | ً | كتاباً |
| تنوين ضم | ٌ | كتابٌ |
| تنوين كسر | ٍ | كتابٍ |

## القواعد
- لا تشكّل نص بلهجة عامية — التشكيل للفصحى فقط
- إذا النص قرآني، تأكد من التشكيل بالرجوع للمصحف
- إذا كلمة تحتمل أكثر من تشكيل، اذكر الاحتمالات مع المعنى
- جرّب Farasa أولاً، ثم pyarabic للتحليل، ثم نموذج اللغة كاحتياطي

