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

مدقّق الكيانات المسمّاة العربية في Python وسطر الأوامر

افحص ملف وسوم الكيانات المسمّاة العربية بحثًا عن المواضع المحسوبة بوحدة خاطئة، والنص الذي تغيّر بعد الوسم، وحدود الامتدادات التي تفصل الحرف عن حركته أو السابقة عن كلمتها، والتداخل، وأخطاء وسوم BIO وBIOES وBILUO. لكل نتيجة رمز، وتأتي المواضع المقترحة في فرق قابل للتدقيق للمراجعة.

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

يفحص مدقّق مواضع الكيانات المسمّاة العربية من Bayanat Labs ملف الوسوم، ويكتب تقرير JSON (أو تقريرًا قابلًا للمشاركة بلا نص، أو CSV) فيه رمز لكل نتيجة وفرق قابل للتدقيق بالمواضع المقترحة. رمز تعبيري يجعل JavaScript وPython تعدّان بطريقتين مختلفتين، وخطوة تطبيع تحوّل الألف مع الهمزة المركّبة إلى حرف واحد أو حرف لام ألف المدمج إلى حرفين، وتطويل أو فواصل أسطر تغيّرت بعد الوسم، وحدّ امتداد يفصل الحرف عن حركته، وحرف عطف ملتصق باسم مكان: يُذكر كل ذلك برمز من 27 رمزًا للنتائج ورسالة بالعربية والإنجليزية. ويُجري تطبيق الويب الفحوص نفسها داخل متصفحك.

الشيفرة على GitHub · تطبيق الويب · حالات الاختبار على Hugging Face · سجلّ الإصدار

التثبيت والتشغيل

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

arabic-ner-validator check annotations.jsonl --json report.json
arabic-ner-validator check export.jsonl --format doccano --offset-unit utf16 --clitic-policy exclude -v
arabic-ner-validator check train.conll --format conll --scheme BIOES
arabic-ner-validator check export.jsonl --format doccano --offset-unit codepoint --apply-suggestions repaired.jsonl
arabic-ner-validator convert export.jsonl --format spacy --offset-unit codepoint --to BILUO
arabic-ner-validator codes --lang ar

يتطلب Python 3.10 أو أحدث، والاعتماد الوحيد وقت التشغيل هو regex. وفي Python: from arabic_ner_validator import validate. والحزمة غير موجودة على PyPI بعد، فثبّتها من GitHub كما في الأعلى. ولا تغيّر النسخة المُصلَحة إلا المواضع، لا التصنيفات ولا النص.

ما الذي يفحصه

  • المواضع المحسوبة بوحدة أخرى: نقاط الترميز (Python)، أو وحدات UTF-16 (JavaScript)، أو بايتات UTF-8، أو العناقيد الكتابية. تُعلَن الوحدة ولا تُخمَّن أبدًا، ويذكر التقرير الوحدة التي تناسب النص.
  • النص الذي تغيّر بعد الوسم: تطبيع NFC أو NFKC، وحذف التطويل أو التشكيل، وفواصل الأسطر CRLF وLF، وعلامة ترتيب البايتات.
  • حواف الامتدادات داخل عنقود كتابي أو كلمة أو توكن، ومحارف التحكم في الاتجاه والمحارف الصفرية العرض والمسافات وعلامات الترقيم عند الحواف، والحروف العربية واللاتينية الملتصقة عند حافة.
  • السوابق (و ف ب ك ل وأداة التعريف) وفق سياسة الإدراج أو الاستبعاد.
  • البنية: الامتدادات المتداخلة والمتضمَّنة، والتصنيفات خارج مجموعة التصنيفات، وتسلسل وسوم IOB2 وBIOES وBILUO.

ورموز النتائج 20 للأخطاء و2 للتحذيرات و5 للملاحظات. ويقرأ تطبيق الويب الملف داخل متصفحك فلا يرفعه ولا يخزّنه، ولا يحتفظ تقريره القابل للمشاركة إلا بالمعرّفات والرموز والمواضع والأعداد.

الصيغ والوحدات

الصيغ: JSON Lines القياسية (مع مخطط JSON Schema في المستودع)، وdoccano JSONL، وLabel Studio JSON، وspaCy JSONL، وCoNLL، وصفوف توكنات Hugging Face. ووحدات المواضع: codepoint وutf16 وutf8_byte وgrapheme. ومخططات الوسوم: IOB2 (BIO) وBIOES وBILUO، وغيرها.

كيف تعدّ الأدوات الشائعة المواضع

تضم مصفوفة اصطلاحات المواضع 13 صفًا، قيست على 20 نصًا عربيًا اختباريًا: تعدّ Python وspaCy ومُجزِّئات Hugging Face السريعة نقاط الترميز، وتعدّ JavaScript وحدات UTF-16، فتختلف المواضع بعد الرمز التعبيري، وتعدّ العناقيد الكتابية الحرف مع حركاته واحدًا. وتعدّ مناطق النص في Label Studio نقاط الترميز، ويعدّ doccano وحدات UTF-16 ما لم يُفعَّل وضع العناقيد الكتابية فيه، وقد قُرئ هذان الصفّان من الشيفرة المصدرية ولم يُقاسا. والجدول وبياناته في مجلد matrix في المستودع.

الاختبارات

  • 100 حالة اختبار للتطوير، كُتبت قبل شيفرة المدقّق، لكل منها الرموز والاقتراحات المتوقعة بدقة: نجحت 100 من 100.
  • 100 حالة اختبار للقبول، كُتبت على حدة من قائمة فئات العيوب الـ18 وحدها: نجحت 96 من 100، ونجحت 86 من 100 على الإصدار الذي جُمِّد قبل قراءة حالات القبول. ويشرح تقرير الجودة كل حالة لم تنجح.
  • محوّلات المواضع ووسوم BILUO في spaCy، المستخدمة مرجعًا في الاختبارات: اتفقت كل المقارنات على 51 سجلًا من الحالات السليمة.
  • حزمة Python ونسخة المتصفح، مقارنتين على 18,000 مُدخل عشوائي: 0 اختلافات.

حالات الاختبار جمل اصطناعية كُتبت لهذه المجموعات، ومنشورة بترخيص CC BY 4.0، وأيضًا مجموعةَ بيانات على Hugging Face باسم arabic-ner-offset-fixtures.

صيغة الاستشهاد

Bayanat Labs (2026). Arabic NER Offset Validator (arabic-ner-validator), version 0.1.0. https://github.com/Bayanat-Labs/arabic-ner-validator

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

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

الشيفرة وتطبيق الويب: Apache-2.0. حالات الاختبار ومصفوفة اصطلاحات المواضع والتوثيق: CC BY 4.0. والبيانات المشتقة من قاعدة بيانات محارف Unicode: ‏Unicode License v3. للأسئلة والتصحيحات: hello@bayanatlabs.com.

هل تحتاج إلى بيانات عربية موسومة؟

المدقّق مجاني. وللحصول على وثائق عربية موسومة بالحقول والكيانات التي يستخرجها منتجك، راجع Bayanat Documents.

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