File size: 7,790 Bytes
a662c21
41492ae
5fe02e9
 
 
 
 
 
 
 
 
a662c21
5fe02e9
274f1f7
5fe02e9
fe07a83
 
5fe02e9
 
4678439
5fe02e9
274f1f7
 
7a713c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5fe02e9
 
 
 
 
 
274f1f7
5fe02e9
 
4678439
5fe02e9
 
 
 
 
 
 
d64e58b
4678439
d64e58b
5fe02e9
 
 
 
 
 
 
 
 
 
 
 
 
 
274f1f7
 
5fe02e9
 
274f1f7
5fe02e9
 
 
 
 
 
 
 
 
274f1f7
5fe02e9
 
 
274f1f7
 
 
 
 
 
 
5fe02e9
 
 
274f1f7
 
 
4678439
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274f1f7
 
 
4678439
5fe02e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4678439
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
---
license: mit
language:
- en
tags:
- token-classification
- text-segmentation
- situation-entity-segmentation
- xlm-roberta
- crf
base_model: FacebookAI/xlm-roberta-large
---

# XLM-RoBERTa-large + CRF for Situation-Entity Segmentation

[Paper](https://aclanthology.org/2026.law-main.8/) | [Code](https://github.com/coling-unia/sitent-segmenter-law2026)

Fine-tuned [XLM-RoBERTa-large](https://huggingface.co/FacebookAI/xlm-roberta-large) with a linear classifier and a CRF output layer for **situation-entity segmentation**.

The model assigns BI(O) tags (`B-EDU`, `I-EDU`) to each token, marking the boundaries and spans of situation-entity segments — contiguous clause-level segments that describe a single situation type.

We use the multilingual version of RoBERTa to improve possible zero-shot transfer to situation segmentation in other language varieties.

## Usage

### Requirements

```bash
pip install transformers torch pytorch-crf
```

spaCy is not a hard dependency, but is recommended for sentence splitting (matching the training setup):

```bash
pip install spacy && python -m spacy download en_core_web_sm
```

### Loading the model

```python
from transformers import AutoConfig, AutoModel, AutoTokenizer

config    = AutoConfig.from_pretrained("coling-unia/situation-entity-segmenter", trust_remote_code=True)
model     = AutoModel.from_pretrained("coling-unia/situation-entity-segmenter", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-large")

model.eval()
```

### Inference

The model was trained on spaCy-tokenised, sentence-split input (`en_core_web_sm`), so inference should follow the same setup. Split your input text into sentences using spaCy first, then call `model.predict_text(words, tokenizer)` with the word tokens for each sentence:

```python
import spacy

nlp = spacy.load("en_core_web_sm")

text    = "The cat sat on the mat. It looked around the room."
results = []

for sent in nlp(text).sents:
    words = [token.text for token in sent]
    results.extend(model.predict_text(words, tokenizer))

for word, tag in results:
    print(f"{word:20s} {tag}")
```

`B-EDU` marks the start of a new situation-entity segment; `I-EDU` marks its continuation; `O` marks tokens outside any segment.

## Architecture

```
XLM-RoBERTa-large encoder  →  Linear(1024 → 3)  →  CRF(3 tags)
```

- **Encoder:** `FacebookAI/xlm-roberta-large` 
- **Classifier:** single linear layer mapping the encoder's hidden states to 3 tag logits
- **Decoder:** Viterbi decoding via a linear-chain CRF (`pytorch-crf`)
- **Labels:** `B-EDU` (0), `I-EDU` (1)

## Training Data

Fine-tuned on the situation entity annotated corpus from:

> Annemarie Friedrich, Alexis Palmer and Manfred Pinkal. **Situation entity types: automatic classification of clause-level aspect.** ACL 2016. ([GitHub](https://github.com/annefried/sitent))

The dataset is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). 
Per the terms of the Apache 2.0 license, notice is hereby given that these weights represent a modified derivative work based on that data.

The corpus contains English text with clause-level situation-entity annotations. The standard train/dev/test split from the original paper is used.

## Training Details

| Hyperparameter | Value |
|---|---|
| Base model | `FacebookAI/xlm-roberta-large` |
| Learning rate | 4e-5 |
| Epochs (max) | 20 |
| Batch size | 64 |
| Weight decay | 0.001 |
| Early stopping | patience 3 (B-EDU F1 on dev) |
| Precision | fp16 |

Please find further training details in our code on GitHub.

## Results

Evaluated on the held-out test set. The table shows the best single run and the mean ± std across 5 random seeds for the best hyperparameter configuration (lr=4e-5, wd=0.001). A full grid search over 4 configurations × 5 seeds (20 runs total) was conducted; all configurations achieved similar B-EDU F1 in the range 0.902–0.904.

| Metric | Best run | Mean ± std (5 seeds) |
|---|---|---|
| B-EDU F1 | **0.907** | 0.904 ± 0.002 |
| B-EDU Precision | 0.901 | 0.898 ± 0.010 |
| B-EDU Recall | 0.914 | 0.911 ± 0.009 |
| WindowDiff (↓) | **0.075** | 0.077 ± 0.002 |
| Exact Match (sentence) | 0.753 | 0.742 ± 0.007 |

WindowDiff (Pevzner & Hearst, 2002) measures boundary-level segmentation quality within a sliding window of half the average reference segment length (lower is better). Exact Match is the fraction of sentences whose full tag sequence is predicted correctly (sentence level).

## Limitations

- Trained and evaluated on ~40.000 situation English segments.
- Performance may vary on out-of-domain text.
- Sub-token sequences longer than 512 tokens need to be chunked before inference - regular sentences should be shorter, though.

## Acknowledgement

We gratefully acknowledge the scientific support and HPC resources provided by the Erlangen National High Performance Computing Center (NHR@FAU) of the Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) under the NHR project v110ee. NHR funding is provided by federal and Bavarian state authorities. NHR@FAU hardware is partially funded by the German Research Foundation (DFG) – 440719683.

## Citation

Please cite our paper when using the model:

```bibtex
@inproceedings{schmuck-etal-2026-cross,
    title = "Cross-Linguistic Situation Entity Segmentation for Discourse Analysis in Diachronic {E}nglish and {G}erman Text",
    author = {Schm{\"u}ck, Hanna  and
      Urban, Veronika  and
      Kr{\"u}ckl, Xaver  and
      Zeman, Sonja  and
      Claridge, Claudia  and
      Friedrich, Annemarie},
    editor = "Liu, Yang Janet  and
      Gessler, Luke",
    booktitle = "Proceedings of the 20th Linguistic Annotation Workshop ({LAW} {XX})",
    month = jul,
    year = "2026",
    address = "San Diego, California, USA",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2026.law-main.8/",
    doi = "10.18653/v1/2026.law-main.8",
    pages = "95--112",
    ISBN = "979-8-89176-404-0",
    abstract = "Situation Entity (SE) segmentation identifies clause-like discourse units focusing on verb constellations. While SE segmentation has been applied to contemporary English as a subtask of SE annotation, systematic guidelines for syntactically ambiguous constructions remain underspecified. We present principled SE segmentation guidelines for contemporary and historical varieties of English and German. Our inter-annotator agreement studies on Late Modern English (1700{--}1900) and New High German (1650{--}1900) corpora demonstrate substantial agreement. Using the existing SitEnt corpus in contemporary English, we implement a new automatic segmenter based on XLM-RoBERTa. Our evaluation examines cross-variety and cross-lingual generalization, demonstrating challenges both for human annotation efforts and in transferring segmenters trained on contemporary English to historical varieties. Our code and data are publicly available at https://github.com/coling-unia/sitent-segmenter-law2026."
}
```

Please also cite the original annotation data paper:

```bibtex
@inproceedings{friedrich-etal-2016-situation,
    title = "Situation entity types: automatic classification of clause-level aspect",
    author = "Friedrich, Annemarie  and
      Palmer, Alexis  and
      Pinkal, Manfred",
    editor = "Erk, Katrin  and
      Smith, Noah A.",
    booktitle = "Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
    month = aug,
    year = "2016",
    address = "Berlin, Germany",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/P16-1166/",
    doi = "10.18653/v1/P16-1166",
    pages = "1757--1768"
}
```
Cheers!