ربط النطاقات
أنشئ علاقات موجّهة ومصنّفة بين نطاقين نصيين مُعلَّقين في Potato. اضبط أنواع الروابط والألوان والربط ثنائي الاتجاه لمهام استخراج العلاقات.
جديد في الإصدار 2.1.0
يتيح ربط النطاقات للمُعلّقين إنشاء علاقات مصنّفة بين نطاقات (مقاطع نصية) سبق تعليقها. وهذا مفيد في مهام استخراج العلاقات حين تحتاج إلى تحديد كيفية ارتباط الكيانات ببعضها، مثل "PERSON works_for ORGANIZATION" أو "PERSON collaborates_with PERSON".
نظرة عامة
توفّر ميزة ربط النطاقات:
- علاقات مصنّفة: عرّف عدة أنواع روابط بألوان وقيود مختلفة
- روابط موجّهة وغير موجّهة: دعم للعلاقات الاتجاهية والمتماثلة معًا
- روابط متعددة الأطراف: أنشئ روابط بين عدة نطاقات (لا أزواج فقط)
- عرض بصري بالأقواس: شاهد العلاقات مرسومة أقواسًا ملوّنة فوق النص
- قيود التصنيفات: قيّد أي تصنيفات النطاقات يمكن أن تكون مصادر أو أهدافًا
الإعداد
لاستخدام ربط النطاقات تحتاج مخططَي تعليق:
- مخطط
spanلتعليق الكيانات - مخطط
span_linkلتعليق العلاقات
annotation_schemes:
# First, define the span schema for named entities
- annotation_type: span
name: entities
description: "Highlight named entities"
labels:
- name: "PERSON"
color: "#3b82f6"
- name: "ORGANIZATION"
color: "#22c55e"
- name: "LOCATION"
color: "#f59e0b"
sequential_key_binding: true
# Then, define the span_link schema for relationships
- annotation_type: span_link
name: relations
description: "Annotate relationships between entities"
span_schema: entities # References the span schema above
link_types:
- name: "WORKS_FOR"
directed: true
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["ORGANIZATION"]
color: "#dc2626"
- name: "COLLABORATES_WITH"
directed: false
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["PERSON"]
color: "#06b6d4"خيارات الإعداد
الحقول المطلوبة
| الحقل | الوصف |
|---|---|
annotation_type | يجب أن يكون "span_link" |
name | معرّف فريد للمخطط |
description | الوصف المعروض للمُعلّقين |
span_schema | اسم مخطط تعليق النطاقات المراد ربطه |
link_types | مصفوفة تعريفات أنواع الروابط |
خيارات نوع الرابط
| الحقل | النوع | الوصف |
|---|---|---|
name | string | مطلوب. اسم/تسمية نوع الرابط |
directed | boolean | ما إذا كان الرابط اتجاهيًّا. الافتراضي: false |
color | string | رمز اللون بصيغة hex للرابط |
allowed_source_labels | array | تصنيفات النطاقات التي يمكن أن تكون المصدر |
allowed_target_labels | array | تصنيفات النطاقات التي يمكن أن تكون الهدف |
max_spans | integer | الحد الأقصى للنطاقات في نوع الرابط هذا (للروابط متعددة الأطراف) |
خيارات العرض البصري
visual_display:
enabled: true # Show arc visualization
arc_position: "above" # Position of arcs
show_labels: true # Show link type labels on arcsالاستخدام
إنشاء النطاقات
- أولًا، علّق النص باختيار تصنيفات النطاقات وتظليل النص
- يصبح كل نطاق مظلَّل متاحًا للربط
إنشاء الروابط
- اختر نوع رابط من الخيارات المتاحة
- انقر على النطاقات لإضافتها إلى الرابط الحالي (تُظلَّل النطاقات المحددة)
- انقر "Create Link" لإتمام الرابط
- في الروابط الموجّهة، يكون النطاق المحدد أولًا هو المصدر والأخير هو الهدف
عرض الروابط
- تظهر الروابط المُنشأة في قسم "Existing Links"
- إذا كان العرض البصري مفعّلًا، تُرسم أقواس فوق النص تصل بين النطاقات المرتبطة
- الأقواس ملوّنة بحسب نوع الرابط
حذف الروابط
- انقر زر الحذف (x) بجوار أي رابط في قسم "Existing Links"
صيغة البيانات
بيانات الإدخال
بيانات نصية قياسية بحقل معرّف وحقل نص:
[
{
"id": "item_1",
"text": "John Smith works at Google as a senior engineer."
}
]صيغة المخرجات
تتضمن التعليقات تعليقات النطاقات وتعليقات الروابط معًا:
{
"id": "item_1",
"text": "John Smith works at Google as a senior engineer.",
"entities": [
{"start": 0, "end": 10, "label": "PERSON", "text": "John Smith"},
{"start": 20, "end": 26, "label": "ORGANIZATION", "text": "Google"}
],
"relations": [
{
"link_type": "WORKS_FOR",
"span_ids": ["span_abc123", "span_def456"],
"direction": "directed"
}
]
}قيود التصنيفات
قيّد أي تصنيفات النطاقات يمكنها المشاركة في كل نوع رابط:
link_types:
- name: "WORKS_FOR"
directed: true
allowed_source_labels: ["PERSON"] # Only PERSON can be source
allowed_target_labels: ["ORGANIZATION"] # Only ORGANIZATION can be targetعند مخالفة القيود، تعرض الواجهة رسالة خطأ وتمنع إنشاء الرابط.
الروابط متعددة الأطراف
افتراضيًّا، تصل الروابط بين نطاقين بالضبط. وللعلاقات التي تشمل كيانات أكثر:
link_types:
- name: "MEETING"
directed: false
max_spans: 5 # Allow up to 5 participants
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["PERSON"]مثال
انظر المثال الكامل العامل في:
- الإعداد:
project-hub/simple_examples/simple-span-linking/config.yaml - البيانات:
project-hub/simple_examples/simple-span-linking/data.json
للتشغيل:
cd project-hub/simple_examples
python ../../potato/flask_server.py start simple-span-linking/config.yaml -p 9001نصائح
- علّق النطاقات أولًا: تأكد من إنشاء تعليقات النطاقات قبل محاولة ربطها
- استخدم الألوان بفعالية: اختر ألوانًا متمايزة لأنواع الروابط المختلفة
- راعِ الاتجاه: استخدم الروابط الموجّهة حين يكون للعلاقة اتجاه واضح
- اختصارات لوحة المفاتيح: تدعم تصنيفات النطاقات اختصارات لوحة المفاتيح (1، 2، 3...) لتعليق أسرع
قراءات إضافية
- تعليق النطاقات - تعليق النطاقات الأساسي
- إعداد الواجهة - خصّص الألوان والعرض
للاطلاع على تفاصيل التنفيذ، انظر التوثيق المصدري.