How I built Lexicle
I’ve always loved daily semantic games, but found them too hard to play because the word relations are weirdly calibrated. Most semantic games rely on something called word2vec, which measures how “close” words appear next to each other in text, not in meaning. This creates strange moments (like in a recent Proximity puzzle) where the target word was “firefly” and the closest words to it were “owl” and “frog” rather than “insect,” “bug,” or even “fly.”
My partner commented that if someone could solve that problem, and add more hints, it could be really cool game. So I got to work. π
A New Way to Relate
After ruling out word2vec, I found my way to Sentence-BERT, a framework that’s great at understanding semantic relationships between sentences. I tweaked it to process individual words – specifically the bulk of 5-letter word in English (sans offensive and esoteric ones). This created pairings that felt related in meaning, and I optimistically dove into manual review to complete the tweaking process for “redhot”, “hot”, “warm”, “tepid” and “cold”.
Turns out this was not a realistic task for one person π€¦π»ββοΈ
Secret Sauce
After weeks of (painful) manual review, I remembered AI exists and built a script to send each word pair, one by one, to an API endpoint for semantic judgement. The full prompt took many iterations to get right, with each result game tested. After a while, the word relations started to cohere.
Putting It All Together
With all the words now fully paired in meaning, I set about interacting over the game’s UX. Turn’s out it’s not fun to guess the target word from meaning alone, you need help – in the form of letter hints and warm words – to get to the solution. The final product allows experts to find it fairly quickly, while ensuring normal players (like me) have a fighting chance with every puzzle.
Also, no Lexicle puzzles repeat, so playing the archive helps you to rule out future words.
If you find a word that is missing or needs to be recalibrated, leave a comment below or reach out via the contact page.
Thanks for playing!
Matt
