You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
柯洁 reads as one family name under locales.ZH: should the Chinese surname list go past the census top 100? #695
What happens today. The ZH pack segments only surnames in its list, the 2020 PRC census top 100 plus the Hundred Family Surnames compounds (nameparser/locales/zh.py). Its docstring calls this "a coverage floor, not a census roster". Any other surname leaves the name whole:
parser_for(locales.ZH).parse("柯洁") → given '', family '柯洁'
parser_for(locales.ZH).parse("欧阳修") → given '修', family '欧阳'
Evidence. On 80 real unspaced Chinese names from Wikidata (#693), ZH agrees on 74. All 6 misses are surnames outside the list: 詹 (詹桓), 卫 (卫惠林), 柯 (柯洁, the Go player), 茅 (茅祖權), 华 (华楠) and 文 (文强). The CLDR locale view, which uses invented names, never showed this; its 42/96 fails for other reasons. That is a 7.5% miss rate on public figures, who skew toward common surnames, so ordinary data likely misses more.
Proposed statement. Extend the single-character list to a larger published roster (top 300 or top 500), keeping the census rank order and the existing annotations.
Open questions:
Source. The 2020 census publication gives only the top 100. Which openly licensed roster goes further? Candidates to check: the 2019 Ministry of Public Security surname release, and Wikipedia's 中国姓氏排行 page and its sources.
Collision cost. Rarer surnames are more often also given-name characters (文 and 华 are common given-name characters). A two-character name whose first character is a listed surname is split either way, so the real cost is a non-Chinese Han name split wrongly, such as Japanese kanji read without JA. The pack is already opt-in against that. Measure against the CLDR ja rows under ZH before and after.
Traditional forms. Should 衛 and similar be added in both scripts, as the current list does?
Exclusions. This does not change the default (ZH stays opt-in), and does not touch compound surnames beyond the existing list.
Folding in #657, which is the same gap: the ZH list stops at what it ships. Two kinds of misses, re-measured 2026-10-18 on 16ee285 with parser_for(locales.ZH):
Single-character surnames outside the top 100 leave the name whole, like 柯洁 above:
关小凤 → family '关小凤', given ''
温小凤 → family '温小凤', given ''
On Wikidata 关 has 504 family-name bearers and 温 613 (from #657), more than many surnames already listed.
Missing compounds are worse, because the first character is listed, so the name splits at the wrong place:
钟离小凤 → family '钟', given '离小凤' (compound 钟离 missing)
段干小凤 → family '段', given '干小凤' (compound 段干 missing)
欧阳修 → family '欧阳', given '修' (listed compound: works)
Longest match already works (欧阳修), so this half is data only: add the Hundred Family Surnames compounds still in use that the list leaves out. That makes the Exclusions line above ("does not touch compound surnames beyond the existing list") too narrow. Whoever takes this should cover both halves.
#657 also named another source to check beside the ones above: Taiwan's MOI surname table (Government Open Data License v1).
Activity
derek73 commentedon Oct 19, 2026
Folding in #657, which is the same gap: the
ZHlist stops at what it ships. Two kinds of misses, re-measured 2026-10-18 on 16ee285 withparser_for(locales.ZH):Single-character surnames outside the top 100 leave the name whole, like
柯洁above:On Wikidata
关has 504 family-name bearers and温613 (from #657), more than many surnames already listed.Missing compounds are worse, because the first character is listed, so the name splits at the wrong place:
Longest match already works (
欧阳修), so this half is data only: add the Hundred Family Surnames compounds still in use that the list leaves out. That makes the Exclusions line above ("does not touch compound surnames beyond the existing list") too narrow. Whoever takes this should cover both halves.#657 also named another source to check beside the ones above: Taiwan's MOI surname table (Government Open Data License v1).