Tokeniser le texte en utilisant NLTK en python

La tokenisation du texte est une technique fondamentale de traitement du langage naturel (NLP) et l'une de ces techniques est Tokenisation.  C'est le processus de division du texte en composants ou jetons plus petits. Ceux-ci peuvent être :

  • Mots : J'aime la PNL → ['Je' 'aime' 'PNL']
  • Phrases : J'adore la PNL. Python est génial. → ['J'adore la PNL.' « Python est génial. »]

Avec la bibliothèque populaire de Python  NLTK (Natural Language Toolkit), diviser le texte en unités significatives devient à la fois simple et extrêmement efficace.

Implémentation de base

Voyons l'implémentation de la tokenisation à l'aide de NLTK en Python

Étape 1 : Installation et configuration

Installez le indiquer modèles de tokenisation nécessaires à la tokenisation des phrases et des mots.

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

Étape 2 : Tokeniser les phrases

sent_tokenize() scinde une chaîne en une liste de phrases gérant la ponctuation et les abréviations.

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  )   

Sortir:

['NLTK est une excellente boîte à outils PNL.' « Cela facilite le traitement du texte ! »]

Étape 3 : Tokeniser les mots

  • word_tokenize() divise une phrase en mots et signes de ponctuation en tant que jetons distincts.
  • Gère les contractions, les numéros de ponctuation et plus encore.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Sortir:

['La tokenisation' 'est' 'facile' 'avec' 'NLTK' ''s' 'word_tokenize' '.']

Voyons quelques exemples supplémentaires

1. WordPunctTokenizer

Il Divise le texte en caractères alphabétiques et non alphabétiques

  • Sépare toutes les séquences de caractères de mots et de ponctuation en jetons.
  • Surtout divise les contractions (Don't devient Don ' t).
  • Divise les e-mails en e-mails.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Sortir:

['Ne' ''' 't' 'diviser' 'contractions' '.' 'E' '-' 'mails' ':' 'bonjour' '@' 'exemple' '.' 'com' '!']

2. TreebankWordTokenizer

Il convient à l'analyse linguistique qui gère la ponctuation et les contractions.

  • Imite la tokenisation de style Penn Treebank qui est couramment utilisée pour l'analyse linguistique PNL.
  • Gère plus intelligemment certaines structures grammaticales anglaises.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Sortir:

['Ayez' 'un' 'regard' 'sur' 'NLTK' ''s' 'tokenizers' '.']

3. Tokeniseur Regex

Il personnalise le fractionnement basé sur un modèle.

  • Tokenize basé sur un modèle d’expression régulière.
  • w+ fait correspondre les mots et les nombres en omettant complètement la ponctuation.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Sortir:

['Personnalisé' 'règle' 'conserver' 'uniquement' 'mots' 'chiffres' 'drop' 'ponctuation']

NLTK fournit une boîte à outils utile et conviviale pour la tokenisation du texte en Python, prenant en charge une gamme de besoins de tokenisation, depuis la division de base des mots et des phrases jusqu'aux modèles personnalisés avancés.

Créer un quiz