Vereinfacht gesagt, schlägt er Namen nicht per Zufall vor, sondern passend zum Geschmack des Nutzers.
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