Tokenizuokite tekstą naudodami NLTK python

Teksto prieigos raktas yra pagrindinė natūralios kalbos apdorojimo (NLP) technika, o viena iš tokių būdų yra Tokenizavimas.  Tai teksto padalijimas į mažesnius komponentus arba žetonus. Tai gali būti:

  • Žodžiai: Aš myliu NLP → [„Aš“ „myliu“ „NLP“]
  • Sakiniai: Aš myliu NLP. Python yra puikus. → ['Aš myliu NLP.' „Python yra puikus.“]

Su populiaria Python biblioteka  NLTK (Natural Language Toolkit) teksto skaidymas į prasmingus vienetus tampa paprastas ir itin efektyvus.

Pagrindinis įgyvendinimas

Pažiūrėkime, kaip įgyvendinamas Tokenization naudojant NLTK Python

1 veiksmas: įdiekite ir nustatykite

Įdiekite tašką žetonų modeliai, reikalingi sakinių ir žodžių ženklinimui.

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

2 veiksmas: ženklinkite sakinius

send_tokenize() suskaido eilutę į sakinių, kuriuose tvarkomi skyrybos ženklai ir santrumpos, sąrašą.

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  )   

Išvestis:

["NLTK yra puikus NLP įrankių rinkinys." „Tai palengvina teksto apdorojimą!“]

3 veiksmas: Žodžių tokenizavimas

  • word_tokenize() suskaido sakinį į žodžius ir skyrybos ženklus kaip atskirus prieigos raktus.
  • Tvarko susitraukimų skyrybos numerius ir kt.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Išvestis:

["Tokenizavimas" "yra" "lengvas" "su" "NLTK" "s" "word_tokenize" ".']

Pažiūrėkime daugiau pavyzdžių

1. WordPunctTokenizer

Tai Padalina tekstą į abėcėlės ir neabėcėlės simbolius

  • Atskiria visas žodžių simbolių sekas ir skyrybos ženklus į žetonus.
  • Ypač suskaido sąrėmius (netampa „Don't“).
  • El. laiškus skaido į el. laiškus.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Išvestis:

["Neskirstykite" "susitraukimai" 'E' '-' 'laiškai' ':' 'labas' '@' 'pavyzdys' '. 'com''!']

2. TreebankWordTokenizer

Jis tinka kalbinei analizei, tvarko skyrybos ženklus ir susitraukimus.

  • Imituoja Penn Treebank stiliaus tokenizavimą, kuris dažniausiai naudojamas NLP kalbinei analizei.
  • Sumaniau tvarko tam tikras anglų kalbos gramatines struktūras.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Išvestis:

["Pažvelkite" į "NLTK" "s" "žetonus" ".]

3. Regex Tokenizer

Jis tinkina padalijimą pagal šabloną.

  • Tokenizuoja pagal reguliariosios išraiškos šabloną.
  • w+ atitinka žodžius ir skaičius, visiškai praleidžiant skyrybos ženklus.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Išvestis:

["Tinkinta" "taisyklė", "laikyti" "tik" "žodžiai" "skaičiai" "nuleisti" "skyrybos ženklai"]

NLTK suteikia naudingą ir patogų įrankių rinkinį, skirtą tekstui ženklinti „Python“, palaikantį įvairius atpažinimo poreikius nuo pagrindinių žodžių ir sakinių skaidymo iki išplėstinių pasirinktinių šablonų.

Sukurti viktoriną