Encodage des caractères et Unicode L3
Un ordinateur ne stocke que des nombres. Un encodage associe un nombre à chaque caractère. Le code ASCII (1963) utilise 7 bits pour 128 caractères, suffisants pour l'anglais mais pas pour les lettres accentuées. D'où la multiplication d'encodages sur 8 bits (ISO-8859-1 pour l'Europe de l'Ouest, Windows-1252), incompatibles entre eux. Un texte lu avec le mauvais encodage affiche des caractères étranges (« é » au lieu de « é ») : c'est le mojibake.
Unicode est une norme qui attribue un numéro unique (un point de code) à plus de 150 000 caractères de toutes les écritures. UTF-8 est l'encodage le plus répandu : il code chaque caractère sur 1 à 4 octets et reste compatible avec l'ASCII. Il est aujourd'hui l'encodage par défaut du web. Un même caractère peut s'écrire de deux façons : « é » en un point de code unique (forme NFC) ou « e » suivi d'un accent combinant (forme NFD) ; il faut normaliser avant de comparer ou de compter.
Pour un linguiste, ces détails comptent : l'API (Alphabet phonétique international) est dans Unicode, mais certains caractères se ressemblent (le « ɡ » de l'API et le « g » latin). Il faut des polices qui couvrent les symboles utilisés, éviter les saisies par copier-coller de provenance inconnue et enregistrer ses fichiers en UTF-8. Les erreurs d'encodage corrompent silencieusement des corpus entiers.
- ASCII : 128 caractères sur 7 bits.
- Unicode : un point de code par caractère ; UTF-8 sur 1 à 4 octets.
- Mojibake : mauvais encodage affiché.
- Normalisation NFC/NFD avant de comparer.
Expressions régulières L3
Une expression régulière (regex) est un motif qui décrit un ensemble de chaînes de caractères. Les concordanciers et les éditeurs de texte permettent de s'en servir pour chercher, extraire ou remplacer. Les symboles de base : . (n'importe quel caractère), * (zéro ou plusieurs fois), + (une ou plusieurs fois), ? (zéro ou une fois), [abc] (l'un de ces caractères), ^ et $ (début et fin de ligne), \d (un chiffre), \b (limite de mot), | (ou) et les parenthèses pour grouper.
Quelques exemples utiles : \b\w+ment\b repère des mots finissant par « ment » (adverbes, mais aussi noms comme « moment ») ; \b(le|la|les)\s+\w+ trouve un article suivi d'un mot ; \d{4} trouve une année à quatre chiffres. Un motif trop large produit du bruit (mots non pertinents) ; un motif trop étroit manque des occurrences (silence). On mesure le résultat par la précision et le rappel.
Les regex servent à nettoyer des textes (supprimer des espaces multiples), à segmenter en phrases, à extraire des numéros de tour de parole dans une transcription, ou à vérifier une annotation. Elles ont des limites : elles ne comprennent pas la structure grammaticale (elles ne distinguent pas « le » article et « le » pronom). Pour cela, on utilise un analyseur morphosyntaxique.
- . * + ? [] ^ $ \d \b | et groupes.
- Précision (bruit) et rappel (silence).
- Usages : nettoyage, segmentation, extraction.
- Limites : pas d'analyse grammaticale.
Formats de données et d'annotation L3
Un corpus se stocke dans des formats plus ou moins structurés. Le texte brut (.txt) est le plus simple mais ne garde aucune annotation. Le CSV ou TSV organise des tableaux : une ligne par mot ou par tour de parole, une colonne par information (forme, lemme, catégorie). Le JSON encode des structures imbriquées (listes, dictionnaires) et est très utilisé dans le web et les API. Le XML balise un texte avec des étiquettes hiérarchiques ; la TEI (Text Encoding Initiative, 1987) est le standard XML pour encoder des textes littéraires, des manuscrits ou des corpus oraux.
Pour l'annotation syntaxique, les Universal Dependencies utilisent le format CoNLL-U : un mot par ligne, avec des colonnes pour la forme, le lemme, la catégorie, les traits, la tête de dépendance et la relation. Pour l'oral, ELAN et Praat permettent d'annoter l'audio et la vidéo sur des couches (« tiers »), exportables en XML ou en texte. Les formats ouverts et documentés permettent à d'autres de réutiliser les données.
Un bon format garde l'information utile et reste lisible dans quinze ans : on préfère des formats ouverts (texte, CSV, XML) à des formats propriétaires. On documente toujours les colonnes (un fichier README), l'encodage et les conventions d'annotation. Les métadonnées (locuteur, date, lieu, licence) sont autant à protéger que le contenu, en respectant les règles sur les données personnelles.
- TXT, CSV/TSV, JSON, XML : degrés de structure.
- TEI (1987) : standard XML pour encoder des textes.
- CoNLL-U : format des Universal Dependencies.
- Formats ouverts, documentation et métadonnées.
Premiers pas avec Python pour le texte L3
Python est un langage de programmation lisible, très utilisé en traitement automatique des langues et en humanités numériques. Un script lit un fichier, découpe le texte en mots (tokenisation), compte les occurrences et affiche les résultats. Quelques notions suffisent pour commencer : les variables, les listes (suites ordonnées), les dictionnaires (paires clé-valeur, idéales pour compter des mots), les boucles (for) et les fonctions.
Un exemple conceptuel : on lit un texte, on le met en minuscules, on le sépare en mots, puis on compte avec un dictionnaire ; on trie ensuite les mots par fréquence pour observer la loi de Zipf. Des bibliothèques spécialisées facilitent ces tâches : NLTK et spaCy pour l'analyse linguistique (lemmatisation, étiquetage morphosyntaxique), pandas pour manipuler des tableaux, matplotlib pour les graphiques. Un notebook (Jupyter) mélange code, résultats et explications, très pratique pour documenter une analyse.
Il faut toujours vérifier les résultats : un compteur de mots qui compte « Le » et « le » séparément ou qui garde la ponctuation produit des erreurs. Un bon réflexe est de tester son script sur un petit exemple dont on connaît la réponse. Les bibliothèques ont des versions : on note la version utilisée pour que d'autres puissent reproduire le résultat.
- Variables, listes, dictionnaires, boucles, fonctions.
- Tokenisation, comptage, tri par fréquence.
- NLTK, spaCy, pandas, matplotlib ; notebooks Jupyter.
- Tester sur un petit exemple connu.
Reproductibilité, versions et éthique des données L3
Une analyse est reproductible si une autre personne, avec les mêmes données et le même code, obtient les mêmes résultats. Pour cela, on organise ses fichiers (données brutes séparées des données transformées), on écrit des scripts plutôt que de faire des manipulations manuelles, on fixe les paramètres aléatoires et on note les versions des logiciels. Git est un système de contrôle de version : il enregistre l'historique des modifications d'un projet et permet de revenir en arrière ; des plateformes comme GitHub ou GitLab permettent de partager le code.
Les principes FAIR (faciles à trouver, accessibles, interopérables, réutilisables) guident le dépôt de données dans des archives ouvertes comme Zenodo, Nakala ou HAL. Une licence (par exemple Creative Commons) précise les droits de réutilisation. Chaque jeu de données porte un identifiant stable (DOI) et une documentation.
Les corpus contiennent parfois des données personnelles : voix, noms, adresses. Le RGPD impose de recueillir un consentement éclairé, de limiter les données collectées, de les protéger et de les anonymiser quand c'est possible. La voix peut être considérée comme une donnée biométrique selon l'usage. L'usage d'outils d'IA doit aussi respecter ces règles : on n'envoie pas de données confidentielles à un service en ligne sans cadre approprié. L'éthique de la recherche est inséparable de la technique.
- Reproductibilité : mêmes données, même code, mêmes résultats.
- Git : historique des modifications.
- FAIR, licences, DOI, archives ouvertes.
- RGPD : consentement, minimisation, anonymisation.
Révision express : l'essentiel du cours L3
Cette fiche rassemble, chapitre par chapitre, l'essentiel du cours « Outils numériques pour linguistes ». Lis-la quand tu as terminé les chapitres, puis teste-toi avec les QCM : si un point ne te dit plus rien, retourne au chapitre concerné.
Encodage des caractères et Unicode
- ASCII : 128 caractères sur 7 bits.
- Unicode : un point de code par caractère ; UTF-8 sur 1 à 4 octets.
- Mojibake : mauvais encodage affiché.
- Normalisation NFC/NFD avant de comparer.
Expressions régulières
- . * + ? [] ^ $ \d \b | et groupes.
- Précision (bruit) et rappel (silence).
- Usages : nettoyage, segmentation, extraction.
- Limites : pas d'analyse grammaticale.
Formats de données et d'annotation
- TXT, CSV/TSV, JSON, XML : degrés de structure.
- TEI (1987) : standard XML pour encoder des textes.
- CoNLL-U : format des Universal Dependencies.
- Formats ouverts, documentation et métadonnées.
Premiers pas avec Python pour le texte
- Variables, listes, dictionnaires, boucles, fonctions.
- Tokenisation, comptage, tri par fréquence.
- NLTK, spaCy, pandas, matplotlib ; notebooks Jupyter.
- Tester sur un petit exemple connu.
Reproductibilité, versions et éthique des données
- Reproductibilité : mêmes données, même code, mêmes résultats.
- Git : historique des modifications.
- FAIR, licences, DOI, archives ouvertes.
- RGPD : consentement, minimisation, anonymisation.
Plan de révision conseillé
- Jour 1. Relis cette fiche, puis écris de mémoire les points que tu ne retrouves pas.
- Jour 2. Fais les QCM du cours en entraînement et note tes erreurs : elles dirigent ta révision.
- Jour 3. Traite les exercices type partiel sans regarder la correction, puis compare avec elle.
- Veille du partiel. Mode partiel chronométré, puis relis les pièges ci-dessous.
- ASCII : 128 caractères sur 7 bits.
- . * + ? [] ^ $ \d \b | et groupes.
- TXT, CSV/TSV, JSON, XML : degrés de structure.
- Variables, listes, dictionnaires, boucles, fonctions.
- Reproductibilité : mêmes données, même code, mêmes résultats.
Vocabulaire à retenir
- Encodage : Association entre caractères et nombres.
- ASCII : 128 caractères sur 7 bits.
- Unicode : Norme attribuant un point de code à chaque caractère.
- UTF-8 : Encodage sur 1 à 4 octets, standard du web.
- Mojibake : Caractères mal affichés par erreur d'encodage.
- Normalisation NFC/NFD : Deux formes d'un même caractère accentué.
- Expression régulière : Motif décrivant un ensemble de chaînes.
- . * + ? : N'importe quel caractère ; 0 ou plus ; 1 ou plus ; 0 ou 1.
- \b \d : Limite de mot ; chiffre.
- Bruit : Résultats non pertinents.
- Silence : Occurrences pertinentes non trouvées.
- CSV / TSV : Tableaux séparés par virgules / tabulations.
Cinq questions pour t'entraîner
Qu'est-ce qu'un encodage de caractères ?
- Une police de caractères
- Une règle d'orthographe
- Une association entre caractères et nombres
- Une langue de programmation
Réponse : Une association entre caractères et nombres. Un ordinateur ne stocke que des nombres : l'encodage dit à quel caractère correspond chacun.
Combien de caractères l'ASCII définit-il ?
- 128
- 256
- 65 536
- 1 000 000
Réponse : 128. Il utilise 7 bits, ce qui suffit à l'anglais mais pas aux accents.
Qu'est-ce que le mojibake ?
- Un format d'image
- Un type de police
- Un langage de programmation
- Des caractères mal affichés à cause d'un mauvais encodage
Réponse : Des caractères mal affichés à cause d'un mauvais encodage. On voit par exemple « é » à la place de « é ».
Que fait Unicode ?
- Il traduit des textes
- Il attribue un numéro unique à des caractères de toutes les écritures
- Il corrige l'orthographe
- Il compresse les images
Réponse : Il attribue un numéro unique à des caractères de toutes les écritures. Le numéro s'appelle point de code.
Quelle est la particularité d'UTF-8 ?
- Il code tout sur 1 octet
- Il code chaque caractère sur 1 à 4 octets
- Il ne code que l'anglais
- Il est réservé aux langues asiatiques
Réponse : Il code chaque caractère sur 1 à 4 octets. Il est compatible avec l'ASCII et très répandu sur le web.
Faire le QCM complet (30 questions) Réviser les 30 fiches
Autres cours
- Introduction à la linguistique
- Langage et communication
- Linguistique historique
- Syntaxe
- Lexicologie
- Linguistique et diversité des langues
- Phonétique
- Sémantique
- Sociolinguistique
- Acquisition du langage
- Morphologie
- Phonologie
- Syntaxe
- Communication interculturelle
- Pragmatique et analyse du discours
- Écritures et orthographe
- Terrain, enquête, corpus
- Comparer les langues
- Pragmatique des interactions
- Linguistique diachronique
- Logique
- Syntaxe
- Morphologie du lexique
- Psycholinguistique
- Neurolinguistique
- Linguistique cognitive
- Pathologies du langage et orthophonie
- Didactique des langues et FLE
- Méthodologie du travail universitaire
- Panorama des langues du monde
- Linguistique de l'anglais
- Orientation, masters et débouchés
- Rhétorique et stylistique
- Dialectologie et géolinguistique
- Linguistique romane : du latin aux langues romanes
- Analyse du discours
- Contact de langues, pidgins et créoles
- Traductologie et traduction
- Épistémologie de la linguistique
- Phonologie avancée et phonétique expérimentale
- Méthodes quantitatives et expérimentales
- Langues des signes et multimodalité