span-detector-ro / README.md
mimitzu's picture
Upload folder using huggingface_hub
6afc71a verified
|
Raw History Blame Contribute Delete
3.13 kB
---
license: mit
base_model: FacebookAI/xlm-roberta-large
tags:
- token-classification
- relation-extraction
- romanian
- span-detection
- ner
language:
- ro
library_name: transformers
pipeline_tag: token-classification
---
# Span detector (Romanian) — entity detection for end-to-end RE
[Dragoș Mitruț Vasile](https://scholar.google.com/citations?user=eD-SutAAAAAJ) · [Elena-Simona Apostol](https://scholar.google.com/citations?user=XUZcjpEAAAAJ) · [Stefan-Adrian Toma](https://scholar.google.com/citations?user=wsz8cUgAAAAJ) · [Adrian Paschke](https://scholar.google.com/citations?user=D_ZARycAAAAJ) · [Ciprian-Octavian Truică](https://scholar.google.com/citations?user=ZOKqr-QAAAAJ)
[![Paper](https://img.shields.io/badge/Paper-InProgress-blue)](https://When-Paper-Appears-it-Will-Work.com)
[![arXiv](https://img.shields.io/badge/arXiv-WIP-b31b1b)](https://arxiv.org/abs/WIP)
[![Website](https://img.shields.io/badge/Project-Website-green)](https://github.com/DS4AI-UPB/crosslingual-romanian-re)
[![GitHub](https://img.shields.io/badge/GitHub-Code-black?logo=github)](https://github.com/DS4AI-UPB/crosslingual-romanian-re)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
A token-classification model (`FacebookAI/xlm-roberta-large`, 560M) that tags the two entity spans `e1` and `e2` in a plain Romanian sentence, using a five-label BIO scheme (`O`, `B-E1`, `I-E1`, `B-E2`, `I-E2`). It is the first stage of the **end-to-end pipeline baseline**: its predicted spans are wrapped in entity markers and passed to the relation classifier ([`DS4AI-UPB/xlmr-large-ro-re`](https://huggingface.co/DS4AI-UPB/xlmr-large-ro-re)).
The SemEval-2010 Task 8 entities are common nominals, not named entities, so an off-the-shelf NER model does not transfer — this detector is trained on the task's own spans instead.
## Results (span F1-Score, held-out validation split)
| Metric | Value |
|--------|-------|
| Span F1-Score | 0.869 |
| Precision | 0.85 |
| Recall | 0.89 |
## Training
- Base: `FacebookAI/xlm-roberta-large`
- Token classification, 5 BIO labels
- 5 epochs, batch size 16, LR 2e-5, 10% warmup, weight decay 0.01
- Best checkpoint by span F1-Score on a 10% validation split
- Single NVIDIA A100 40GB, about 6 min
## Usage
```python
from transformers import AutoModelForTokenClassification, AutoTokenizer
tok = AutoTokenizer.from_pretrained("DS4AI-UPB/span-detector-ro")
model = AutoModelForTokenClassification.from_pretrained("DS4AI-UPB/span-detector-ro")
```
The full pipeline (span detection then relation classification) is in `pipeline_e2e.py` in the [code repository](https://github.com/DS4AI-UPB/crosslingual-romanian-re).
## Citation
```bibtex
@misc{vasile2026crosslingual,
title = {Cross-lingual Relation Extraction with Large Language Models: Zero-Shot, Few-Shot, and Fine-Tuned Evaluation on Romanian},
author = {Vasile, Drago\c{s}-Mitru\c{t} and Apostol, Elena-Simona and Toma, \c{S}tefan-Adrian and Paschke, Adrian and Truic\u{a}, Ciprian-Octavian},
year = {2026},
note = {Preprint}
}
```