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

Echtzeittext - Bundesrat schafft Grundlage für neue Notruffunktion
Der Bundesrat hat mehrere Verordnungen angepasst, um ein sicheres Notrufsystem zu fördern. In Zukunft können Menschen in Notlage die Notdienste von Polizei, Feuerwehr und Sanität per Echtzeittext auf den Smartphones auch schriftlich erreichen. 
3 Minuten
Stromverbrauch und Effizienzpotenziale von Rechenzentren in der Schweiz
2024 betrug der Stromverbrauch der Rechenzentren in der Schweiz 2,1 TWh, was ungefähr 3,6 Prozent des Gesamtverbrauchs entspricht. Bis 2030 wird ein Anstieg des Stromverbrauchs der inländischen Rechenzentren auf 2,5 bis 3,2 TWh erwartet. 
3 Minuten
ggs netz übernimmt sämtliche Kommunikationsnetze der GIB-Solutions
Die ggs netz ag übernahm per 1. Mai 2026 sämtliche Kommunikations-netze der GIB-Solutions AG. Mit der Transaktion kommen rund 10’000 Digitalanschlüsse hinzu. Die übernommenen Netze werden künftig über die neu gegründete Tochtergesell-schaft ggs plus ag betrieben.
3 Minuten

Das könnte Sie auch interessieren

Publireportage
Ist öffentliches WLAN sicher? Das solltest du wissen
Öffentliche WLAN-Netze sind überall: in Flughäfen, Hotels, Bibliotheken, Einkaufszentren und vielen anderen Orten. Sich schnell und kostenlos mit dem Internet zu verbinden, war noch nie so einfach. Doch so praktisch diese Netzwerke auch sind – für Cyberkriminelle sind sie ein echtes Einfallstor.
3 Minuten
Vergabe der UKW-Konzessionen für Radios 2027 bis 2034
Das Bundesamt für Kommunikation BAKOM hat das Verfahren für die Vergabe der UKW-Funkkonzessionen zur Verbreitung von Radioprogrammen ab 2027 festgelegt. Die SRG und Privatradios mit Leistungsauftrag können auf Gesuch hin ihre bisherigen Frequenzen weiter nutzen. SRG vor UKW-Rückkehr?
3 Minuten
21. Apr 2026
Lederarmbänder werden zu Stromspeichern
Forscher der Jilin-Universität machen aus ledernen Jacken, Trachtenhosen und Uhrarmbändern Batterien. Dabei bleibt ihre ursprüngliche Funktion erhalten.
3 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare