Eine Antwort auf einem langen Blatt
Ein Dokument zu zerlegen (englisch Chunking) heißt, es in Stücke zu teilen, die klein genug sind, um einzeln gefunden und gelesen zu werden. Das ist wichtig, weil der Abruf ganze Stücke liefert und ihre Größe bestimmt, was Sie zurückbekommen.
Eine Bibliothek hat ein einziges Infoblatt mit Öffnungszeiten, Leihregeln und Lernräumen. Jemand fragt nach den Gebühren. Die Antwort ist ein Satz. Das ganze Blatt zu liefern, begräbt sie.
Am Ende dieser Lektion
Notiz
Ich kann ein Dokument so zerlegen, dass sich jedes Stück finden lässt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Textstück | ein Teil eines zerlegten Dokuments | |
| Stückgröße | wie viele Wörter ein Textstück hat | 8 |
| Überlappung | die Wörter, die zwei Stücke nacheinander teilen | |
| Überschrift | eine Titelzeile, die einen Abschnitt eröffnet | |
| Abruf | das Finden der Stücke, die eine Frage beantworten |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum ein Dokument in Stücke geschnitten wird
Ein einziger Vektor für ein ganzes Blatt mischt alle Themen zu einem Durchschnitt. Eine Frage zu Gebühren wirkt dann nicht näher am Blatt als eine Frage zu Räumen.
Ein kleines Stück handelt von einer Sache, und sein Vektor zeigt klar irgendwohin. Es ist auch kurz genug, um später neben ein paar anderen in eine Aufforderung zu passen.
Stückgröße und Überlappung
Die einfachste Zerlegung zählt Wörter. Ein Stück von 8 Wörtern hat 8 Wörter. Das nächste beginnt ein paar Wörter vor dem Ende des vorigen. Diese geteilten Wörter sind die Überlappung.
Die Überlappung verhindert, dass eine Idee in der Mitte durchgeschnitten wird. Ein Satz am Rand eines Stücks steht auch am Anfang des nächsten.
Beispiel: Überlappung bei zehn Wörtern
| Stück | Beginnt bei Wort | Wörter |
|---|---|---|
| 1 | 1 | a b c d |
| 2 | 4 | d e f g |
| 3 | 7 | g h i j |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Schnitte an Überschriften halten eine Idee zusammen
Eine Wortzahl weiß nicht, wo eine Idee endet. Eine Überschrift weiß es. Hat das Dokument Überschriften, beginnen Sie bei jeder ein neues Stück.
Das Skript unten macht beides. Es zerlegt das Bibliotheksblatt an seinen Überschriften und schneidet dann einen Abschnitt nach Wörtern mit Überlappung.
Das Zerlegungs-Skript schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const blatt = \"# Öffnungszeiten\nDie Bibliothek öffnet von Montag bis Freitag um 9 Uhr. Am Samstag öffnet sie um 10 Uhr. Am Sonntag ist sie geschlossen.\n# Ausleihe\nSie können 8 Bücher für 3 Wochen ausleihen. Ein verspätetes Buch kostet 20 Cent pro Tag. Jedes Buch lässt sich zweimal online verlängern.\n# Lernräume\nEin Raum bietet Platz für 6 Personen. Reservieren Sie am Schalter oder online. Eine Reservierung dauert 2 Stunden.\";' 'function nachUeberschrift(text) {' ' const teile = [];' ' const zeilen = text.split(\"\n\");' ' for (let i = 0; i < zeilen.length; i++) {' ' if (zeilen[i].startsWith(\"# \")) {' ' teile.push({ titel: zeilen[i].slice(2), text: \"\" });' ' } else {' ' const letzter = teile[teile.length - 1];' ' letzter.text = (letzter.text + \" \" + zeilen[i]).trim();' ' }' ' }' ' return teile;' '}' > zerlegen.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 Zerlegungs-Skript schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function nachWoertern(text, groesse, ueberlappung) {' ' const woerter = text.split(\" \");' ' const stuecke = [];' ' let anfang = 0;' ' while (anfang < woerter.length) {' ' stuecke.push(woerter.slice(anfang, anfang + groesse).join(\" \"));' ' if (anfang + groesse >= woerter.length) break;' ' anfang = anfang + groesse - ueberlappung;' ' }' ' return stuecke;' '}' 'const teile = nachUeberschrift(blatt);' 'console.log(\"Nach Überschrift:\", teile.length, \"Textstücke\");' 'teile.forEach(function (teil) { console.log(\"-\", teil.titel + \":\", teil.text.split(\" \").length, \"Wörter\"); });' 'const stuecke = nachWoertern(teile[1].text, 8, 3);' 'console.log(\"Nach Wörtern, Größe 8, Überlappung 3:\", stuecke.length, \"Textstücke\");' 'stuecke.forEach(function (stueck) { console.log(\"-\", stueck); });' >> zerlegen.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 Stücke lesen
docker exec -w /home/node/project agent node zerlegen.jsHier 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
| Zeile | Was sie zeigt |
|---|---|
| Nach Überschrift: 3 Textstücke | Ein Stück je Überschrift |
| - Ausleihe: 23 Wörter | Die Größe des mittleren Stücks |
| Nach Wörtern, Größe 8, Überlappung 3: 4 Textstücke | Der Ausleihtext in vier Stücke geschnitten |
| - Tag. Jedes Buch lässt sich zweimal online verlängern. | Seine ersten drei Wörter beenden auch das Stück davor |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele glauben, größere Stücke seien sicherer, weil sie mehr enthalten. Ein großes Stück hat einen Vektor, der mehrere Themen vermischt, und es füllt die Aufforderung. Wählen Sie das kleinste Stück, das noch eine ganze Antwort enthält.