Tokenisierung 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).
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).
123456from 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)
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.
12345678from 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)
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:
1234567from 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)
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.45
Tokenisierung 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).
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).
123456from 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)
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.
12345678from 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)
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:
1234567from 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)
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.
Danke für Ihr Feedback!