Skip to content

التعيين حسب الفئة

توجيه عناصر التعليق التوضيحي إلى المعلّقين بناءً على خبرتهم المثبتة.

التعيين المبني على الفئة

يقوم التعيين المبني على الفئة بمطابقة المعلّقين تلقائياً مع عناصر التعليق التوضيحي بناءً على خبرتهم المثبتة. يتم تقييم المعلّقين خلال مراحل التدريب على أسئلة خاصة بالفئات ولا يتلقون إلا عناصر من الفئات التي تأهلوا لها.

نظرة عامة

يعمل نظام التعيين المبني على الفئة كالتالي:

  1. وسم البيانات: يتم وسم العناصر في ملفات البيانات بفئات
  2. تقييم التدريب: يتم أيضاً وسم أسئلة التدريب بفئات
  3. تتبع الأداء: يتتبع النظام الدقة لكل فئة أثناء التدريب
  4. التأهيل: المستخدمون الذين يستوفون عتبة الدقة المطلوبة يكونون "مؤهلين"
  5. التعيين: يتلقى المستخدمون عناصر فقط من فئاتهم المؤهلة

الإعدادات

الإعداد الأساسي

yaml
# Enable category-based assignment strategy
assignment_strategy: category_based
 
# Configure category key in item_properties
item_properties:
  id_key: id
  text_key: text
  category_key: category  # Field containing category
 
# Category assignment settings
category_assignment:
  enabled: true
  qualification:
    source: training      # Where qualification comes from
    threshold: 0.7        # 70% accuracy required
    min_questions: 2      # At least 2 questions per category
  fallback: uncategorized # What to do if user qualifies for nothing

خيارات الإعدادات

الخيارالنوعالقيمة الافتراضيةالوصف
enabledbooleantrueتفعيل/تعطيل التعيين حسب الفئة
qualification.sourcestring"training"المصدر: "training" أو "prestudy" أو "both"
qualification.thresholdfloat0.7الحد الأدنى للدقة (0.0-1.0) للتأهل
qualification.min_questionsinteger1الحد الأدنى لعدد الأسئلة لكل فئة
fallbackstring"uncategorized"السلوك عندما لا يتأهل المستخدم

خيارات الرجوع البديل

  • uncategorized: تعيين عناصر ليس لها فئة
  • random: تعيين عشوائي من جميع العناصر المتبقية
  • none: عدم تعيين أي عناصر

تنسيق البيانات

بيانات العناصر

أضف حقل الفئة في ملفات البيانات الخاصة بك:

json
{"id": "econ_001", "text": "Market analysis...", "category": "economics"}
{"id": "sci_001", "text": "Research findings...", "category": "science"}
{"id": "multi_001", "text": "Interdisciplinary...", "category": ["economics", "science"]}
{"id": "general_001", "text": "General content...", "category": null}

بيانات التدريب

يجب أن تتضمن عناصر التدريب الفئات:

json
{
  "training_instances": [
    {
      "id": "train_econ_1",
      "text": "Question about economic concepts...",
      "category": "economics",
      "correct_answers": {"topic": "Economics"},
      "explanation": "This is an economics topic because..."
    }
  ]
}

كيف يعمل التأهيل

أثناء التدريب

بينما يجيب المستخدمون على أسئلة التدريب:

  1. يسجل النظام فئة كل سؤال
  2. لكل فئة، يتتبع:
    • إجمالي الأسئلة المُجاب عنها
    • عدد الإجابات الصحيحة
    • الدقة (الصحيحة / الإجمالي)

بعد اكتمال التدريب

عندما يجتاز المستخدم التدريب:

  1. يتم حساب الدقة لكل فئة
  2. الفئات التي تستوفي كلاً من العتبة والحد الأدنى لعدد الأسئلة تُضاف إلى "الفئات المؤهلة"
  3. التأهيلات تستمر طوال الجلسة

مثال

إذا كانت العتبة 0.7 (70%) والحد الأدنى للأسئلة 2:

الفئةالأسئلةالصحيحةالدقةمؤهل؟
Economics33100%نعم
Science2150%لا (أقل من العتبة)
Sports11100%لا (أقل من الحد الأدنى للأسئلة)

سيتلقى المستخدم عناصر "Economics" فقط.

حالات الاستخدام

توجيه الخبراء

توجيه المحتوى المتخصص إلى المعلّقين المؤهلين:

  • النصوص الطبية إلى المعلّقين ذوي المعرفة الطبية
  • المستندات القانونية إلى من يفهمون المصطلحات القانونية
  • المحتوى التقني إلى ذوي الخبرة التقنية

مراقبة الجودة

ضمان الجودة من خلال تعيين المحتوى فقط للأفراد المؤهلين:

  • يثبت المعلّقون كفاءتهم قبل تلقي العمل الفعلي
  • عتبات جودة مختلفة لأنواع محتوى مختلفة

توزيع عبء العمل

توزيع العمل بناءً على الخبرة:

  • العناصر عالية التعقيد إلى المعلّقين الخبراء
  • العناصر العامة إلى جميع المعلّقين

وضع الخبرة الديناميكي

تتيح الخبرة الديناميكية التقييم الفوري أثناء التعليق التوضيحي بدون بيانات تدريب ذهبية:

yaml
category_assignment:
  enabled: true
  dynamic:
    enabled: true
    agreement_method: majority_vote
    min_annotations_for_consensus: 2
    learning_rate: 0.1
    update_interval_seconds: 60
    base_probability: 0.1

كيف يعمل الوضع الديناميكي

  1. الحالة الأولية: يبدأ جميع المعلّقين بخبرة محايدة (0.5) لجميع الفئات
  2. التعيين الاحتمالي: الفئات ذات الخبرة الأعلى لها احتمالية تعيين أعلى
  3. المعالجة في الخلفية: يحسب الإجماع دورياً ويحدّث درجات الخبرة
  4. تحديث الخبرة: تزداد الدرجات عند الاتفاق مع الإجماع وتنخفض عند الاختلاف

خيارات الإعدادات

الخيارالنوعالقيمة الافتراضيةالوصف
agreement_methodstring"majority_vote"طريقة حساب الإجماع
min_annotations_for_consensusinteger2الحد الأدنى للتعليقات قبل الحساب
learning_ratefloat0.1سرعة تغيّر درجات الخبرة
base_probabilityfloat0.1الحد الأدنى لاحتمالية أي فئة

مرجع API

أساليب TrainingState

python
# Record an answer for category tracking
training_state.record_category_answer(categories=['economics'], is_correct=True)
 
# Get score for a specific category
score = training_state.get_category_score('economics')
# Returns: {'correct': 3, 'total': 4, 'accuracy': 0.75}
 
# Get qualified categories based on threshold
qualified = training_state.get_qualified_categories(threshold=0.7, min_questions=2)

أساليب UserState

python
# Add a qualified category
user_state.add_qualified_category('economics', score=0.85)
 
# Check if user is qualified for a category
is_qualified = user_state.is_qualified_for_category('economics')
 
# Get all qualified categories
categories = user_state.get_qualified_categories()

استكشاف الأخطاء وإصلاحها

المستخدمون لا يحصلون على عناصر معيّنة

  1. تحقق مما إذا كان لدى المستخدم فئات مؤهلة (راجع أداء التدريب)
  2. هل توجد عناصر في تلك الفئات لم يتم التعليق عليها بعد؟
  3. هل تم تعيين fallback بشكل مناسب؟

الفئات لا يتم تتبعها

  1. تأكد من تعيين category_key في item_properties
  2. عناصر التدريب تحتوي على حقل category
  3. category_assignment.enabled مضبوط على true

قراءة إضافية

للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.