Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Tokenisierung Mit Regulären Ausdrücken | Grundlagen der Textvorverarbeitung
Einführung in NLP

bookTokenisierung Mit Regulären Ausdrücken

Warum reguläre Ausdrücke?

Obwohl die Funktionen word_tokenize() und sent_tokenize() aus der NLTK-Bibliothek bequeme Möglichkeiten bieten, Text in Wörter und Sätze zu tokenisieren, sind sie möglicherweise nicht immer für spezifische Anforderungen der Textverarbeitung geeignet. Daher betrachten wir einen alternativen Ansatz: die Tokenisierung mithilfe von regulären Ausdrücken (Regex).

Note
Definition

Regulärer Ausdruck (Regex) ist eine Zeichenkette, die ein Suchmuster definiert. Reguläre Ausdrücke können für verschiedene Aufgaben der Textverarbeitung verwendet werden, einschließlich Suchen, Ersetzen und Aufteilen von Text basierend auf bestimmten Mustern.

Im Kontext der Tokenisierung ermöglichen reguläre Ausdrücke die Definition benutzerdefinierter Muster, die Tokens identifizieren können, und bieten somit mehr Kontrolle über den Tokenisierungsprozess als vorgefertigte Funktionen.

Verwendung von regexp_tokenize()

Glücklicherweise enthält die NLTK-Bibliothek die Funktion regexp_tokenize() im Modul tokenize, die einen String mithilfe eines regulären Ausdrucks in Teilstrings zerlegt. Diese Funktion ist besonders nützlich, wenn Text anhand von Mustern tokenisiert werden soll, die von den Standard-Tokenizern nicht gut verarbeitet werden.

Die wichtigsten Parameter von regexp_tokenize() sind die ersten beiden: text (der zu tokenisierende String) und pattern (regulärer Ausdruck).

123456
from nltk.tokenize import regexp_tokenize text = "Let's try, regex tokenization. Does it work? Yes, it does!" text = text.lower() # Tokenize a sentence tokens = regexp_tokenize(text, r'\w+') print(tokens)
copy

Wie zu sehen ist, ähnelt der Ablauf der Verwendung der Funktion word_tokenize(), jedoch können sich die Ergebnisse je nach Muster unterscheiden. In unserem Beispiel wird das Muster '\w+' verwendet, um Folgen von einem oder mehreren alphanumerischen Zeichen (Buchstaben und Zahlen) sowie Unterstrichen zu erfassen.

Das Ergebnis ist eine Liste von Wörtern ohne Satzzeichen, was sich von word_tokenize() unterscheidet, da letzteres Satzzeichen typischerweise als eigene Tokens einschließt.

Verwendung von RegexpTokenizer

Ein alternativer Ansatz für die individuelle Tokenisierung besteht in der Verwendung der Klasse RegexpTokenizer aus dem Modul tokenize von NLTK. Zunächst wird eine Instanz von RegexpTokenizer mit dem gewünschten regulären Ausdrucksmuster als Argument erstellt. Sobald eine Instanz mit dem angegebenen Muster erzeugt wurde, kann der Text als Argument an die Methode tokenize() übergeben werden.

12345678
from nltk.tokenize import RegexpTokenizer # Define a tokenizer with a regular expression tokenizer = RegexpTokenizer(r'\w+') text = "Let's try, regex tokenization. Does it work? Yes, it does!" text = text.lower() # Tokenize a sentence tokens = tokenizer.tokenize(text) print(tokens)
copy

Dieses Vorgehen liefert die gleichen Ergebnisse und kann vorteilhaft sein, wenn ein Tokenizer für verschiedene Texte benötigt wird, da der Tokenizer einmal erstellt und anschließend auf verschiedene Texteingaben ohne erneute Definition des Musters angewendet werden kann.

Im Folgenden ein weiteres Beispiel: Angenommen, es sollen nur Ziffern als Tokens verwendet werden, dann sucht das Muster '\d+' nach einer oder mehreren Ziffern, wie im folgenden Beispiel:

1234567
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer(r'\d+') text = "Give my $100 back right now or $20 each month" text = text.lower() # Tokenize a sentence tokens = tokenizer.tokenize(text) print(tokens)
copy

Insgesamt ermöglicht die Regexp-Tokenisierung eine hochgradig angepasste Tokenisierung und ist daher ideal für die Verarbeitung komplexer Muster und spezifischer Tokenisierungsregeln, die mit Standardmethoden wie word_tokenize() nur schwer umsetzbar sind. In unserem Beispiel wäre word_tokenize() nicht geeignet, wenn wir Zahlen als Token verwenden möchten.

question mark

Welche der folgenden Aussagen beschreibt am besten, was das reguläre Ausdrucksmuster '\w+' bei der Verwendung mit regexp_tokenize() oder RegexpTokenizer erfasst?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Awesome!

Completion rate improved to 3.45

bookTokenisierung Mit Regulären Ausdrücken

Swipe um das Menü anzuzeigen

Warum reguläre Ausdrücke?

Obwohl die Funktionen word_tokenize() und sent_tokenize() aus der NLTK-Bibliothek bequeme Möglichkeiten bieten, Text in Wörter und Sätze zu tokenisieren, sind sie möglicherweise nicht immer für spezifische Anforderungen der Textverarbeitung geeignet. Daher betrachten wir einen alternativen Ansatz: die Tokenisierung mithilfe von regulären Ausdrücken (Regex).

Note
Definition

Regulärer Ausdruck (Regex) ist eine Zeichenkette, die ein Suchmuster definiert. Reguläre Ausdrücke können für verschiedene Aufgaben der Textverarbeitung verwendet werden, einschließlich Suchen, Ersetzen und Aufteilen von Text basierend auf bestimmten Mustern.

Im Kontext der Tokenisierung ermöglichen reguläre Ausdrücke die Definition benutzerdefinierter Muster, die Tokens identifizieren können, und bieten somit mehr Kontrolle über den Tokenisierungsprozess als vorgefertigte Funktionen.

Verwendung von regexp_tokenize()

Glücklicherweise enthält die NLTK-Bibliothek die Funktion regexp_tokenize() im Modul tokenize, die einen String mithilfe eines regulären Ausdrucks in Teilstrings zerlegt. Diese Funktion ist besonders nützlich, wenn Text anhand von Mustern tokenisiert werden soll, die von den Standard-Tokenizern nicht gut verarbeitet werden.

Die wichtigsten Parameter von regexp_tokenize() sind die ersten beiden: text (der zu tokenisierende String) und pattern (regulärer Ausdruck).

123456
from nltk.tokenize import regexp_tokenize text = "Let's try, regex tokenization. Does it work? Yes, it does!" text = text.lower() # Tokenize a sentence tokens = regexp_tokenize(text, r'\w+') print(tokens)
copy

Wie zu sehen ist, ähnelt der Ablauf der Verwendung der Funktion word_tokenize(), jedoch können sich die Ergebnisse je nach Muster unterscheiden. In unserem Beispiel wird das Muster '\w+' verwendet, um Folgen von einem oder mehreren alphanumerischen Zeichen (Buchstaben und Zahlen) sowie Unterstrichen zu erfassen.

Das Ergebnis ist eine Liste von Wörtern ohne Satzzeichen, was sich von word_tokenize() unterscheidet, da letzteres Satzzeichen typischerweise als eigene Tokens einschließt.

Verwendung von RegexpTokenizer

Ein alternativer Ansatz für die individuelle Tokenisierung besteht in der Verwendung der Klasse RegexpTokenizer aus dem Modul tokenize von NLTK. Zunächst wird eine Instanz von RegexpTokenizer mit dem gewünschten regulären Ausdrucksmuster als Argument erstellt. Sobald eine Instanz mit dem angegebenen Muster erzeugt wurde, kann der Text als Argument an die Methode tokenize() übergeben werden.

12345678
from nltk.tokenize import RegexpTokenizer # Define a tokenizer with a regular expression tokenizer = RegexpTokenizer(r'\w+') text = "Let's try, regex tokenization. Does it work? Yes, it does!" text = text.lower() # Tokenize a sentence tokens = tokenizer.tokenize(text) print(tokens)
copy

Dieses Vorgehen liefert die gleichen Ergebnisse und kann vorteilhaft sein, wenn ein Tokenizer für verschiedene Texte benötigt wird, da der Tokenizer einmal erstellt und anschließend auf verschiedene Texteingaben ohne erneute Definition des Musters angewendet werden kann.

Im Folgenden ein weiteres Beispiel: Angenommen, es sollen nur Ziffern als Tokens verwendet werden, dann sucht das Muster '\d+' nach einer oder mehreren Ziffern, wie im folgenden Beispiel:

1234567
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer(r'\d+') text = "Give my $100 back right now or $20 each month" text = text.lower() # Tokenize a sentence tokens = tokenizer.tokenize(text) print(tokens)
copy

Insgesamt ermöglicht die Regexp-Tokenisierung eine hochgradig angepasste Tokenisierung und ist daher ideal für die Verarbeitung komplexer Muster und spezifischer Tokenisierungsregeln, die mit Standardmethoden wie word_tokenize() nur schwer umsetzbar sind. In unserem Beispiel wäre word_tokenize() nicht geeignet, wenn wir Zahlen als Token verwenden möchten.

question mark

Welche der folgenden Aussagen beschreibt am besten, was das reguläre Ausdrucksmuster '\w+' bei der Verwendung mit regexp_tokenize() oder RegexpTokenizer erfasst?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
some-alt