Text mit NLTK in Python tokenisieren
Die Text-Tokenisierung ist eine grundlegende Technik der Verarbeitung natürlicher Sprache (NLP), und eine solche Technik ist es auch Tokenisierung. Dabei handelt es sich um den Prozess der Aufteilung von Text in kleinere Komponenten oder Token. Dies können sein:
- Wörter: Ich liebe NLP → ['Ich' 'liebe' 'NLP']
- Sätze: Ich liebe NLP. Python ist großartig. → ['Ich liebe NLP.' „Python ist großartig.“]
Mit der beliebten Python-Bibliothek NLTK (Natural Language Toolkit) wird die Aufteilung von Text in sinnvolle Einheiten sowohl einfach als auch äußerst effektiv.
Grundlegende Implementierung
Sehen wir uns die Implementierung der Tokenisierung mithilfe von NLTK in Python an
Schritt 1: Installation und Einrichtung
Installieren Sie die Punkt Tokenizer-Modelle, die für die Tokenisierung von Sätzen und Wörtern benötigt werden.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Schritt 2: Sätze tokenisieren
sent_tokenize() teilt eine Zeichenfolge in eine Liste von Sätzen auf, die Satzzeichen und Abkürzungen behandeln.
Python from nltk.tokenize import sent_tokenize text = 'NLTK is a great NLP toolkit. It makes processing text easy!' sentences = sent_tokenize ( text ) print ( sentences )
Ausgabe:
['NLTK ist ein großartiges NLP-Toolkit.' „Es erleichtert die Textverarbeitung!“]
Schritt 3: Wörter tokenisieren
- word_tokenize() teilt einen Satz in Wörter und Satzzeichen als separate Token auf.
- Behandelt Kontraktionen, Satzzeichen, Zahlen und mehr.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Ausgabe:
['Tokenisierung' 'ist' 'einfach' 'mit' 'NLTK' ''s' 'word_tokenize' '.']
Sehen wir uns noch einige weitere Beispiele an
1. WordPunctTokenizer
Es Teilt Text in alphabetische und nicht alphabetische Zeichen auf
- Trennt alle Folgen von Wortzeichen und Satzzeichen in Token.
- Besonders Spaltkontraktionen (Don't wird zu Don't).
- Teilt E-Mails in E-Mails auf.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Ausgabe:
['Don' ''' 't' 'split' 'contractions' '.' 'E' '-' 'mails' ':' 'hello' '@' 'example' '.' 'com' '!']
2. TreebankWordTokenizer
Es eignet sich für die sprachliche Analyse und behandelt Interpunktion und Kontraktionen.
- Imitiert die Tokenisierung im Penn Treebank-Stil, die üblicherweise für NLP-Sprachanalysen verwendet wird.
- Behandelt bestimmte englische grammatikalische Strukturen intelligenter.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Ausgabe:
['Schauen Sie sich die 'Tokenizer' von 'NLTK' an.']
3. Regex-Tokenizer
Es passt die musterbasierte Aufteilung an.
- Tokenisiert basierend auf einem regulären Ausdrucksmuster.
- w+ stimmt auf Wörter und Zahlen zu, wobei Satzzeichen vollständig weggelassen werden.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Ausgabe:
['Benutzerdefiniert' 'Regel' 'behalten' 'nur' 'Wörter' 'Zahlen' 'Drop' 'Interpunktion']
NLTK bietet ein nützliches und benutzerfreundliches Toolkit für die Tokenisierung von Text in Python, das eine Reihe von Tokenisierungsanforderungen unterstützt, von der einfachen Wort- und Satzaufteilung bis hin zu erweiterten benutzerdefinierten Mustern.
Quiz erstellen