Skip to content
Tutorials3 min read

بناء أول مهمة توسيم للتعرف على الكيانات المسماة

دليل تعليمي خطوة بخطوة لإنشاء مهمة توسيم للتعرف على الكيانات المسماة مع تسميات النطاق واختصارات لوحة المفاتيح.

Potato Team·

بناء أول مهمة توسيم للتعرف على الكيانات المسماة

يعد التعرف على الكيانات المسماة (NER) من أكثر مهام معالجة اللغة الطبيعية شيوعاً. في هذا الدليل التعليمي، ستتعلم كيفية إنشاء واجهة توسيم كاملة للتعرف على الكيانات المسماة مع تمييز النطاقات واختصارات لوحة المفاتيح واختيار نوع الكيان.

ما الذي نبنيه

بنهاية هذا الدليل التعليمي، ستحصل على واجهة توسيم حيث يمكن للمُوسِّمين:

  • تمييز نطاقات النص بالنقر والسحب
  • تعيين أنواع الكيانات (شخص، منظمة، موقع، إلخ.)
  • استخدام اختصارات لوحة المفاتيح للتوسيم الأسرع
  • تعديل أو حذف التوسيمات الموجودة

المتطلبات المسبقة

  • تثبيت Potato (pip install potato-annotation)
  • معرفة أساسية بصيغة YAML
  • بيانات نصية نموذجية للتوسيم

الخطوة 1: تكوين مخطط التوسيم

أنشئ ملف config.yaml:

yaml
annotation_task_name: "Named Entity Recognition"
 
data_files:
  - data/sentences.json
 
item_properties:
  id_key: id
  text_key: text
 
# Enable span annotation
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight and label named entities in the text"
    labels:
      - name: PER
        description: "Person names"
        color: "#FF6B6B"
        keyboard_shortcut: "p"
      - name: ORG
        description: "Organizations"
        color: "#4ECDC4"
        keyboard_shortcut: "o"
      - name: LOC
        description: "Locations"
        color: "#45B7D1"
        keyboard_shortcut: "l"
      - name: DATE
        description: "Dates and times"
        color: "#96CEB4"
        keyboard_shortcut: "d"
      - name: MISC
        description: "Miscellaneous entities"
        color: "#FFEAA7"
        keyboard_shortcut: "m"
    min_spans: 0  # Allow sentences with no entities

الخطوة 2: إعداد بياناتك

أنشئ data/sentences.json مع بيانات النص الخاصة بك:

json
{"id": "1", "text": "Apple Inc. announced that CEO Tim Cook will visit Paris next Tuesday."}
{"id": "2", "text": "The United Nations headquarters in New York hosted delegates from Japan."}
{"id": "3", "text": "Dr. Sarah Johnson published her research at Stanford University in March 2024."}

الخطوة 3: إضافة إرشادات التوسيم

ساعد المُوسِّمين بإرشادات واضحة:

yaml
# Add to config.yaml
annotation_guidelines:
  title: "NER Annotation Guidelines"
  content: |
    ## Entity Types
 
    **PER (Person)**: Names of people, including fictional characters
    - Examples: "John Smith", "Dr. Johnson", "Batman"
 
    **ORG (Organization)**: Companies, institutions, agencies
    - Examples: "Apple Inc.", "United Nations", "Stanford University"
 
    **LOC (Location)**: Places, including countries, cities, landmarks
    - Examples: "Paris", "New York", "Mount Everest"
 
    **DATE**: Dates, times, and temporal expressions
    - Examples: "Tuesday", "March 2024", "next week"
 
    **MISC**: Other named entities not fitting above categories
    - Examples: "Nobel Prize", "iPhone", "COVID-19"
 
    ## Annotation Rules
    1. Include titles (Dr., Mr.) with person names
    2. For nested entities, annotate the largest meaningful span
    3. Don't include articles (the, a) in entity spans

الخطوة 4: بدء التوسيم

شغّل مهمة التعرف على الكيانات المسماة:

bash
potato start config.yaml

سير عمل التوسيم

  1. تحديد النص: انقر واسحب لتمييز نطاق
  2. اختيار نوع الكيان: انقر على زر التسمية أو استخدم اختصار لوحة المفاتيح
  3. تعديل التوسيمات: انقر على نطاق موجود للتعديل أو الحذف
  4. الإرسال: اضغط Enter أو انقر على إرسال عند الانتهاء

الخطوة 5: مراجعة الإخراج

يتم حفظ التوسيمات بصيغة JSONL:

json
{
  "id": "1",
  "text": "Apple Inc. announced that CEO Tim Cook will visit Paris next Tuesday.",
  "annotations": {
    "entities": [
      {"start": 0, "end": 10, "label": "ORG", "text": "Apple Inc."},
      {"start": 30, "end": 38, "label": "PER", "text": "Tim Cook"},
      {"start": 50, "end": 55, "label": "LOC", "text": "Paris"},
      {"start": 61, "end": 73, "label": "DATE", "text": "next Tuesday"}
    ]
  }
}

نصائح لتحسين توسيم التعرف على الكيانات المسماة

  1. إرشادات متسقة: القواعد الواضحة تقلل الاختلاف
  2. أمثلة تدريبية: أظهر للمُوسِّمين الحالات الحدية قبل البدء
  3. معايرة منتظمة: ناقش الحالات الصعبة كفريق
  4. قياس الاتفاق: استخدم اتفاق المُوسِّمين لتحديد المشكلات

الخطوات التالية


هل تحتاج مساعدة؟ راجع وثائق توسيم النطاق لمزيد من التفاصيل.