Contenu du cours
Introduction au NLP
Introduction au NLP
Tokenisation
Avant de plonger réellement dans le processus de tokenisation, nous devons d'abord définir ce que sont les tokens.
Par conséquent, la tokenisation est le processus de division du texte en tokens. Par exemple, un paragraphe de texte, un document texte ou un corpus de texte se compose de plusieurs composants qui peuvent être divisés en phrases, expressions et mots. En fait, les méthodes de tokenisation les plus populaires incluent la tokenisation de phrases et de mots, qui est utilisée pour diviser un document texte (ou corpus) en phrases et chaque phrase en mots.
Tokenisation des phrases
Commençons par la tokenisation des phrases. Heureusement pour nous, nltk
fournit la fonction sent_tokenize()
dans le module tokenize
. Le but principal de cette fonction est de diviser un texte donné en une liste de phrases.
sent_tokenize()
utilise un modèle pré-entraîné, généralement un modèle d'apprentissage automatique qui a été entraîné sur un large corpus de texte, pour identifier les frontières entre les phrases. Il prend en compte divers indices dans le texte, tels que les signes de ponctuation (par exemple, les points, les points d'exclamation, les points d'interrogation), la capitalisation, et d'autres motifs linguistiques qui marquent généralement la fin d'une phrase et le début d'une autre.
Voyons un exemple pour clarifier les choses :
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
Comme vous pouvez le voir, il n'y a rien de compliqué ici. Vous devez simplement passer une chaîne avec votre texte en tant qu'argument de sent_tokenize()
pour obtenir une liste de phrases. En parlant de nltk.download('punkt_tab')
, cette commande télécharge spécifiquement les modèles de tokenizer "Punkt". En téléchargeant les modèles de tokenizer Punkt, vous vous assurez que NLTK dispose des données nécessaires pour effectuer une tokenisation précise des phrases et des mots.
Tokenisation des mots
Dans la tokenisation des mots, il existe plusieurs méthodes courantes pour la réaliser ; cependant, dans ce chapitre, nous ne discuterons que des deux plus répandues.
La méthode la plus simple et la plus directe est d'utiliser la fonction split()
de la classe string, qui utilise par défaut les symboles de nouvelle ligne, les espaces et les tabulations comme délimiteurs. Cependant, vous pouvez également passer une chaîne arbitraire en tant qu'argument pour servir de délimiteur.
Voici un exemple :
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
Une approche plus flexible, cependant, est d'utiliser la fonction word_tokenize()
dans le module tokenize
de la bibliothèque nltk
. Cette fonction identifie et sépare les mots en fonction des espaces et des signes de ponctuation, décomposant efficacement les phrases en leurs mots constituants. De même que sent_tokenize()
, cette fonction nécessite une chaîne comme argument.
Comparons cette approche avec l'utilisation de la méthode split()
. L'exemple ci-dessous utilise word_tokenize()
:
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
Voyons maintenant comment la méthode split()
fonctionne avec le même texte :
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
Dans notre exemple, word_tokenize()
, contrairement à split()
, identifie avec précision la ponctuation et les caractères spéciaux comme des tokens séparés. Il sépare correctement le signe dollar du chiffre et reconnaît les points comme des tokens autonomes. Cette tokenisation nuancée est cruciale pour de nombreuses tâches de NLP, où la délimitation précise des mots et de la ponctuation peut avoir un impact significatif sur la précision de l'analyse et les insights.
Merci pour vos commentaires !