nrl-ai/vn-diacritic-train — Vietnamese diacritic-restoration training data
0
2 commits
1 linked in READMEs
updated Apr 30, 2026
nrl-ai/vn-diacritic-train — Vietnamese diacritic-restoration training dataTwo register-distinct training corpora used to fine-tune Vietnamese
diacritic-restoration models in the
nom-vn project. Each row is a
JSONL record:
{"input": "diacritic-stripped text", "target": "correctly diacriticized original"}
Inputs are produced by
nom.text.strip_diacritics
on the target. Both fields are NFC-normalized.
wiki_500k500K (input, target) pairs from
hirine/wikipedia-vietnamese-1M296K-dataset
(CC-BY-SA-4.0). Encyclopedic register, broad topical coverage.
Filtering pipeline (deterministic, stride=7):
nrl-ai/vn-diacritic-eval).Includes a 5K held-out validation split (wiki_val_5k.jsonl). 0
contamination against the diacritic eval slices (audited 2026-04-30).
License: CC-BY-SA-4.0 (inherited from the source corpus).
news_150k150K (input, target) pairs from
tmnam20/Vietnamese-News-dedup
(CC-BY-4.0). Modern news / business register — complements wiki_500k's
encyclopedic tilt.
Same filters as wiki_500k plus:
NFC normalization is critical here. The upstream tmnam20
dataset ships ~79 % of its sentences in NFD-decomposed form (e.g.
"Cộng" stored as 'C' + 'o' + COMBINING DOT BELOW + COMBINING
CIRCUMFLEX rather than the precomposed U+1ED9). Training a model
on NFD targets when the eval is NFC produces silent quality
regressions (we hit a -15.45 pp business-register regression
before catching this). All targets in this config are NFC-normalized
before write.
Stride=3 (vs wiki's 7) since news articles are denser and shorter.
License: CC-BY-4.0 (inherited from the source corpus). More
permissive than wiki_500k — derivatives don't need to be share-alike.
from datasets import load_dataset
# Wikipedia 500K
wiki = load_dataset("nrl-ai/vn-diacritic-train", "wiki_500k", split="train")
print(wiki[0])
# {'input': 'Hop dong nay duoc lap...', 'target': 'Hợp đồng này được lập...'}
# Mix wiki + news for register balance (recipe used by the published
# `nrl-ai/vn-diacritic-vit5-base` training)
import random
wiki = load_dataset("nrl-ai/vn-diacritic-train", "wiki_500k", split="train").shuffle(seed=42).select(range(350_000))
news = load_dataset("nrl-ai/vn-diacritic-train", "news_150k", split="train")
mixed = (wiki.to_list() + news.to_list())
random.Random(42).shuffle(mixed)
Both configs are scrubbed against nrl-ai/vn-diacritic-eval
(business / formal / conversational / literary slices). Audited 2026-04-30
on the released JSONL files: 0 hits across all 4 splits.
Repo-level license is CC-BY-SA-4.0 (the most restrictive of the
two configs, applied for safety). Per-config licenses above. If you
only need the more permissive subset, use news_150k (CC-BY-4.0).
@misc{nom_vn_diacritic_train_2026,
title={Vietnamese diacritic-restoration training data},
author={Nguyen, Viet-Anh and {Neural Research Lab}},
year={2026},
howpublished={\url{https://huggingface.co/datasets/nrl-ai/vn-diacritic-train}}
}
Cite upstream:
nrl-ai/vn-diacritic-train — Vietnamese diacritic-restoration training data
0
2 commits
1 linked in READMEs
updated Apr 30, 2026
nrl-ai/vn-diacritic-train — Vietnamese diacritic-restoration training dataTwo register-distinct training corpora used to fine-tune Vietnamese
diacritic-restoration models in the
nom-vn project. Each row is a
JSONL record:
{"input": "diacritic-stripped text", "target": "correctly diacriticized original"}
Inputs are produced by
nom.text.strip_diacritics
on the target. Both fields are NFC-normalized.
wiki_500k500K (input, target) pairs from
hirine/wikipedia-vietnamese-1M296K-dataset
(CC-BY-SA-4.0). Encyclopedic register, broad topical coverage.
Filtering pipeline (deterministic, stride=7):
nrl-ai/vn-diacritic-eval).Includes a 5K held-out validation split (wiki_val_5k.jsonl). 0
contamination against the diacritic eval slices (audited 2026-04-30).
License: CC-BY-SA-4.0 (inherited from the source corpus).
news_150k150K (input, target) pairs from
tmnam20/Vietnamese-News-dedup
(CC-BY-4.0). Modern news / business register — complements wiki_500k's
encyclopedic tilt.
Same filters as wiki_500k plus:
NFC normalization is critical here. The upstream tmnam20
dataset ships ~79 % of its sentences in NFD-decomposed form (e.g.
"Cộng" stored as 'C' + 'o' + COMBINING DOT BELOW + COMBINING
CIRCUMFLEX rather than the precomposed U+1ED9). Training a model
on NFD targets when the eval is NFC produces silent quality
regressions (we hit a -15.45 pp business-register regression
before catching this). All targets in this config are NFC-normalized
before write.
Stride=3 (vs wiki's 7) since news articles are denser and shorter.
License: CC-BY-4.0 (inherited from the source corpus). More
permissive than wiki_500k — derivatives don't need to be share-alike.
from datasets import load_dataset
# Wikipedia 500K
wiki = load_dataset("nrl-ai/vn-diacritic-train", "wiki_500k", split="train")
print(wiki[0])
# {'input': 'Hop dong nay duoc lap...', 'target': 'Hợp đồng này được lập...'}
# Mix wiki + news for register balance (recipe used by the published
# `nrl-ai/vn-diacritic-vit5-base` training)
import random
wiki = load_dataset("nrl-ai/vn-diacritic-train", "wiki_500k", split="train").shuffle(seed=42).select(range(350_000))
news = load_dataset("nrl-ai/vn-diacritic-train", "news_150k", split="train")
mixed = (wiki.to_list() + news.to_list())
random.Random(42).shuffle(mixed)
Both configs are scrubbed against nrl-ai/vn-diacritic-eval
(business / formal / conversational / literary slices). Audited 2026-04-30
on the released JSONL files: 0 hits across all 4 splits.
Repo-level license is CC-BY-SA-4.0 (the most restrictive of the
two configs, applied for safety). Per-config licenses above. If you
only need the more permissive subset, use news_150k (CC-BY-4.0).
@misc{nom_vn_diacritic_train_2026,
title={Vietnamese diacritic-restoration training data},
author={Nguyen, Viet-Anh and {Neural Research Lab}},
year={2026},
howpublished={\url{https://huggingface.co/datasets/nrl-ai/vn-diacritic-train}}
}
Cite upstream: