Ereignis-Annotation
N-äre Ereignisstrukturen mit Auslösern und typisierten Argumenten für die Informationsextraktion erstellen.
Ereignis-Annotation
Die Ereignis-Annotation ermöglicht die Erstellung von N-ären Ereignisstrukturen für Informationsextraktionsaufgaben. Ereignisse bestehen aus einer Auslöser-Spanne (dem Wort oder Ausdruck, der das Ereignis anzeigt) und Argument-Spannen (Entitätsspannen mit typisierten semantischen Rollen).
Dieser Annotationstyp wird häufig für Informationsextraktion, Ereigniserkennung, semantische Rollenbeschriftung und den Aufbau von Wissensgraphen verwendet.
Grundkonfiguration
Die Ereignis-Annotation erfordert ein vorab definiertes Spannen-Annotationsschema, das die als Auslöser und Argumente verwendeten Entitätsspannen bereitstellt.
annotation_schemes:
# Step 1: Define entity spans
- annotation_type: span
name: entities
description: "Label entities in the text"
labels:
- name: PERSON
color: "#3b82f6"
- name: ORGANIZATION
color: "#10b981"
- name: LOCATION
color: "#f59e0b"
- name: WEAPON
color: "#ef4444"
- name: EVENT_TRIGGER
color: "#8b5cf6"
tooltip: "Words indicating events"
# Step 2: Define event types and arguments
- annotation_type: event_annotation
name: events
description: "Annotate events with triggers and arguments"
span_schema: entities
event_types:
- type: "ATTACK"
color: "#dc2626"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "attacker"
entity_types: ["PERSON", "ORGANIZATION"]
required: true
- role: "target"
entity_types: ["PERSON", "ORGANIZATION", "LOCATION"]
required: true
- role: "weapon"
entity_types: ["WEAPON"]
required: falseKonfigurationsoptionen
Ereignistypen
Jeder Ereignistyp definiert:
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Name des Ereignistyps (z. B. „ATTACK", „HIRE") |
color | string | Nein | Farbe für die Visualisierung (Standard: automatisch zugewiesen) |
trigger_labels | list | Nein | Als Auslöser erlaubte Spannen-Beschriftungen (leer = beliebige Spanne) |
arguments | list | Ja | Liste der Argumentdefinitionen |
Argumente
Jedes Argument definiert:
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
role | string | Ja | Name der semantischen Rolle (z. B. „attacker", „target") |
entity_types | list | Nein | Für diese Rolle erlaubte Spannen-Beschriftungen (leer = beliebige Spanne) |
required | boolean | Nein | Ob dieses Argument ausgefüllt werden muss (Standard: false) |
Visuelle Darstellung
visual_display:
enabled: true # Show arc visualization (default: true)
arc_position: above # Position of arcs: "above" (default)
show_labels: true # Show role labels on arcs (default: true)Arbeitsablauf
- Entitätsspannen erstellen: Entitätsspannen mit dem Spannen-Annotationswerkzeug annotieren (Text durch Klicken und Ziehen auswählen, dann eine Beschriftung wählen)
- Ereignistyp auswählen: Auf eine Ereignistypschaltfläche (z. B. „ATTACK") klicken, um den Ereigniserstellungsmodus zu aktivieren
- Auslöser auswählen: Auf eine Spanne klicken, um sie als Ereignisauslöser festzulegen. Wenn
trigger_labelskonfiguriert ist, können nur Spannen mit passenden Beschriftungen ausgewählt werden - Argumente zuweisen: Für jede Argumentrolle auf die Rollenschaltfläche klicken, um sie zu aktivieren, dann auf eine Spanne klicken, um sie zuzuweisen. Pflichtargumente müssen ausgefüllt werden, bevor das Ereignis erstellt werden kann
- Ereignis erstellen: Sobald alle Pflichtargumente ausgefüllt sind, auf „Ereignis erstellen" klicken
- Ereignisse anzeigen: Erstellte Ereignisse erscheinen im Abschnitt „Vorhandene Ereignisse" mit ihren Auslösern und Argumenten
Datenformat
Eingabe
Die Ereignis-Annotation funktioniert mit jedem textbasierten Datenformat:
[
{
"id": "event_1",
"text": "John attacked the building with a rifle."
}
]Ausgabe
Ereignisse werden mit folgender Struktur gespeichert:
{
"event_annotations": [
{
"id": "event_abc123",
"schema": "events",
"event_type": "ATTACK",
"trigger_span_id": "span_xyz789",
"arguments": [
{"role": "attacker", "span_id": "span_def456"},
{"role": "target", "span_id": "span_ghi012"},
{"role": "weapon", "span_id": "span_jkl345"}
],
"properties": {
"color": "#dc2626",
"trigger_text": "attacked",
"trigger_label": "EVENT_TRIGGER"
}
}
]
}Visuelle Darstellung
Die Bogenvisualisierung zeigt:
- Einen Hub (ausgefüllter Kreis) an der Auslöserposition
- Speichen (Pfeile), die zu jedem Argument führen
- Rollenbeschriftungen auf jeder Speiche
- Ereignisse sind farblich nach Typ kodiert
Mehrere Ereignisse werden vertikal gestapelt, um Überlappungen zu vermeiden.
Vollständiges Beispiel
annotation_schemes:
- annotation_type: span
name: entities
description: "Label entities in the text"
labels:
- name: PERSON
color: "#3b82f6"
- name: ORGANIZATION
color: "#10b981"
- name: LOCATION
color: "#f59e0b"
- name: WEAPON
color: "#ef4444"
- name: EVENT_TRIGGER
color: "#8b5cf6"
- annotation_type: event_annotation
name: events
description: "Annotate events"
span_schema: entities
event_types:
- type: "ATTACK"
color: "#dc2626"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "attacker"
entity_types: ["PERSON", "ORGANIZATION"]
required: true
- role: "target"
entity_types: ["PERSON", "ORGANIZATION", "LOCATION"]
required: true
- role: "weapon"
entity_types: ["WEAPON"]
required: false
- type: "HIRE"
color: "#2563eb"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "employer"
entity_types: ["ORGANIZATION"]
required: true
- role: "employee"
entity_types: ["PERSON"]
required: true
- type: "TRAVEL"
color: "#059669"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "traveler"
entity_types: ["PERSON"]
required: true
- role: "destination"
entity_types: ["LOCATION"]
required: true
- role: "origin"
entity_types: ["LOCATION"]
required: falseBewährte Vorgehensweisen
- Beschreibende Typnamen verwenden - Klare, eindeutige Ereignistypnamen wählen, die die semantische Bedeutung widerspiegeln
- Auslöser angemessen einschränken -
trigger_labelsverwenden, um zu begrenzen, welche Spannen als Auslöser dienen können. Für verbbasierte Ereignisse eine dedizierte „EVENT_TRIGGER"-Beschriftung erstellen - Pflicht- und optionale Argumente ausbalancieren - Kernargumente als Pflichtfelder markieren, aber optionale Argumente für Kontext zulassen, der nicht immer vorhanden ist
- Entitätstypbeschränkungen verwenden - Semantische Einschränkungen für Argumente durchsetzen (z. B. sollte ein „Angreifer" eine PERSON oder ORGANIZATION sein)
Weiterführende Lektüre
- Spannen-Annotation - Erforderlich zur Definition von Entitätsspannen
- Spannenverknüpfung - Alternative für binäre Beziehungen
- Koreferenzketten - Für Entitätskoreferenz
Implementierungsdetails sind in der Quelldokumentation zu finden.