Using a neural net to uncover the common ancestor of 14 Bantu languages
We built a model called BantuMorph to encode the morphology of 14 modern Bantu languages: Kikuyu, Kamba, Kimeru, Kinyarwanda, Kirundi…
Using a neural net to uncover the common ancestor of 14 Bantu languages
We built a model called BantuMorph to encode the morphology of 14 modern Bantu languages: Kikuyu, Kamba, Kimeru, Kinyarwanda, Kirundi, Luganda, Kongo, Lingala, Chichewa, Shona, Zulu, Xhosa, Northern Sotho, and Swahili. The training task was deliberately narrow — given a word, predict its morphological structure: which prefix marks which noun class, how the verb stems combine with tense and subject markers, where the morpheme boundaries fall. The model never saw a textbook on Bantu history, never touched a map, never read a single sentence about which languages descend from which. It just learned how words are built.
Once the model was working, we got curious: what had it picked up about how these 14 languages relate to each other? We took the encoder’s representations, measured the distance between languages in embedding space, and ran hierarchical clustering — repeatedly merging the closest pair until everything sat in one tree. Effectively, we asked the model to draw its own language family tree.
It produced this:

The first two leaves to merge are Kikuyu and Kamba, at a distance of 0.004 — almost touching. The next pair, at almost the same distance, is Kongo and Lingala. Then Kinyarwanda and Kirundi. Three pairings, in three different parts of Africa, that any Bantu linguist would call obvious. The same colors mostly cluster: the Kenyan E-zone (red) sits together, the Great Lakes J-zone (teal) sits together, the Southern S-zone (cyan) sits together. The model didn’t know what colors mean. They show up because the languages cluster correctly.
This post is the friendly version of our recent paper, “Neural Recovery of Historical Lexical Structure in Bantu Languages from Modern Data.” The paper is careful, methodical, and probably more cautious than this post will be. Here I want to walk through what we found, what it actually means, and — equally importantly — what it doesn’t.
How linguists usually figure out language families
The standard tool is the comparative method, and it’s been around for almost two centuries. It’s essentially forensic work: line up words for basic concepts across related languages and look for regular sound correspondences. If p in Language A consistently corresponds to f in Language B in the same word positions, that’s evidence of inheritance from a common ancestor where that sound underwent a regular change. The hard part is that those changes branch — p might become f in one valley, v in the next, and stay p somewhere else, all from the same proto-form. Untangling which change happened where, in what order, takes years per language pair.
Doing this systematically across the Bantu family produced the Bantu Lexical Reconstructions database (BLR3) — about 10,000 reconstructed Proto-Bantu forms, each backed by attestations across daughter languages. It’s a century of careful, manual work, and it’s the gold standard for what proto-Bantu probably looked like.
The interesting question is: can a neural model, trained on modern Bantu data with no historical knowledge, recover any of this?
What we did
A few details about the model and the embedding step matter for what follows.
BantuMorph is a character-level transformer. That means it reads text one byte at a time instead of breaking words into pre-defined chunks. That works much better for Bantu, where a single word might have five or six morphemes glued together. We originally trained it on 16 languages and dropped to 14 for this analysis — the ones with enough cross-lingual resources for validation. From each, we extracted encoder embeddings — the model’s internal vector for each word — for noun and verb lemmas. The dendrogram you saw above is built from the average distance between languages in this embedding space.
One small but important step before measuring distances: we subtract a per-language mean embedding from every word — a centering or de-biasing step that’s standard practice when you want to remove a known nuisance dimension from a latent space. The nuisance dimension here is the orthographic and tokenization “fingerprint” that each language picks up — essentially, the model’s representation of “this is Swahili” or “this is Kongo.” Without centering, all the languages cluster by spelling system rather than by structure.
Once you have centered embeddings, asking the model “which words across languages are similar?” is just a nearest-neighbor lookup. Those nearest pairs are our cognate candidates — words the model thinks are versions of the same underlying root.
What we found
Among the top eleven noun cognate candidates, ten matched established Proto-Bantu reconstructions. ng’ombe “cow” appears in nine languages and matches *gombe. muno in nine, moko in nine, mutwe “head” in nine. umuntu “person” — the root from which the family name “Bantu” itself derives — appears in eight.
The numerals were the most striking part. We didn’t go looking for them; they essentially forced their way to the top because they cluster so cleanly. The headline cases:

These are exactly the items linguists know to be most stable across Bantu — numerals get used a lot, get borrowed rarely, and so survive language change with their forms intact.
The verbs hold up just as well. Ona “see” appears in all 14 languages; so does ima “stand,” koma “strike,” enda “go.” Each matches a standard Proto-Bantu verb root.
Behind the dendrogram, the numbers are also clean: same-zone cosine similarity averages 0.988, cross-zone 0.977. The gap is small in absolute terms but holds up under bootstrapping. The clustering isn’t a coincidence of which languages we picked.
What this is, and what it isn’t
Here’s where I want to be careful. The above is genuinely cool, but it’s easy to overclaim.
What we did: train a neural model on modern morphological data, observe that the model’s internal organization reflects historical relationships in ways that match what linguists already know.
What we did not do: reconstruct Proto-Bantu. Reconstruction in the linguistic sense requires phonological reasoning — figuring out which modern sounds came from which proto-sounds, by what regular changes. Our model has no concept of phonology. It’s pattern-matching on character sequences. When kenda shows up across nine languages, the model isn’t telling us anything new about *kèndà; it’s confirming, from a different angle, what comparative linguists worked out decades ago.
This also defines the model’s blind spots. Because it works on written forms, two words that sound identical but are spelled differently in two languages will look unrelated to it. The reverse can happen too — words that look similar on the page but are pronounced differently get treated as cognates. Any phonologically interesting question about Bantu sound change is invisible to this method. It only sees text.
A second caveat: our 14 languages are all Eastern or Southern Bantu. The Western Bantu zones (A, B, D — covering Cameroon to Angola) aren’t represented. Eastern and Southern Bantu probably descend from a more recent common ancestor than the full family does, which means lexical similarities we observe might reflect Proto-Bantu retentions, or shared Eastern Bantu innovations, or contact-driven diffusion across neighboring languages. Distinguishing these requires phonological reconstruction and broader sampling — which is to say, the comparative method.
So when we say “the model recovers historical structure consistent with Proto-Bantu,” we mean it recovers structure that aligns with known reconstructions. We don’t mean it would replace a comparative linguist, and we don’t claim it produces new reconstructions on its own.
The hard part: filtering noise from modern corpora
The most labor-intensive part of this work wasn’t the modeling. It was figuring out what to throw away.
Modern Bantu corpora — news articles, religious texts, social media — are full of words that look like they’re shared across the family but aren’t really part of the inherited vocabulary. Three categories matter:
Foreign proper nouns. Madagascar appears in eight of our languages with near-identical forms. Argentina in ten. Personal names like Bernard and Christine in nine. Any naive cross-lingual similarity method will surface these as “shared vocabulary.” They’re shared, but not in the sense that matters for historical linguistics.
Adapted loanwords. These are sneakier. The word for “hospital” appears in basically every Bantu language, each with its own native-looking form: Swahili sipitali, Kikuyu thibitarĩ, Kamba sivitalĩ, Zulu isibhedlela. Each language has wrapped the borrowing in its own noun-class prefix and adjusted the consonants to fit local phonotactics (the rules for which sound combinations are allowed). The result looks structurally Bantu, but the root itself was borrowed from English or Portuguese in the last century or two.
Domain bias. Our training data over-represents news and religious vocabulary. Concepts like government, minister, bible, Jesus will appear in multiple languages — not because they’re inherited, but because the texts cover the same topics.
Filtering these out is a problem of its own, and we ended up using two methods in combination: cross-lingual embedding coherence (loanwords from a common source cluster too tightly), and LLM-based POS classification (proper nouns get caught here). Neither alone is enough; intersected, they remove most of the noise without throwing out genuine cognates. After filtering, the kenda and tatu signal becomes much cleaner.
Why this still feels like a result
If the model is just picking up what linguists already know, why is any of this interesting? A few reasons.
The first is methodological. The comparative method works one cognate set at a time, and it requires expert phonological knowledge. Our approach generates 728 noun and 1,525 verb cognate candidates across 14 languages in a few hours of compute. Most of those candidates won’t survive expert scrutiny, but the high-confidence ones — the ones with cross-zone attestation and clean morphological behavior — are exactly the items a linguist would want to look at next. Think of it as high-throughput screening: it won’t replace a comparative linguist, but it can hand one a shortlist of a few hundred candidates to investigate in a focused review session, instead of building that shortlist by hand from scratch.
The second is convergence. We ran the same analysis using NLLB-600M, an unrelated translation model with no morphological training, and recovered the same family tree — all six zone-level groupings agreed, and the two distance matrices have a Spearman correlation of 0.83. Two models, very different training objectives, recovering the same structure. That’s evidence the structure is in the data, not in the model.
The third is the open question, which I find the most interesting. There’s a stable signal in modern morphological systems that reflects ancient relationships. Some of that signal is obvious in retrospect — of course numerals are conservative, of course noun-class systems preserve common ancestry. But the model recovers some patterns we wouldn’t have predicted from first principles, like the sharp separation between bona and ona (both meaning “see,” both from Proto-Bantu *-bon-) along zone lines. What is the model picking up on, and how much of it can be made into explicit linguistic knowledge?
I don’t know. That’s what makes the next paper worth writing.
The paper is at arxiv.org/abs/2604.22730. The dataset and code are linked from the paper.
메타데이터
- post_id
- e0adbd7a0cec
- slug
- using-a-neural-net-to-uncover-the-common-ancestor-of-14-bantu-languages-e0adbd7a0cec
- url
- https://medium.com/thiomi/using-a-neural-net-to-uncover-the-common-ancestor-of-14-bantu-languages-e0adbd7a0cec
- canonical_url
- https://medium.com/thiomi/using-a-neural-net-to-uncover-the-common-ancestor-of-14-bantu-languages-e0adbd7a0cec
- author_url
- https://medium.com/@hmutisya
- status
- ok
- fetched_at
- 2026-06-09 15:37:30