newlinefix-encoder / README.md
preneond's picture
Model card
f9acb8b verified
|
Raw History Blame Contribute Delete
1.73 kB
---
library_name: transformers
pipeline_tag: token-classification
base_model: distilroberta-base
tags:
- newline-restoration
- text-segmentation
---
# Newline Fixer — gap-classification encoder
Fine-tuned `distilroberta-base` that classifies the separator ("gap") between each pair of
consecutive words into JOIN / SPACE / NEWLINE / PARA. Reconstructing text from words
plus predicted gaps restores newline placement with a hard guarantee: the output
words are identical to the input — only whitespace changes.
Trained self-supervised on Wikipedia + arXiv-markdown text whose newline structure
was programmatically destroyed. Full methodology, evaluation protocol, and results:
the project's `report.md`.
## Serving
The raw checkpoint is a standard token-classification model, but gap decoding
(last-subtoken alignment, sliding-window stitching, reconstruction) lives in the
`newlinefix` package:
```python
from newlinefix.models.encoder import EncoderGapPredictor
from newlinefix.predict import fix_text
predictor = EncoderGapPredictor.load("preneond/newlinefix-encoder")
print(fix_text("the que\nries come from here", predictor))
```
The bundled HTTP service serves this repo directly: `NEWLINEFIX_MODEL_DIR=preneond/newlinefix-encoder`.
## Validation metrics
Macro-F1 is over the structural classes {JOIN, NEWLINE, PARA}.
| metric | value |
|---|---|
| accuracy | 0.9795 |
| macro_f1_structural | 0.7832 |
| precision_JOIN | 0.8875 |
| recall_JOIN | 0.9831 |
| f1_JOIN | 0.9329 |
| precision_SPACE | 0.9972 |
| recall_SPACE | 0.9831 |
| f1_SPACE | 0.9901 |
| precision_NEWLINE | 0.6938 |
| recall_NEWLINE | 0.8200 |
| f1_NEWLINE | 0.7516 |
| precision_PARA | 0.5414 |
| recall_PARA | 0.8624 |
| f1_PARA | 0.6652 |