Tokeniser tekst ved å bruke NLTK i python

Teksttokenisering er en grunnleggende NLP-teknikk (Natural Language Processing), og en slik teknikk er Tokenisering.  Det er prosessen med å dele opp tekst i mindre komponenter eller tokens. Disse kan være:

  • Ord: Jeg elsker NLP → ['Jeg' 'elsker' 'NLP']
  • Setninger: Jeg elsker NLP. Python er flott. → ['Jeg elsker NLP.' 'Python er flott.']

Med Pythons populære bibliotek  NLTK (Natural Language Toolkit) å dele opp tekst i meningsfulle enheter blir både enkelt og ekstremt effektivt.

Grunnleggende implementering

La oss se implementeringen av Tokenization ved å bruke NLTK i Python

Trinn 1: Installer og konfigurer

Installer punkt tokenizer-modeller som trengs for setnings- og ordtokenisering.

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

Trinn 2: Tokenize setninger

sent_tokenize() deler en streng i en liste over setninger som håndterer tegnsetting og forkortelser.

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  )   

Produksjon:

['NLTK er et flott NLP-verktøysett.' 'Det gjør det enkelt å behandle tekst!']

Trinn 3: Tokenize Words

  • word_tokenize() deler en setning i ord og skilletegn som separate symboler.
  • Håndterer sammentrekninger tegnsettingstall og mer.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Produksjon:

['Tokenisering' 'er' 'lett' 'med' 'NLTK' 's' 'word_tokenize' '.']

La oss se noen flere eksempler

1. WordPunctTokenizer

Den Deler opp tekst i alfabetiske og ikke-alfabetiske tegn

  • Separerer alle sekvenser av ordtegn og tegnsetting i tokens.
  • Spesielt deler sammentrekninger (Ikke blir Don ' t).
  • Deler e-poster i e-poster.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Produksjon:

['Don' ''' 't' 'splitte' 'sammentrekninger' '.' 'E' '-' 'mails' ':' 'hei' '@' 'eksempel' '.' 'com' '!']

2. TreebankWordTokenizer

Den er egnet for lingvistisk analyse håndterer tegnsetting og sammentrekninger.

  • Etterligner tokenisering i Penn Treebank-stil som ofte brukes til NLP-språklig analyse.
  • Håndterer visse engelske grammatiske strukturer mer intelligent.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Produksjon:

['Ta' 'en' 'se' 'på' 'NLTK' 's' 'tokenizers' '.']

3. Regex Tokenizer

Den tilpasser mønsterbasert splitting.

  • Tokener basert på et regulært uttrykksmønster.
  • w+ matcher ord og tall og utelater tegnsetting helt.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Produksjon:

['Egendefinert' 'regel' 'behold' 'bare' 'ord' 'tall' 'slipp' 'tegnsetting']

NLTK gir et nyttig og brukervennlig verktøysett for tokenisering av tekst i Python som støtter en rekke tokeniseringsbehov fra grunnleggende ord- og setningsdeling til avanserte tilpassede mønstre.

Lag quiz