Tokenizujte text pomocí NLTK v pythonu

Tokenizace textu je základní technika zpracování přirozeného jazyka (NLP) a jednou takovou technikou je Tokenizace.  Je to proces rozdělování textu na menší součásti nebo tokeny. Mohou to být:

  • Slova: Miluji NLP → ['I' 'love' 'NLP']
  • Věty: Miluji NLP. Python je skvělý. → ['Miluji NLP.' 'Python je skvělý.']

S populární knihovnou Pythonu  NLTK (Natural Language Toolkit) rozdělování textu na smysluplné jednotky se stává jednoduchým a extrémně efektivním.

Základní implementace

Podívejme se na implementaci tokenizace pomocí NLTK v Pythonu

Krok 1: Instalace a nastavení

Nainstalujte bod modely tokenizerů potřebné pro tokenizaci vět a slov.

Python
   !  pip   install   nltk   import   nltk   nltk  .  download  (  'punkt'  )   

Krok 2: Tokenizace vět

sent_tokenize() rozdělí řetězec na seznam vět, které pracují s interpunkcí a zkratkami.

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  )   

výstup:

['NLTK je skvělá sada nástrojů NLP.' 'Zpracování textu je snadné!']

Krok 3: Tokenizujte slova

  • word_tokenize() rozdělí větu na slova a interpunkční znaménka jako samostatné tokeny.
  • Zvládá kontrakce interpunkční čísla a další.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

výstup:

['Tokenizace' 'je' 'snadná' 'pomocí' 'NLTK' ''s' 'word_tokenize' '.']

Podívejme se na další příklady

1. WordPunctTokenizer

To Rozdělí text na abecední a neabecední znaky

  • Odděluje všechny sekvence slovních znaků a interpunkce do tokenů.
  • Obzvláště rozdělí kontrakce (Don't Stane Don ' t).
  • Rozdělí e-maily na e-maily.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

výstup:

['Ne' ''' 't' 'rozdělit' 'kontrakce' '." 'E' '-' 'maily' ':' 'ahoj' '@' 'příklad' '.' 'com' '!']

2. TreebankWordTokenizer

Je vhodný pro lingvistickou analýzu zpracovává interpunkci a kontrakce.

  • Napodobuje tokenizaci ve stylu Penn Treebank, která se běžně používá pro lingvistickou analýzu NLP.
  • Zvládá určité anglické gramatické struktury inteligentněji.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

výstup:

['Podívejte se' 'a' 'podívejte se' 'na' 'NLTK' ''s' 'tokenizery' '.']

3. Regex Tokenizer

Přizpůsobuje rozdělení založené na vzoru.

  • Tokenizuje na základě vzoru regulárního výrazu.
  • w+ odpovídá slovům a číslům bez úplného vynechání interpunkce.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

výstup:

['Vlastní' 'pravidlo' 'ponechat' 'pouze' 'slova' 'čísla' 'vypustit' 'interpunkce']

NLTK poskytuje užitečnou a uživatelsky přívětivou sadu nástrojů pro tokenizaci textu v Pythonu, která podporuje řadu potřeb tokenizace od základního dělení slov a vět až po pokročilé vlastní vzory.

Vytvořit kvíz