Outils de Traitement de Corpus
Cours d'Outils de traitement de Corpus - PluriTAL
Project maintained by EveSa
Hosted on GitHub Pages — Theme by mattgraham
Outils de Traitement de Corpus
-vertical-
Qui suis je❓
- doctorante en informatique en 2e année
- en CIFRE à EDF
- “Traitement des séquences longues avec les modèles dapprentissage profond”
- Ancienne du Master TAL
-vertical-
Qu’est ce que ce cours ❓
Un cours sur le traitement statistique des corpus et la manière de les préparer pour ce traitement
-vertical-
Organisation - contenu📆
6 x 3 heures + 1h30 pour l’examen
Cours 1 : Définir le sujet
Cours 2 : Récupérer un corpus
Cours 3 : Préparer un corpus
Cours 4 : Les modèles de traitement
Cours 5 : Appliquer les outils au corpus
Cours 6 : Evaluer l’efficacité des outils
-vertical-
Organisation - déroulé
- un point sur l’actualité
- Correction des quizz précédents
- 1ère partie du cours
- un petit test
- 2e partie du cours
- un point sur les bonnes pratique
- un petit test
- un TP
-vertical-
Points bonne pratiques
Cours 1 : se tenir informé
Cours 2 : organiser son code
Cours 3 : rendre son code lisible
Cours 4 : savoir bien partager
Cours 5 : tester
Cours 6 : segmenter
-vertical-
A noter : je serais absente le 7 avril → on fera le cours en ligne
-vertical-
Evaluation
3 notes :
2 rendus obligatoires :
- un projet de constitution et de traitement de corpus (40%)
- un post sur la newsletter (\20%)
La meilleure des 2 notes (\40%):
- les quizz en sessions
- un devoir sur table à la dernière séance
-vertical-
Evaluation
📚📄Evaluation de corpus au cours d’un projet en 6 séances📄📚
l’objectif :
- constituer un corpus à partir de données du web pour une tâche choisie
- évaluer la qualité du corpus avec les différents outils vus en cours
- stocker les données dans un format accessible
- choisir un modèle à évaluer sur le corpus
- bonus : finetuner le modèle choisi
A rendre sur Git
-vertical-
Evaluation
📚📄Evaluation de corpus au cours d'un projet en 6 séances📄📚
Les critères :
- respect des points “bonnes pratiques”
- compréhensibilité du projet
- production graphique
-vertical-
Les objectifs
- définir les données dont on a besoin
- récupérer des données depuis le web
- adapter des données au besoin
- adapter des données pour le traitement machines
- entraîner un modèle avec une architecture pré-définie
- évaluer les modèles
-vertical-
Evaluation
📮Participer à la newsletter📮
Pour apprendre à se tenir informé dans le monde de la tech:
Réaliser au moins un post sur la newsletter au cours des 7 semaines de cours.
et le présenter en cours en faisant une rapide explication et en répondant aux questions de l’assemblée.
-vertical-
Evaluation - Newsletter
critères d’evaluation :
- récence et intérêt de l’information
- exclusivité de l’information
- compréhensibilité du contenu
-vertical-
Evaluation
2 petits quizz à chaque séances sur le contenu de la session
- du code
- des bonnes pratiques
- de la théorie
- …
→ chaque séance sera noté sur 5
-horizontal-
Outils de Traitement de Corpus
-vertical-
Qu’est ce qu’un corpus ❓
- Une collection de documents
- Sur un thème particulier
- Pour une tâche particulière
On les appele aussi “Dataset” ou “jeu de données”
-vertical-
Pourquoi veut on traiter les corpus ❓
Les collections de données sont des mines d’informations explicites:
- corpus de documentation
- bases de données
- …
ou d’informations implicites
- informations linguistiques
- syntaxe
- probabilités d’avoir tel mot après tel autre
- …
-vertical-
Définir le sujet
Comme dans une dissertation, le premier point c’est de bien définir ce que l’on cherche, ce que l’on veut
→ c’est ce qui va déterminer comment on va traiter notre corpus et quels outils on va utiliser.
-vertical-
Quelques exemples :
- treetagger ?
- spacy ?
- ChatGPT ?
-vertical-
- Quelle tâche ?
→ Annotation, Question-Réponse, Audio, Génération, …
- Quel sujet ?
→ Médical, Général, Education, …
- BONUS Quelle qualité ? Quelle quantité ?
→ sur le médical → très forte qualité | Sur le général → on peut se permettre moins de qualité
-vertical-
Les différents types de tâches
Supervisé ou Non-supervisé (ou apprentissage par renforcement)

-vertical-
l’Apprentissage supervisé
L’apprentissage supervisé s’apparente à l’apprentissage avec un enseignant. Le modèle est entraîné sur un ensemble de
données étiquetées, ce qui signifie que chaque entrée correspond à une sortie.
-vertical-

l’objectif est de prédire correctement des classes.
-vertical-
l’Apprentissage supervisé : exemples
- classification de texte
- analyse de sentiment
- POS tagging
- Reconnaissance d’entité nommées
- …
-vertical-
l’Apprentisage non supervisé
L’apprentissage non supervisé fonctionne avec des données sans étiquettes prédéfinies. Le modèle identifie des modèles,
des clusters ou des associations de manière indépendante.
-vertical-

l’objectif est de découvrir des motifs cachés
-vertical-
l’Apprentisage non supervisé : exemples
- clustering
- recommandations
-vertical-
Le Reinforcement learning
L’apprentissage par renforcement implique un agent qui interagit avec un environnement, apprenant par le biais de
récompenses et de pénalités pour maximiser le succès à long terme.
→ plutôt lié à la robotique
-vertical-

C’est apprentissage essai-erreur.
-vertical-
Le Reinforcement learning : exemples
- Voitures autonomes
- Jeux vidéos
- robotique
→ en TAL, on utilise le RLHF (Reinforcement Learning from Human Feedback) pour entraîner les agents
conversationnels
-vertical-
Les modèles de langues
Dans quelle catégorie tombe les modèles de langues ?
-vertical-
L’apprentissage auto supervisé
Self Supervised Learning (SSL)
L’apprentissage auto-supervisé est une méthode d’apprentissage profond dans laquelle un modèle est pré-entraîné à l’aide
de données non étiquetées. Les étiquettes de données sont générées automatiquement et utilisées comme vérités lors des
itérations suivantes.
→ Permet de faire le même genre de tâches que du supervisé sans le coût de l’annotation
-vertical-
SSL : exemples
Les modèles de langues (Bert, …) sont des modèles de langues masqués.

-vertical-
SSL : exemples
Les modèles de langues (Mistral, GPT, …) sont des modèles de Next Token Prediction (NTP)

-vertical-
Les tâches du NLP
- Classification de phrases entières
- Classification de chaque mot d’une phrase
- Génération de contenu textuel
- Extraction d’une réponse d’un texte
- Génération d’une nouvelle phrase à partir d’un texte d’entrée
-vertical-
- Classification de phrases entières : comprendre le sentiment d’un avis, détecter si un e-mail est un spam, déterminer
si une phrase est grammaticalement correcte ou si deux phrases sont logiquement liées.
-vertical-
- Classification de chaque mot d’une phrase : identifier les composantes grammaticales d’une phrase (nom, verbe,
adjectif) ou les entités nommées (personne, lieu, organisation).
-vertical-
- Génération de contenu textuel : compléter une invite avec du texte généré automatiquement, compléter les blancs d’un
texte avec des mots masqués.
-vertical-
- Extraction d’une réponse d’un texte : à partir d’une question et d’un contexte, extraire la réponse à la question en
fonction des informations fournies par le contexte.
-vertical-
- Génération d’une nouvelle phrase à partir d’un texte d’entrée : traduire un texte dans une autre langue, résumer un
texte.
-vertical-
Les tâches du NLP

-horizontal-
Définir le besoin :
Qu’est ce que j’ai en entrée → qu’est ce que je veux en sortie
exemples:
images médicales → diagnostic
surface, localisation d’un bien → prix du bien
-vertical-
Les types de données
Données structurées ou Non Structurées ?

-vertical-
Données structurées
- Format : strict et prédéfini
- Stockage : Les systèmes de stockage de données structurés ont des schémas rigides, comme ceux des bases de
données relationnelles ou des entrepôts de données.
- Cas d'usage : Les organisations peuvent exploiter des données structurées et non structurées dans le cadre de
l'intelligence artificielle (IA) et de l'analytique. Les données structurées sont souvent utilisées en
apprentissage automatique (ML) et pilotent les algorithmes de ML.
- Complexité : les données structurées sont plus faciles à manipuler et à analyser pour les utilisateurs disposant
d’outils traditionnels.
Exemple : base de données relationnelles
-vertical-
Données non structurées
- Format : Les données non structurées n’ont pas de format prédéfini.
- Stockage : Les données non structurées sont souvent stockées dans leur format natif dans des bases de données
non relationnelles ou des lacs de données.
- Cas d'Usage : Les données non structurées sont souvent utilisées dans le traitement du langage naturel (TAL) et
constituent une source de données riche et diversifiée pour les modèles d'IA générative (gen AI).
- Complexité : Les données non structurées peuvent être plus complexes et nécessitent des compétences et des
outils spécialisés pour être analysées.
Exemple : fichier Word, pdf, textes
-vertical-
Données semi-structurées
Les données semi-structurées sont des informations qui ne résident pas dans une base de données relationnelle, mais dont
les propriétés organisationnelles facilitent leur analyse. Certains processus permettent de les stocker dans la base de
données relationnelle (ce qui peut s’avérer très difficile pour certaines données semi-structurées), mais les données
semi-structurées existent pour gagner de la place.
Exemple : données XML.
-vertical-
Quantité des données
Selon le type de modèle qu’on veut utiliser, on va avoir besoin de plus ou moins de données :
- Pour des modèles d’apprentissage profond, on va avoir besoin de beaucoup de données
- Pour des modèles d’apprentissage classique, on va avoir besoin de moins de données
- Pour des modèles de règles, on a besoin de très peu de données
-vertical-
Quantité de données
→ selon la tâche que l’on veut réaliser, on va devoir récupérer plus ou moins de données. Il faut s’assurer que les
données sont disponibles pour la tâche en question
-vertical-
Quantité des données
Pourquoi faut-il tant de données pour les modèles d’apprentissage ?
→ il faut que le modèle est vu tous les cas de figure pour faire les bonnes prédictions.
ex : le modèle n’a jamais appris ce qu’était un adverbe parce qu’il n’en a pas dans son jeu de donnée → il ne
pourra jamais prédire d’adverbe.
-vertical-
Qualité des données
Les modèles d’apprentissage (profond ou classique) n’ont pas de visibilité hors des données d’entraînement : ils
récupèrent donc les biais présents dans les données.
ex : biais sexiste, raciste dans les modèles génératifs
→ il faut donc s’assurer de pouvoir récupérer des données de qualité
-vertical-
Equilibre des données
Il est important d’obtenir des données équilibrées pour être sur que tous les cas vont être appris également par le
modèle.
ex : le modèle a très peu d’adverbes dans son jeu de données → il ne prédira jamais d’adverbe.
-vertical-
Obtenir des données
→ Avec internet, c’est plus si compliqué
Obtenir des données utiles
→ C’est très couteux 💸💸💸
-vertical-
❓ A quel point c’est important ❓
C’est le nerf de la guerre
Les entreprises publient :
✔️ 🏠 les architectures
✔️ 🔩 les poids des modèles
❌ 📚 mais pas les données
-vertical-
Pourquoi c’est si comliqué à récupérer ?
En TAL, on a souvent des données non structurées qu’on veut enrichir → annoter
l’annotation demande la présence d’experts du sujet
exemple : dans le domaine médical, on a besoin de médecin pour annoter les comptes rendus
-vertical-
Pourquoi c’est si compliqué à récupérer ?
En NLP, on utilise beaucoup de données non structurées.
Ces données sont souvent sous un format difficile à récupérer.
exemples:
- récupérer du texte depuis des images ?
- récupérer du texte depuis un pdf ?
- depuis des plateformes propriétaires (microsoft word)
- depuis des présentations (power point) → comment conserver l’agencement du texte ?
-vertical-
Avant de sélectionner son corpus → bien déterminer la tâche que l’on veut traiter :
- son besoin en ressources
- quel modèle on utilise ? Machine Learning / Deep Leaning ?
- les langues que l’on va traiter
- monolingue/multilingue
- traduction ? (corpus Parallèle)
- le genre des textes
- ex : résumé d’article de journaux vs. résumé de décision juridiques
-vertical-
Critères de définition d’un corpus
- Taille (en nb de mots le plus souvent)
- Annotations (niveaux et outils utilisés)
- Statut de la documentation (guidelines, publication scientifique)
- Stratégie d’échantillonnage et origine des textes (genre)
- Modalité (écrit/oral)
- Licence et droits d’utilisation
→ Tout ça se trouve dans la carte des corpus
-vertical-
🔎Où trouver des corpus🔍
(cf. Clement Plancq)
-vertical-
💂Les grands corpus de l’anglais💂
Text Classification
- IMDB
- GLUE
Token Classification
- conll
Question Answering
- MMLU
- thruful_qa
Summarization
- cnn_dailymail
- scientific_papers
-vertical-
🥖Les grands corpus du français🥖
- frWaC (1,6 milliards de mots, annotation POS avec TreeTagger)
- FRCOW16 (8,7 milliards de mots)
- OSCAR (23 milliards de mots pour le français (issu de Common Crawl))
(cf. Clement Plancq)
-vertical-
Point bonnes pratiques
-vertical-
Le monde de l’IA et du NLP évolue extrêment vite et même en temps qu’expert, on a parfois du mal à rester au courant.

Quels sont les outils pour rester au courant des nouvelles ?
-vertical-
Les Outils
- linkedIn (DailyNews, …)
- reddit (/localLlama, /ArtificialIntelligence)
- x
- tous types de réseaux sociaux
-vertical-
Attention à bien vérifier vos sources !
-vertical-
Petite revue des nouvelles
-horizontal-
Les ressources sur lesquelles se basent le cours :
-vertical-
TP
| Partie 1 |
étude de cas CoNLL 2003 : |
- Quelle type de tâche propose CoNLL 2003 ?
- Quel type de données y a-t-il dans CoNLL 2003 ?
- A quel besoin répond CoNLL 2003 ?
- Quels types de modèles ont été entraînés sur CoNLL 2003 ?
- Est un corpus monolingue ou multilingue ?
-vertical-
TP
- Définissez les besoins de votre projet:
- dans quel besoin vous inscrivez vous ?
- quel sujet allez vous traiter ?
- quel type de tâche allez vous réaliser ?
- quel type de données allez vous exploiter ?
- où allez vous récupérer vos données ?
- sont-elles libres d’accès ?