Annotation d'événements
Créez des structures d'événements N-aires avec des déclencheurs et des arguments typés pour l'extraction d'information.
Annotation d'événements
L'annotation d'événements permet la création de structures d'événements N-aires pour les tâches d'extraction d'information. Les événements se composent d'un segment déclencheur (le mot ou la phrase indiquant l'événement) et de segments arguments (segments d'entités avec des rôles sémantiques typés).
Ce type d'annotation est couramment utilisé pour l'extraction d'information, la détection d'événements, l'étiquetage de rôles sémantiques et la construction de graphes de connaissances.
Configuration de base
L'annotation d'événements nécessite un schéma d'annotation de segments défini au préalable, qui fournit les segments d'entités utilisés comme déclencheurs et arguments.
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: falseOptions de configuration
Types d'événements
Chaque type d'événement définit :
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
type | string | Oui | Nom du type d'événement (par ex. "ATTACK", "HIRE") |
color | string | Non | Couleur pour la visualisation (défaut : auto-attribuée) |
trigger_labels | list | Non | Étiquettes de segments autorisées comme déclencheurs (vide = tout segment) |
arguments | list | Oui | Liste des définitions d'arguments |
Arguments
Chaque argument définit :
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
role | string | Oui | Nom du rôle sémantique (par ex. "attacker", "target") |
entity_types | list | Non | Étiquettes de segments autorisées pour ce rôle (vide = tout segment) |
required | boolean | Non | Si cet argument doit être rempli (défaut : false) |
Affichage visuel
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)Flux de travail d'utilisation
- Créer des segments d'entités : Annotez les segments d'entités avec l'outil d'annotation de segments (cliquez et glissez pour sélectionner du texte, puis choisissez une étiquette)
- Sélectionner le type d'événement : Cliquez sur un bouton de type d'événement (par ex. "ATTACK") pour entrer en mode de création d'événement
- Sélectionner le déclencheur : Cliquez sur un segment pour le définir comme déclencheur de l'événement. Si
trigger_labelsest configuré, seuls les segments avec des étiquettes correspondantes peuvent être sélectionnés - Assigner les arguments : Pour chaque rôle d'argument, cliquez sur le bouton du rôle pour l'activer, puis cliquez sur un segment pour l'assigner. Les arguments obligatoires doivent être remplis avant que l'événement puisse être créé
- Créer l'événement : Une fois tous les arguments obligatoires remplis, cliquez sur "Créer l'événement" pour sauvegarder
- Voir les événements : Les événements créés apparaissent dans la section "Événements existants" avec leurs déclencheurs et arguments listés
Format de données
Entrée
L'annotation d'événements fonctionne avec tout format de données basé sur le texte :
[
{
"id": "event_1",
"text": "John attacked the building with a rifle."
}
]Sortie
Les événements sont stockés avec la structure suivante :
{
"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"
}
}
]
}Affichage visuel
La visualisation en arc montre :
- Un concentrateur (cercle plein) à la position du déclencheur
- Des rayons (flèches) connectant à chaque argument
- Des étiquettes de rôles sur chaque rayon
- Les événements sont codés par couleur selon leur type
Les événements multiples sont empilés verticalement pour éviter les chevauchements.
Exemple complet
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: falseBonnes pratiques
- Utilisez des noms de types descriptifs - Choisissez des noms de types d'événements clairs et non ambigus qui reflètent la signification sémantique
- Contraignez les déclencheurs de manière appropriée - Utilisez
trigger_labelspour limiter quels segments peuvent être des déclencheurs. Pour les événements basés sur des verbes, créez une étiquette "EVENT_TRIGGER" dédiée - Équilibrez les arguments obligatoires et optionnels - Marquez les arguments principaux comme obligatoires, mais autorisez les arguments optionnels pour le contexte qui peut ne pas toujours être présent
- Utilisez les contraintes de types d'entités - Appliquez des contraintes sémantiques sur les arguments (par ex. un "attacker" devrait être une PERSON ou une ORGANIZATION)
Pour aller plus loin
- Annotation de segments - Nécessaire pour définir les segments d'entités
- Liaison de segments - Alternative pour les relations binaires
- Chaînes de coréférence - Pour la coréférence d'entités
Pour les détails d'implémentation, voir la documentation source.