Rechtsdokumente annotieren: bewährte Vorgehensweisen
Rechtsdokumente in Potato annotieren, also Verträge, Gerichtsakten und Regulierungstexte, mit Span-Labeling, Entitätsextraktion und selbst gehostetem Betrieb mit Datenschutz an erster Stelle.
Juristische Texte sind ein Annotationsproblem für sich. Die Struktur ist dicht, das Vokabular ist Fachsprache, und ein falsches Label kann echte rechtliche Folgen haben. Dieser Leitfaden zeigt, wie man solche Texte gut annotiert.
Was die Annotation von Rechtstexten schwer macht
Allein der Fachjargon führt dazu, dass du geschulte Annotierende brauchst und keine beliebig ausgewählten Crowd-Arbeitenden. Die Dokumente sind lang, Verträge reichen mitunter über hunderte Seiten, und die Abschnitte verweisen ständig aufeinander. Präzision zählt mehr als sonst, denn ein unsauber gesetzter Span kann die Bedeutung einer Klausel verschieben. Und ein großer Teil dieser Bedeutung hängt an Dokumenttyp und Rechtsordnung, Kontext ist hier also nie optional.
Zur Mechanik hinter Span- und Textannotation siehe die Quelldokumentation.
Dokumente segmentieren
Lange Dokumente aufteilen
{
"id": "contract_001_section_3.2",
"text": "The Licensor grants to the Licensee a non-exclusive, non-transferable license...",
"section_number": "3.2",
"section_title": "License Grant",
"document_id": "contract_001"
}Annotation auf Abschnittsebene
instance_display:
fields:
- key: section_title
type: text
- key: text
type: textJuristische Entitäten erkennen
Vertragsspezifische Entitäten
annotation_schemes:
- annotation_type: span
name: legal_entities
description: "Mark the parties, defined terms, dates, amounts and obligations."
labels:
- name: PARTY
color: "#FECACA"
tooltip: "Contracting parties, including Licensor, Licensee and named companies"
- name: DEFINED_TERM
color: "#FDE68A"
tooltip: "A term given a specific meaning by the definitions section"
- name: DATE
color: "#BBF7D0"
tooltip: "Dates and time periods, including notice and cure periods"
- name: MONETARY
color: "#C4B5FD"
tooltip: "Amounts, fees, penalties and caps"
- name: OBLIGATION
color: "#BFDBFE"
tooltip: "Language creating a duty, such as shall, must or agrees to"
- name: CONDITION
color: "#FED7AA"
tooltip: "Language making a duty conditional, such as if, unless or provided that"
- name: REFERENCE
color: "#E0E7FF"
tooltip: "A cross-reference to another section or document"Pflichten erkennen
- annotation_type: radio
name: clause_type
description: "What type of clause is this?"
labels:
- Definitions
- Grant of rights
- Consideration and payment
- Term and termination
- Representations and warranties
- Indemnification
- Limitation of liability
- Confidentiality
- Intellectual property
- Dispute resolution
- BoilerplateKlauseln klassifizieren
Arten von Vertragsklauseln
- annotation_type: multiselect
name: obligation_type
description: "Which kinds of obligation does this clause create?"
labels:
- Performance
- Payment
- Restriction
- Conditional obligation
- Warranty
- annotation_type: likert
name: risk
description: "How much risk does this clause carry for the receiving party?"
size: 5
min_label: "Low risk"
max_label: "High risk"
- annotation_type: text
name: risk_notes
description: "Explain the risk factors you identified."
rows: 4
min_chars: 20Risiken einschätzen
annotation_schemes:
- annotation_type: span
name: case_entities
description: "Mark case metadata and the parties to the proceeding."
labels:
- name: CASE_NUMBER
tooltip: "The docket or case identifier"
- name: COURT
tooltip: "Court name and jurisdiction"
- name: JUDGE
- name: PLAINTIFF
- name: DEFENDANT
- name: ATTORNEY
- name: LEGAL_CITATION
tooltip: "Citations to cases, statutes and regulations"
- name: RULING
- annotation_type: span
name: argument_structure
description: "Mark the claim, its support, and the court's conclusion."
labels:
- name: CLAIM
color: "#FECACA"
- name: PREMISE
color: "#BBF7D0"
- name: EVIDENCE
color: "#BFDBFE"
- name: REBUTTAL
color: "#FED7AA"
- name: CONCLUSION
color: "#E0E7FF"Gerichtsdokumente annotieren
Angaben zum Verfahren extrahieren
keyword,label,schema,color
shall,OBLIGATION,legal_entities,#FEE2E2
must,OBLIGATION,legal_entities,#FEE2E2
agrees to,OBLIGATION,legal_entities,#FEE2E2
may,permission,legal_entities,#D1FAE5
unless,CONDITION,legal_entities,#DBEAFE
provided that,CONDITION,legal_entities,#DBEAFE
notwithstand*,CONDITION,legal_entities,#DBEAFE
Aufbau der Argumentation
keyword_highlights_file: data/legal_terms.csvJuristische Formulierungen hervorheben
keyword_highlight_settings:
keyword_probability: 0.8 # show 80% of matched keywords
random_word_probability: 0.05 # highlight ~5% of other words as distractorsQualitätskontrolle im juristischen Bereich
num_annotators_per_item: 3
gold_standards:
enabled: true
items_file: data/gold_clauses.json
mode: mixed
frequency: 20
accuracy:
min_threshold: 0.85
evaluation_count: 10
feedback:
show_correct_answer: true
show_explanation: trueVollständige Konfiguration für juristische Annotation
annotation_task_name: "Contract Clause Analysis"
task_description: "Classify contract clauses and mark the entities they refer to."
data_files:
- data/contract_sections.json
item_properties:
id_key: id
text_key: text
instance_display:
fields:
- key: section_title
type: text
- key: text
type: text
annotation_schemes:
- annotation_type: radio
name: clause_type
description: "What type of clause is this?"
labels:
- Grant of rights
- Consideration and payment
- Term and termination
- Indemnification
- Limitation of liability
- Confidentiality
- Other
- annotation_type: span
name: legal_entities
description: "Mark the parties, defined terms, dates, amounts and obligations."
labels:
- name: PARTY
color: "#FECACA"
- name: DEFINED_TERM
color: "#FDE68A"
- name: MONETARY
color: "#C4B5FD"
- name: DATE
color: "#BBF7D0"
- name: OBLIGATION
color: "#BFDBFE"
- annotation_type: likert
name: risk
description: "How much risk does this clause carry for the receiving party?"
size: 5
min_label: "Low risk"
max_label: "High risk"
- annotation_type: text
name: issues
description: "Note any unusual or problematic language."
rows: 4
min_chars: 20
num_annotators_per_item: 3
gold_standards:
enabled: true
items_file: data/gold_clauses.json
mode: mixed
frequency: 20
accuracy:
min_threshold: 0.85
evaluation_count: 10
agreement_metrics:
enabled: true
min_overlap: 2
output_annotation_dir: annotation_outputRichtlinien für die Annotierenden schreiben
Gute Richtlinien für eine juristische Aufgabe legen den Rahmen fest, also welche Dokumente und welche Rechtsordnungen, und enthalten ein Glossar, damit alle die Fachbegriffe so lesen wie du. Sag klar, was bei mehrdeutigen Formulierungen gilt und wann ein Querverweis annotiert wird und wann nicht. Und halte fest, wann eine Span-Grenze richtig gesetzt ist, denn ungefähr richtig reicht in diesem Bereich selten.
Bewährte Vorgehensweisen
Setz Annotierende ein, die das Fachgebiet wirklich kennen, denn ohne dieses Wissen funktioniert juristisches Labeln nicht. Teil lange Dokumente in Abschnitte auf, die man im Kopf behalten kann. Heb die juristischen Formulierungen hervor, auf die es ankommt, damit sie nicht überlesen werden. Halte die Redundanz hoch, weil ein Fehler hier teuer ist. Bau eine Prüfebene ein, auf der Jurist:innen die Grenzfälle entscheiden. Definier jedes Label genau. Und gib den Annotierenden die umgebende Struktur und die zugehörigen Abschnitte mit, denn eine Klausel für sich allein kann in die Irre führen.
Vollständige Dokumentation unter Annotationsschemata.