Ranking domain name candidates
The output: a list of free and soon-free .fi names with the most natural Finnish words first, every score reproducible from the same inputs.
- Based on
- Updated
- ·
Inputs
-
The candidate names with their availability state as the product records it: free, being released or taken, and the age of the registration. How the data is gathered is outside the method.
-
A fluency model: a character-trigram language model trained on real registered names and calibrated to a scale.
-
The user's brief: search words, inflected forms and the word banks that compounds are formed from.
-
An optional language-model judgement: a local or remote model scores the top candidates against the brief, cached.
Procedure
Form the candidates from real words
The candidates are real, descriptive Finnish words, curated inflections and compounds from the word banks, not invented brands. A limited number of compounds per stem keeps one stem from flooding the list; the user's own words are exempt.
Score fluency and penalise the impossible
Fluency is the trigram model's length-normalised probability, calibrated. Breaking Finnish phonotactics lowers the score: a name without a vowel gets zero, a long consonant run and broken vowel harmony are penalised.
Combine into one score with weights
The score is a weighted sum: fluency weighs half, relevance to the brief a fifth, length and age the rest equally. The weights are versioned, and the same input, model version and weights always give the same score.
Let availability decide the order
Free names always come before names being released, and those before taken ones, whatever the score. The score orders only within a state. A verified row keeps its place.
Ask a language model for a second opinion, not the first
When a judgement exists, the final score is a weighted blend of the own score and the judgement, the own score in the majority. Without a model the order is deterministic; the model never changes availability or raw data.
Record outcomes and evaluate with a time split
Realised outcomes such as registrations and project decisions go to an append-only log. Model evaluation splits the data by time so that future outcomes do not leak into past analysis.
Outputs and how to read them
-
An ordered list: name, availability state, fluency, the component scores and the total, the model and weight versions. The same input gives the same list.
-
Filters from the scores: short and fluent, dictionary word, long registered, released soon, released recently.
-
A watch: a notice before a good name is released.
Failure modes
-
The fluency model is trained on invented brands, and it starts favouring syllable heaps over real words.
-
The score is allowed to beat availability, and a taken name tops the list.
-
The language model's judgement is made primary, and the order changes from run to run for no reason.
-
Compounds are not capped per stem, and one productive stem buries the rest.
-
The weights are tuned without a version, and old lists can no longer be reproduced.
Where it is used
In the .fi Domain Finder product, where the method orders the results and feeds the watch. The same deterministic core, versioned scoring profiles and append-only outcome log are the base of the product's research layer.