findet schöne Vornamen

Funktionsweise des Namensgenerators

Namen assoziativ finden

Vereinfacht gesagt, schlägt er Namen nicht per Zufall vor, sondern passend zum Geschmack des Nutzers.

Woran soll man den Geschmack des Nutzers erkennen können ?

Es funktioniert nur für Benutzer, die schon ein paar favorisierte Namen nennen können. Dann kommt die Assoziation ins Spiel: Welchen Geschmack zeigen diese Lieblingsnamen an – genauer: Welche früheren Besucher hatten einen ähnlichen Geschmack ?Eine Datenbank merkt sich die Eingaben aller bisherigen Nutzer (das ist datenschutzrechtlich unbedenklich, da wir nur die Namen brauchen – und nichts über die Person des Nutzers.) Wir wollen ja kein Datenkrake sein (maximal vielleicht ein Daten-Seestern).Diese Eingabedaten sind, mathematisch besehen, Mengen von Namen. Und die weitaus meisten dieser Mengen überschneiden sich, denn fast jeder Name wird von mehr als einem Besucher gemocht (abgesehen von klangvollen Exemplaren wie XXX, die irgendwie wohl gar keiner vergeben möchte.)

Mengen von Namen in der Datenbank, und eine aktuelle Eingabemenge

Funktionsweise

Besucher A tippt einige Lieblingsnamen ein. Im einfachsten Fall könnte ein assoziativer Namensgenerator nun alle bisherigen Eingaben der Reihe nach durchlaufen, und mit den Eingaben von A vergleichen. Vornehmer, er müßte mit irgendeiner Metrik prüfen, welche der aktuellen Eingabe besonders ähnlich sind. Aus besten Treffern könnte man dann irgendwie Namen entnehmen, um sie Besucher A zu präsentieren. Das ginge schon, aber braucht allerlei Verfeinerungen. Vor allem würde so ein Vorgehen immer langsamer, je mehr Daten vorliegen. Der Informatiker sagt, die Laufzweit wächst mit O(n) linear, wobei n die Anzahl der alten Eingaben in der Datenbank meint. Lineares Wachstum ist nicht schlecht, aber mit der Zeit wird es dennoch zu langsam. Daher sollte ein assoziativer Namensgenerator vorab seine Eingaben klassifizieren: Er faßt die alten Eingaben zu geschmacklichen Klassen zusammen. Diese Klassen sind nun auch nichts weiter, als Mengen, die sich größtenteils überschneiden. Das Klassifizieren ist eine Vorarbeit, die regelmäßig auf die Eingabedaten anzuwenden ist. Ab jetzt vergleicht der Namensgenerator nicht mehr direkt mit jeder "alten" Eingabe, sondern ordnet die aktuelle Eingabe einer oder mehrerer Klassen zu, und gewichtet, wie gut die Eingabe zu jeder Klasse passt.

Klassifizieren kann man nach verschiedenen Algorithmen. Je nachdem wie "radikal" der Klassifizierer vorgeht, werden etwas weniger oder deutlich weniger Klassen erzeugt, als es "rohe" Eingabe-Datensätze gibt. Das reduziert die Zahl der nötigen Vergleiche so stark, wie der Entwickler es möchte. Der zum Klassifizieren verwendete Algorithmus bestimmt die nötige Rechenzeit, aber auch die Qualität der Ergebnisse. Als Faustregel gilt: Für gute Ergebnisse darf man nicht knausern. Anschaulich gesagt: Geschmäcker haben feiner Unterschiede, und wir sollten sie nicht versuchen, sie grob in eine kleine Handvoll von Klassen zu "quetschen". Drückt man die Rechenzeit zu stark, werden die Ergebnisse oberflächlich, und ausgefallene Namen werden im Extremfall gar nicht mehr vorgeschlagen.

(c) R.Reifenberg 2013