Tokenisera text med NLTK i python

Texttokenisering är en grundläggande NLP-teknik (Natural Language Processing) och en sådan teknik är Tokenisering.  Det är processen att dela upp text i mindre komponenter eller tokens. Dessa kan vara:

  • Ord: Jag älskar NLP → ['Jag' 'älskar' 'NLP']
  • Meningar: Jag älskar NLP. Python är bra. → ['Jag älskar NLP.' 'Python är bra.']

Med Pythons populära bibliotek  NLTK (Natural Language Toolkit) att dela upp text i meningsfulla enheter blir både enkelt och extremt effektivt.

Grundläggande implementering

Låt oss se implementeringen av Tokenization med NLTK i Python

Steg 1: Installera och konfigurera

Installera punkt tokenizer-modeller som behövs för menings- och ordtokenisering.

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

Steg 2: Tokenize meningar

sent_tokenize() delar en sträng i en lista med meningar som hanterar skiljetecken och förkortningar.

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 är en fantastisk NLP-verktygslåda.' 'Det gör det enkelt att bearbeta text!']

Steg 3: Tokenisera ord

  • word_tokenize() delar upp en mening i ord och skiljetecken som separata tokens.
  • Hanterar sammandragningar skiljetecken och mer.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Produktion:

['Tokenization' 'är' 'lätt' 'med' 'NLTK' 's' 'word_tokenize' '.']

Låt oss se några fler exempel

1. WordPunctTokenizer

Det Delar upp text i alfabetiska och icke-alfabetiska tecken

  • Separerar alla sekvenser av ordtecken och skiljetecken i tokens.
  • Särskilt delade sammandragningar (Don't blir Don ' t).
  • Delar upp e-postmeddelanden i e-postmeddelanden.
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' 'sammandragningar' '.' 'E' '-' 'mails' ':' 'hej' '@' 'exempel' '.' 'com' '!']

2. TreebankWordTokenizer

Den är lämplig för språklig analys hanterar interpunktion och sammandragningar.

  • Efterliknar Penn Treebank-liknande tokenisering som vanligtvis används för NLP-lingvistisk analys.
  • Hanterar vissa engelska grammatiska strukturer mer intelligent.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Produktion:

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

3. Regex Tokenizer

Den anpassar mönsterbaserad delning.

  • Tokeniserar baserat på ett reguljärt uttrycksmönster.
  • w+ matchar ord och siffror och utelämnar skiljetecken helt.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Produktion:

['Anpassad' 'regel' 'behåll' 'bara' 'ord' 'siffror' 'släpp' 'interpunktion']

NLTK tillhandahåller en användbar och användarvänlig verktygslåda för tokenisering av text i Python som stöder en rad tokeniseringsbehov från grundläggande ord- och meningsdelning till avancerade anpassade mönster.

Skapa frågesport

Du Kanske Gillar