Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tokenisierung | Abschnitt
Verarbeitung natürlicher Sprache

bookTokenisierung

Swipe um das Menü anzuzeigen

Bevor wir uns mit dem Prozess der Tokenisierung beschäftigen, müssen wir zunächst definieren, was Tokens sind.

Note
Definition

Tokens sind unabhängige und minimale Textelemente, die eine spezifische Syntax und Semantik besitzen.

Dementsprechend ist die Tokenisierung der Prozess, bei dem ein Text in Tokens aufgeteilt wird. Beispielsweise besteht ein Textabschnitt, ein Textdokument oder ein Textkorpus aus mehreren Komponenten, die in Sätze, Phrasen und Wörter unterteilt werden können. Tatsächlich gehören zu den gängigsten Tokenisierungsmethoden die Satz- und Worttokenisierung, mit denen ein Textdokument (oder Korpus) in Sätze und jeder Satz in Wörter zerlegt wird.

Note
Definition

Ein Textkorpus (Plural: Korpora) ist eine große und strukturierte Sammlung von Texten, die in der linguistischen und computerlinguistischen Forschung verwendet wird. Im Wesentlichen handelt es sich um eine umfassende Sammlung von geschriebenem oder gesprochenem Material, die als repräsentative Stichprobe einer bestimmten Sprache, eines Dialekts oder eines Themengebiets dient.

Satz-Tokenisierung

Beginnen wir mit der Satz-Tokenisierung. Glücklicherweise stellt nltk die Funktion sent_tokenize() im Modul tokenize zur Verfügung. Der Hauptzweck dieser Funktion besteht darin, einen gegebenen Text in eine Liste von Sätzen zu unterteilen.

sent_tokenize() verwendet ein vortrainiertes Modell, typischerweise ein maschinelles Lernmodell, das auf einem großen Textkorpus trainiert wurde, um die Grenzen zwischen Sätzen zu erkennen. Dabei werden verschiedene Hinweise im Text berücksichtigt, wie Satzzeichen (z. B. Punkte, Ausrufezeichen, Fragezeichen), Großschreibung und andere linguistische Muster, die typischerweise das Ende eines Satzes und den Beginn eines neuen markieren.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Wie Sie sehen, ist dies nicht kompliziert. Es genügt, eine Zeichenkette mit Ihrem Text als Argument an sent_tokenize() zu übergeben, um eine Liste von Sätzen zu erhalten. Bezüglich nltk.download('punkt_tab'): Dieser Befehl lädt speziell die „Punkt“-Tokenizer-Modelle herunter. Durch das Herunterladen der Punkt-Tokenizer-Modelle stellen Sie sicher, dass NLTK über die notwendigen Daten für eine präzise Satz- und Wort-Tokenisierung verfügt.

Note
Hinweis

Die Satzzeichen am Ende jedes Satzes sind im Satz enthalten.

Wort-Tokenisierung

Bei der Wort-Tokenisierung gibt es mehrere gängige Methoden; wir besprechen jedoch nur die beiden am weitesten verbreiteten.

Die direkteste und einfachste Methode ist die Verwendung der split()-Funktion der String-Klasse, die standardmäßig Zeilenumbrüche, Leerzeichen und Tabulatoren als Trennzeichen verwendet. Es ist jedoch auch möglich, eine beliebige Zeichenkette als Argument zu übergeben, die dann als Trennzeichen dient.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Hinweis

Um sicherzustellen, dass Token wie 'This' und 'this' gleich behandelt werden, ist es wichtig, den String vor der Tokenisierung in Kleinbuchstaben umzuwandeln.

Eine flexiblere Methode ist jedoch die Verwendung der Funktion word_tokenize() aus dem Modul tokenize der nltk-Bibliothek. Diese Funktion erkennt und trennt Wörter anhand von Leerzeichen und Satzzeichen und zerlegt Sätze effektiv in ihre einzelnen Wörter. Ähnlich wie sent_tokenize() erwartet diese Funktion ein String-Argument.

Im Folgenden wird dieser Ansatz mit der Verwendung der Methode split() verglichen. Das Beispiel unten verwendet word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Im Folgenden wird gezeigt, wie die Methode split() mit demselben Text arbeitet:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

In unserem Beispiel erkennt word_tokenize() im Gegensatz zu split() Satzzeichen und Sonderzeichen korrekt als separate Token. Das Dollarzeichen wird korrekt vom Zahlenwert getrennt und Punkte werden als eigenständige Token erkannt. Diese differenzierte Tokenisierung ist für viele NLP-Aufgaben entscheidend, da die präzise Abgrenzung von Wörtern und Satzzeichen die Genauigkeit und Aussagekraft der Analyse maßgeblich beeinflussen kann.

question mark

Gegeben ist der Satz "It wasn't me, I swear!". Was ist das Ergebnis, wenn die split()-Methode darauf angewendet wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 3
some-alt