Tokenizujte text pomocou NLTK v pythone

Tokenizácia textu je základná technika spracovania prirodzeného jazyka (NLP) a jednou z týchto techník je Tokenizácia.  Je to proces rozdelenia textu na menšie komponenty alebo tokeny. Môžu to byť:

  • Slová: Milujem NLP → ['I' 'love' 'NLP']
  • Vety: Milujem NLP. Python je skvelý. → ['Milujem NLP.' 'Python je skvelý.']

S populárnou knižnicou Pythonu  NLTK (Natural Language Toolkit) rozdelenie textu na zmysluplné jednotky sa stáva jednoduchým a extrémne efektívnym.

Základná implementácia

Pozrime sa na implementáciu tokenizácie pomocou NLTK v Pythone

Krok 1: Inštalácia a nastavenie

Nainštalujte bod modely tokenizérov potrebné na tokenizáciu viet a slov.

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

Krok 2: Tokenizujte vety

sent_tokenize() rozdelí reťazec na zoznam viet, ktoré spracovávajú interpunkciu a skratky.

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 skvelá súprava nástrojov NLP.' 'Uľahčuje to spracovanie textu!']

Krok 3: Tokenizujte slová

  • word_tokenize() rozdelí vetu na slová a interpunkčné znamienka ako samostatné tokeny.
  • Zvláda kontrakcie interpunkčné čísla a ďalšie.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

výstup:

['Tokenizácia' 'je' 'ľahká' 'pomocou' 'NLTK' ''s' 'word_tokenize' '.']

Pozrime sa na ďalšie príklady

1. WordPunctTokenizer

to Rozdeľuje text na abecedné a neabecedné znaky

  • Rozdeľuje všetky sekvencie slovných znakov a interpunkcie do tokenov.
  • Predovšetkým rozdelí kontrakcie (Nestáva sa Don ' t).
  • Rozdeľuje 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:

['Nerozdeľuj' ''' 'nerozdeľuj' 'kontrakcie' '." 'E' '-' 'maily' ':' 'ahoj' '@' 'príklad' '.' 'com' '!']

2. TreebankWordTokenizer

Je vhodný na lingvistickú analýzu, zvláda interpunkciu a kontrakcie.

  • Napodobňuje tokenizáciu v štýle Penn Treebank, ktorá sa bežne používa na lingvistickú analýzu NLP.
  • Inteligentnejšie zvláda určité anglické gramatické štruktúry.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

výstup:

['Pozrite si' 'a' 'pozrite' 'NLTK' ''s' 'tokenizers' '.']

3. Regex Tokenizer

Prispôsobuje delenie na základe vzoru.

  • Tokenizuje na základe vzoru regulárneho výrazu.
  • w+ zhoduje sa so slovami a číslami a úplne vynecháva interpunkciu.
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' 'ponechať' 'iba' 'slová' 'čísla' 'vynechať' 'interpunkciu']

NLTK poskytuje užitočnú a užívateľsky prívetivú súpravu nástrojov na tokenizáciu textu v Pythone, ktorá podporuje celý rad potrieb tokenizácie od základného delenia slov a viet až po pokročilé vlastné vzory.

Vytvoriť kvíz