Tokenizirajte besedilo z uporabo NLTK v pythonu

Tokenizacija besedila je temeljna tehnika obdelave naravnega jezika (NLP) in ena taka tehnika je Tokenizacija.  Je postopek delitve besedila na manjše komponente ali žetone. To so lahko:

  • Besede: I love NLP → ['I' 'love' 'NLP']
  • Stavki: Obožujem NLP. Python je odličen. → ['Obožujem NLP.' 'Python je odličen.']

S priljubljeno knjižnico Python  NLTK (Natural Language Toolkit) razdelitev besedila na smiselne enote postane enostavna in izjemno učinkovita.

Osnovna izvedba

Oglejmo si izvedbo tokenizacije z uporabo NLTK v Pythonu

1. korak: namestitev in nastavitev

Namestite točka modeli tokenizerja, potrebni za tokenizacijo stavkov in besed.

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

2. korak: Tokenizirajte stavke

sent_tokenize() razdeli niz na seznam stavkov, ki obravnavajo ločila in okrajšave.

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  )   

Izhod:

['NLTK je odličen komplet orodij za NLP.' 'Olajša obdelavo besedila!']

3. korak: Tokenizirajte besede

  • word_tokenize() razdeli stavek na besede in ločila kot ločene žetone.
  • Obravnava kontrakcije, ločila in še več.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Izhod:

['Tokenizacija' 'je' 'enostavna' 'z' 'NLTK' ''s' 'word_tokenize' '.']

Oglejmo si še nekaj primerov

1. WordPunctTokenizer

To Besedilo razdeli na abecedne in neabecedne znake

  • Loči vsa zaporedja besednih znakov in ločil v žetone.
  • Še posebej razcepi kontrakcije (Don't postane Don't).
  • E-poštna sporočila razdeli na e-poštna sporočila.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Izhod:

['Ne' ''' 't' 'split' 'kontrakcije' '.' 'E' '-' 'mails' ':' 'hello' '@' 'example' '.' 'com' '!']

2. TreebankWordTokenizer

Primeren je za jezikovno analizo, obravnava ločila in kontrakcije.

  • Posnema tokenizacijo v slogu Penn Treebank, ki se običajno uporablja za NLP jezikovno analizo.
  • Bolj inteligentno obravnava določene angleške slovnične strukture.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Izhod:

['Oglejte si' 'NLTK' ''s' 'tokenizatorje' '.']

3. Regex Tokenizer

Prilagodi razdelitev na podlagi vzorcev.

  • Tokenizira na podlagi vzorca regularnega izraza.
  • w+ se ujema z besedami in številkami, ki popolnoma izpustijo ločila.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Izhod:

['Po meri' 'pravilo' 'ohrani' 'samo' 'besede' 'številke' 'spusti' 'ločila']

NLTK ponuja uporaben in uporabniku prijazen nabor orodij za tokenizacijo besedila v Pythonu, ki podpira vrsto potreb po tokenizaciji od osnovnega razdeljevanja besed in stavkov do naprednih vzorcev po meri.

Ustvari kviz