The Chinese Name Corpus
Version 1.0.0 · CC BY 4.0 · 2026-10-25
A small, citation-checked dataset about Chinese naming: which sense a character carries when it is used in a name, which classical line that sense comes from, which sound combinations are traps in everyday speech, and how often a character actually occurs in real names.
Most resources stop at a dictionary gloss, and that is where most mistakes start. A simplified character can merge two older ones — 松 the pine and 鬆 loose; 云 cloud and 云 to say — and a dictionary entry lists senses nobody would ever put in a name. This corpus records the name-use sense and the line that carries it, and says plainly when no such line exists.
What is inside
| File | Rows | What it is |
|---|---|---|
characters.jsonl | 3,692 | Readings, strokes, radical, table level and frequency tier for every character in the library. No gloss for characters we have not researched. |
characters_deep.jsonl | 143 | Characters researched one by one: original sense, etymology, and the sense the character carries in a name — each with the classical line that supports it. |
quotations.jsonl | 178 | The classical quotations themselves. Every one is matched character-for-character against the source texts at build time; a mismatch blocks publication. |
homophones.jsonl | 621 | Sound-alike collision rules: which syllable patterns become an unfortunate word in ordinary speech, and how severe the collision is. |
surnames.jsonl | 357 | Surnames with frequency tier, stroke count, character level and character senses. |
name_character_counts.jsonl | 2,240 | How often each character actually occurs in 1.14 million real names, split by position and by gender in the source corpus. |
combos.jsonl | 14 | Names written by hand, with the imagery their characters make together. |
Every quotation was checked character-for-character against the source texts at build time. If a line did not match, the build failed and nothing was published — a gate, not a warning.
Check it yourself
Download the archive and run:
tar xzf chinese-name-corpus-1.0.0.tar.gz
cd chinese-name-corpus-1.0.0
python3 tools/verify_quotes.py
It normalises both the quotation and the source text to CJK characters only — punctuation and line breaks are ignored, the characters must match exactly — and exits non-zero if any quotation cannot be found. The same script runs in our build.
Known limitations
- 143 characters have a documented sense, not all 3692. The rest carry readings and frequency data only. An unverified gloss is worse than no gloss.
- The quotations are a curated subset of six works. A character without a quotation is not a character without classical usage — it is one we have not checked yet.
- Frequency counts come from a corpus dominated by 1980–2000 naming habits; recent popular names look rare there. That is sample-era bias, not evidence a name is unusable.
- The homophone list is rules and judgement, not measured probability.
Download
- Whole corpus (.tar.gz)
- quotations.jsonl · characters_deep.jsonl · homophones.jsonl · surnames.jsonl
- README · LICENSE · ATTRIBUTION
Cite
Orient Name (2026). The Chinese Name Corpus, version 1.0.0.
https://uion.top/corpus · CC BY 4.0
Corrections are worth more to us than compliments: [email protected].