# Truncation × BLEU × character density — Alice 18-lang fanout

## Source
Public-domain opening of *Alice’s Adventures in Wonderland* (Carroll).

- EN complete: **302** chars  
- EN as emitted (cut at `pictu`): **280** chars (**92.7%**)

## Character density rank (complete / EN)

| Rank | Lang | Script | Density | Complete chars | Trunc/complete |
|------|------|--------|---------|----------------|----------------|
| 1 | DE | Latin | 1.017 | 307 | 0.518 |
| 2 | EN | Latin | 1.000 | 302 | 0.927 |
| 3 | FR | Latin | 0.960 | 290 | 0.548 |
| 4 | EL | Greek | 0.950 | 287 | 0.557 |
| 5 | NL | Latin | 0.907 | 274 | 0.584 |
| 6 | SV | Latin | 0.904 | 273 | 0.586 |
| 7 | ES | Latin | 0.901 | 272 | 0.588 |
| 8 | IT | Latin | 0.864 | 261 | 0.613 |
| 9 | PT | Latin | 0.858 | 259 | 0.618 |
| 10 | PL | Latin | 0.838 | 253 | 0.632 |
| 11 | TR | Latin | 0.798 | 241 | 0.664 |
| 12 | RU | Cyrillic | 0.785 | 237 | 0.675 |
| 13 | UK | Cyrillic | 0.765 | 231 | 0.693 |
| 14 | HI | Devanagari | 0.725 | 219 | 0.731 |
| 15 | AR | Arabic | 0.702 | 212 | 0.755 |
| 16 | KO | Hangul | 0.358 | 108 | 1.000 |
| 17 | JA | Japanese | 0.334 | 101 | 1.000 |
| 18 | ZH | Han | 0.265 | 80 | 1.000 |

**Insight:** CJK packs the same meaning at **0.27–0.36×** EN length, so a shared char/token budget finishes JA/KO/ZH first. Latin often needs **≥1.0×** EN; DE even slightly over.

## Truncation impact on BLEU-like proxy

Proxy = √(char-bigram precision × brevity penalty) × 100 vs **complete** reference.  
**Not** sacreBLEU — for ranking truncation damage only.

| Lang | Proxy (trunc vs complete) | Drop |
|------|---------------------------|------|
| DE | 72.0 | 28.0 |
| FR | 74.0 | 25.9 |
| EL | 74.7 | 25.3 |
| NL | 76.4 | 23.6 |
| SV | 76.6 | 23.4 |
| ES | 76.7 | 23.3 |
| IT | 78.3 | 21.7 |
| PT | 78.6 | 21.4 |
| PL | 79.5 | 20.5 |
| AR | 81.5 | 18.5 |
| TR | 81.5 | 18.5 |
| RU | 82.2 | 17.8 |
| UK | 83.2 | 16.8 |
| HI | 85.5 | 14.5 |
| JA | 100.0 | 0.0 |
| KO | 100.0 | 0.0 |
| ZH | 100.0 | 0.0 |

- **Mean drop (non-CJK): ~17–28 points** of this proxy; **CJK drop = 0** (already complete under budget).
- Real **sacreBLEU** on literary MT often falls **10–25 BLEU** when the hypothesis loses the final clause (the “use of a book…” punchline carries high n-gram mass).
- Scoring truncated hyp against truncated ref **inflates** BLEU and hides the bug — always use **complete refs**.

## Tensor / training comparison steps

1. **Ablation A:** train or score systems on `pairs_truncated.jsonl`  
2. **Ablation B:** same on `pairs_complete.jsonl`  
3. **ΔBLEU = B − A** per language → pure truncation effect  
4. **Curriculum:** fine-tune with complete pairs only; up-sample low-density scripts so step budget isn’t dominated by Latin length  
5. **Length policy for live fanout:**  
   - budget ≥ `1.15 × len(EN)` for Latin/Cyrillic/Greek  
   - `0.45 × len(EN)` is usually enough for JA/KO/ZH **if** completion is verified  
6. **Stop condition:** emit until terminal punctuation of the EN sentence is reflected (not fixed char cut)

## Files in this pack

| File | Use |
|------|-----|
| `alice_mt_bundle.json` | Full metrics + texts |
| `metrics.tsv` | Spreadsheet-friendly |
| `pairs_complete.jsonl` | Training/eval refs |
| `pairs_truncated.jsonl` | Ablation set |
| `complete_parallel.md` | Human read |
| `ANALYSIS.md` | This report |
