Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tokenisierung | Grundlagen der Textvorverarbeitung
Einführung in NLP
course content

Kursinhalt

Einführung in NLP

Einführung in NLP

1. Grundlagen der Textvorverarbeitung
2. Stemming und Lemmatisierung
3. Grundlegende Textmodelle
4. Wort-Einbettungen

book
Tokenisierung

Bevor wir tatsächlich in den Prozess der Tokenisierung eintauchen, müssen wir zuerst definieren, was Tokens sind.

Folglich ist die Tokenisierung der Prozess des Aufteilens des Textes in Tokens. Zum Beispiel 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 beliebtesten Tokenisierungsmethoden die Satz- und Worttokenisierung, die verwendet wird, um ein Textdokument (oder Korpus) in Sätze und jeden Satz in Wörter zu zerlegen.

Satz-Tokenisierung

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

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

Schauen wir uns ein Beispiel an, um die Sache zu verdeutlichen:

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 können, gibt es hier nichts Kompliziertes. Sie sollten einfach einen String mit Ihrem Text als Argument von sent_tokenize() übergeben, um eine Liste von Sätzen zu erhalten. Apropos 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 die notwendigen Daten hat, um eine genaue Satz- und Worttokenisierung durchzuführen.

Worttokenisierung

Bei der Worttokenisierung gibt es mehrere gängige Methoden, um sie durchzuführen; in diesem Kapitel werden wir jedoch nur die beiden am häufigsten verwendeten besprechen.

Die einfachste und unkomplizierteste Methode ist die Verwendung der split()-Funktion der String-Klasse, die standardmäßig Zeilenumbrüche, Leerzeichen und Tabs als Trennzeichen verwendet. Sie können jedoch auch einen beliebigen String als Argument übergeben, um als Trennzeichen zu dienen.

Hier ist ein Beispiel:

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

Ein flexiblerer Ansatz ist jedoch die Verwendung der Funktion word_tokenize() im Modul tokenize der Bibliothek nltk. Diese Funktion identifiziert und trennt Wörter basierend auf Leerzeichen und Satzzeichen und zerlegt Sätze effektiv in ihre einzelnen Wörter. Ähnlich wie sent_tokenize() erfordert diese Funktion einen String als Argument.

Vergleichen wir diesen Ansatz mit der Verwendung der Methode split(). Das folgende Beispiel 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

Lassen Sie uns nun sehen, wie die split()-Methode mit demselben Text funktioniert:

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 identifiziert word_tokenize(), im Gegensatz zu split(), Interpunktion und Sonderzeichen genau als separate Tokens. Es trennt das Dollarzeichen korrekt von der Zahl und erkennt Punkte als eigenständige Tokens. Diese nuancierte Tokenisierung ist entscheidend für viele NLP-Aufgaben, bei denen die genaue Abgrenzung von Wörtern und Interpunktion die Genauigkeit und Erkenntnisse der Analyse erheblich beeinflussen kann.

Gegeben der Satz "It wasn't me, I swear!", was wird das Ergebnis der Anwendung der `split()`-Methode darauf sein?

Gegeben der Satz "It wasn't me, I swear!", was wird das Ergebnis der Anwendung der split()-Methode darauf sein?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt