CoolFace
Datasetpublic

uctnlp/mzansi-text

MzansiText MzansiText is a curated multilingual pretraining corpus for all eleven official South African languages. Dataset details Splits: 3,943,584 train rows, 19,379 validation rows, and 19,341 test rows lang values: afr, eng, nbl, nso, sot, ssw, tsn, tso, ven, xho, zul Schema: { "text": "string", "lang": "string" } Validation and test sets are capped at approximately 2M tokens per language to prevent high-resource languages from dominating early… See the full description on the dataset page: https://huggingface.co/datasets/uctnlp/mzansi-text.

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
11likes767downloads
Dataset Card

MzansiText

MzansiText is a curated multilingual pretraining corpus for all eleven official South African languages.

![GitHub](https://github.com/Anri-Lombard/sallm) ![Paper](https://arxiv.org/abs/2603.20732) ![Model](https://huggingface.co/uctnlp/mzansilm-125m) ![Collection](https://huggingface.co/collections/anrilombard/mzansilm-69635ca7b60efedb9dfcb09e)

Dataset details

  • —Splits: 3,943,584 train rows, 19,379 validation rows, and 19,341 test rows
  • —lang values: afr, eng, nbl, nso, sot, ssw, tsn, tso, ven, xho, zul
  • —Schema:
json
{
  "text": "string",
  "lang": "string"
}

Validation and test sets are capped at approximately 2M tokens per language to prevent high-resource languages from dominating early stopping.

Release correction

The raw train split was republished on 10 August 2026 after an audit found that an earlier Hub upload had been created from an incomplete input tree. The earlier upload omitted WURA, ParaCrawl, and the isiXhosa/isiZulu mC4 files and contained 2,487,635 train rows. The paper statistics, validation split, test split, and full tokenized training artifact were not affected.

Token distribution (65,536-vocabulary MzansiText BPE tokenizer)

LanguageTrain tokens%Validation tokensTest tokens
Afrikaans2,475,913,82264.961,865,2551,875,605
English740,994,67919.441,813,6511,821,803
isiZulu320,224,0158.402,017,4062,021,343
isiXhosa152,212,4033.992,016,5032,012,000
Sesotho97,558,9392.562,315,2982,316,170
Setswana10,082,9300.261,216,5391,413,473
Sepedi6,697,3580.18685,425778,656
Xitsonga3,013,4080.08510,463319,496
siSwati1,932,9890.05196,247225,810
Tshivenda1,852,4810.05191,495243,315
isiNdebele818,5490.02106,224143,458
Total3,811,301,57310012,934,50613,171,129

Usage

python
from datasets import load_dataset

dataset = load_dataset("uctnlp/mzansi-text")
print(dataset)

Related releases

Citation

bibtex
@misc{lombard2026mzansitextmzansilmopencorpus,
      title={MzansiText and MzansiLM: An Open Corpus and Decoder-Only Language Model for South African Languages},
      author={Anri Lombard and Simbarashe Mawere and Temi Aina and Ethan Wolff and Sbonelo Gumede and Elan Novick and Francois Meyer and Jan Buys},
      year={2026},
      eprint={2603.20732},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2603.20732},
}

License

Apache License 2.0