Tokenize tekst ved hjælp af NLTK i python

Teksttokenisering er en grundlæggende NLP-teknik (Natural Language Processing), og en sådan teknik er Tokenisering.  Det er processen med at opdele tekst i mindre komponenter eller tokens. Disse kan være:

  • Ord: Jeg elsker NLP → ['Jeg' 'elsker' 'NLP']
  • Sætninger: Jeg elsker NLP. Python er fantastisk. → ['Jeg elsker NLP.' 'Python er fantastisk.']

Med Pythons populære bibliotek  NLTK (Natural Language Toolkit) at opdele tekst i meningsfulde enheder bliver både simpelt og ekstremt effektivt.

Grundlæggende implementering

Lad os se implementeringen af ​​Tokenization ved hjælp af NLTK i Python

Trin 1: Installation og opsætning

Installer punkt tokenizer-modeller, der er nødvendige for sætnings- og ordtokenisering.

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

Trin 2: Tokenize sætninger

sent_tokenize() opdeler en streng i en liste over sætninger, der håndterer tegnsætning 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  )   

Produktion:

['NLTK er et fantastisk NLP-værktøjssæt.' 'Det gør det nemt at behandle tekst!']

Trin 3: Tokenize ord

  • word_tokenize() opdeler en sætning i ord og tegnsætningstegn som separate tokens.
  • Håndterer sammentrækninger tegnsætningsnumre og mere.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Produktion:

['Tokenization' 'er' 'let' 'med' 'NLTK' ''s' 'word_tokenize' '.']

Lad os se nogle flere eksempler

1. WordPunctTokenizer

Det Opdeler tekst i alfabetiske og ikke-alfabetiske tegn

  • Adskiller alle sekvenser af ordtegn og tegnsætning i tokens.
  • Især splittede sammentrækninger (Don't bliver Don ' t).
  • Opdeler e-mails i e - mails.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Produktion:

['Don' ''' 't' 'split' 'sammentrækninger' '.' 'E' '-' 'mails' ':' 'hej' '@' 'eksempel' '.' 'com' '!']

2. TreebankWordTokenizer

Det er velegnet til sproglig analyse håndterer tegnsætning og sammentrækninger.

  • Efterligner Penn Treebank-lignende tokenisering, som almindeligvis bruges til NLP-lingvistisk analyse.
  • Håndterer visse engelske grammatiske strukturer mere intelligent.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Produktion:

['Har' 'et' 'kig' 'på' 'NLTK' 's' 'tokenizers' '.']

3. Regex Tokenizer

Det tilpasser mønsterbaseret opdeling.

  • Tokeniserer baseret på et regulært udtryksmønster.
  • w+ matcher ord og tal og udelader tegnsætning fuldstændigt.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Produktion:

['Tilpasset' 'regel' 'behold' 'kun' 'ord' 'tal' 'slip' 'tegnsætning']

NLTK giver et nyttigt og brugervenligt værktøjssæt til tokenisering af tekst i Python, der understøtter en række tokeniseringsbehov fra grundlæggende ord- og sætningsopdeling til avancerede brugerdefinerede mønstre.

Opret quiz