Tokenizirajte tekst pomoću NLTK-a u pythonu

Tokenizacija teksta temeljna je tehnika obrade prirodnog jezika (NLP), a jedna takva tehnika je Tokenizacija.  To je proces dijeljenja teksta na manje komponente ili žetone. To mogu biti:

  • Riječi: Volim NLP → ['I' 'volim' 'NLP']
  • Rečenice: Volim NLP. Python je super. → ['Volim NLP.' 'Python je sjajan.']

S Pythonovom popularnom bibliotekom  NLTK (Natural Language Toolkit) dijeljenje teksta u smislene jedinice postaje jednostavno i ekstremno učinkovito.

Osnovna implementacija

Pogledajmo implementaciju tokenizacije pomoću NLTK-a u Pythonu

Korak 1: Instalirajte i postavite

Instalirajte točka modeli tokenizatora potrebni za tokenizaciju rečenica i riječi.

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

Korak 2: Označite rečenice

sent_tokenize() dijeli niz na popis rečenica koje obrađuju interpunkcijske znakove i kratice.

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  )   

Izlaz:

['NLTK je izvrstan NLP alat.' 'Olakšava obradu teksta!']

Korak 3: Tokenizirajte riječi

  • word_tokenize() dijeli rečenicu na riječi i interpunkcijske znakove kao zasebne tokene.
  • Obrađuje kontrakcije interpunkcijskih brojeva i više.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Izlaz:

['Tokenizacija' 'je' 'laka' 'sa' 'NLTK' ''s' 'word_tokenize' '.']

Pogledajmo još neke primjere

1. WordPunctTokenizer

To Dijeli tekst na abecedne i neabecedne znakove

  • Rastavlja sve nizove znakova riječi i interpunkcijskih znakova u tokene.
  • Posebno razdvaja kontrakcije (Don't postaje Don't).
  • Dijeli E-mailove na E-mailove.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Izlaz:

['Nemoj' ''' 't' 'split' 'kontrakcije' '.' 'E' '-' 'mailovi' ':' 'zdravo' '@' 'primjer' '.' 'com' '!']

2. TreebankWordTokenizer

Pogodan je za lingvističku analizu, obrađuje interpunkciju i kontrakcije.

  • Oponaša tokenizaciju u stilu Penn Treebanka koja se obično koristi za NLP lingvističku analizu.
  • Inteligentnije barata određenim engleskim gramatičkim strukturama.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Izlaz:

['Pogledajte' 'NLTK' ''s' 'tokenizere' '.']

3. Regex Tokenizer

Prilagođava dijeljenje na temelju uzorka.

  • Tokenizira na temelju uzorka regularnog izraza.
  • w+ podudara riječi i brojeve potpuno izostavljajući interpunkciju.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Izlaz:

['Prilagođeno' 'pravilo' 'zadrži' 'samo' 'riječi' 'brojevi' 'ispusti' 'interpunkcija']

NLTK pruža koristan i user-friendly alat za tokenizaciju teksta u Pythonu koji podržava niz potreba za tokenizacijom od osnovnog dijeljenja riječi i rečenica do naprednih prilagođenih uzoraka.

Napravi kviz