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

bookTokenisierung

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 bestimmte Syntax und Semantik besitzen.

Dementsprechend ist Tokenisierung der Prozess, bei dem ein Text in Tokens unterteilt 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 Satz- und Worttokenisierung zu den gebräuchlichsten Methoden, um ein Textdokument (oder Korpus) in Sätze und jeden Satz in Wörter zu zerlegen.

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. Sie müssen lediglich eine Zeichenkette mit Ihrem Text als Argument an sent_tokenize() ü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 einfachste und direkteste Methode ist die Verwendung der split()-Funktion der String-Klasse, die standardmäßig Zeilenumbrüche, Leerzeichen und Tabulatoren als Trennzeichen verwendet. Sie können jedoch auch eine beliebige Zeichenkette als Argument übergeben, um diese als Trennzeichen zu nutzen.

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.

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

Nun betrachten wir, wie sich die Methode split() mit demselben Text verhält:

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!". Welches Ergebnis liefert die Anwendung der Methode split() auf diesen Satz?

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

Suggested prompts:

Can you explain the difference between sentence and word tokenization?

Why is it important to use the Punkt tokenizer models in NLTK?

Can you give more examples of when precise tokenization is necessary?

Awesome!

Completion rate improved to 3.45

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 bestimmte Syntax und Semantik besitzen.

Dementsprechend ist Tokenisierung der Prozess, bei dem ein Text in Tokens unterteilt 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 Satz- und Worttokenisierung zu den gebräuchlichsten Methoden, um ein Textdokument (oder Korpus) in Sätze und jeden Satz in Wörter zu zerlegen.

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. Sie müssen lediglich eine Zeichenkette mit Ihrem Text als Argument an sent_tokenize() ü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 einfachste und direkteste Methode ist die Verwendung der split()-Funktion der String-Klasse, die standardmäßig Zeilenumbrüche, Leerzeichen und Tabulatoren als Trennzeichen verwendet. Sie können jedoch auch eine beliebige Zeichenkette als Argument übergeben, um diese als Trennzeichen zu nutzen.

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.

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

Nun betrachten wir, wie sich die Methode split() mit demselben Text verhält:

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!". Welches Ergebnis liefert die Anwendung der Methode split() auf diesen Satz?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3
some-alt