Span Linking
Crea relazioni tipizzate tra span di testo annotati.
Annotazione Span Linking
Novità nella v2.1.0
Lo span linking consente agli annotatori di creare relazioni tipizzate tra span (segmenti di testo) già annotati. Questo è utile per i compiti di estrazione delle relazioni in cui è necessario identificare come le entità si relazionano tra loro, come "PERSON works_for ORGANIZATION" o "PERSON collaborates_with PERSON".
Panoramica
La funzionalità di span linking fornisce:
- Relazioni tipizzate: Definisci più tipi di link con colori e vincoli diversi
- Link diretti e non diretti: Supporto per relazioni sia direzionali che simmetriche
- Link N-ari: Crea link tra più span (non solo coppie)
- Visualizzazione ad arco: Visualizza le relazioni come archi colorati sopra il testo
- Vincoli sulle etichette: Limita quali etichette span possono essere sorgenti o destinazioni
Configurazione
Per usare lo span linking, hai bisogno di due schemi di annotazione:
- Uno schema
spanper annotare le entità - Uno schema
span_linkper annotare le relazioni
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"Opzioni di configurazione
Campi obbligatori
| Campo | Descrizione |
|---|---|
annotation_type | Deve essere "span_link" |
name | Identificatore univoco per lo schema |
description | Descrizione mostrata agli annotatori |
span_schema | Nome dello schema di annotazione span da collegare |
link_types | Array di definizioni dei tipi di link |
Opzioni del tipo di link
| Campo | Tipo | Descrizione |
|---|---|---|
name | string | Obbligatorio. Nome/etichetta per il tipo di link |
directed | boolean | Se il link è direzionale. Predefinito: false |
color | string | Codice colore esadecimale per il link |
allowed_source_labels | array | Etichette span che possono essere la sorgente |
allowed_target_labels | array | Etichette span che possono essere la destinazione |
max_spans | integer | Numero massimo di span in questo tipo di link (per link N-ari) |
Opzioni di visualizzazione
visual_display:
enabled: true # Show arc visualization
arc_position: "above" # Position of arcs
show_labels: true # Show link type labels on arcsUtilizzo
Creazione di span
- Prima, annota il testo selezionando le etichette span ed evidenziando il testo
- Ogni span evidenziato diventa disponibile per il collegamento
Creazione di link
- Seleziona un tipo di link tra le opzioni disponibili
- Fai clic sugli span per aggiungerli al link corrente (gli span selezionati vengono evidenziati)
- Fai clic su "Crea link" per finalizzare il link
- Per i link diretti, il primo span selezionato è la sorgente e l'ultimo è la destinazione
Visualizzazione dei link
- I link creati appaiono nella sezione "Link esistenti"
- Se la visualizzazione è abilitata, gli archi vengono disegnati sopra il testo collegando gli span
- Gli archi sono codificati a colori per tipo di link
Eliminazione dei link
- Fai clic sul pulsante elimina (x) accanto a qualsiasi link nella sezione "Link esistenti"
Formato dei dati
Dati di input
Dati di testo standard con un campo ID e testo:
[
{
"id": "item_1",
"text": "John Smith works at Google as a senior engineer."
}
]Formato di output
Le annotazioni includono sia le annotazioni span che le annotazioni di link:
{
"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"
}
]
}Vincoli sulle etichette
Limita quali etichette span possono partecipare a ogni tipo di link:
link_types:
- name: "WORKS_FOR"
directed: true
allowed_source_labels: ["PERSON"] # Only PERSON can be source
allowed_target_labels: ["ORGANIZATION"] # Only ORGANIZATION can be targetQuando i vincoli vengono violati, l'interfaccia mostra un messaggio di errore e impedisce la creazione del link.
Link N-ari
Per impostazione predefinita, i link collegano esattamente 2 span. Per relazioni che coinvolgono più entità:
link_types:
- name: "MEETING"
directed: false
max_spans: 5 # Allow up to 5 participants
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["PERSON"]Esempio
Consulta l'esempio funzionante completo in:
- Config:
project-hub/simple_examples/simple-span-linking/config.yaml - Dati:
project-hub/simple_examples/simple-span-linking/data.json
Per eseguire:
cd project-hub/simple_examples
python ../../potato/flask_server.py start simple-span-linking/config.yaml -p 9001Suggerimenti
- Annota prima gli span: Assicurati di creare le annotazioni span prima di tentare di collegarli
- Usa i colori in modo efficace: Scegli colori distinti per diversi tipi di link
- Considera la direzione: Usa link diretti quando la relazione ha una direzione chiara
- Scorciatoie da tastiera: Le etichette span supportano scorciatoie da tastiera (1, 2, 3...) per un'annotazione più rapida
Ulteriori letture
- Annotazione Span - Annotazione span di base
- Configurazione UI - Personalizza colori e visualizzazione
Per i dettagli di implementazione, consulta la documentazione sorgente.