Semantika
Et dansk ordgættespil hvor du finder det hemmelige ord — ikke ud fra bogstaver, men ud fra ordets betydning og kontekst i det danske sprog.
Sådan virker det
Hvert gæt tildeles en rangering. 1 er det korrekte svar, og jo lavere nummer, jo tættere er du på. Rangeringen beregnes via cosine similarity mellem ordvektorer i en Word2Vec-model.
Eksempel: det hemmelige ord er "kat"
Rangeringen afspejler hvor ofte ord optræder i lignende kontekster i danske tekster — ikke nødvendigvis logisk kategorilighed.
AI-modellen
Semantisk lighed beregnes med en dansk Word2Vec-model (DSL Skipgram 2020) trænet på et stort korpus af danske tekster fra Det Danske Sprog- og Litteraturselskab. Modellen konverterer hvert ord til en 500-dimensionel vektor, hvor geometrisk nærhed afspejler semantisk lighed.
For at opnå de mest præcise rangeringer bruger vi en best-inflection strategi: hvert ord sammenlignes med målordet via alle sine bøjningsformer (f.eks. "rotte", "rotten", "rotter"), og den højeste lighed afgør rangeringen. Det fanger betydningsnuancer som den rene grundform kan misse.
Alle rangeringer er forudberegnede og gemt i en database — din browser modtager kun rangeringen for hvert gæt, aldrig modellen eller ordlisterne.
Ordlister
Gæt-ordforråd (~88.500 ord)
Genereret fra DDO Lemmaliste (Den Danske Ordbog) og filtreret med en blacklist der fjerner bandeord, stødende indhold og upassende ord. Kun ord med en Word2Vec-vektor inkluderes.
Målord / baner (5.831 ord)
En delmængde yderligere filtreret til kun substantiver (navneord) via DanNet. Ord der er for abstrakte, kontroversielle eller obskure er fjernet.
Lemmatisering
Bøjningsformer som "katte", "katten" og "kattene" normaliseres automatisk til lemmaet "kat". Sammensatte ord nedprioriteres i rangeringen, så mere relevante ord kommer frem.
Designvalg
Hvorfor Turso frem for Supabase?
Semantikas data er read-heavy: ~90.000 ord med forudberegnede rangeringer. Turso (libSQL) kører edge-replicas tæt på brugeren med sub-millisekund reads, og det hele koster $0 for vores volumen. Supabase ville give os mere infrastruktur end vi behøver og trægere cold-starts.
Hvorfor Word2Vec og ikke moderne embeddings?
Transformer-baserede modeller (BERT, GPT) giver kontekstafhængige vektorer — det samme ord kan have forskellige vektorer i forskellige sætninger. Word2Vec giver ét fast vektor per ord, hvilket er præcis hvad spilmekanikken kræver: en deterministisk rangering. Derudover findes DSL's Word2Vec-model specifikt for dansk med 1,4M ord.
Forudberegnede rangeringer
I stedet for at beregne cosine similarity live (O(n) per gæt over 88.000 ord), er alle rangeringer forudberegnet og gemt i databasen. Brugeren får kun tallet — aldrig modellen, ordlisterne eller vektorerne. Det giver instant response og beskytter IP.
Sammensatte ord-håndtering
Dansk er rigt på sammensætninger ("samarbejdsaftale" for "aftale"). Uden justering ville de dominere top-rangeringerne. Vi implementerede en penalty-baseret model: sammensatte ord fjernes ikke, men deprioriteres proportionelt, så semantisk relevante ord kommer først.
Datakilder
Teknologi
Prøv spillet selv
Spil Semantika