Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Analyse lexicale, lemmatisation et racinisation

Introduction

Le présent chapitre s’attache à explorer trois concepts fondamentaux en traitement automatique du langage naturel (TALN) : l’analyse lexicale, la lemmatisation et la racinisation. Ces trois techniques jouent un rôle essentiel dans la préparation des données textuelles, contribuant ainsi à une compréhension plus profonde et précise du langage. Bien que distincts dans leurs approches, ces concepts partagent une connexion intrinsèque, et leur inclusion conjointe dans ce chapitre découle de la nécessité de traiter de manière complète les différentes dimensions de la transformation textuelle.

  • L’analyse lexicale, souvent désignée par le terme tokenisation, constitue le point de départ de notre exploration. Elle consiste à diviser un flux de texte en unités discrètes appelées « tokens », qui peuvent être des mots, des phrases, ou même des caractères, selon le niveau de granularité choisi. La tokenisation offre une représentation structurée du langage, facilitant ainsi la manipulation et l’analyse des données textuelles. Cependant, les tokens résultants peuvent encore présenter des variations morphologiques, ce qui justifie l’intégration de deux techniques complémentaires : la lemmatisation...

Tokenisation avec NLTK et spaCy

1. Tokenisation avec NLTK

Comme indiqué précédemment, la tokenisation est le processus de division d’un texte en unités plus petites appelées « tokens ». Ces tokens peuvent être des mots, des phrases ou d’autres éléments textuels selon le niveau de granularité souhaité. NLTK propose des outils flexibles pour effectuer la tokenisation.

Ci-dessous un premier exemple, testable de façon classique ou avec Jupyter :

from nltk.tokenize import word_tokenize, sent_tokenize 
 
# Phrase d'exemple 
text = "La tokenisation est une étape fondamentale dans  
le traitement du langage naturel. Elle consiste à diviser  
un texte en mots ou phrases." 
 
# Tokenisation de mots 
word_tokens = word_tokenize(text) 
 
# Tokenisation de phrases 
sentence_tokens = sent_tokenize(text) 
 
# Affichage des résultats 
print("Texte original :", text) 
print("Tokenisation de mots avec NLTK : ", word_tokens) 
print("Tokenisation de phrases avec NLTK : ", sentence_tokens) 

La tokenisation de mots divise le texte en mots individuels, tandis que la tokenisation de phrases divise le texte en phrases distinctes. Ces étapes sont essentielles pour préparer le texte avant des analyses plus avancées.

On obtient...

Lemmatisation avec NLTK et spaCy

1. Introduction

La lemmatisation, au cœur du traitement automatique du langage naturel (TALN), est le processus qui vise à ramener les mots à leur forme de base, appelée « lemme ». Contrairement à la racinisation ou stemming (traitée dans la section suivante), qui consiste à tronquer les mots pour en retirer les préfixes ou suffixes, la lemmatisation produit des formes lexicales valides. Cette technique est fondamentale pour standardiser le texte, améliorer la cohérence et réduire la dimension des données, ensuite destinées à être utilisées dans l’apprentissage du modèle.

2. Lemmatisation avec NLTK

Dans l’exemple ci-dessous, la lemmatisation est effectuée sur le mot « running », réduit à son lemme...

Racinisation avec NLTK et spaCy

1. Introduction

La racinisation, parfois appelée stemming, est une technique fondamentale en traitement du langage naturel (TALN) visant à réduire les mots à leur racine ou « stem ». Contrairement à la lemmatisation qui cherche à ramener les mots à leur forme de base (lemme), la racinisation consiste à tronquer les préfixes ou suffixes des mots pour obtenir une forme simplifiée.

Nous explorons ici l’utilisation de deux bibliothèques majeures en NLP, à savoir NLTK et spaCy, pour la racinisation. Ces outils fournissent des fonctionnalités robustes pour traiter et simplifier les mots dans un texte, améliorant ainsi la cohérence et la gestion des variations lexicales. Découvrons comment la racinisation peut être appliquée de manière efficace pour normaliser le texte dans le contexte du traitement automatique du langage naturel.

2. Racinisation avec NLTK

Commençons par un exemple simple de racinisation avec NLTK. Dans ce scénario, nous utilisons le module de racinisation (PorterStemmer) pour simplifier les mots dans une phrase :

import nltk 
from nltk.stem import PorterStemmer 
from nltk.tokenize import word_tokenize 
nltk.download('punkt') 
 
# Initialisation du raciniseur 
stemmer = PorterStemmer() 
 
# Phrase à...

Conclusion

À travers ce chapitre ont été abordées des techniques de préparation d’un jeu de données, au même titre que la phase de nettoyage, éventuellement réalisée à l’aide d’une liste de stopwords. Ce chapitre permet maintenant d’aborder une autre technique utilisée afin de mieux appréhender la nature sémantique d’un texte ou d’un corpus de textes : l’étiquetage morphosyntaxique (part-of-speech tagging).