Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Einbettungen und Kosinus-Ähnlichkeit

Nach dieser Lektion: Ich kann erklären, was eine Einbettung ist, und zwei mit der Kosinus-Ähnlichkeit vergleichen.

Lektion, 60 Min.4 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Die Seite ohne ein gemeinsames Wort

Eine Einbettung (englisch Embedding) ist eine Zahlenliste, die die Bedeutung eines Textes darstellt. Texte mit ähnlicher Bedeutung bekommen Listen, die in dieselbe Richtung zeigen. Ein Programm kann Bedeutungen dann mit Rechnen vergleichen.

Eine Besucherin sucht auf der Bibliotheksseite nach „Regeln zum Mitnehmen von Büchern“. Die passende Seite heißt „Leihbedingungen“. Beide teilen kein Wort, also findet eine Wortsuche nichts. Zahlen können sie finden.

Am Ende dieser Lektion

Notiz

Ich kann erklären, was eine Einbettung ist, und zwei mit der Kosinus-Ähnlichkeit vergleichen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Einbettungeine Zahlenliste, die eine Bedeutung darstellt
Vektoreine Zahlenliste, gesehen als Punkt oder Pfeil
Skalarproduktdie Summe der Produkte gleichstelliger Zahlen
Kosinus-Ähnlichkeitein Wert dafür, wie gleich zwei Pfeile zeigen0.98
Abrufdas Finden der Textstücke, die zu einer Frage passen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Echte Einbettungen und unsere Ersatzstücke

Eine echte Einbettung hat Hunderte Zahlen und kommt von einem Modell. Nichts in diesem Modul erzeugt eine.

Die Lektionen nutzen kleine Ersatzstücke: erfundene Listen mit drei Zahlen und Wortzählungen, die das Skript selbst ausrechnet. So lässt sich jeder Schritt hier ausführen und prüfen. Die Methode bleibt dieselbe.

Ein Vektor ist eine Zahlenliste

Stellen Sie sich eine Zahlenliste als Punkt auf einer Karte vor. Zwei Zahlen sind ein Punkt auf einer flachen Karte. Drei Zahlen sind ein Punkt in einem Raum.

Geben Sie jeder Stelle der Liste eine Bedeutung. Hier sind die drei Stellen Tier, Fahrzeug und Essen. Eine große Zahl heißt: Das Wort handelt stark davon.

Beispiel: vier erfundene Vektoren

WortTierFahrzeugEssen
Katze0,90,10,1
Kater0,80,10,2
Bus0,10,90,0
Brezel0,10,00,9

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Kosinus-Ähnlichkeit bewertet die Gleichheit

Um zwei Vektoren zu vergleichen, brauchen Sie drei kleine Schritte. Das Skalarprodukt multipliziert gleichstellige Zahlen und addiert sie. Die Länge ist die Quadratwurzel aus dem Skalarprodukt des Vektors mit sich selbst.

Der Kosinus ist das Skalarprodukt geteilt durch beide Längen. Er ist 1, wenn die Pfeile gleich zeigen, 0 im rechten Winkel und unter 0, wenn sie auseinanderzeigen.

Beispiel: zwei kleine Vektoren

SchrittRechnung mit a = [1, 2] und b = [2, 1]Ergebnis
Skalarprodukt1 x 2 + 2 x 14
Länge von aWurzel aus (1 x 1 + 2 x 2)2,24
Länge von bWurzel aus (2 x 2 + 1 x 1)2,24
Kosinus4 geteilt durch (2,24 x 2,24)0,8

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Rechnung als Schleife schreiben

Das nächste Skript enthält die vier Vektoren und schreibt die drei Schritte als kleine Funktionen. Es gibt den Kosinus jedes Paares aus.

Es baut auch einen Zählvektor: eine feste Wortliste und die Zahl, wie oft jedes Wort in einem Satz vorkommt. Zwei Sätze mit denselben Wörtern geben Vektoren, die gleich zeigen.

Das Vektor-Skript schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Kleine erfundene Vektoren: [Tier, Fahrzeug, Essen]. Eine echte Einbettung hat Hunderte Zahlen.' 'const vektoren = {' '  katze: [0.9, 0.1, 0.1],' '  kater: [0.8, 0.1, 0.2],' '  bus: [0.1, 0.9, 0.0],' '  brezel: [0.1, 0.0, 0.9],' '};' 'function skalarprodukt(a, b) {' '  let summe = 0;' '  for (let i = 0; i < a.length; i++) summe = summe + a[i] * b[i];' '  return summe;' '}' 'function laenge(a) { return Math.sqrt(skalarprodukt(a, a)); }' 'function kosinus(a, b) { return skalarprodukt(a, b) / (laenge(a) * laenge(b)); }' > vektor.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Vektor-Skript schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const namen = Object.keys(vektoren);' 'for (let i = 0; i < namen.length; i++) {' '  for (let j = i + 1; j < namen.length; j++) {' '    const wert = kosinus(vektoren[namen[i]], vektoren[namen[j]]);' '    console.log(namen[i] + \" und \" + namen[j] + \": \" + wert.toFixed(2));' '  }' '}' '// Ein Zählvektor: Wie oft kommt jedes Wort einer festen Liste vor?' 'const woerter = [\"offen\", \"spät\", \"buch\", \"gebühr\"];' 'function zaehlen(satz) {' '  const gefunden = satz.toLowerCase().split(\" \");' '  return woerter.map(function (wort) {' '    return gefunden.filter(function (eins) { return eins === wort; }).length;' '  });' '}' >> vektor.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Vektor-Skript schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const eins = zaehlen(\"offen spät offen\");' 'const zwei = zaehlen(\"buch offen spät\");' 'console.log(\"Zählungen:\", eins.join(\" \"), \"und\", zwei.join(\" \"));' 'console.log(\"Kosinus der Zählungen:\", kosinus(eins, zwei).toFixed(2));' >> vektor.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ausführen und die Werte lesen

Befehl
docker exec -w /home/node/project agent node vektor.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die wichtigsten Zeilen der Ausgabe

ZeileWas sie zeigt
katze und kater: 0.99Sehr ähnlich
katze und bus: 0.22Kaum ähnlich
bus und brezel: 0.01Fast nichts gemeinsam
Zählungen: 2 1 0 0 und 1 1 1 0Die Zählvektoren der beiden Sätze
Kosinus der Zählungen: 0.77Die Sätze teilen die Wörter offen und spät

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele glauben, ein Kosinus von 0,9 heiße „zu 90 Prozent gleich“. Das stimmt nicht. Der Wert ordnet nur: 0,9 ist näher als 0,5. Nutzen Sie ihn für eine Rangfolge, nie als Prozentwert der Wahrheit.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.