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.
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.
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.
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.
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