0% ont trouvé ce document utile (0 vote)
6 vues22 pages

Text Analytics

Le document traite du traitement automatique du langage naturel (TAL/NLP) et de l'importance du prétraitement des données textuelles pour les modèles de machine learning. Il présente un parcours d'ateliers pratiques utilisant le dataset IMDB pour enseigner le nettoyage, la tokenisation, la suppression des stopwords, la lemmatisation et la vectorisation des textes, en abordant des méthodes comme Bag of Words, TF-IDF et Word2Vec. Les ateliers visent à familiariser les étudiants avec les différentes étapes nécessaires pour transformer des données textuelles brutes en représentations numériques exploitables.

Transféré par

Mouad
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues22 pages

Text Analytics

Le document traite du traitement automatique du langage naturel (TAL/NLP) et de l'importance du prétraitement des données textuelles pour les modèles de machine learning. Il présente un parcours d'ateliers pratiques utilisant le dataset IMDB pour enseigner le nettoyage, la tokenisation, la suppression des stopwords, la lemmatisation et la vectorisation des textes, en abordant des méthodes comme Bag of Words, TF-IDF et Word2Vec. Les ateliers visent à familiariser les étudiants avec les différentes étapes nécessaires pour transformer des données textuelles brutes en représentations numériques exploitables.

Transféré par

Mouad
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Text Analytics

Troisième année- Génie informatique et digitalisation


Prétraitement des données textuelles

Introduction générale

Le traitement automatique du langage naturel (TAL / NLP) est une branche essentielle de
l’intelligence artificielle dont l’objectif est de permettre aux machines de comprendre, analyser,
interpréter et produire du langage humain.
Grâce aux avancées récentes, notamment l’apparition des modèles Transformers et des grands
modèles de langage (LLM), le NLP est devenu un élément structurant de nombreuses
applications modernes :
• chatbots, assistants virtuels et agents conversationnels intelligents (ChatGPT, Alexa,
Google Assistant, Llama) ;
• moteurs de recherche, systèmes de RAG (Retrieval-Augmented Generation) et outils de
recommandation d’informations ;
• systèmes de recommandation de produits, contenus ou services basés sur des
descriptions textuelles ;
• analyse de sentiments et extraction d'opinions sur les réseaux sociaux, les plateformes
d’avis ou les forums ;
• catégorisation automatique, traduction, résumé, génération de texte, modération, etc.
Cependant, le texte brut ne peut pas être utilisé tel quel par les modèles de Machine Learning
ou Deep Learning.
Il doit être nettoyé, normalisé et transformé en une forme mathématique exploitable.
Cette transformation constitue une étape indispensable à toute chaîne de traitement du
langage.
Ainsi, l’analyse automatique du texte repose historiquement sur deux grandes étapes
successives :
1. Le prétraitement du texte : nettoyage, normalisation, suppression d’éléments non
linguistiques, découpage en unités pertinentes (tokens).
2. La vectorisation : représentation numérique du texte, initialement à travers des
méthodes classiques (Bag-of-Words, TF-IDF, Word2Vec), puis aujourd’hui via des
modèles contextuels basés sur des Transformers (BERT, RoBERTa, DistilBERT).

Ce TP propose un parcours progressif à travers quatre ateliers pratiques, permettant aux


étudiants de comprendre et d’expérimenter les principales approches de traitement des
données textuelles.

Le dataset utilisé :

L’ensemble des ateliers s’appuie sur le dataset IMDB, un corpus de 50 000 avis de films,
annotées selon leur sentiment (positif ou négatif).
Ce dataset est largement utilisé pour les tâches d’analyse de sentiments et permet
d’expérimenter concrètement les étapes du prétraitement jusqu’à la vectorisation contextuelle.

TextAnalytics Pr YOUNSI DAHBI


Lab01 : Prétraitement du texte

Objectif du Lab :
Préparer les données textuelles brutes issues du dataset IMDB afin de les rendre exploitables
pour les futures étapes de vectorisation et de modélisation.

Implémentation

Étape 0 — Importation des bibliothèques

Étape 1 — Observation du texte brut

But : Explorer les données pour comprendre leur structure et le type de contenu à traiter.

Exemple :

“<br />I LOVED this movie!!! The acting was great :) [Link]”

On remarque : des balises HTML, des liens, des symboles, et des majuscules.

TextAnalytics Pr YOUNSI DAHBI


Étape 2 — Nettoyage du texte

But : Supprimer les éléments non linguistiques et uniformiser le texte.


• Suppression des balises HTML (<br />)
• Suppression des liens (www..., http...)
• Mise en minuscules
• Suppression de la ponctuation et des chiffres
• Suppression des espaces multiples

Exemple :
Avant nettoyage :

“<br />I LOVED this movie!!! The acting was great :) [Link]”

Après nettoyage:

“i loved this movie the acting was great”

TextAnalytics Pr YOUNSI DAHBI


Étape 3 — Tokenisation

But : Découper le texte en unités de sens appelées tokens (souvent des mots).
Exemple :

“i loved this movie the acting was great” → ["i", "loved", "this", "movie", "the", "acting", "was",
"great"]

TextAnalytics Pr YOUNSI DAHBI


Étape 4 — Suppression des stopwords

But : Retirer les mots très fréquents et peu informatifs comme “the”, “is”, “was”.

Exemple :
Avant : ["i", "loved", "this", "movie", "the", "acting", "was", "great"]
Après : ["loved", "movie", "acting", "great"]

TextAnalytics Pr YOUNSI DAHBI


Étape 5 — Lemmatisation

But : Ramener chaque mot à sa forme de base (lemme) pour uniformiser les variantes.
Exemple :
["loved", "movies", "acting", "great"] → ["love", "movie", "act", "great"]

TextAnalytics Pr YOUNSI DAHBI


Étape 6 — Reconstruction du texte

But : Reformer un texte propre à partir des tokens filtrés et le sauvegarder pour les étapes
suivantes.
Exemple :
“love movie act great”
Ce texte est maintenant prêt pour la vectorisation.

Dans cette partie, nous avons réalisé les prétraitements de base du texte (nettoyage,
tokenisation, suppression des stopwords, lemmatisation et reconstruction).
Ces opérations permettent déjà d’obtenir un corpus propre et homogène, prêt pour la
vectorisation.
Cependant, il est possible d’aller plus loin en explorant d’autres formes de prétraitement selon
les besoins du projet.
Voici quelques exemples supplémentaires :

Bibliothèque Python
Prétraitement Objectif principal
recommandée
Uniformiser les caractères accentués ou
Normalisation Unicode unicodedata
spéciaux.
Corriger les fautes d’orthographe pour
Correction orthographique textblob, autocorrect
améliorer la qualité du texte.

TextAnalytics Pr YOUNSI DAHBI


Bibliothèque Python
Prétraitement Objectif principal
recommandée
Développer les formes contractées (ex.
Gestion des contractions contractions
“don’t” → “do not”).
Réduire les mots à leur radical sans [Link],
Stemming
recours à un dictionnaire. [Link]
Filtrage grammatical (POS Conserver uniquement certains types de
nltk.pos_tag, spacy
Tagging) mots (noms, adjectifs, verbes).
Suppression des émojis et Nettoyer les caractères non textuels issus
re, emoji
symboles spéciaux de réseaux sociaux.
Détection et filtrage de Conserver uniquement les textes rédigés
langdetect, langid
langue dans la langue d’analyse.

TextAnalytics Pr YOUNSI DAHBI


Lab02 – Vectorisation de base
Objectif de l’atelier

L’objectif de cet atelier est de comprendre comment transformer du texte prétraité en


représentations numériques exploitables par les algorithmes de machine learning.
Nous explorerons deux approches fondamentales : Bag of Words (BoW) et TF-IDF, qui
reposent sur la fréquence des mots plutôt que sur leur sens.

Partie 1 — Vectorisation par Bag of Words (BoW)

Objectif

Représenter chaque texte par un vecteur indiquant la fréquence d’apparition de chaque mot
dans le document.

Principe

• On construit un vocabulaire à partir de tous les mots du corpus.


• Chaque document est représenté par un vecteur comptant le nombre d’occurrences
de chaque mot.

Exemple :

Imaginons le corpus suivant composé de trois phrases (avis IMDb) :

1. “I loved this movie.”


2. “This movie was terrible.”
3. “I loved the actors.”

1 - Construction du vocabulaire

On extrait tous les mots uniques du corpus :


[“i”, “loved”, “this”, “movie”, “was”, “terrible”, “the”, “actors”]

2 - Représentation sous forme de vecteurs

Texte i loved this movie was terrible the actors


1 1 1 1 1 0 0 0 0
2 0 0 1 1 1 1 0 0
3 1 1 0 0 0 0 1 1

Chaque phrase est représentée par un vecteur où la valeur indique combien de fois chaque
mot du vocabulaire apparaît.
Ainsi, les textes sont maintenant transformés en données numériques, prêtes à être utilisées
par un modèle de machine learning.

TextAnalytics Pr YOUNSI DAHBI


Implémentation

Nous utilisons la classe CountVectorizer de scikit-learn, qui automatise la tokenisation, la


normalisation et la création de la matrice de comptage.

TextAnalytics Pr YOUNSI DAHBI


• Chaque ligne correspond à un avis (review)
• Chaque colonne correspond à un mot du vocabulaire.
• Les valeurs représentent la fréquence du mot dans l’avis.

TextAnalytics Pr YOUNSI DAHBI


Partie 2 — Vectorisation pondérée : TF-IDF

Objectif
Améliorer la représentation BoW en pondérant l’importance des mots :
• Les mots fréquents dans un document mais rares dans le corpus ont un poids élevé.
• Les mots présents partout (comme the, is, and) ont un poids faible.

Le TF-IDF est défini comme :


TF-IDF(𝑤, 𝑑) = 𝑇𝐹(𝑤, 𝑑) × 𝐼𝐷𝐹(𝑤)

avec :
occurrences de 𝑤 dans 𝑑
𝑇𝐹(𝑤, 𝑑) =
nombre total de mots dans 𝑑
𝑁
𝐼𝐷𝐹(𝑤) = log⁡
𝑑𝑓(𝑤)

• 𝑁: nombre total de documents


• 𝑑𝑓(𝑤): nombre de documents contenant le mot 𝑤

Implémentation

TextAnalytics Pr YOUNSI DAHBI


Comparaison entre Bag of Words et TF-IDF

Critère Bag of Words TF-IDF


Principe Comptage des Pondération selon
occurrences importance
Prend en compte la fréquence Non Oui
globale

Limites de BoW et TF-IDF


• Ne capturent ni le sens, ni le contexte des mots.
• Considèrent les mots comme indépendants les uns des autres.
• Produisent des vecteurs spars (beaucoup de zéros).
• Ignorent les synonymes ou relations sémantiques.
Exemple :
Les mots “good” et “excellent” auront des représentations totalement différentes malgré leur
sens proche.
Ces limites motivent l’utilisation de modèles sémantiques plus avancés, tels que Word2Vec,
qui feront l’objet du troisième atelier.

TextAnalytics Pr YOUNSI DAHBI


Lab03 – Vectorisation sémantique
Objectif de l’atelier

L’objectif de cet atelier est de comprendre comment les Word Embeddings, et en particulier
Word2Vec, permettent de représenter les mots sous une forme sémantique et continue.
Nous appliquerons cette méthode sur le dataset IMDB afin de transformer chaque avis de film
en un vecteur numérique dense, capable de capturer le sens et les relations sémantiques entre
les mots.

Contexte :

Word Embedding

Un embedding est une représentation numérique continue d’un mot dans un espace vectoriel
de dimension réduite .
Chaque mot est transformé en un vecteur de nombres réels, où la proximité entre ces vecteurs
traduit la similarité de sens entre les mots.
Les mots apparaissant dans des contextes similaires ont donc des significations proches.
Ainsi :
• Les mots “movie”, “film” et “cinema” apparaissent souvent dans des contextes
similaires → leurs vecteurs seront proches.
• Les mots “boring”, “slow” et “awful” sont souvent associés à des critiques négatives →
leurs vecteurs seront proches entre eux.
• Les mots “amazing”, “great” et “fantastic” apparaissent fréquemment dans des
critiques positives → leurs vecteurs seront également proches.
Ces relations sont apprises automatiquement par le modèle Word2Vec à partir des
cooccurrences de mots dans un large corpus de textes.

Différences avec les méthodes classiques


Méthode Type de représentation Sémantique Exemple
capturée
Bag of Fréquence brute des mots Non “good” ≠ “great”
Words
TF-IDF Fréquence pondérée Non “good” ≠ “excellent”
Word2Vec Vecteurs denses basés sur Oui “good”, “great”, “excellent” →
le contexte vecteurs proches
Contrairement à Bag of Words et TF-IDF, Word2Vec ne se limite pas à compter les mots : il
apprend leurs relations de sens en fonction du contexte dans lequel ils apparaissent.

Word2Vec

Word2Vec est un ensemble de modèles utilisés pour le plongement lexical (word


embedding).
Il repose sur un réseau de neurones capable d’apprendre, à partir d’un grand corpus de textes,

TextAnalytics Pr YOUNSI DAHBI


la manière dont les mots apparaissent dans leur contexte linguistique.
Grâce à cet apprentissage, le modèle parvient à représenter les mots sous forme de vecteurs
numériques tels que les mots similaires soient proches dans l’espace vectoriel.
Cela permet de capturer leurs relations sémantiques et syntaxiques.
Exemple : king - man + woman ≈ queen.
Dans cet atelier, nous utiliserons le modèle Word2Vec pré-entraîné de Google, disponible via
la bibliothèque Gensim en Python.
Ce modèle a été entraîné sur un immense corpus de textes en anglais (Google News), lui
donnant une excellente couverture du vocabulaire courant.
Caractéristiques principales :
• Entraîné sur environ 100 milliards de mots.
• Contient près de 3 millions de mots et d’expressions.
• Chaque mot est représenté par un vecteur de 300 dimensions.
• Directement utilisable via Gensim, sans nécessiter de réentraînement.

Implémentation

Étape 1 — Importer le texte prétraité


Avant de vectoriser les critiques, on importe le dataset nettoyé créé à la fin de l’Atelier 1,
contenant la colonne clean_review.
Cette colonne contient des textes en minuscules, sans ponctuation ni stopwords.

Étape 2 — Charger le modèle Word2Vec pré-entraîné

Le modèle Google News Word2Vec est chargé via Gensim.


Il contient les vecteurs de 3 millions de mots et expressions anglaises.

TextAnalytics Pr YOUNSI DAHBI


Étape 3 — Explorer un vecteur de mot
Chaque mot connu du modèle correspond à un vecteur de 300 valeurs réelles.

Étape 4 — Explorer les relations sémantiques

Word2Vec permet d’explorer les proximités sémantiques entre les mots à l’aide de la
similarité cosinus.

Étape 5 — Fonction pour représenter un avis


Chaque avis IMDB contient plusieurs mots.
On calcule la moyenne des vecteurs des mots reconnus par le modèle pour obtenir une
représentation unique du texte.

TextAnalytics Pr YOUNSI DAHBI


Etape 6 — Appliquer la transformation au dataset

On applique la fonction à toutes les critiques du dataset.


Chaque texte devient un vecteur de 300 dimensions.

Étape 7 — Créer la matrice finale des vecteurs

On regroupe tous les vecteurs dans une matrice X (forme (50000, 300)).

TextAnalytics Pr YOUNSI DAHBI


Lab03 – Vectorisation contextuelle avec un modèle de type
BERT
Objectif de l’atelier
L’objectif de cet atelier est de comprendre comment les embeddings contextuels, issus de
modèles de type BERT, permettent de représenter un texte en tenant compte du contexte
complet de la phrase.
À partir du dataset IMDB prétraité, nous allons :
• Comparer rapidement embeddings statiques (Word2Vec) et contextuels (BERT).
• Utiliser un modèle pré-entraîné de la famille BERT via la bibliothèque Transformers de
Hugging Face.
• Extraire des représentations vectorielles contextuelles pour des phrases et des avis
complets.
• Construire une matrice d’embeddings de reviews exploitable par un modèle de
machine learning (par exemple, pour la classification de sentiments).

Contexte :
Dans le Lab précédent, nous avons utilisé Word2Vec pour représenter chaque mot par un
vecteur dense dans un espace de dimension fixe. Cette approche permet de capturer des
relations de similarité sémantique, mais elle présente une limite importante :
• Chaque mot possède un seul vecteur, quelle que soit la phrase dans laquelle il
apparaît.
Exemple classique :
• “I went to the bank to withdraw money.”
• “He sat on the bank of the river.”
Avec un embedding statique, le mot bank est représenté par le même vecteur dans les deux
phrases, alors que son sens est différent (banque vs rive).

Embeddings contextuels : principe


Les embeddings contextuels résolvent ce problème :
• Le vecteur d’un mot dépend du contexte dans lequel il apparaît.
• Le même token peut avoir des représentations différentes selon la phrase.
Ainsi, un modèle comme BERT produira des vecteurs distincts pour bank dans les phrases
suivantes :
• “I went to the bank to withdraw money.” → bank ≈ “financial institution”
• “He sat on the bank of the river.” → bank ≈ “river side”
Cette capacité à intégrer le contexte est au cœur des modèles de type Transformer, et
constitue la base des LLM modernes.

BERT comme générateur d’embeddings contextuels


BERT (Bidirectional Encoder Representations from Transformers) est un modèle encoder-only
:
• Il lit toute la phrase dans les deux directions (gauche et droite).

TextAnalytics Pr YOUNSI DAHBI


• Pour chaque token, il produit un embedding contextuel.
• On peut également utiliser la représentation du token spécial [CLS] (en début de
séquence) comme embedding global de la phrase ou du document.
Dans cet atelier, nous allons utiliser un modèle pré-entraîné de type BERT
pour :
• Visualiser les différences entre des phrases similaires.
• Construire des embeddings de reviews IMDB prêts à être utilisés dans un classifieur.

Approche générale de l’atelier


1. Charger le dataset IMDB prétraité (colonne clean_review).
2. Charger un tokenizer et un modèle BERT pré-entraîné depuis Hugging Face.
3. Extraire des embeddings contextuels pour quelques phrases simples (exemple bank).
4. Écrire une fonction pour calculer un embedding de review
5. Appliquer cette fonction à un sous-ensemble ou à l’ensemble des reviews IMDB.
6. Entraîner un modèle de classification de sentiments sur les embeddings BERT et
comparer avec TF-IDF ou Word2Vec.

Bibliothèques Python utilisées

Transformers (Hugging Face)


Rôle principal : fournir les modèles pré-entraînés de type Transformer (BERT, DistilBERT,
RoBERTa, etc.) et leurs tokenizers.
La bibliothèque Transformers constitue aujourd’hui la référence pour la manipulation des
modèles modernes de NLP.
Elle permet :
• de charger facilement un modèle pré-entraîné (BERT, DistilBERT, GPT…) ;
• d’utiliser le tokenizer associé pour convertir du texte en tokens ;
• d’extraire les embeddings contextuels issus des couches internes du modèle ;
• d’exécuter un modèle en quelques lignes de code grâce à une API unifiée.

pyTorch (torch)
Rôle principal : backend de calcul qui exécute les modèles Transformers.
Les modèles Hugging Face sont majoritairement implémentés en PyTorch, un framework de
Deep Learning hautement performant, utilisé dans la recherche et l’industrie.
PyTorch est utilisé pour :
• gérer les tenseurs (structures mathématiques haute performance) ;
• exécuter le modèle sur CPU ou GPU ;
• réaliser des opérations vectorielles nécessaires à l’extraction des embeddings ;
• désactiver le gradient lors de l’inférence (torch.no_grad()).

TextAnalytics Pr YOUNSI DAHBI


Implémentation

Étape 0 — Installation des bibliothèques

Étape 1 — Importation des bibliothèques

Étape 2 — Choix du device (CPU ou GPU)

Détermine automatiquement si les calculs seront effectués sur GPU (si disponible) ou sur CPU.

Étape 3 — Chargement du dataset prétraité

Echantillonner si nécessaire

Étape 4 — Chargement du tokenizer et du modèle BERT (DistilBERT)


Initialise le tokenizer et le modèle DistilBERT pré-entraîné qui serviront à générer les
embeddings contextuels.

TextAnalytics Pr YOUNSI DAHBI


Étape 5 — Démonstration : embeddings contextuels sur quelques phrases

TextAnalytics Pr YOUNSI DAHBI


Étape 6 — Fonction pour obtenir l’embedding BERT d’un texte

Écrire une fonction Python qui prend en entrée une review prétraitée, la tokenise, la passe dans
le modèle BERT et renvoie un vecteur d’embedding contextuel unique pour cette review.

Étape 7 — Génération des embeddings pour un ensemble de reviews


Utilisez la fonction définie à l’étape précédente pour calculer les embeddings d’un ensemble de
N reviews du dataset.
Construisez la matrice d’embeddings de taille (N × dimension_embedding).

Étape 8 — Classification de sentiments (optionnelle mais recommandée)


À partir de la matrice d’embeddings obtenue, entraînez un modèle de classification supervisé
(par exemple, une régression logistique) pour prédire le sentiment des reviews.
Comparez les performances obtenues avec celles des représentations TF-IDF et Word2Vec.

TextAnalytics Pr YOUNSI DAHBI

Vous aimerez peut-être aussi