Tokenitza el text amb NLTK a Python

La tokenització de text és una tècnica fonamental de processament del llenguatge natural (NLP) i una d'aquestes tècniques és Tokenització.  És el procés de dividir el text en components més petits o fitxes. Aquests poden ser:

  • Paraules: m'encanta la PNL → ['m'encanta' 'NLP']
  • Frases: m'encanta la PNL. Python és genial. → ['M'encanta la PNL.' "Python és genial".]

Amb la popular biblioteca de Python  NLTK (Natural Language Toolkit) dividir text en unitats significatives esdevé simple i extremadament efectiu.

Implementació bàsica

Vegem la implementació de Tokenization mitjançant NLTK a Python

Pas 1: instal·lar i configurar

Instal·leu el punt models de tokenizer necessaris per a la tokenització de frases i paraules.

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

Pas 2: tokenitza les frases

sent_tokenize() divideix una cadena en una llista de frases que gestionen la puntuació i les abreviatures.

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  )   

Sortida:

['NLTK és un gran conjunt d'eines de PNL.' 'Fa fàcil processar el text!']

Pas 3: tokenitza les paraules

  • word_tokenize() divideix una frase en paraules i signes de puntuació com a testimonis separats.
  • Gestiona els números de puntuació de les contraccions i molt més.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Sortida:

['La tokenització' 'és' 'fàcil' 'amb' 'NLTK' ''s' 'word_tokenize' '.']

Vegem alguns exemples més

1. WordPunctTokenizer

Això Divideix el text en caràcters alfabètics i no alfabètics

  • Separa totes les seqüències de caràcters de paraules i signes de puntuació en fitxes.
  • Especialment divideix les contraccions (Don't es converteix en Don ' t).
  • Divideix els correus electrònics en correus electrònics.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Sortida:

['Don' ''' 't' 'dividir' 'contraccions' '.' 'E' '-' 'mails' ':' 'hola' '@' 'exemple' '.' 'com' '!']

2. TreebankWordTokenizer

És adequat per a l'anàlisi lingüística maneja puntuació i contraccions.

  • Imita la tokenització a l'estil Penn Treebank que s'utilitza habitualment per a l'anàlisi lingüística de PNL.
  • Maneja determinades estructures gramaticals angleses de manera més intel·ligent.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Sortida:

["Fes una ullada" als "tokenitzadors" de "NLTK".]

3. Regex Tokenizer

Personalitza la divisió basada en patrons.

  • Tokenitza basat en un patró d'expressió regular.
  • w+ fa coincidir paraules i números ometent completament la puntuació.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Sortida:

["Personalitzada" "regla" "mantenir" "només" "paraules" "nombres" "deixar" "puntuació"]

NLTK ofereix un conjunt d'eines útil i fàcil d'utilitzar per tokenitzar text a Python que admet una sèrie de necessitats de tokenització, des de la divisió bàsica de paraules i frases fins a patrons personalitzats avançats.

Crea un qüestionari