Skip to content
このページはまだお使いの言語に翻訳されていません。英語版を表示しています。

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.

yaml
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: false

Konfigurationsoptionen

Ereignistypen

Jeder Ereignistyp definiert:

EigenschaftTypErforderlichBeschreibung
typestringJaName des Ereignistyps (z. B. „ATTACK", „HIRE")
colorstringNeinFarbe für die Visualisierung (Standard: automatisch zugewiesen)
trigger_labelslistNeinAls Auslöser erlaubte Spannen-Beschriftungen (leer = beliebige Spanne)
argumentslistJaListe der Argumentdefinitionen

Argumente

Jedes Argument definiert:

EigenschaftTypErforderlichBeschreibung
rolestringJaName der semantischen Rolle (z. B. „attacker", „target")
entity_typeslistNeinFür diese Rolle erlaubte Spannen-Beschriftungen (leer = beliebige Spanne)
requiredbooleanNeinOb dieses Argument ausgefüllt werden muss (Standard: false)

Visuelle Darstellung

yaml
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

  1. Entitätsspannen erstellen: Entitätsspannen mit dem Spannen-Annotationswerkzeug annotieren (Text durch Klicken und Ziehen auswählen, dann eine Beschriftung wählen)
  2. Ereignistyp auswählen: Auf eine Ereignistypschaltfläche (z. B. „ATTACK") klicken, um den Ereigniserstellungsmodus zu aktivieren
  3. Auslöser auswählen: Auf eine Spanne klicken, um sie als Ereignisauslöser festzulegen. Wenn trigger_labels konfiguriert ist, können nur Spannen mit passenden Beschriftungen ausgewählt werden
  4. 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
  5. Ereignis erstellen: Sobald alle Pflichtargumente ausgefüllt sind, auf „Ereignis erstellen" klicken
  6. 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:

json
[
  {
    "id": "event_1",
    "text": "John attacked the building with a rifle."
  }
]

Ausgabe

Ereignisse werden mit folgender Struktur gespeichert:

json
{
  "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

yaml
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: false

Bewährte Vorgehensweisen

  1. Beschreibende Typnamen verwenden - Klare, eindeutige Ereignistypnamen wählen, die die semantische Bedeutung widerspiegeln
  2. Auslöser angemessen einschränken - trigger_labels verwenden, um zu begrenzen, welche Spannen als Auslöser dienen können. Für verbbasierte Ereignisse eine dedizierte „EVENT_TRIGGER"-Beschriftung erstellen
  3. Pflicht- und optionale Argumente ausbalancieren - Kernargumente als Pflichtfelder markieren, aber optionale Argumente für Kontext zulassen, der nicht immer vorhanden ist
  4. 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

Implementierungsdetails sind in der Quelldokumentation zu finden.