💻 Outils numériques pour linguistes

Encodage des caractères, expressions régulières, formats de données, premiers pas en Python, annotation de corpus et bonnes pratiques de reproductibilité.

Ouvrir le cours interactifS'entraîner avec les QCM

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.

À retenir

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.

À retenir

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.

À retenir

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.

À retenir

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.

À retenir

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

Expressions régulières

Formats de données et d'annotation

Premiers pas avec Python pour le texte

Reproductibilité, versions et éthique des données

Plan de révision conseillé

  1. Jour 1. Relis cette fiche, puis écris de mémoire les points que tu ne retrouves pas.
  2. Jour 2. Fais les QCM du cours en entraînement et note tes erreurs : elles dirigent ta révision.
  3. Jour 3. Traite les exercices type partiel sans regarder la correction, puis compare avec elle.
  4. Veille du partiel. Mode partiel chronométré, puis relis les pièges ci-dessous.
À retenir

Vocabulaire à retenir

Cinq questions pour t'entraîner

  1. Qu'est-ce qu'un encodage de caractères ?

    1. Une police de caractères
    2. Une règle d'orthographe
    3. Une association entre caractères et nombres
    4. 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.

  2. Combien de caractères l'ASCII définit-il ?

    1. 128
    2. 256
    3. 65 536
    4. 1 000 000

    Réponse : 128. Il utilise 7 bits, ce qui suffit à l'anglais mais pas aux accents.

  3. Qu'est-ce que le mojibake ?

    1. Un format d'image
    2. Un type de police
    3. Un langage de programmation
    4. 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 « é ».

  4. Que fait Unicode ?

    1. Il traduit des textes
    2. Il attribue un numéro unique à des caractères de toutes les écritures
    3. Il corrige l'orthographe
    4. 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.

  5. Quelle est la particularité d'UTF-8 ?

    1. Il code tout sur 1 octet
    2. Il code chaque caractère sur 1 à 4 octets
    3. Il ne code que l'anglais
    4. 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