أداة مجانية مفتوحة المصدر

حاسبة معدل خطأ الكلمات والحروف للعربية

الصق النص المرجعي ومخرَج التعرّف على الكلام واحصل على WER وCER وفق ست سياسات توحيد مسمّاة، مع مقارنة الكلمات. تعمل في متصفحك.

إعداد: Bayanat Labs· آخر تحديث · Read in English

تحسب ArabicWER من Bayanat Labs معدل خطأ الكلمات (WER) ومعدل خطأ الحروف (CER) لأنظمة التعرّف على الكلام العربي وفق ست سياسات توحيد مسمّاة جنبًا إلى جنب. الصق النص المرجعي ومخرَج النظام، جملة في كل سطر، أو ارفع ملف TSV: تعرض الحاسبة النتيجة في كل سياسة، والفرق بين السياسات، ومحاذاة كلمة بكلمة تميّز كل استبدال (S) وحذف (D) وإدراج (I). واذكر السياسة مع كل رقم، مثل WER (arabicwer-1/lenient).

افتح الحاسبة · الشيفرة والمواصفة على GitHub · حالات الاختبار ودراسة الحالة على Hugging Face

يجري الحساب داخل متصفحك، فلا يُرفع نصك ولا يُخزَّن ولا يُسجَّل.

مثال محلول

تُفتح الحاسبة على 7 أزواج قصيرة، في كل زوج نوع واحد من الاختلاف بين النص المرجعي ومخرَج النظام:

النص المرجعي مخرَج النظام الاختلاف
ذَهَبَ الوَلَدُ إِلَى المَدْرَسَةِ ذهب الولد إلى المدرسة حركات في النص المرجعي فقط
أسامة وإياد في المكتبة اسامه واياد في المكتبه الهمزة على الألف والتاء المربوطة
جلس على الكرسي جلس علي الكرسي الألف المقصورة مقابل الياء (على حرف جر، وعلي اسم علم)
مرحبا، كيف حالك؟ مرحبا كيف حالك الفاصلة وعلامة الاستفهام العربيتان
عندي ٣ كتب عندي 3 كتب رقم عربي مشرقي مقابل رقم غربي
ذهبت وأخي إلى السوق ذهبت و أخي إلى السوق واو العطف منفصلة
عندي meeting بعد الظهر عندي Meeting بعد الظهر حرف كبير في كلمة إنجليزية

النتائج على مستوى المجموعة في كل سياسة:

السياسة WER CER
arabicwer-1/raw 56.00% 16.79%
arabicwer-1/nfc 56.00% 16.79%
arabicwer-1/dediac 28.00% 5.74%
arabicwer-1/strict-orth 24.00% 4.92%
arabicwer-1/bayanat-norm-v1 16.00% 2.46%
arabicwer-1/lenient 8.00% 0.82%

تعطي النصوص نفسها معدل خطأ كلمات 56.00% دون توحيد و8.00% وفق سياسة lenient. لكن التوحيد المتسامح يخفي أيضًا أخطاء حقيقية (على حرف جر، وعلي اسم علم)، لذلك تعرض الحاسبة النتائج الأكثر صرامة بجانبه دائمًا.

لماذا تهم السياسة

على 100 جملة من مجموعة اختبار FLEURS للعربية المصرية (18.8 دقيقة من الصوت) نسخها نموذجان مفتوحان من Whisper، يتغيّر معدل خطأ الكلمات على مستوى المجموعة بمقدار 15.7 نقطة لنموذج whisper-large-v3-turbo، و13.4 نقطة لنموذج whisper-small بحسب السياسة وحدها:

السياسة whisper-large-v3-turbo whisper-small
arabicwer-1/raw 25.57% 39.17%
arabicwer-1/nfc 25.57% 39.17%
arabicwer-1/dediac 10.73% 27.85%
arabicwer-1/strict-orth 10.52% 27.64%
arabicwer-1/bayanat-norm-v1 9.94% 25.90%
arabicwer-1/lenient 9.88% 25.79%

يأتي معظم هذا الفرق من علامات الترقيم والحركات، إذ تختلف مخرجات النماذج عن النصوص المرجعية في الترقيم والتشكيل. وتقيس هذه الأرقام مدى تأثر النتيجة بالتوحيد على مجموعة اختبار عامة، ولا تقيس جودة النماذج.

هل أحذف التشكيل قبل حساب معدل خطأ الكلمات؟

في الغالب نعم، إذا لم يكن النص المرجعي والنظام يشكّلان بالطريقة نفسها: على جمل FLEURS نفسها (100 جملة)، أضاف إبقاء الحركات 4.55 نقطة إلى معدل خطأ الكلمات لنموذج whisper-large-v3-turbo وفق سياسة lenient. لكن صرّح بذلك: اذكر السياسة مع الرقم، مثل WER (arabicwer-1/dediac) أو WER (arabicwer-1/lenient).

كيف يُحسب

  1. توحّد كل سياسة النصين بمكتبة arabic-normalize مع بيانات يونيكود 18.0.0 المضمّنة، فلا تعتمد النتيجة على المتصفح ولا على إصدار Python.
  2. الكلمات هي سلاسل المحارف بين المسافات، ويعدّ معدل خطأ الحروف نقاط الترميز في الكلمات بعد وصلها بمسافة واحدة.
  3. تُحاذى الكلمات بمسافة ليفنشتاين وبقاعدة ثابتة لحسم التعادل مكتوبة في المواصفة.
  4. WER = (S + D + I) / N، بجمع كل الأزواج قبل القسمة.
  5. لا تتغير السياسة بعد إصدارها: أي تغيير في السلوك يصدر بمعرّف سياسة جديد، وتُعرَّف كل سياسة ببصمة SHA-256 لملفها.

تعطي الحاسبة الأرقام نفسها التي تعطيها حزمة Python على كل حالات اختبار المطابقة (160 حالة) في كل سياسة.

السياسات

السياسة ما تفعله SHA-256
arabicwer-1/raw النص كما هو، مقسّمًا عند المسافات 25a0985e81d51658b5c0f94661e2ffb1f5b6af5edb6ec4c3402adca351d05a87
arabicwer-1/nfc صيغة يونيكود NFC فقط 9cdd67869a6ce442bfb5ae2931bb18835bc9eaa9431589295b51bf9e8f5ec2c4
arabicwer-1/dediac حذف التشكيل 46a6b2fb3d9475d006297af44a21e3dec95209005d2bd91833412e0acb589fbb
arabicwer-1/strict-orth إملاء صارم: حذف التشكيل وتوحيد الأرقام 83da6f52240c9ca5ce8a850a3a43bc0b03f50ccfde91a2acf1af267592a527ed
arabicwer-1/bayanat-norm-v1 سياسة bayanat-norm-v1 من arabic-normalize، للتقييم 413cba6fa8e4021261f30c240d53281ee9759437d8b96c353ec5abc1f326a9f0
arabicwer-1/lenient إملاء متسامح (الافتراضي) b097f6eac978e001904c79ef0c4cacffde72e50a0e69bfe5b1492371a745d168

الاستخدام في الشيفرة البرمجية

pip install "git+https://github.com/Bayanat-Labs/arabicwer@v0.1.0"

# كل السياسات جنبًا إلى جنب مع الفرق بينها، والخيار --format html يكتب مقارنة كلمات تدعم الاتجاه من اليمين إلى اليسار
arabicwer score --tsv pairs.tsv

لم تصدر الحزمة على PyPI بعد. وإلى أن تصدر، ثبّتها من GitHub عند وسم الإصدار كما في الأمر السابق، وسيعمل الأمر pip install arabicwer بعد نشر الحزمة. ويضم ملف TSV في كل سطر معرّفًا ونصًا مرجعيًا ومخرَج النظام.

>>> import arabicwer
>>> ref, hyp = "ذهب الولد إلى المدرسة", "ذهب الولد الى المدرسه"
>>> arabicwer.wer(ref, hyp)                    # default policy: lenient
0.0
>>> arabicwer.wer(ref, hyp, policy="raw")      # no normalisation
0.5

طريقة الإشارة

حُسبت النتيجة بسياسة arabicwer-1/lenient (بصمة sha256 ‏b097f6eac978…)، أداة arabicwer 0.1.0، Bayanat Labs.

@software{bayanatlabs_arabicwer_2026,
  author  = {{Bayanat Labs}},
  title   = {arabicwer: Arabic WER and CER under named, versioned normalisation policies},
  version = {0.1.0},
  year    = {2026},
  url     = {https://github.com/Bayanat-Labs/arabicwer},
  license = {Apache-2.0}
}

اذكر معرّف السياسة مع كل نتيجة. وسجل الإصدار، بتراخيصه وسجل تغييراته، في صفحة ArabicWER على Bayanat Labs Open.

الترخيص والتواصل

الشيفرة البرمجية: Apache-2.0. السياسات والمواصفة وحالات الاختبار ومخرجات دراسة الحالة ونتائجها: CC BY 4.0. نصوص FLEURS المرجعية: Google، بترخيص CC BY 4.0. للأسئلة والتصويبات: hello@bayanatlabs.com.

هل تحتاج إلى بيانات كلام عربية جاهزة للإنتاج وواضحة الحقوق؟

ArabicWER مجانية. أما بيانات الكلام العربية المرخّصة ومجموعات التقييم فتجدها في صفحة Bayanat Voice.

لم يراجع النصَّ العربي بعدُ كاتبٌ لغته الأم العربية، والنص الإنجليزي هو المعتمد. (The Arabic text has not yet been reviewed by a native Arabic writer; the English governs.)