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

Tokenisierung: Text in Tokens zerlegen

Nach dieser Lektion: Ich kann einen Text in Tokens zerlegen.

Lektion, 50 Min.3 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Was ist Tokenisierung?

Tokenisierung (englisch tokenization) heißt, einen Text in kleine Stücke zu zerlegen, die ein Programm zählen und vergleichen kann. Ohne diesen Schritt wertet kein Programm Sprache aus, weder eine Suchmaschine noch ein Spamfilter noch ein Sprachmodell.

Die Mensa einer Hochschule sammelt 2 000 Rückmeldungen. Niemand liest sie alle. Ein Programm kann sie zählen, sobald es weiß, was ein Wort ist.

Am Ende dieser Lektion

Notiz

Ich kann einen Text in Tokens zerlegen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Tokenein Stück Text, mit dem ein Programm arbeitetmensa
Tokenisierungdas Zerlegen eines Textes in Tokens
NormalisierungText auf eine einheitliche Form bringen
Vokabulardie Liste der verschiedenen Tokens eines Textes
Stoppwortein sehr häufiges Wort mit wenig Inhaltdie

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

Ein Token ist ein Stück Text

Ein Programm sieht einen Text zuerst als eine lange Zeichenkette. Es muss ihn zerlegen, bevor es zählen kann. Die Stücke heißen Tokens.

Meist ist ein Token ein Wort. Es kann aber auch ein einzelnes Zeichen oder ein Wortteil sein. Die einfachste Zerlegung trennt an jedem Leerzeichen.

Einen Satz am Leerzeichen trennen

Code: python
satz = "Die Mensa öffnet um elf Uhr."
tokens = satz.split()
print(tokens)
print(len(tokens), "Tokens")
# Ändern Sie den Satz. Was passiert mit dem Punkt?

Dasselbe im Terminal des Labs

Befehl
docker exec jupyter python3 -c "print('Die Mensa oeffnet um elf Uhr.'.split())"

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

Satzzeichen und Großbuchstaben stören beim Zählen

Der Befehl zeigt eine Liste mit sechs Tokens. Das letzte heißt Uhr. mit Punkt, und das erste beginnt mit einem großen D. Für ein Programm sind Uhr. und Uhr zwei verschiedene Tokens.

Deshalb bringt man Text vor dem Zählen in eine einheitliche Form. Das heißt Normalisierung: alles klein schreiben und die Satzzeichen entfernen.

Beispiel: vom Rohtext zu den Tokens

SchrittErgebnis
RohtextDie Mensa öffnet um elf Uhr. Die Mensa schließt um 14 Uhr.
Klein geschriebendie mensa öffnet um elf uhr. die mensa schließt um 14 uhr.
Satzzeichen entferntdie mensa öffnet um elf uhr die mensa schließt um 14 uhr
Am Leerzeichen getrennt12 Tokens: die, mensa, öffnet, um, elf, uhr, die, mensa, schließt, um, 14, uhr

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

Text bereinigen und Tokens zählen

Code: python
text = "Die Mensa öffnet um elf Uhr. Die Mensa schließt um 14 Uhr."
text = text.lower()
for zeichen in ".,;:!?":
    text = text.replace(zeichen, "")
tokens = text.split()
print(tokens)
print(len(tokens), "Tokens")
# Fügen Sie ein Komma in den Text ein. Wird es entfernt?

Bereinigen in einer Zeile

Befehl
docker exec jupyter python3 -c "t='Die Mensa oeffnet um elf Uhr. Die Mensa schliesst um 14 Uhr.'; print(t.lower().replace('.', '').replace(',', '').split())"

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

Ein häufiger Fehler

Warnung

Viele denken, ein Token sei immer ein ganzes Wort. Das gilt nur für die einfache Zerlegung am Leerzeichen. Große Sprachmodelle zerlegen seltene Wörter in Teile. Was ein Token ist, bestimmt also das Verfahren.

Das Vokabular zählt die verschiedenen Tokens

Ein Text hat oft viele Tokens, aber weniger verschiedene. Die Liste der verschiedenen Tokens heißt Vokabular. Im Beispiel von oben hat der Text 12 Tokens und 8 verschiedene.

Sehr häufige Wörter wie „die“ oder „und“ sagen wenig über ein Thema. Man nennt sie Stoppwörter und lässt sie oft weg.

Das Vokabular eines Textes aufbauen

Code: python
tokens = "die mensa öffnet um elf uhr die mensa schließt um 14 uhr".split()
vokabular = []
for token in tokens:
    if token not in vokabular:
        vokabular.append(token)
print(vokabular)
print(len(tokens), "Tokens,", len(vokabular), "verschiedene")
# Wie groß ist das Vokabular, wenn Sie "die" überall weglassen?

Drei Wege, Text zu zerlegen

ArtTokens für „Semesterticket“Eigenschaft
ZeichenS, e, m, e, s, t, e, r, t, i, c, k, e, tsehr kleines Vokabular, sehr lange Listen
WortSemesterticketkurze Listen, aber jedes neue Wort ist unbekannt
WortteilSemester, ticket (ein mögliches Ergebnis)ein Mittelweg, den große Modelle nutzen

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

Tokens und verschiedene Tokens zählen

Befehl
docker exec jupyter python3 -c "t='die mensa oeffnet um elf uhr die mensa schliesst um 14 uhr'.split(); print(len(t), len(set(t)))"

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

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

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.