Numerische Vektoren vergleichen und sortieren

Fügen Sie einen Abfragevektor und Kandidaten ein, um Ähnlichkeit oder Distanz zu berechnen. Die gewählte Metrik bestimmt die Rangfolge; abweichende Dimensionen werden markiert, Embeddings nicht erzeugt.

Läuft lokal in deinem Browser
Parsing und Berechnung erfolgen lokal. Das Werkzeug erzeugt keine Embeddings und sendet keine Vektoren an externe Dienste.
Abfragevektor
Kandidatenvektoren

Vektoren vergleichen, ohne Embeddings offenzulegen

Kosinus vergleicht Richtungen, das Skalarprodukt berücksichtigt auch Beträge und Distanzen werden aufsteigend sortiert. Vektoren passend zum Produktionsablauf normalisieren.

Vektoren nach Kosinus, Distanz oder Skalarprodukt sortieren

Fügen Sie einen Abfragevektor und beschriftete Kandidaten ein; die Seite gibt sie in der Reihenfolge der gewählten Metrik zurück. Kosinusähnlichkeit, Skalarprodukt, euklidische Distanz und Manhattan-Distanz werden im Tab mit genau den eingegebenen Werten berechnet: nichts wird normalisiert, kein Embedding-Modell wird aufgerufen und kein Vektor verlässt den Browser.

Ein Ranking ist nur so gut wie die Vektoren selbst. Vektoren aus verschiedenen Modellen oder aus demselben Modell mit anderer Vorverarbeitung liegen in verschiedenen Räumen; vergleichen Sie Ergebnisse nur, wenn die Vektoren aus derselben Verarbeitungskette stammen.

  1. Abfragevektor einfügen: Zahlen durch Kommas, Leerzeichen oder Semikolons getrennt oder als JSON-Array wie [0.82, 0.15, -0.31, 0.44].
  2. Kandidaten zeilenweise ergänzen: Beschriftung, dann ein Tabulator (oder Doppelpunkt oder Leerzeichen) und der Vektor in Klammern, zum Beispiel „Abschnitt A<TAB>[0.79, 0.18, -0.28, 0.48]“. Ein JSON-Array aus Arrays oder aus {label, vector}-Objekten funktioniert ebenfalls.
  3. Metrik wählen: Kosinusähnlichkeit und Skalarprodukt stellen den größten Wert voran, euklidische und Manhattan-Distanz die kleinste Distanz.
  4. Auf Berechnen und sortieren drücken. Ein Kandidat mit abweichender Länge oder eine unlesbare Zeile werden mit Begründung aufgelistet und aus dem Ranking genommen, statt den ganzen Durchlauf abzubrechen.
  5. Auf Leeren drücken, um das Formular zu leeren; die Metrik springt auf Kosinusähnlichkeit zurück.

Eingabeformate, Formeln der Metriken und Fehlerbehandlung

Eingabeformate, die der Parser akzeptiert

Ein Vektor ist eine Liste endlicher Zahlen. Im Abfragefeld dürfen sie durch Kommas, Leerzeichen oder Semikolons getrennt oder als JSON-Array geschrieben werden; Dezimalzahlen, Vorzeichen und wissenschaftliche Notation (1e-3, 2E-3) sind erlaubt, und Zahlen dürfen auch in Anführungszeichen stehen, wie Tabellen- und CSV-Exporte sie schreiben. null, true, false, leere Einträge und jeder andere Text werden abgelehnt: die Seite nennt den betroffenen Wert, statt ihn in 0 oder 1 umzuwandeln.

Kandidatenzeilen werden als Beschriftung plus Vektor gelesen. Als Trenner dient ein Tabulator, ein Doppelpunkt oder ein Leerzeichen; der Vektor steht in Klammern oder, wenn die Zeile keine Beschriftung trägt, als reine Zahlenliste. Zeilen ohne Beschriftung heißen „Vector 1“, „Vector 2“ und so weiter. Eine JSON-Kandidatenliste darf ein Array aus Arrays, ein Array aus {label, vector}-Objekten oder ein einzelnes flaches Array sein, das als ein Kandidat gilt.

Was die einzelnen Metriken liefern

Die Kosinusähnlichkeit teilt das Skalarprodukt durch beide Beträge und vergleicht damit nur die Richtung: der Wert läuft von −1 (entgegengesetzt) über 0 (unabhängig) bis 1 (gleiche Richtung). Für Text- und Bild-Embeddings ist das die übliche Wahl. Ein Nullvektor hat keine Richtung, sein Kosinus ist undefiniert, und die Zeile wird als nicht verfügbar statt als 0 angezeigt.

Das Skalarprodukt multipliziert die passenden Komponenten und addiert sie, wächst also sowohl mit der Richtungsübereinstimmung als auch mit der Länge der Vektoren; sortiert wird nach dem größten Wert, ein negatives Ergebnis steht unter jedem positiven. Die euklidische Distanz ist der geradlinige Abstand der beiden Punkte, die Manhattan-Distanz summiert die absoluten Komponentendifferenzen — beide stellen die kleinste Distanz voran und beide hängen vom Zahlenmaßstab ab.

Der Kosinus wird auf skalierten Kopien beider Vektoren berechnet, damit sehr große Komponenten (1e200) die Zwischenprodukte nicht überlaufen, und die euklidische Distanz wird mit Math.hypot aufsummiert, damit auch das Quadrieren nicht überläuft. Ein Skalarprodukt, das den Zahlenbereich von JavaScript wirklich überschreitet, wird als nicht verfügbar mit Begründung in der Statuszeile gemeldet, statt als Infinity zu erscheinen.

Was die Seite nicht tut

Sie erzeugt keine Embeddings, lädt keine Vektoren aus einer API und durchsucht keinen Korpus: sortiert werden genau die eingefügten Zahlen. Ebenso wenig normalisiert sie die Vektoren, verwirft doppelte Beschriftungen oder ordnet Gleichstände um — zwei Kandidaten mit gleichem Wert behalten ihre Eingabereihenfolge.

Der Balken jeder Zeile wird zwischen dem besten und dem schlechtesten Wert des aktuellen Durchlaufs skaliert; er zeigt also die relative Position innerhalb eines Rankings und ist nicht über Durchläufe oder Metriken hinweg vergleichbar. Die Wertespalte wird für die Anzeige gerundet — extreme Größenordnungen wechseln in die Exponentialschreibweise —; für exakte Arithmetik auf großen Stapeln nutzen Sie eine numerische Bibliothek in Ihrer eigenen Umgebung.

Zuletzt verwendet: