How it works
Honest math, not magic.
NameyFi turns your taste into a vector and ranks names against it using cosine similarity per axis. The match score (e.g., 87%) is literally how aligned your preferences are with that name's profile — no LLM, no hidden adjustments, no marketing inflation.
The four axes
Every taste vector and every name vector lives in this same 4-axis space.
Emotional
weight 0.25Captures the vibe — built from your answers about feelings, color, food taste, season, decade and lifestyle.
Sound
weight 0.20Auto-derived from each name's spelling. Vowel ratio, consonant clusters, length, ending — pure phonetics.
Cultural
weight 0.15From Wikidata language labels and the language tag you chose. Hard-filters candidate names by language.
Meaning
weight 0.20From etymology — a curated 25-pattern keyword library maps Wiktionary text to meaning tags. No LLM.
The pipeline
You fill the questionnaire
Roughly 20 questions — feeling, sound, culture, color, food, place, season, animal totem, decade, decision style, inspiration. Most have known psychological backing (color psychology, taste-personality correlation, mythological archetypes).
Your answers become a 4-axis taste vector
Every option you pick contributes weighted deltas to four axes: emotional, sound, cultural, meaning. We L1-normalize each axis. Result: a fingerprint of your taste in roughly 30–60 weighted tags.
Every name in the database has the same shape
Names come from Wikidata (cross-language alias graph), SSA / INSEE / ONS popularity files, and Wiktionary etymology. A rule-based tagger turns each name's spelling + culture + etymology into the same 4-axis vector — no LLM, fully reproducible.
We score with cosine similarity per axis
Cosine similarity is the standard math for comparing sparse weighted vectors — bounded 0–1, ignores magnitude differences, robust to vocabulary mismatches. Every name gets four sub-scores (emotional / sound / cultural / meaning).
We blend the sub-scores using purpose-specific weights
Baby names weight emotional + meaning heavily. Pet names weight sound (recall-friendly). Brand names blend in domain availability + collision safety. Character names weight genre + sound symbolism.
Hard filters cull non-fits before scoring
Gender, target language, and purpose-type filters apply at the SQL level — not at scoring time. So if you ask for Italian-only names, you ONLY see Italian names. The scoring then ranks within that pool.
Why this matches taste & psychology
The questions aren't trivia — they're well-studied personality proxies.
Color psychology
Decades of research correlate color preference with personality dimensions. Gold → prestige + warmth + luxury maps to elegant + warm tags; Purple → mystery + creativity → mysterious + creative.
Taste-personality correlation
Food preference studies (sweet, spicy, refined, exotic) map cleanly to extraversion / openness / conscientiousness, which in turn correlate with name preference patterns.
Place archetypes
Sky / mountains / forest / sea evoke different emotional registers — celestial vs grounded vs natural vs flowing. The mapping is from blueprint §8.3 and reflects classical literary archetype research.
Sound symbolism
Soft vowels feel gentle (mama, soft); sharp consonants feel strong (k, x, hard t). This is real linguistic phenomena, not preference. The matcher rewards the alignment between sound preferences and a name's actual phonetic shape.
Etymology resonance
Names with light meanings (Aurora — dawn, Stella — star, Lucia — light) cluster together in the meaning axis. If you pick celestial-coded answers, you get those names — not just because the words rhyme but because the deep semantics align.
The scoring formula (no secrets)
For personal names — baby, pet, character:
final_score =
emotional × 0.25
+ sound × 0.20
+ meaning × 0.20
+ cultural × 0.15
+ purpose × 0.10
+ popularity × 0.05
+ practical × 0.05For brand / product / website names:
final_brand_score =
audience_fit × 0.18
+ sound_fit × 0.14
+ memorability × 0.14
+ domain_availability × 0.16
+ collision_safety × 0.16
+ brandability × 0.12
+ industry_fit × 0.10Same formula every time. Reproducible. No LLM. No randomization.