Tokenizza il testo usando NLTK in Python

La tokenizzazione del testo è una tecnica fondamentale di elaborazione del linguaggio naturale (NLP) e una di queste tecniche è Tokenizzazione.  È il processo di divisione del testo in componenti o token più piccoli. Questi possono essere:

  • Parole: amo la PNL → ['Io' 'amo' 'PNL']
  • Frasi: Adoro la PNL. Python è fantastico. → ['Adoro la PNL.' "Python è fantastico."]

Con la popolare libreria di Python  NLTK (Natural Language Toolkit) dividere il testo in unità significative diventa semplice ed estremamente efficace.

Implementazione di base

Vediamo l'implementazione della Tokenizzazione utilizzando NLTK in Python

Passaggio 1: installazione e configurazione

Installa il punto modelli di tokenizzazione necessari per la tokenizzazione di frasi e parole.

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

Passaggio 2: tokenizzare le frasi

sent_tokenize() divide una stringa in un elenco di frasi che gestiscono la punteggiatura e le abbreviazioni.

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  )   

Produzione:

['NLTK è un ottimo toolkit per la PNL.' 'Semplifica l'elaborazione del testo!']

Passaggio 3: tokenizzare le parole

  • word_tokenize() divide una frase in parole e segni di punteggiatura come token separati.
  • Gestisce i numeri di punteggiatura delle contrazioni e altro ancora.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Produzione:

['La tokenizzazione' 'è' 'facile' 'con' 'NLTK' ''s' 'word_tokenize' '.']

Vediamo altri esempi

1. WordPunctTokenizzatore

Esso Divide il testo in caratteri alfabetici e non alfabetici

  • Separa tutte le sequenze di caratteri di parole e di punteggiatura in token.
  • In particolare divide le contrazioni (il Don't diventa Don't).
  • Suddivide le email in email.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Produzione:

['Don' ''' 't' 'dividere' 'contrazioni' '.' 'E' '-' 'mail' ':' 'ciao' '@' 'esempio' '.' 'com'' '!']

2. Tokenizzatore di parole di Treebank

È adatto per l'analisi linguistica che gestisce la punteggiatura e le contrazioni.

  • Imita la tokenizzazione in stile Penn Treebank comunemente utilizzata per l'analisi linguistica della PNL.
  • Gestisce alcune strutture grammaticali inglesi in modo più intelligente.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Produzione:

['Dai' 'un' 'occhiata' 'a' 'NLTK'' ''i' 'tokenizzatori''.']

3. Tokenizzatore Regex

Personalizza la suddivisione basata su modelli.

  • Tokenizza in base a un modello di espressione regolare.
  • w+ abbina parole e numeri omettendo completamente la punteggiatura.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Produzione:

['Personalizzato' 'regola' 'mantieni' 'solo' 'parole' 'numeri' 'rilascia' 'punteggiatura']

NLTK fornisce un toolkit utile e intuitivo per la tokenizzazione del testo in Python, supportando una gamma di esigenze di tokenizzazione, dalla suddivisione di parole e frasi di base a modelli personalizzati avanzati.

Crea quiz