← Alle Artikel

Technik · 7. Juni 2026 · aktualisiert am 31. August 2026 · 6 Min. Lesezeit

von Ugur Aydogan

Kosinus-Ähnlichkeit: wie aus zwei Wörtern eine Zahl wird

Zwischen deiner Eingabe und dem Rang, den du siehst, steht genau eine Rechnung. Sie hat einen einschüchternden Namen und ist am Ende eine Winkelmessung, die man auf einem Bierdeckel erklären kann.

Wörter sind Pfeile

Jedes Wort im Vokabular ist ein Vektor: eine Liste aus 300 Zahlen. Man kann sich das als Punkt in einem 300-dimensionalen Raum vorstellen, oder besser noch, weil es für das Weitere wichtig ist, als Pfeil vom Nullpunkt zu diesem Punkt.

300 Dimensionen kann sich niemand vorstellen, und das muss man auch nicht. Alles, was gleich passiert, funktioniert in zwei Dimensionen genau so und lässt sich dort aufzeichnen. Die Dimensionszahl ändert nur, wie fein die Bedeutungen aufgelöst werden, nicht die Logik.

Der Winkel misst die Ähnlichkeit

Zwei Pfeile schließen einen Winkel ein. Dieser Winkel ist das Maß:

  • Kleiner Winkel, beide zeigen fast in dieselbe Richtung: Die Wörter kommen in ähnlichen Kontexten vor.
  • Rechter Winkel: Die Wörter haben nichts miteinander zu tun.
  • Entgegengesetzte Richtung: die maximal mögliche Unähnlichkeit.

Der Kosinus ist lediglich die Funktion, die einen Winkel in eine handliche Zahl übersetzt. Er liefert 1 bei null Grad, 0 bei neunzig Grad und -1 bei hundertachtzig Grad. Deshalb heißt das Maß Kosinus-Ähnlichkeit, und deshalb liegt es immer zwischen -1 und 1.

Warum der Winkel und nicht der Abstand

Die naheliegende Alternative wäre, einfach den Abstand zwischen zwei Punkten zu messen. Man macht es nicht, und der Grund ist praktisch.

Die Länge eines Wortvektors korreliert mit der Häufigkeit des Wortes im Trainingstext. Häufige Wörter bekommen tendenziell längere Pfeile. Würde man Abstände messen, ginge diese Länge in jede Messung ein, und der Rang würde dann teilweise messen, wie gebräuchlich ein Wort ist statt wie passend.

Der Winkel ignoriert die Länge vollständig. Zwei Kompassnadeln zeigen in dieselbe Richtung, unabhängig davon, wie lang sie sind. Genau deshalb ist die Kosinus-Ähnlichkeit das Standardmaß für Worteinbettungen und nicht der euklidische Abstand.

Das genügt allerdings nicht ganz. Die Häufigkeit steckt nicht nur in der Länge, sondern auch in der Richtung: Alle Vektoren teilen sich einen gemeinsamen Drift, der ebenfalls mit Häufigkeit zu tun hat. Kontexto entfernt den vor der Rangberechnung, sonst wären häufige Allerweltswörter zu jedem Zielwort ähnlich. Wie das geht, steht in All-but-the-Top.

Von der Ähnlichkeit zum Rang

Angezeigt wird dir der Kosinuswert nie. Das ist eine bewusste Entscheidung, und sie ist der Hauptunterschied zu Spielen wie Semantle.

Der Grund: 0,42 ist nicht einzuordnen. Ist das gut? Bei Worteinbettungen liegen fast alle sinnvollen Wortpaare in einem schmalen Band, und ohne Vergleichsmaßstab sagt ein einzelner Wert nichts. Zwischen 0,41 und 0,48 kann der Unterschied zwischen „völlig danebengegriffen“ und „unmittelbar davor“ liegen.

Kontexto rechnet deshalb einmal für jedes Rätsel die Ähnlichkeit aller 80.000 Vokabelwörter zum Zielwort aus, sortiert sie absteigend und speichert die Positionen. Was du siehst, ist diese Position: Rang 1 ist das Zielwort, Rang 2 sein nächster Nachbar, Rang 80.000 das entfernteste Wort im Vokabular.

Ein Rang ist damit eine relative Aussage und genau deshalb lesbar. Rang 300 heißt: Von 80.000 Wörtern sind nur 299 näher dran. Das kann jeder einordnen, ohne zu wissen, wie ein Kosinuswert skaliert.

Der Nebeneffekt ist Geschwindigkeit. Weil alle Ränge vorberechnet sind, ist ein Rateversuch zur Laufzeit ein Tabellenzugriff und keine Rechnung. Was dabei alles vorher passiert, beschreibt Wie das Lösungswort entsteht.

Was das Maß nicht kann

Zwei Eigenschaften überraschen regelmäßig, und beide folgen direkt aus der Definition.

Gegenteile liegen nah beieinander. heiß und kalt erscheinen in praktisch identischen Sätzen: Das Wasser ist heiß, das Wasser ist kalt. Ihre Kontexte sind fast deckungsgleich, also ist der Winkel zwischen ihren Vektoren klein, also ist die Kosinus-Ähnlichkeit hoch. Ein sehr guter Rang für heiß bei Zielwort kalt ist kein Fehler des Systems, sondern die korrekte Antwort auf eine Frage, die anders lautet als vermutet: nicht „bedeutet dasselbe“, sondern „erscheint in denselben Zusammenhängen“.

Mehrdeutige Wörter haben nur einen Vektor. Bank bekommt eine einzige Zahlenliste, obwohl es Sitzmöbel und Geldinstitut heißt. Das Ergebnis ist ein Kompromissvektor, der irgendwo zwischen beiden Bedeutungen liegt und zu keiner von beiden richtig gehört. Wenn ein mehrdeutiges Wort einen mittelmäßigen Rang bekommt, weißt du deshalb nicht, welche seiner Bedeutungen gemessen wurde.

Warum daraus manchmal völlig unerwartete Ränge entstehen, steht in Warum hat mein Wort einen schlechten Rang?.

Ein Rechenbeispiel in zwei Dimensionen

Die Formel bleibt abstrakt, solange man sie nicht einmal an Zahlen sieht. In zwei Dimensionen geht das auf einem Blatt.

Nimm drei Wörter mit erfundenen, aber plausiblen Koordinaten. Die erste Achse soll grob „belebt“ messen, die zweite grob „im Haus“:

| Wort | Achse 1 | Achse 2 | |---|---|---| | Hund | 8 | 6 | | Katze | 7 | 7 | | Tisch | 1 | 9 |

Für Hund und Katze ist das Skalarprodukt 8 mal 7 plus 6 mal 7, also 98. Die Längen sind rund 10 und rund 9,9. Der Kosinus ist damit 98 geteilt durch 99, also etwa 0,99. Nahezu identische Richtung.

Für Hund und Tisch ist das Skalarprodukt 8 mal 1 plus 6 mal 9, also 62. Die Längen sind rund 10 und rund 9,06. Der Kosinus ist 62 geteilt durch 90,6, also etwa 0,68. Deutlich weiter auseinander, obwohl beide Punkte auf dem Blatt nicht besonders weit voneinander entfernt liegen.

Der Winkel zwischen WortvektorenDrei Pfeile gehen vom selben Ursprung aus. Die Pfeile für „Hund“ mit den Koordinaten 8 und 6 und für „Katze“ mit 7 und 7 zeigen fast in dieselbe Richtung, der Winkel zwischen ihnen ist klein und die Kosinus-Ähnlichkeit beträgt etwa 0,99. Der Pfeil für „Tisch“ mit 1 und 9 zeigt deutlich steiler nach oben, der Winkel ist groß und die Ähnlichkeit beträgt nur etwa 0,68.Achse 2Achse 1Hund (8, 6)Katze (7, 7)Tisch (1, 9)
Nur die Richtung zählt, nicht die Länge. „Hund“ und „Katze“ zeigen fast gleich, der Kosinus liegt bei etwa 0,99. „Tisch“ weicht deutlich ab, obwohl sein Punkt auf dem Blatt nicht weit entfernt liegt: etwa 0,68.

Genau das ist der Punkt: Der reine Abstand zwischen Hund und Tisch wäre klein, ihre Richtungen sind trotzdem verschieden.

Warum negative Werte praktisch nie vorkommen

Der Kosinus kann rechnerisch zwischen minus eins und eins liegen. Minus eins hieße: genau entgegengesetzte Richtung. In echten Worteinbettungen sieht man das so gut wie nie, und der Grund sagt einiges über das Modell.

Ein Wert von minus eins würde bedeuten, dass zwei Wörter in systematisch gegensätzlichen Zusammenhängen vorkommen. Genau das tun Gegensätze aber nicht. heiß und kalt stehen in denselben Sätzen, vor Wasser, Wetter und Getränk, und liegen deshalb nah beieinander statt weit auseinander. Sprachliche Gegensätzlichkeit ist keine geometrische.

Was man stattdessen sieht: Fast alle Wortpaare liegen in einem schmalen Band um null bis 0,6, weil die überwältigende Mehrheit aller Wörter schlicht nichts miteinander zu tun hat und ihre Richtungen nahezu senkrecht aufeinander stehen. In 300 Dimensionen ist das der Normalfall, denn zwei zufällig gewählte Richtungen sind dort mit hoher Wahrscheinlichkeit fast rechtwinklig.

Praktisch heißt das für das Spiel: Der interessante Bereich ist winzig. Zwischen „völlig danebengegriffen“ und „unmittelbar davor“ liegen manchmal nur wenige Hundertstel im Kosinuswert. Deshalb zeigt Kontexto einen Rang und keine Prozentzahl.

Selbst nachrechnen

Wer es mit eigenen Zahlen sehen will, braucht drei Zeilen. Nimm zwei Vektoren, bilde das Skalarprodukt, teile durch das Produkt der beiden Längen. Das ist die vollständige Formel; die Division durch die Längen ist genau der Schritt, der die Länge herausrechnet und nur die Richtung übriglässt.

In der Praxis normalisiert man alle Vektoren einmal vorab auf Länge 1. Danach ist die Kosinus-Ähnlichkeit einfach das Skalarprodukt, und eine ganze Rangliste wird zu einer einzigen Matrixmultiplikation. Genau so macht es Kontexto beim Aufbau der Spieldaten.

Warum die Zahl trotzdem irgendwo steht

Der Kosinuswert verschwindet nicht, er wird nur nicht angezeigt. Beim Aufbau der Spieldaten wird er für jedes der 80.000 Wörter berechnet, danach sortiert, und ab diesem Moment interessiert nur noch die Position in der sortierten Liste. Der Wert selbst wird gar nicht erst gespeichert.

Das ist eine bewusste Vereinfachung mit einem messbaren Nebeneffekt: Eine Rangliste aus ganzen Zahlen lässt sich deutlich kompakter ablegen als 80.000 Fließkommazahlen, und genau das macht es möglich, mehrere tausend Rätsel vorzuberechnen und trotzdem in Sekundenbruchteilen auszuliefern.