Tokenisoi teksti NLTK:lla pythonissa

Tekstin tokenointi on perustavanlaatuinen NLP (Natural Language Processing) tekniikka, ja yksi tällainen tekniikka on Tokenointi.  Se on prosessi, jossa teksti jaetaan pienempiin osiin tai tunnuksiin. Nämä voivat olla:

  • Sanat: Rakastan NLP:tä → ['I' 'love' 'NLP']
  • Lauseet: Rakastan NLP:tä. Python on hieno. → ['Rakastan NLP:tä.' 'Python on hieno.']

Pythonin suositulla kirjastolla  NLTK (Natural Language Toolkit) tekstin jakamisesta merkityksellisiin yksiköihin tulee sekä yksinkertaista että äärimmäisen tehokasta.

Perustoteutus

Katsotaanpa Tokenisaation toteutusta NLTK:n avulla Pythonissa

Vaihe 1: Asenna ja määritä

Asenna kohta tokenizer-mallit, joita tarvitaan lauseen ja sanan tokenointiin.

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

Vaihe 2: Tokenisoi lauseet

sent_tokenize() jakaa merkkijonon välimerkkejä ja lyhenteitä käsittelevien lauseiden luetteloon.

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  )   

Lähtö:

['NLTK on loistava NLP-työkalupakki.' 'Se tekee tekstin käsittelystä helppoa!']

Vaihe 3: Tokenisoi sanat

  • word_tokenize() jakaa lauseen sanoiksi ja välimerkit erillisinä tunnuksina.
  • Käsittelee supistuksia, välimerkkejä ja paljon muuta.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Lähtö:

["Tokenization" "on" "helppo" ""NLTK" "s" "word_tokenize" ".']

Katsotaanpa lisää esimerkkejä

1. WordPunctTokenizer

Se Jakaa tekstin aakkosllisiin ja ei-aakkosisiin merkkeihin

  • Erottelee kaikki sanamerkkijonot ja välimerkit merkit.
  • Erityisesti halkaisee supistuksia (älä muuta Don 't).
  • Jakaa sähköpostit sähköpostiviesteiksi.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Lähtö:

['Älä' ''' 't' 'jaa' 'supistuksia' '.' 'E' '-' 'postit' ':' 'hei' '@' 'esimerkki' '.' 'com''!']

2. TreebankWordTokenenizer

Se sopii lingvistiseen analyysiin, joka käsittelee välimerkkejä ja supistuksia.

  • Jäljittelee Penn Treebank -tyylistä tokenointia, jota käytetään yleisesti NLP-kielianalyysissä.
  • Käsittelee tiettyjä englannin kieliopillisia rakenteita älykkäämmin.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Lähtö:

["Katso" 'NLTK' 's' 'tunnuksia'.'.]

3. Regex Tokenizer

Se mukauttaa kuviopohjaista jakamista.

  • Tokenisoi säännöllisen lausekkeen mallin perusteella.
  • w+ vastaa sanoja ja numeroita jättäen välimerkit kokonaan pois.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Lähtö:

["Muokattu" "sääntö" "säilytä" "vain" "sanat" "numerot" "pudota" "välimerkit"]

NLTK tarjoaa hyödyllisen ja käyttäjäystävällisen työkalupakin tekstin tokenointiin Pythonissa, ja se tukee useita tokenointitarpeita perussanojen ja lauseiden jakamisesta kehittyneisiin mukautettuihin malleihin.

Luo tietokilpailu