Wie unser Personengenerator wirklich funktioniert — und was er noch falsch macht
Die meisten Fake-Namen-Generatoren sind eine einzige Funktion: einen Namen aus einer Liste ziehen, eine Stadt aus einer anderen Liste ziehen, beide zusammenkleben. Unserer ist auch nicht viel mehr als das — aber genau im Unterschied zwischen „nicht viel mehr" und „einer einzigen Funktion" stecken all die interessanten Probleme.
Dieser Artikel dokumentiert die gesamte Maschinerie: was sie berücksichtigt, wie sie reproduzierbar bleibt und — der Abschnitt, der mehr zählt — die Liste dessen, was sie nachweislich nicht modelliert. Alles Folgende wurde am 18. Juli 2026 am ausgelieferten Code und an den ausgelieferten Datendateien gemessen, nicht an den Entwurfsdokumenten.
Die zwölf Eingaben
Eine generierte Karte ist eine reine Funktion von (locale, seed). Zur Laufzeit gibt es keine Datenbank. Hier ist alles, was in sie einfließt.
1. Land
64 Sprachregionen, jede mit eigenen Korpora für Vornamen, Nachnamen, Straßen, Städte, Postleitzahlen, Firmen und Telefonnummern. „Sprachregion" (locale) meint hier eher Land als Sprache: de_DE, de_AT und de_CH sind drei getrennte Datensätze, und ebenso fr_CH, de_CH und it_CH — dasselbe Land, drei Sprachen, ein gemeinsamer Rufnummernplan.
Die Wortreihenfolge der Adresse ist pro Sprachregion festgelegt, denn eine Hausnummer wird nirgends zweimal gleich platziert:
| Muster | Sprachregionen | Beispiel |
|---|---|---|
{n} {s} | en_US, en_GB, fr_FR, vi_VN … | 192 Mill Street |
{s} {n} | Standard — de_DE, pl_PL, nl_NL … | Schillerstraße 84 |
{s}, {n} | uk_UA, ru_RU, es_ES, it_IT … | вул. Широка, 174 |
{s} nr. {n} | ro_RO, ro_MD | Strada Spitalului nr. 13 |
{s} {n}. | hu_HU | Honvéd utca 52. |
{s} No:{n} | tr_TR | Kale Sokak No:71 |
{s}{n}號 | zh_TW (号 für zh_CN) | 中央路124號 |
Die frühere Version dieses Codes hatte {s}, {n} — das ukrainische Modell — für alle 64 Sprachregionen fest verdrahtet. Jede amerikanische Adresse las sich als Mill Street, 192.
Die Reihenfolge des vollständigen Namens ist wiederum eine eigene Sache. zh_CN, zh_TW, ja_JP und ko_KR stellen den Nachnamen voran, ohne Leerzeichen (王達仁, nicht 達仁 王); hu_HU und vi_VN stellen ihn mit Leerzeichen voran (Ferenczi Bódog). Alles Übrige ist Vorname Nachname.
63 von 64 Sprachregionen führen kuratierte Straßendateien. ja_JP bewusst nicht: eine japanische Adresse ist 丁目-番-号 (Block–Parzelle–Gebäude), nicht Straße-plus-Nummer, und eine Straßenebene für Japan zu erfinden hieße, ein System zu erfinden, das das Land nicht hat.
2. Geschlecht
Vor- und Nachnamen werden aus geschlechtsspezifischen Korpora gezogen, doch der Grund, warum sich die Korpora unterscheiden, teilt sich in drei Fälle:
| Gruppe | Anzahl | Was dahintersteckt |
|---|---|---|
| Identische Nachnamen | 49 | en_US, de_DE, ja_JP — Nachname variiert nicht nach Geschlecht |
| Deklinierte Nachnamen | 12 | Παπαδόπουλος ♂ / Παπαδοπούλου ♀; Novák / Nováková |
| Getrennte Nachnamensätze | 3 | en_IN, bn_BD, ka_GE — verschiedene Listen, keine gepaarten Formen |
Die dritte Gruppe bringt naive Validatoren zu Fall. Die Sikh-Namensgebung gibt Singh überwiegend Männern und Kaur Frauen; das bengalische Begum und Khatun sind rein weiblich. Das sind nicht zwei Schreibweisen eines Namens, also haben die Männer- und Frauendateien zu Recht unterschiedliche Längen — en_IN liefert 836 männliche und 842 weibliche Nachnamen, bn_BD 400 und 404. Ein Validator, der verlangt „die beiden Dateien müssen Zeile für Zeile übereinstimmen", blockiert stillschweigend, dass der häufigste Nachname eines ganzen Landes überhaupt irgendwo hinzugefügt wird.
Griechisch gehört in die zweite Gruppe, und das war eine Korrektur: zunächst war es als invariant geführt, was falsch ist — -ος → -ου, -ης → -η, und 545 von 648 griechischen Nachnamenpaaren ändern sich tatsächlich.
Der Geburtsname wird immer aus dem weiblichen Korpus gezogen, denn ein Geburtsname ist der Nachname der Mutter vor der Ehe, unabhängig vom Geschlecht des Karteninhabers.
3. Geburtsjahr → Alterskohorte
Für zehn Sprachregionen — de_AT, en_CA, en_GB, en_IE, en_NZ, en_US, es_ES, fr_FR, it_IT, no_NO — wird der Vorname aus einem Korpus gezogen, das für das Jahrzehnt gebaut wurde, in dem die Person der Karte geboren wurde, nicht aus der Allzeitliste des Landes. Acht der zehn decken alle sieben Jahrzehnte ab; die österreichische Reihe beginnt 1984 und die italienische 1999, was ein eigener Mangel ist und einen eigenen Artikel hat. Die Jahrzehntgrenzen folgen der Konvention des INSEE: [1941, 1951, 1961, 1971, 1981, 1991, 2001], sodass 1950 in die Klasse 1941 fällt und 1951 die nächste eröffnet.
Der Effekt auf die ausgelieferten Korpora, geordnet nach echten Geburtszahlen:
| Sprachregion | Geboren ~1951 (Top 6) | Geboren ~2001 (Top 6) |
|---|---|---|
no_NO | Jan, Per, Bjørn, Kjell, Svein, Terje | Jonas, Andreas, Mathias, Martin, Daniel, Sander |
fr_FR | Jean, Michel, Patrick, Alain, Philippe, Christian | Lucas, Enzo, Thomas, Théo, Hugo, Nathan |
es_ES | Antonio, José, Manuel, Francisco, Juan, José Luis | Alejandro, Daniel, Pablo, David, Adrián, Álvaro |
en_IE | John, Patrick, Michael, James, Paul, Thomas | Jack, Sean, Conor, Adam, James, Daniel |
en_NZ | John, Peter, David, Michael, Stephen, Robert | Jack, Joshua, Samuel, James, Benjamin, Daniel |
en_US | Michael, James, Robert, David, John, William | Jacob, Michael, Joshua, Matthew, Ethan, Andrew |
en_CA | Robert, David, John, Michael, James, Richard | Ethan, Jacob, Matthew, Joshua, Liam, Ryan |
Norwegisch und Französisch wechseln vollständig durch; Amerikanisch bewegt sich an der Spitze kaum, was selbst der Befund ist — englischsprachige Jungennamen erneuern sich langsamer. Der Mechanismus und die dahinterstehenden Registerdaten sind Gegenstand von Ihr Name ist eine Geburtsurkunde.
Ein Dutzend echter männlicher en_US-Karten, an den beiden Extremen gezogen, sehen so aus:
- geboren 1951: David, John, Julian, Jessie, Allen, Dan, Willie, Keith, Gary, Dennis, Rodger, Rick
- geboren 2004: Kevin, Caleb, Andrew, Jajuan, Carson, Jacob, Samson, Baylor, Talon, Benjamin, Daniel, Reece
Beachten Sie, dass dies Ziehungen sind, nicht der Kopf der Liste — Rodger und Jajuan kommen aus dem Schwanz. Genau das ist der Sinn der Gewichtung: der Kopf dominiert, ohne dass der Schwanz verschwindet.
4. Häufigkeit
Namen sind gewichtet, nicht gleichverteilt. Bis zum 18. Juli 2026 wurde das Gewicht durch Wiederholen einer Zeile im Korpus ausgedrückt — Gewicht 7 bedeutete sieben identische Zeilen —, was die Auflösung bei 255 deckelte und den Schwanz umso schwerer machte, je vollständiger die Daten wurden. Am taiwanischen Register gemessen: bei voller Tiefe (2.707 Nachnamen) zogen die Top Ten 24,9 %, wo die echte Zahl 52,8 % beträgt — ein Fehler von −27,9 pp, der mit jedem hinzugefügten seltenen Nachnamen wuchs. Das alte Format bestrafte Vollständigkeit.
Das Korpus enthält jetzt nur noch eindeutige Werte, mit Gewichten in einer parallelen .wgt-Datei — kumulative uint32, eines pro Datensatz, per Binärsuche aufgelöst. Es gibt keine Obergrenze, der Cache ist kleiner, und das Gewicht kann eine buchstäbliche Anzahl von Trägern sein.
Zwölf Nachnamen-Korpora tragen jetzt echte Registerzählungen statt kalibrierter Ränge, neu gemessen am 22. Juli 2026:
| Sprachregion | Datensätze | Summe der Gewichte | Häufigster Nachname | Top-10-Anteil |
|---|---|---|---|---|
en_US | 2.064 | 129.931.469 | Smith — 2.369.644 | 10,80 % |
es_ES | 2.522 | 34.026.331 | García — 1.446.937 | 24,94 % |
en_GB | 1.517 | 27.125.558 | Smith — 652.563 | 12,05 % |
zh_TW | 2.707 | 23.367.536 | 陳 — 2.618.994 | 52,81 % |
fr_FR | 1.731 | 20.114.307 | Martin — 250.013 | 6,24 % |
pl_PL | 28.959 | 16.682.538 | Nowak — 98.387 | 3,19 % |
uk_UA | 2.562 | 9.752.950 | Мельник — 107.878 | 8,42 % |
sv_SE | 2.445 | 5.594.332 | Andersson — 216.488 | 23,28 % |
da_DK | 717 | 2.984.886 | Nielsen — 222.355 | 46,27 % |
no_NO | 3.780 | 2.854.195 | Hansen — 47.879 | 11,72 % |
vi_VN | 298 | 99.441 | Nguyễn — 30.492 | 69,58 % |
en_IE | 908 | 80.922 | Murphy — 1.717 | 13,21 % |
Die Spreizung ist das ganze Argument für echte Zählungen: Polens Top Ten erreicht 3,19 % und Vietnams 69,58 %. Jeder Generator, der jedes Land auf dasselbe Konzentrationsband kalibriert, löscht einen zwanzigfachen Unterschied aus. Die Methodik dazu — und die Fallstricke dabei — steht in Wie man einen Namenshäufigkeits-Datensatz prüft.
Vornamen sind weiter zurück: nur acht Sprachregionen laufen auf echten Geburtszahlen (en_US, en_GB, fr_FR, es_ES, sv_SE, no_NO, en_IE, en_NZ). Ukrainische Nachnamen beruhen auf Registerzählungen, ukrainische *Vor*namen jedoch nicht — die Sprachregion ist nur halb migriert, und zu sagen „uk_UA hat echte Gewichte" wäre ohne diese Einschränkung falsch.
5. Stadt ↔ Postleitzahl als ein Paar
Stadt und Postleitzahl sind nicht zwei unabhängige Ziehungen. Jede Sprachregion liefert locality/<locale>.tsv mit Zeilen der Form City⇥Region⇥Postcode, dazu eine optionale vierte Einwohner-Spalte, hinzugefügt am 18. Juli 2026. Es wird eine Zeile gezogen, und Stadt und Postleitzahl kommen gemeinsam aus ihr, sodass sie immer übereinstimmen. Die Region wird zur Gewichtung und Validierung mitgeführt, aber nicht auf der Karte ausgegeben.
6. Stadtgröße
Mit Stand 22. Juli 2026 gewichten 44 von 64 Sprachregionen die Stadtauswahl nach Einwohnerzahl. Der Unterschied ist in 400 Ziehungen sichtbar:
| Sprachregion | Verschiedene getroffene Städte | Spitze der Zählung |
|---|---|---|
uk_UA (gewichtet) | 51 | Київ 67, Харків 38, Донецьк 21, Одеса 19 |
es_AR (ungewichtet) | 60 | Salta 13, Cipolletti 12, Rafaela 12, Concepción del Uruguay 11 |
In der argentinischen Spalte kam jede der 60 Städte vor, und Buenos Aires — drei Millionen Menschen in der eigentlichen Stadt — wird nicht häufiger gezogen als Rafaela mit etwa 100.000. Das bedeutet gleichverteilte Auswahl, und auf keiner einzelnen Karte ist es sichtbar. Die vollständige Behandlung steht in Warum Adressgeneratoren unplausible Städte erzeugen.
7. Determinismus — und warum jede Ziehung genau eine Ziehung ist
Die URL /<country>/<id> muss für immer dieselbe Person zurückgeben. Das ist eine Produktanforderung, keine technische Feinheit: ein Permalink auf eine Karte ist wertlos, wenn die Karte driftet.
Der Seed wird gebildet, indem das geheime Salt der Installation zusammen mit der id gehasht wird, und das Ergebnis initialisiert den PRNG. Alles Nachgelagerte wird aus diesem einen Strom gezogen. Der genaue Hash, seine Kürzung und das Geheimnis selbst werden hier bewusst nicht veröffentlicht — sie sind der einzige Teil dieses Entwurfs, der privat bleiben muss, und der Grund ist der nächste Abschnitt.
Der subtile Teil ist nicht das Seeding. Es ist dieses Muster:
function pick(string $dataset): ?string
{
$h = open($dataset);
$keep = mt_rand(0, PHP_INT_MAX); // exactly one draw, in BOTH branches
$v = ($h !== null && $h['total'] >= 1) ? read_at($h, index_for($h, $keep)) : null;
mt_srand($keep); // stream returns to the same point in BOTH branches
return $v;
}
Jede Auswahlfunktion verbraucht genau ein mt_rand() und seedet den Strom danach wieder auf $keep. Nach dem Aufruf steht der RNG an einem identischen Punkt, gleich ob der Datensatz existierte, fehlte oder auf einen Fallback durchfiel, der eine unbekannte Zahl von Ziehungen verbrannte.
Ohne diese Invariante verschiebt das Hinzufügen eines einzigen Datensatzes den Strom für jedes danach folgende Feld. Baue ein neues Korpus, und jede Karte auf der Seite ändert Name, Adresse, Telefon, Passwort und Geburtstag. Schlimmer noch, wir liefen live darin auf: ein Worker, der einmal einen fehlenden Datensatz sah, cachte das negative Ergebnis und blieb für den Rest seines Lebens beim Faker-Fallback, sodass dieselbe URL im selben Moment verschiedene Personen aus verschiedenen PHP-FPM-Workern auslieferte. Die Behebung bestand aus zwei Teilen — eine negative Abfrage niemals cachen und beide Zweige eine Ziehung kosten lassen.
Dieselbe Disziplin gilt für die Kohorten-Abfrage. Ein „erster dieser Kandidaten"-Helfer — versuche das dekadenspezifische Korpus, falle auf das allgemeine zurück — probiert die Kandidaten der Reihe nach durch, verbraucht aber insgesamt eine Ziehung; ein naives pick($a) ?? pick($b) ?? faker() würde zwei oder drei verbrauchen und die Anwesenheit von Kohortendaten die ganze Karte neu durchmischen lassen.
8. Das Erstellungsjahr der Karte ist in ihrer id kodiert
Die id ist nicht undurchsichtig. Einige ihrer führenden Bytes tragen Struktur statt Entropie — darunter die Archivversion, der über den Schieberegler angeforderte Altersbereich, ein Flag für erzwungenes Geschlecht und das Jahr, in dem die Karte erstellt wurde. Die genauen Offsets werden aus dem in §7 genannten Grund weggelassen; für diesen Artikel zählt, dass das Erstellungsjahr gespeichert wird, nicht wo.
Das Geburtsjahr wird als card_year − age berechnet, nicht als current_year − age. Ohne das gespeicherte Jahr würde jede Karte an jedem 1. Januar stillschweigend ihr Geburtsdatum ändern: das Alter ist aus dem Seed stabil, also würde das Geburtsjahr mit dem Kalender nach vorn rutschen. Dieses Byte wurde am 16. Juli 2026 hinzugefügt, und zuvor ausgegebene ids tragen dort einen Zufallswert — weshalb er auf [1990, current year] begrenzt wird. Unbegrenzt wurde ein Byte 0x93 als Jahr 2147 gelesen und erzeugte eine Karte, die 2103 geboren war.
9. Das Installations-Salt
Der Generator wird mit einem geheimen Salt ausgeliefert. Ohne es wäre /<country>/<id> eine reine Funktion allein der id — jeder, der denselben Code über denselben Korpora laufen ließe, gäbe für dieselbe URL buchstäblich dieselbe Person zurück. Das Salt geht sowohl in den Identitäts-Seed als auch in den Zufallsland-Hash ein, es bewegt also die ganze Karte, nicht ein einzelnes Feld davon. Ein anderes Salt einzusetzen und dieselbe id neu zu ziehen zeigt, wie total der Effekt ist:
| Salt-Wert (illustrativ) | Dieselbe id, en_US, Alter 30–60 | |
|---|---|---|
| `salt-a\ | v1` | Bryan Foster · 192 Mill Street · San Diego 92101 · 1994-11-24 |
| `salt-b\ | v1` | Michael Jones · 199 Forest Avenue · Fresno 93701 · 1989-02-01 |
| `salt-c\ | v1` | Jillian Thompson · 67 Lincoln Avenue · Oklahoma City 73101 · 1987-03-27 |
Kein einziges Feld überlebt die Änderung: Name, Straße, Stadt, Postleitzahl und Geburtsdatum sind alle verschieden. Die Salts oben sind Platzhalter — der echte Wert wird nicht veröffentlicht, und genau darum geht es bei dem Mechanismus. Der Suffix |v1 ist die Notausstiegsluke: ihn hochzuzählen regeneriert jede Karte in der Basis. Es ist eine einmalige Ressource, was ein weiterer Grund ist, sie nicht durch Veröffentlichen des aktuellen Werts zu verbrauchen.
10. Telefonnummern
Telefonnummern kommen aus einer Tabelle von 963 echten Mobilfunk-Präfixen über 65 Sprachregion-Einträge, ausgegeben als E.164 (+, Ländervorwahl, nationale Nummer, keine Trennzeichen). Faker wurde für dieses Feld aus zwei gemessenen Gründen fallengelassen: innerhalb einer einzigen Sprachregion wanderte sein Format (el_GR erzeugte sowohl 698 7681 770 als auch 6969005371), und mehrere Anbieter randomisierten die Ländervorwahl selbst — es_AR gab 35 verschiedene Ländervorwahlen aus und it_IT 99. Jede italienische Karte trug eine Telefonnummer aus einem zufällig gewählten Land.
Verwendet werden Mobilfunk-Bereiche statt Festnetz: sie sind aktueller und nicht an eine bestimmte Stadt gebunden, was vermeidet, eine Präzision (Vorwahl, die mit der Stadt übereinstimmt) zu behaupten, die nichts anderes auf der Karte stützt.
11. Eircode
Ein irischer Eircode ist ein 3-stelliger Routing-Schlüssel plus ein 4-stelliger Bezeichner für ein einzelnes Gebäude. Einen Code direkt aus der Ortsdatei zu kopieren gäbe jeder Karte in einer Stadt einen identischen Eircode — ein Mangel, den jeder irische Leser sofort erkennt.
Also wird der Routing-Schlüssel aus der Ortszeile beibehalten (er ist echt und stimmt mit der Stadt überein), und die vier abschließenden Zeichen werden aus dem Eircode-Alphabet gezogen, ACDEFHKNPRTVWXY0123456789 — 25 Symbole, ohne B, G, I, J, L, M, O, Q, S, U, Z, die Eircode absichtlich auslässt, um Verwechslungen zwischen Zeichen zu verhindern. Fünf aufeinanderfolgende Karten:
Kildare R51 X775
Tullamore R35 5RT8
Drogheda A92 HNK0
Sligo F91 XAPK
Listowel V31 29FX
Diese vier zusätzlichen Ziehungen geschehen nur für en_IE; jede andere Sprachregion geht am Zweig vorbei, sodass sich die Karten keiner anderen Sprachregion verschieben.
12. Mail-Domain
Die Postfach-Domain kommt aus einem versionierten, nur anfügbaren Archiv eingefrorener Snapshots, und die Snapshot-Nummer sind die ersten zwei Hex-Ziffern der id. Eine neue Karte erhält current; eine alte Karte liest ihre Version aus ihrer eigenen id und erhält für immer diesen eingefrorenen Snapshot. Die Live-Liste funktionierender Domains ändert sich ständig; Permalinks nicht.
Was der Generator nicht tut
Jeder Punkt unten ist eine echte, reproduzierbare Einschränkung. Keiner von ihnen ist theoretisch.
Namen variieren nicht nach Region innerhalb eines Landes
Bayern und Hamburg benennen Kinder unterschiedlich; ebenso Katalonien und Andalusien. Wir modellieren eine Namensverteilung pro Land. Eine Karte aus München und eine Karte aus Kiel ziehen aus dem identischen Korpus. Bei Straßen herrscht dieselbe Flachheit: es gibt eine Straßendatei pro Land, sodass nichts eine bayerische Straßenliste von einer hanseatischen unterscheidet.
Nachnamen variieren nicht nach Alter
Kohortendaten existieren nur für Vornamen. Nachnamen mit Migrationsursprung haben eine ausgeprägte Altersstruktur — ein deutsches Nachnamen-Korpus der 20-Jährigen ist nicht das Korpus der 80-Jährigen —, und wir ebnen sie vollständig ein. Eine 1941 geborene deutsche Karte zieht mit derselben Wahrscheinlichkeit Öztürk wie eine 2001 geborene.
Vorname und Nachname sind nicht aufeinander abgestimmt
Das ist der sichtbarste Mangel auf einzelnen Karten. Die beiden Felder sind unabhängige Ziehungen aus unabhängigen Korpora, sodass sich die Schichten kreuzen. In de_DE tragen Vornamen der türkischen Schicht 0,69 % des Vornamengewichts und Nachnamen der türkischen Schicht 0,87 % des Nachnamengewichts. Unabhängig gezogen:
| Kombination | Wahrscheinlichkeit |
|---|---|
| Türkischer Vorname + nicht-türkischer Nachname | 0,68 % |
| Deutscher Vorname + türkischer Nachname | 0,87 % |
| Türkischer Vorname + türkischer Nachname | 0,006 % |
Also kreuzen rund 1,5 % der deutschen Karten die Schicht, und nur sechs von hunderttausend erzeugen ein kohärentes türkisch-deutsches Paar — Mehmet Müller ist etwa 100-mal wahrscheinlicher als Mehmet Öztürk. Dasselbe geschieht überall dort, wo ein Korpus mehr als eine Namensschicht enthält: ein arabischer Vorname landet in he_IL auf einem aschkenasischen Nachnamen, Aidan Paun kommt aus en_IE. Die Lösung besteht darin, Korpora in Schichten zu gruppieren und das Paar aus einer Schicht zu ziehen; das ist eine offene Schuld, kein Plan, den wir umgesetzt haben. Siehe Die fehlende Migrationsschicht.
Straßen sind nicht an Städte gebunden
Straße und Stadt sind unabhängige Ziehungen innerhalb einer Sprachregion. Zwölf aufeinanderfolgende ukrainische Karten erzeugen вул. Захисників України, 154 in Сімферополь und вул. Гетьмана Павла Скоропадського, 161 in Київ — plausibel genug —, aber nichts hindert eine Straße, die nur in einer Stadt existiert, daran, in einer anderen platziert zu werden, oder einen Namen, der zu einem Platz und nicht zu einer Straße gehört, daran, mit einer Hausnummer aufzutauchen. Die Paarung, die wir erzwingen, ist Stadt↔Postleitzahl; Straße↔Stadt nicht.
Vornamengewichte in 56 Sprachregionen sind kalibriert, nicht gemessen
Nur acht Sprachregionen haben Vornamengewichte aus Geburtsregistern. Die anderen 56 wurden auf ein angenommenes Band „20–35 % Top-10-Anteil überall" hingetrimmt — eine Norm, die es nicht gibt. Gemessen an den sechs Sprachregionen, die echte Zählungen hatten, als der Vergleich im Juli 2026 durchgeführt wurde: die echte Top-10-Konzentration reicht von 9,88 bis 33,32 % (ein 3,4-facher Bereich), unsere kalibrierten Korpora reichen von 20,68 bis 24,84 % (1,20-fach), und die Spearman-Rangkorrelation zwischen unseren Zahlen und den echten beträgt 0,056. Das ist kein komprimiertes Signal; es ist überhaupt kein Ländersignal. Einzelne Fehler erreichen 13 pp — der echte US-Top-10-Anteil bei Frauen liegt bei 9,88 %, unser Korpus sagt 23,01 %. Die Kalibrierung ebnete außerdem den echten Konzentrationsunterschied zwischen Männern und Frauen von 7,41 pp auf 1,81 pp ein. Vollständige Rechnung in Der Kollaps der Vornamenvielfalt.
20 Sprachregionen haben keine Stadtgewichte
44 von 64 Ortsdateien führen eine Einwohnerspalte. Die übrigen 20 ziehen Städte gleichverteilt. Manches davon ist eingeplante Arbeit; manches ist Absicht. Wo das Statistikamt eines Landes nur regionale Zahlen veröffentlicht oder wo die verfügbaren Zahlen inkompatible Einheiten mischen — norwegische kommune gegen tettsted, saudisches Gouvernement gegen Stadt —, ließen wir die Sprachregion gleichverteilt, statt eine Spalte aus zweierlei Dingen zusammenzusetzen. Eine gleichverteilt gezogene Stadt ist eine dokumentierte Näherung; eine Spalte, in der zwei Drittel der Zeilen die eine Einheit sind und ein Drittel die andere, ist ein Mangel, den niemand, uns eingeschlossen, je bemerken würde.
Kohorten decken 10 von 64 Sprachregionen ab
Vierundfünfzig Sprachregionen ziehen einen Vornamen ganz ohne Bezug auf das Geburtsjahr der Karte. In ihnen ziehen eine 1945 geborene und eine 2005 geborene Karte aus derselben Liste.
Faker ist immer noch der Boden
Wo ein Datensatz fehlt, fällt das Feld auf die Faker-Bibliothek zurück — seit 2020 aufgegeben, wirft Deprecations unter PHP 8.5 und ist die Quelle der oben beschriebenen Telefonnummer- und Adressformat-Mängel. Bewusst wird sie nie erreicht, wenn die Korpora gebaut sind, doch sie ist weiterhin der Boden unter jedem Feld.
Warum das alles für jemanden zählt, der die Seite nutzt
Zwei dieser Eigenschaften sind die, die ein Nutzer tatsächlich spürt.
Der Permalink funktioniert für immer. Die URL einer Karte ist ein Versprechen: der Name, die Adresse, das Telefon und das Geburtsdatum darauf werden in fünf Jahren identisch sein. Deshalb ist das Geburtsjahr in der id eingefroren, deshalb kommt die Mail-Domain aus einem versionierten Archiv, und deshalb ist jede Auswahlfunktion bis auf genau eine Ziehung diszipliniert. Fehlt eines dieser drei, wird die URL stillschweigend zu einer anderen Person — und stillschweigend ist das entscheidende Wort, denn nichts an einer Karte sieht je kaputt aus. Es ist bloß nicht die Karte, die mit einem Lesezeichen versehen wurde.
Realismus ist eine Eigenschaft der Verteilung, keine einzelner Karten. Jede gleichverteilt gezogene brasilianische Karte ist eine echte Stadt mit korrekter Postleitzahl. Die Menge von ihnen beschreibt ein Brasilien, in dem São Paulo so groß ist wie Palmas. Kein noch so genaues Prüfen einzelner Karten offenbart das, weshalb die obigen Einschränkungen als Messungen und nicht als Eindrücke formuliert sind — die, die wir fanden, fanden wir durch Zählen, und mehrere davon waren Dinge, von denen wir angenommen hatten, sie seien in Ordnung.
Daten mit Stand 2026-07-18
Jede Zählung, jeder Anteil und jedes Beispiel in diesem Artikel wurde an jenem Datum direkt aus dem laufenden Code und den ausgelieferten Datendateien gemessen: 64 Sprachregion-Verzeichnisse mit 261 Gewichtsdateien und 20 Kohortendateien, 64 Ortstabellen und 63 Straßentabellen. Die Stadtziehungs- und Präfixzählungen wurden am 22. Juli 2026 neu gemessen.
Die Kartenbeispiele wurden erzeugt, indem die Live-Identitätsfunktion über den ausgelieferten Korpora ausgeführt wurde, auf demselben Seeding-Pfad, den die Live-Seite verwendet. Die Tabellen mit den Korpus-Spitzen wurden berechnet, indem die kumulativen Gewichtsdateien dekodiert und nach Gewicht sortiert wurden; es sind die eigenen Zahlen der Korpora, die für die zwölf aufgeführten Sprachregionen die eigenen Zählungen der Register sind.
Die Registerquellen hinter den gewichteten Korpora sind pro Sprachregion in den Begleitartikeln dokumentiert: Top 10 Nachnamen nach Land, Konzentrationskurven von Nachnamen und Offene Daten zu Nachnamenregistern.