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

Amazon will 2028 Satellitennetz für mobile Endgeräte starten
Amazon Leo hat bei der US-Behörde FCC eine Genehmigung für sein D2D-Netz mit bis zu 5.105 Satelliten beantragt. Im Jahr 2028 will das Unternehmen darüber weltweit Kommunikationsdienste direkt auf mobile Endgeräte anbieten.
2 Minuten
13. Aug 2026
KI verschärft die Lage
Mitarbeiter bleiben grösstes Cyberrisiko
Zwei aktuelle Studien zeigen: Das grösste Sicherheitsrisiko für Unternehmen sitzt nicht in der IT-Infrastruktur, sondern am Arbeitsplatz der eigenen Belegschaft.
3 Minuten
Smartphones: Google zeigt die Pixel-11-Serie mit vier Modellen
Mit einigen Verbesserungen und höheren Preisen schickt Google seine neue Smartphone-Generation ins Rennen: Während das Basismodell Pixel 11 und die besser ausgestatteten Pixel 11 Pro und Pro XL die klassische Bauweise haben, kommt mit dem Pixel 11 Pro Fold auch wieder ein Modell mit Falt-Display.
4 Minuten
13. Aug 2026

Das könnte Sie auch interessieren

Der Zenit für Gamer, Cosplayer und Fans von Star Wars
Fantasy Basel 2024: der grosse Rückblick
Sie war auch dieses Jahr die wichtigste Messe für Gamer, Cosplayer oder einfach für alle, die galaktische und fantastische Geschichten lieben. PCtipp hat die coolsten Bilder auf der Fantasy Basel 2024, der grössten Schweizer Comic Con, gesammelt.
3 Minuten
13. Mai 2024
Soluna-Beach-Party-Launch
Samsung lanciert Fold-Handys und Smart-Watches
Samsung hat im Soluna-Beach-Club in Zürich bei Tiefenbrunnen seine neue Galaxy Z Serie der Foldbables und Smart-Watches vorgestellt. Das Line-Up umfasst drei Falt-Smartphones und drei smarte Uhren - allerdings für unterschiedliche Zielgruppen. PCtipp hat die Preise, und sagt, welches Modell sich für welchen Anwender empfiehlt.
6 Minuten
22. Jul 2026
Jubiläum
40 Jahre Macintosh
Am 24. Januar 1984 wurde der erste Macintosh von Apple vorgestellt. Wir gratulieren zu 40 Jahren Mac!
2 Minuten
24. Jan 2024
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare