偽のID > 記事 > Why a "List of Surnames" Is Not Universal: What Counts as One Row

この記事はまだ日本語に翻訳されていません。Englishの原文を表示しています。 他の言語でも読めます:Deutsch, English, Українська

Why a "List of Surnames" Is Not Universal: What Counts as One Row

Before you load a frequency list, you will ask whether the source is authoritative. That is the wrong first question, and we have the defect to prove it.

The right first question is what is the unit of record — what does one row in this file actually count? A surname? A name element? An honorific? A position in a naming formula? A person, or a slot a person fills twice?

We got this wrong with a national statistical source in front of us, using a trap list that already named the exact error. Here is what that looks like from the inside.

The error: 300 rows from a frequency file, four of which were not names

Our Vietnamese surname corpus was expanded from 110 to 303 entries on 18 July 2026, sourced from the top 300 of a frequency dataset. The source is a real one with real counts. The expansion did what a good expansion should do — deepened the tail, kept the head stable.

It also re-imported three entries that a previous pass had deliberately rejected:

EntryWeightWhat it actually is
Y92a masculine honorific in Ê-đê and Jarai — "Mr."
Ka17the same class of honorific
A16the same class of honorific

Y is the marker that precedes a man's name among the Ê-đê and Jarai peoples of the Central Highlands — as in Y Moan Enuôl, the singer. It is not his family name. His actual clan name comes after it, and Ê-đê clan names are matrilineal.

Both of those clan names are in our corpus too, and their weights are the thing that should have stopped us:

EntryRankWeightWhat it is
Y92honorific (removed)
Niê2015a real Ê-đê matrilineal clan
2483a real Ê-đê/Jarai clan

The file was asserting that the honorific was eighteen times more common than the clan it attaches to. That is arithmetically what happens when you count a title as a name: every member of every clan contributes to it. The number was not noise. It was the correct count of a thing that is not a surname.

The frequency source was not wrong. It counted the strings that appear in the first position of a name field, which is a perfectly coherent thing to count. We read that as "surname frequency," which it is not.

What our own documentation said

The part that stings: our internal source reference has a section on data traps, and it contains this line, written before the defect:

Honorifics as "surnames." Y (Vietnamese, Ê-đê), Thị, Ka, A; Bangladeshi feminine বেগম Begum, আক্তার Akter, খাতুন Khatun, খানম Khanam; 其他 (Taiwan); 기타 (Korea); ALL OTHER NAMES (US); AUTRES NOMS (INSEE). A one-character "surname" deserves a second look anywhere.

The build script for the locale also carried a literal comment reading // Y (#55) deliberately REJECTED. The trap was documented, the rejection was recorded in code, and the rebuild reintroduced it anyway — because the rebuild's job was to import the top 300, and nothing in the pipeline knew that four of those 300 were not eligible to be imported.

Documenting a trap does not defend against it. Only a check that runs does.

And the fix was incomplete

We measured the shipped corpus while writing this article, and the honest result is that the first cleanup was partial.

Y, Ka and A went. The corpus dropped to 299 rows summing to a weight of 99,454, with Nguyễn at 30,492 — 30.66% of the corpus, which is the figure the peer-reviewed literature supports and not the 38% that circulates widely from a 1992 study of 1,941 people.

But Thị was still there, at rank 143, weight 13.

Thị is the single most famous non-surname in Vietnamese naming. It is the conventional middle-name marker for women — Nguyễn Thị Hương — and it appears in the middle position of a very large fraction of Vietnamese women's names. It is named explicitly in our own trap list, in the same sentence as Y, Ka and A. It survived the fix that removed the other three, and it took a separate third pass to get it out — that removal is what took the file from 299 rows to the 298 it ships today.

So did Ô, a single-character entry at rank 265 with weight 3, which is exactly the case the trap list says deserves a second look — and Ô is still in the file, now at rank 264.

We are publishing the sequence rather than only the tidy end state, because the shape of the failure is the useful part. The first error was importing a trap we had documented. The second error was fixing the three instances we happened to be looking at instead of re-running the trap list against the result — which is why the file needed a third pass, and why one flagged entry is in it still. A partial fix reads as a complete one in every log it leaves behind.

Four ways the unit of record differs

Vietnam is one failure mode. There are at least four distinct ones, and they need different answers.

1. The row is not a name at all

Honorifics are the case above. But every large registry also publishes aggregate buckets in the same column as real names:

SourceBucket rowWhat it means
Taiwan (MOI)其他"other"
Korea (KOSTAT)기타"other"
US CensusALL OTHER NAMESeverything below threshold
INSEE (France)AUTRES NOMSeverything below threshold

Every one of these will be near the top of the file by count, because it aggregates the entire tail. Import it verbatim and you have given your generator a surname carried by several million people that no human being has ever been called.

2. The row is a position, not a person

In Spain every person carries two surnames — the father's first, the mother's second. So "how common is García?" has two correct answers that differ by a factor of two:

MeasureGarcía
As a first surname (ap1)1,446,937
Across both positions2,915,761

Neither number is wrong. They answer different questions, and a list that mixes them across rows is silently incoherent. The Portuguese case makes the stakes visible: the top 10 Portuguese surnames cover 45.7% of bearers but only 22.8% of positions. Report the wrong one and your concentration curve is off by a factor of two.

And the rule does not even generalise across the Spanish-speaking world. Argentina is the exception: only the father's surname is used, so bearers and positions are the same number. Applying the "divide by two" correction there turns a correct 134% coverage figure into a fictional 67%.

3. The row is a patronymic, not a family name

In Iceland most people do not have a surname in the inherited sense at all. Jónsson means "Jón's son" and is regenerated every generation from the father's given name. Statistics Iceland's 2017 breakdown is 82% patronymics, 4% inherited family names (ættarnöfn), and 14% other — mostly immigrant surnames.

A frequency list of "Icelandic surnames" is therefore mostly a frequency list of men's given names, one generation ago, with a suffix. The 59 genuinely inherited family names are a separate and much smaller object. We treat that case at length in Iceland: Patronymics and 59 Surnames, including why the widely repeated "about 10% of Icelanders have a surname" is a zombie statistic assembled by adding the 4% to the 14%.

4. Not everyone has one

Mononyms are real. In Indonesia a person may legally have exactly one name and no family name — the practice is common enough that Indonesian passport systems have standing conventions for it. Our id_ID corpus carries 299 surnames and is flagged internally with an open question about whether the locale's naming model is right at all, because a surname list for Indonesia describes a practice that a large share of the population does not follow.

A schema with a required lastname column cannot represent this. It will manufacture a surname for someone who does not have one, and the manufactured value will be indistinguishable from a real one.

Where the unit of record splits by gender

The largest structural surprise is that in several language communities, the set of eligible surnames is different for men and women — not inflected, different.

India. Six entries appear only in the female file: Devi, Kaur, Begum, Khatun, Bano, Parveen. These are not feminine forms of anything. In Sikh naming practice Kaur is the name women carry; Devi is very widespread among women across northern India; Begum, Khatun, Bano and Parveen are women's names in Muslim communities. Devi carries weight 75 — heavier than most of the file.

Note what the data does not say. Singh is in both files, weighted 100 on the male side and 55 on the female side. Sikh women carry it too. The corpus encodes a skew, not an exclusion — a distinction that only survives if your schema can express "present in both, weighted differently."

Bangladesh. Four entries are female-only: বেগম (Begum), আক্তার (Akter), খাতুন (Khatun), খানম (Khanam). These are the same honorifics from the trap list — but here they belong, because in Bangladeshi practice they genuinely occupy the surname slot for many women. The identical string is a defect in one corpus and correct data in another, and the only way to know which is to know what the naming system does.

Georgia is the case that cost us the most. Georgian surnames do not vary with gender: ბერიძე is ბერიძე for everyone. But Georgia has an Azerbaijani minority of roughly 6.3% of the population, and Azerbaijani surnames do inflect: მამედოვი ♂ / მამედოვა ♀.

For as long as we enforced a rule that the male and female surname files must be byte-identical, that entire layer had nowhere to live — and the locale shipped without the country's second-most-common surname. The registry's gender-split figures are ბერიძე 14,963 and მამედოვი 14,482 among men; ბერიძე 15,059 and მამედოვა 13,487 among women. In a merged top list the two forms split the count and the name sank out of view entirely.

The lesson generalises past Georgia: in any country with an inflecting minority layer, check the top of the list separately by gender. A merged ranking hides exactly the names that inflect.

Our validator now carries an explicit exception list for these three locales:

$SET_PER_GENDER = ['en_IN' => 1, 'ka_GE' => 1, 'bn_BD' => 1];

For everything else the rule is either "files must be identical" or "files pair by index." For these three it is neither, and the validator asserts only that the two sets genuinely differ — because if they are identical, the separation was never done. The mechanics of the pairing cases, including why you can never derive a feminine form from a string, are covered separately in Surnames That Change With Gender.

Greek is the reminder that inflection is not always what it looks like. Παπαδόπουλος ♂ / Παπαδοπούλου ♀ is not a masculine and a feminine surname — the female form is the genitive of the male one, literally "of Papadopoulos." Same string relationship, entirely different grammar, and it changes what a "pair" means.

The checklist we should have been running

  1. Ask what one row counts. Before licence, before authority, before coverage. A surname, a name element, a position, a title, an aggregate bucket. The source will usually tell you if you read its column definitions instead of its column headers.
  2. Sort ascending by string length and read the top. Every honorific we imported was one or two characters. This costs one command.
  3. Check for aggregate buckets by name. 其他, 기타, ALL OTHER NAMES, AUTRES NOMS, _PRENOMS_RARES. They sit near the top by count.
  4. Cross-check a suspicious entry against its own dependents. Y claimed 18× the weight of the clan it attaches to. The internal inconsistency was visible without any external source.
  5. Establish bearers vs positions before computing any percentage. Two surnames per person doubles positions and halves nothing — and Argentina is the exception that proves you cannot apply the rule by language.
  6. Check the top of the list separately by gender. Georgia's #2 surname was invisible in a merged ranking.
  7. Re-run the whole trap list after every fix. We removed three honorifics and left Thị and Ô sitting in the file; Thị needed a third pass and Ô is there yet. The fix was verified against the bug report, not against the checklist.

The underlying discipline is to stop treating a frequency list as a list of names that happens to have counts attached, and start treating it as a measurement, made by somebody else, of a unit they defined and you did not. Authority tells you the counting was done carefully. It tells you nothing about what was counted.


Data as of 2026-07-18

All corpus figures were measured on 18 July 2026 against the shipped lastname_male.tsv / lastname_female.tsv files, not against build inputs or documentation.

Verified in the shipped data:

  • vi_VN — 298 rows, weight sum 99,441. Nguyễn 30,492 = 30.66% of corpus weight. Y, Ka, A absent (removed since the 303-row rebuild). Thị is now absent too — it was the middle-name marker, not a surname, and its removal is what took the file from 299 rows to 298. Ô present at rank 264, weight 3. Niê rank 200 weight 5; rank 247 weight 3. Văn rank 42 weight 187, retained but flagged — the source may have partly counted the male middle-name marker.
  • en_IN — 836 male / 842 female rows. Female-only: Bano, Begum, Devi, Kaur, Khatun, Parveen. Male-only: none. Singh male 100 / female 55; Devi female 75; Kaur female 60.
  • bn_BD — 400 male / 404 female rows. Female-only: বেগম, খাতুন, আক্তার, খানম.
  • ka_GE — 492 rows each side, identical length, 32 rows where the surname differs. მამედოვი weight 34 / მამედოვა weight 31, at rank 461 on both sides.
  • el_GR — 648 rows each side; rank 1 is Παπαδόπουλος / Παπαδοπούλου.
  • id_ID — 299 surnames, curated, with an open internal question mark against the locale's naming model.
  • is_IS — 343 rows.
  • es_ES — 2,522 rows (300 added on 21 July 2026), weight sum 34,026,331.

Sources:

  • Vietnam — hoten.org VNTH01 frequency dataset (CC BY 4.0 as declared in page text). Corroborated by Nguyen, Viet Khoa (2024), Toward an Onomastic Account of Vietnamese Surnames, Genealogy 8(1):16, n = 883,835, giving Nguyễn 31.57%. The widely cited 38.4% figure traces to Lê Trung Hoa (1992) on a sample of 1,941 people and should not be used as a divisor. <doi.org/10.3390/genealogy80100…;
  • Spain — INE, Frecuencias de apellidos, census of 01.01.2025. 86,512 data rows across Apellido 1º / Apellido 2º / Ambos apellidos. Positions = ap1 + ap2; bearers = ap1 + ap2 − ambos. García 1,446,937 as first surname, 2,915,761 across both. Note the file header declares a frequency threshold of 100 and the actual threshold is 20. <ine.es/daco/daco42/nombyapel/…;
  • Portugal — SPIE "100 apelidos" list (96 entries), cross-checked against IRN on the top 4. Top 10 = 45.7% of bearers, 22.8% of positions.
  • Argentina — RENAPER. Only the paternal surname is used; bearers equal positions.
  • Georgia — Public Service Development Agency, 2024, published split by sex. Men: ბერიძე 14,963, მამედოვი 14,482. Women: ბერიძე 15,059, მამედოვა 13,487. Azerbaijani share of population ≈ 6.3%.
  • Iceland — Hagstofa Íslands, 01.01.2017: patronymics 82%, ættarnöfn 4%, other 14%. Law nr. 54/1925 prohibited the creation of new family names; it did not abolish existing ones. <hagstofa.is/&gt;
  • Taiwan — 內政部戶政司, OGDL Taiwan v1.0. Korea — KOSTAT. United States — US Census 2010 Surnames, public domain. France — INSEE noms2008nat, Licence Ouverte 2.0.

← 記事