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.
Python
   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.
Python
   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.
Python
   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.
Python
   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

Das Könnte Ihnen Gefallen