Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

Vektoren vergleichen mit Kosinus-Ähnlichkeitsfunktion in TypeScript

Erfahren Sie, wie Sie eine Kosinus-Ähnlichkeitsfunktion in TypeScript implementieren können, um die Ähnlichkeit zwischen Vektoren für moderne Webanwendungen zu bewerten.
© (Quelle: EMGenie)

Kaum waren Large Language Models dank ChatGPT überall in der Diskussion, schwirrten auch schon Begriffe wie Vektordatenbanken und Vektorähnlichkeit durch das Internet. Eine der effektivsten Methoden, um die Ähnlichkeit zweier Vektoren festzustellen, ist die Kosinus-Ähnlichkeit. Damit lassen sich die Beziehungen zwischen Wörtern, Dokumenten oder sogar Bildern in einem hochdimensionalen Raum messen. In einem Blogpost wird gezeigt, wie Sie eine Kosinus-Ähnlichkeitsfunktion in TypeScript implementieren können, um benutzerdefinierte Anwendungen zu erstellen.

Die Kosinus-Ähnlichkeit berechnet, wie ähnlich zwei Vektoren sind, indem sie den Winkel zwischen ihnen berücksichtigt, anstatt ihre Grösse. Ein Wert von +1 bedeutet, dass die Vektoren in die gleiche Richtung zeigen, 0 bedeutet, dass sie senkrecht zueinander stehen, und -1 zeigt an, dass sie in entgegengesetzte Richtungen zeigen. Diese Messung ignoriert die Grösse der Vektoren und fokussiert sich ausschliesslich auf ihre Richtung, was insbesondere für die Bewertung der Ähnlichkeit von Textinhalten nützlich ist.

Um die Kosinus-Ähnlichkeit zu berechnen, multiplizieren Sie die entsprechenden Elemente der beiden Vektoren und summieren diese Produkte zu einem Punktprodukt. Danach berechnen Sie die Länge jedes Vektors, um die Magnituden zu bestimmen. Schliesslich teilen Sie das Punktprodukt durch das Produkt der beiden Magnituden. Dies liefert Ihnen einen Wert zwischen -1 und 1, der die Ähnlichkeit darstellt.

Im Code sieht die Implementierung einer einfachen Cosinus-Ähnlichkeitsfunktion in TypeScript so aus:

function cosineSimilarity(vecA: number[], vecB: number[]): number {  if (vecA.length !== vecB.length) {    throw new Error("Vectors must have the same dimensions");  }    const dotProduct = vecA.reduce((sum, a, i) => sum + a * vecB[i], 0);  const magnitudeA = Math.hypot(...vecA);  const magnitudeB = Math.hypot(...vecB);  return dotProduct / (magnitudeA * magnitudeB);} 

Dieses Beispiel zeigt eine einfache Berechnung von Kosinus-Ähnlichkeit zwischen zwei Vektoren. Sie können diese Funktion erweitern, um weitergehende Anforderungen zu erfüllen, wie etwa die Normalisierung von Vektoren oder die Implementierung von Angles-to-Degree Transformationsmethoden.

Die Kosinus-Ähnlichkeit hat zahlreiche Anwendungen in modernen Webentwicklungstechnologien. Sie kann verwendet werden, um semantische Suchen durchzuführen, intelligente Empfehlungsmechanismen zu schaffen oder um ähnliche Artikel und Nutzerprofile in Online-Plattformen zu identifizieren. Mit der Einführung leistungsstarker Einbettungsmodelle, wie sie beispielsweise von OpenAI bereitgestellt werden, lassen sich Texte in hochdimensionale Vektoren umwandeln, was die Genauigkeit solcher Vergleiche erheblich verbessert.

Die Kosinus-Ähnlichkeit in TypeScript implementieren.

Kommentare

Softwareentwicklung
Anzeige
Anzeige

Neueste Beiträge

Prüfung des Einsatzes von Linked Data Services
Linked Data Service (LINDAS) ist eine IT-Dienstleistung des Bundesarchivs (BAR). Mit LINDAS können Bund, Kantone und Gemeinden frei verfügbare, sogenannte offene Verwaltungsdaten (Open Government Data – OGD) vernetzen und publizieren.
2 Minuten
11. Jun 2026
PC-Maus
Im Test – Logitech Mobi Fold
Nach dem Klapp-Handy kommt die faltbare Maus. Logitechs Mobi Fold soll der ideale Begleiter für unterwegs sein. Ob das alles nur grosse Klappe ist oder auch was dahintersteckt, verrät unser Test.
3 Minuten
12. Jun 2026
Digitalstudie: Junge Nutzer wollen weniger online sein
Die Deutschen verbringen weiterhin mehr als 67 Stunden pro Woche im Internet. Vor allem bei den unter 40-Jährigen zeichnet sich jedoch ein gegenläufiger Trend ab: Viele wollen ihre Online-Zeit bewusst reduzieren, insbesondere bei Social Media und Messenger-Diensten.
3 Minuten
11. Jun 2026

Das könnte Sie auch interessieren

NFC-Angriffe auf Android verdreifacht
Cyberkriminelle nutzen zunehmend NFC-Technologie, um Bankdaten von Android-Nutzern zu stehlen. Die Angriffszahlen sind in wenigen Monaten dramatisch gestiegen.
2 Minuten
28. Mai 2026
Radios können Gesuche einreichen
BAKOM publiziert UKW-Frequenzen
Das Bundesamt für Kommunikation BAKOM hat am 28. Mai 2026 die Frequenzpakete für die Verbreitung von UKW publiziert.
2 Minuten
29. Mai 2026
Schweizer Geoportal zeigt die Schweiz aus 1000 Perspektiven
Das vom Bundesamt für Landestopografie swisstopo betriebene Geoportal umfasst seit Mai 2026 schon 1000 Datensätze zu unterschiedlichsten Themen wie Gesellschaft, Umwelt, Energie bis hin zu historischen Karten, Landschaftsmodellen und Luftbildern.
3 Minuten
19. Mai 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare