Résumé : Traitement Automatique du
Langage Naturel (NLP)
Introduction
Le traitement automatique du langage naturel (NLP) permet aux ordina-
teurs de comprendre et traiter le langage humain.
Objectifs :
• Extraire la sémantique des textes.
• Enrichir les textes avec des bases de connaissances.
• Améliorer l’interaction homme-machine.
Défis :
• Variations syntaxiques et linguistiques.
• Ambiguı̈té sémantique.
• Multilinguisme.
Domaines d’application
Le NLP est utilisé pour :
• Traduction automatique (ex. : Google Translate).
• Analyse de sentiments : ”Ce produit est excellent.” → Sentiment :
positif.
• Chatbots : Réponses automatiques aux utilisateurs.
• Correction orthographique (ex. : Grammarly).
1
Pré-traitement des données
1. Nettoyage des données
• Suppression des éléments inutiles (URL, émojis, stopwords).
• Exemple : Texte brut : ”Bonjour ! Je vais sur [Link]
Nettoyé : ”Bonjour !”
Code :
1 from nltk . corpus import stopwords
2 from nltk . tokenize import word_tokenize
3
4 texte = " Le traitement du langage naturel est important
pour l ’ IA . "
5 stop_words = set ( stopwords . words ( ’ french ’) )
6 tokens = word_tokenize ( texte )
7 tok e n s _ s a n s _ s t o p w o r d s = [ mot for mot in tokens if mot .
lower () not in stop_words ]
8 print ( t o k e n s _ s a n s _ s t o p w o r d s )
Résultat : [’traitement’, ’langage’, ’naturel’, ’important’, ’IA’,
’.’]
2. Représentation des données
Exemple de bi-grammes : ”Bonjour, comment ça va ?” → [(’Bonjour’,
’,’), (’,’, ’comment’), (’comment’, ’ça’), (’ça’, ’va’)]
Code :
1 from nltk import ngrams
2 tokens = [ ’ Bonjour ’ , ’ , ’ , ’ comment ’ , ’ a ’ , ’ va ’]
3 bigrams = list ( ngrams ( tokens , 2) )
4 print ( bigrams )
3. Normalisation
• Tokenisation : Diviser en mots ou phrases.
• Stemming : Réduction à la racine (”courir”, ”couru” → ”cour”).
• Lemmatisation : Forme canonique (”courir”, ”couru” → ”courir”).
2
Code :
1 import spacy
2 nlp = spacy . load ( " fr_core_news_sm " )
3 texte = " Les chats mangent et courent rapidement . "
4 doc = nlp ( texte )
5 lemmas = [ token . lemma_ for token in doc ]
6 print ( lemmas )
Résultat : [’le’, ’chat’, ’manger’, ’et’, ’courir’, ’rapidement’,
’.’]
Word Embedding
Définition
Les mots sont représentés par des vecteurs dans un espace de dimensions
réduites. Des mots proches sémantiquement seront également proches dans
cet espace.
Exemple : ”Chat” et ”chien” auront des vecteurs similaires : [0.2,
0.8, -0.5, ...].
Modèles Word2Vec
• CBOW : Prédire un mot à partir de son contexte. Exemple : ”Le chat
dort” → Prédire ”chat” avec ”Le” et ”dort”.
• Skip-Gram : Prédire les mots contextuels autour d’un mot cible. Ex-
emple : ”chat” → Prédire ”Le” et ”dort”.
Bibliothèques Python pour NLP
• NLTK : Prétraitement (tokenisation, stopwords, stemming).
• spaCy : Analyse linguistique rapide.
• scikit-learn : Classification et représentation vectorielle.
• fastText : Représentation rapide des mots.
• Polyglot : Support multilingue.
3
Conclusion
Le NLP facilite l’interaction homme-machine et l’exploitation des données
textuelles. Grâce aux outils comme spaCy et aux modèles avancés comme
Word2Vec, il est possible de résoudre des problèmes complexes tels que la
traduction, l’analyse de sentiments et les chatbots.