Kosinus-Ähnlichkeit-Rechner
Messen Sie, wie stark zwei Vektoren in dieselbe Richtung zeigen, von -1 bei entgegengesetzter bis 1 bei gleicher Richtung. Da die Länge keine Rolle spielt, erreichen 1, 2, 3 und 10, 20, 30 eine glatte 1, ideal für Texte, Bewertungen oder Umfrageprofile. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Erster Text
- 1, 2, 3
- Zweiter Text
- 4, -5, 6
- N
- 3
- Skalarprodukt
- 12
- Betrag von a
- 3,7416573868
- Betrag von b
- 8,7749643874
Sie senden die beiden Komponentenlisten — Embeddings, Merkmalsgewichte, Termhäufigkeiten, Umfragewerte — und erhalten das Skalarprodukt, beide Beträge und einen einzigen Ähnlichkeitswert zwischen -1 und 1: 1 bedeutet identische Richtung, 0 bedeutet orthogonal und -1 bedeutet entgegengesetzt.
Was die Kosinus-Ähnlichkeit wirklich misst
Der euklidische Abstand sagt Ihnen, wie weit zwei Punkte auseinanderliegen; die Kosinus-Ähnlichkeit sagt Ihnen, ob sie in dieselbe Richtung zeigen. Dieser Unterschied ist wichtiger, als es auf den ersten Blick scheint. Zwei Dokumente können sehr unterschiedlich lang sein und dasselbe Thema behandeln; zwei Kundenprofile können sich in absoluten Ausgaben unterscheiden und dieselbe Präferenzstruktur teilen.
Indem das Skalarprodukt durch das Produkt der Beträge geteilt wird, entfernt die Kosinus-Ähnlichkeit die Skala und behält nur die Richtung. Das Ergebnis liegt immer zwischen -1 und 1. Ein Wert von 1 bedeutet, dass die Vektoren perfekt ausgerichtet sind, 0 bedeutet, dass sie orthogonal sind und keine Richtungskomponente teilen, und -1 bedeutet, dass sie exakt entgegengesetzt sind.
Da der Betrag entfernt wird, erhalten ein Vektor [1, 2, 3] und ein Vektor [10, 20, 30] eine perfekte 1: Sie beschreiben dieselben Proportionen bei unterschiedlicher Intensität — genau das, worauf die meisten Vergleiche von Text, Geschmack oder Verhalten abzielen.
Wie der Wert berechnet wird
Anschließend werden in einem einzigen Durchlauf drei Summen aufgebaut: das Skalarprodukt Σ aᵢbᵢ und die quadrierten Beträge Σ aᵢ² und Σ bᵢ². Die Ähnlichkeit ist das Skalarprodukt geteilt durch das Produkt der Quadratwurzeln der Beträge, auf [-1, 1] begrenzt, um Gleitkomma-Rauschen abzufangen, und auf zwölf Dezimalstellen gerundet, damit die Antwort maschinenübergreifend Byte-stabil bleibt. Hat einer der Vektoren den Betrag null — alle Komponenten sind null — ist die Division undefiniert und der Aufruf schlägt mit einer eindeutigen Meldung fehl, denn ein Nullvektor hat keine Richtung, die man vergleichen könnte.
Die Antwort enthält außerdem das Skalarprodukt, beide Beträge, eine lesbare Klassifizierung und die Zwischenschritte, damit Sie jede Zahl nachprüfen können.
Wo sie in der Praxis eingesetzt wird
Die Kosinus-Ähnlichkeit ist die zentrale Metrik hinter semantischer Suche, Empfehlungsmaschinen, Deduplizierung und Qualitätsprüfungen von Clustern. Wenn Sie Text-Embeddings für die Suche speichern, ist dies der Wert, der Kandidaten sortiert; wenn Sie Nutzerprofile als Merkmalsvektoren aufbauen, finden Sie so die nächsten Nachbarn. Für Teams, die viele Vektoren vergleichen, machen die stabile Rundung und die expliziten Fehlerfälle den Einsatz in Tests und Regressionssuiten sicher: Unterschiedliche Längen und Nullvektoren schlagen deutlich fehl, statt still falsche Rankings zu erzeugen.
Anwendungsfälle
Embedding-Kandidaten sortieren
Bewerten Sie, wie nah das Embedding einer Anfrage an jedem Dokument-Embedding liegt, und sortieren Sie die Ergebnisse nach Richtungsähnlichkeit statt nach Vektorlänge.
Nahezu doppelte Elemente erkennen
Markieren Sie zwei Merkmalsvektoren als Duplikate, wenn ihre Kosinus-Ähnlichkeit über einem Schwellenwert nahe 1 liegt, selbst wenn ihre Rohwerte abweichen.
Präferenzprofile vergleichen
Finden Sie Nutzer mit derselben Geschmacksstruktur, indem Sie normalisierte Bewertungs- oder Verhaltensvektoren für eine Empfehlungsmaschine vergleichen.
Häufige Fragen
Was kostet das?
Die Ausführung ist auf dieser Seite mit demselben Code auch kostenlos in Ihrem Browser möglich.
Was bedeutet ein Wert von 0?
Die Vektoren sind orthogonal: Sie teilen keine Richtungskomponente. Ein Wert von 1 bedeutet identische Richtung und -1 exakt entgegengesetzte Richtungen.
Was passiert bei einem Nullvektor?
Ein Vektor, dessen Komponenten alle null sind, hat keine Richtung, daher ist die Ähnlichkeit undefiniert und der Aufruf schlägt mit einem klaren Fehler fehl, statt eine irreführende Zahl zurückzugeben.
Beeinflusst der Betrag des Vektors den Wert?
Nein. Der Wert misst nur die Richtung: [1, 2, 3] und [10, 20, 30] haben die Kosinus-Ähnlichkeit 1, weil ihre Proportionen identisch sind.
Welche Eingabeformate werden akzeptiert?
Die Komponenten müssen endliche Zahlen innerhalb der veröffentlichten Grenzen sein.
Was passiert, wenn die beiden Vektoren unterschiedlich lang sind?
Der Vergleich wird mit einer klaren Meldung abgelehnt. Vektoren mit unterschiedlich vielen Komponenten lassen sich nicht sinnvoll vergleichen, deshalb wird der längere nie gekürzt, um einen irreführenden Wert zu liefern.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/math/cosine-similarity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":[1,2,3],"b":[4,-5,6]}'const res = await fetch("https://api.kit.forhosting.com/math/cosine-similarity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": [
1,
2,
3
],
"b": [
4,
-5,
6
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/cosine-similarity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": [
1,
2,
3
],
"b": [
4,
-5,
6
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/cosine-similarity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":[1,2,3],"b":[4,-5,6]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":[1,2,3],"b":[4,-5,6]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/cosine-similarity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"a": [
1,
2,
3
],
"b": [
4,
-5,
6
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.cosine_similarity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_abs | 1000000000000 |
max_dim | 1000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Die Kosinus-Ähnlichkeits-API misst, wie sehr zwei Vektoren in dieselbe Richtung zeigen, unabhängig von ihrer Länge. Die Berechnung läuft in einem einzigen deterministischen Durchlauf, sodass die Zahl, die Sie in der kostenlosen Browser-Version sehen, exakt der Zahl entspricht, die die kostenpflichtige API zurückgibt.
Wie der Wert berechnet wird
Der Endpunkt wandelt beide Eingaben in Vektoren endlicher Zahlen um, akzeptiert sowohl JSON-Arrays als auch einfachen Text mit Komma-Trennung und prüft, ob beide dieselbe Länge haben — ein Vergleich zwischen Vektoren unterschiedlicher Dimension ist mathematisch sinnlos und wird daher mit einem klaren invalid_input-Fehler abgelehnt, statt stillschweigend gekürzt zu werden.
Wo sie in der Praxis eingesetzt wird
Die Fähigkeit läuft auf unserem globalen Edge, ohne nach der Anfrage etwas zu speichern, und derselbe deterministische Code, der die kostenpflichtige API betreibt, läuft kostenlos in Ihrem Browser auf dieser Seite — Sie können also ein Vektorpaar per Einfügen prüfen, bevor Sie den Aufruf in eine Pipeline einbinden. Sie zahlen erst, wenn Sie automatisieren: $0.002 pro Anfrage, ohne Aufschlag pro Dimension innerhalb der veröffentlichten Grenzen.
Technische Fragen
Können die Vektoren unterschiedliche Längen haben?
Nein. Die Kosinus-Ähnlichkeit ist nur zwischen Vektoren derselben Dimension definiert, daher werden unterschiedliche Längen mit einem invalid_input-Fehler abgelehnt.