Normalizing text to reduce variationNormaliser un texte pour réduire la variation

TRA2600 S5 · in classS5 · en classe

Fewer types for the same text

Once a text is cut into tokens, many of its types are the same word in different clothes: Le and le, colour and color, livre and livres, ” and «. For many purposes these should count as one. Making them one is normalization.

The point is to reduce the number of types while keeping what the task needs. A frequency list that keeps Le and le apart splits the count of one of the most frequent words in two. A search for chien that does not find chiens misses every plural. A comparison of two lists of terms in which one list is in lowercase and the other is not finds no matches at all.

Normalizing and filtering

Normalization is one of two ways to reduce the number of types, and the two are easy to confuse because both leave a shorter list. The table below sets out how they differ: in what happens to the occurrences.

What happens to a typeWhat happens to its tokensExamples
NormalizingIt is merged with other types into one formAll of them are kept, counted under that one formLowercasing, removing accents, lemmatization
FilteringIt is removedThey are removed with it, so there are fewer tokensDropping stop words, punctuation, numbers or rare words
Two ways to reduce the number of types.

Information retrieval treats them as two separate steps (Manning et al., 2008, §2.2.2–2.2.3). A count should say which of the two was applied: after normalizing, the text is still all there; after filtering, part of it is gone.

A filter many tools offer is a list of stop words, the words that occur in every text and tell you little about its subject.

Dropping them is useful when the subject is what you are after and useless when the grammar is.

An example on a Dutch corpus

The effect on a corpus corpuscorpus corporacorpus A collection of written texts, speech recordings or transcribed language assembled for analysis or use in language technology (plural: corpora).Ensemble de textes écrits, d'enregistrements de parole ou de langue transcrite réuni pour l'analyse ou pour les technologies langagières. is large, and Figure 1figure 1 shows one normalization followed by two filters on a web corpus of Dutch of 6.8 billion tokens.

  • Putting everything in lowercase normalizes. It removes almost four million types and leaves the number of tokens exactly as it was: every occurrence is still there, written in fewer ways.
  • Keeping only the types that start with a letter filters. It removes two million more types and almost a billion tokens, because punctuation marks, numbers and symbols are few types but occur everywhere.
  • Keeping only the types that occur at least five times filters too. It removes 18.7 million types but only about 30 million tokens, under 1 % of the corpus, since each of those types occurs at most four times.

Four million types remain of the original twenty-nine.The token and word counts are Sketch Engine’s own statistics for nlTenTen20, a crawl of the Dutch web from 2020 (6 836 979 371 tokens, 5 890 009 964 words); the type counts come from my word lists on that corpus, with each filter added in turn. The 5.89 billion tokens left after the second filter are the corpus’s word count, since Sketch Engine counts as a word every token that starts with a letter (Sketch Engine glossary, “word”, read 6 October 2026).

Four horizontal bars, one per step, with the number of types left; a legend marks lowercasing as normalizing (blue) and the two steps below a dashed line as filtering (orange). No normalization: 28.9 million types. Lowercase: 25.1 million. Starting with a letter only: 22.9 million. Occurring at least five times: 4.2 million. Beside each bar, the number of tokens: 6.84 billion, still 6.84 billion after lowercasing, 5.89 billion after keeping only types that start with a letter, and 5.86 billion after keeping only types that occur at least five times.
Figure 1. Types and tokens in a Dutch web corpus of 6.8 billion tokens, after each step.

The usual normalizations

The table below lists normalizations that tools commonly offer, with what each one changes and what it can cost.

OperationExampleWhat it loses
Case folding, everything in lowercaseLe, LE, le become leThe capital that tells Pierre from pierre, or a sentence start from a name
Removing accentsété, ete become eteThe difference between cote, côte, côté and coté
Unifying quotation marks and apostrophes«, ”, „ become ”; ’ and ’ become ’Nothing, in most tasks
Unifying numbers10 000 and 10.000 become 10000; or every number becomes one placeholder, so 2026, 3,5 and 10 000 are all NUMThe thousands convention that told you the language; with a placeholder, the value itself
Expanding contractionsdon’t becomes do not; du becomes de leThe written form, which a search then no longer finds
Unifying spelling variantscolour and color become colorThe variety that told you where the text was written
Lemmatizationlivre, livres become livre; allons, allait become allerThe number, tense and person of each occurrence
Common normalizations, with an example and what each one loses.

Expanding contractions

Expanding contractions is the one normalization in the table that adds tokens, since one written word becomes two.

  • In English, don’t becomes do not, I’m becomes I am and won’t becomes will not.
  • In French, du becomes de le, au becomes à le and aux becomes à les; c’est, which a tokenizer usually cuts into c’ and est, becomes ce est.

It is still a normalization, because nothing is removed: the number of types falls while the number of tokens rises, as Figure 2figure 2 shows. After it, don’t and do not are the same form, and the negation in don’t, won’t or isn’t is counted with every other not. In French, the types du, au and aux disappear: the preposition in them is counted under de or à, and the article under le or les. Some expansions need a decision first: it’s is it is in it’s raining and it has in it’s been raining.

Two panels, English and French. In English, three types before expansion, do three times, don't twice and not once, become two types after it, do five times and not three times; lines show don't feeding both. The count goes from 3 types and 6 tokens to 2 types and 8 tokens. In French, de four times, du twice and le three times become de six times and le five times, from 3 types and 9 tokens to 2 types and 11 tokens.
Figure 2. Expanding a contraction merges it into two types that already exist, so there are fewer types and more tokens.

The line between this and tokenization is not sharp. Cutting doesn’t into does and n’t only cuts what is written, which is tokenization; writing n’t as not, or du as de le, changes the letters, which is normalization. Many tools do both in one step, and the list of tokenization rules built for French in the tokenization chapter ends with one that turns au, du and des into two words (see also the Tokenizing a text with rules page) (voir aussi la page Segmenter un texte avec des règles).

The forms an expansion produces are not always real words: ce est and de le are not French. They are there so that a tagger can label the pronoun and the verb, or the preposition and the article, separately. The annotated corpus of the part-of-speech tagging chapter shows the tokenization side of the same choice: it cuts can’t into ca and n’t, the form English tagsets expect, and ca is not an English word either (see also the Practice: tagging watch with probabilities page) (voir aussi la page Exercices : étiqueter montre avec des probabilités).

Choosing what to normalize and filter

Every normalization and every filter loses something, and the loss is only acceptable if the task does not need what was lost. Lowercasing is right for a frequency list and wrong for finding proper names. Removing accents is right for a rough search and wrong for French, where a and à are two words. Dropping stop words is right for finding the topic of a text and wrong for tagging its grammar. So both are chosen per task, and the choice should be stated, because a count or a score made after one set of normalizations and filters is not comparable to a count made after another.

Written in English. The French version was automatically generated and I have not revised it. Rédigé en anglais. La version française a été générée automatiquement et je ne l'ai pas révisée. Updated 6 October 2026

Moins de types pour le même texte

Une fois un texte découpé en occurrences, beaucoup de ses types sont le même mot sous des habits différents : Le et le, colour et color, livre et livres, ” et «. Pour bien des usages, ils devraient compter pour un. Les ramener à une seule forme, c’est la normalisation.

Le but est de réduire le nombre de types tout en gardant ce dont la tâche a besoin. Une liste de fréquences qui sépare Le et le coupe en deux le décompte de l’un des mots les plus fréquents. Une recherche de chien qui ne trouve pas chiens manque tous les pluriels. Une comparaison de deux listes de termes, l’une en minuscules et l’autre non, ne trouve aucune correspondance.

Normaliser et filtrer

La normalisation est l’une des deux façons de réduire le nombre de types, et on confond facilement les deux, puisque l’une comme l’autre donne une liste plus courte. Le tableau ci-dessous montre en quoi elles diffèrent : dans ce qu’il advient des occurrences.

Ce que devient un typeCe que deviennent ses occurrencesExemples
NormaliserIl est fusionné avec d’autres types en une seule formeElles sont toutes gardées, comptées sous cette formeMise en minuscules, suppression des accents, lemmatisation
FiltrerIl est suppriméElles disparaissent avec lui : il y a moins d’occurrencesSuppression des mots vides, de la ponctuation, des nombres ou des mots rares
Deux façons de réduire le nombre de types.

La recherche d’information en fait deux étapes distinctes (Manning et al., 2008, §2.2.2–2.2.3). Un décompte devrait préciser laquelle des deux a été appliquée : après une normalisation, le texte est encore là en entier ; après un filtrage, une partie a disparu.

Un filtre que proposent beaucoup d’outils est une liste de mots vides, les mots qui apparaissent dans tous les textes et en disent peu sur leur sujet.

Les supprimer est utile quand on s’intéresse au sujet d’un texte, et inutile quand on s’intéresse à sa grammaire.

Un exemple sur un corpus néerlandais

L’effet sur un corpus corpuscorpus corporacorpus A collection of written texts, speech recordings or transcribed language assembled for analysis or use in language technology (plural: corpora).Ensemble de textes écrits, d'enregistrements de parole ou de langue transcrite réuni pour l'analyse ou pour les technologies langagières. est important, et la Figure 1figure 1 montre une normalisation suivie de deux filtres sur un corpus du Web néerlandais de 6,8 milliards d’occurrences.

  • La mise en minuscules normalise. Elle supprime près de quatre millions de types et laisse le nombre d’occurrences exactement tel quel : chaque occurrence est toujours là, écrite de moins de façons.
  • Ne garder que les types qui commencent par une lettre est un filtre. Il supprime deux millions de types de plus et près d’un milliard d’occurrences, parce que les signes de ponctuation, les nombres et les symboles sont peu nombreux comme types, mais apparaissent partout.
  • Ne garder que les types qui apparaissent au moins cinq fois est aussi un filtre. Il supprime 18,7 millions de types, mais seulement 30 millions d’occurrences environ, moins de 1 % du corpus, puisque chacun de ces types apparaît au plus quatre fois.

Il reste quatre millions de types sur les vingt-neuf du départ.Les nombres d’occurrences et de mots sont les statistiques de Sketch Engine pour nlTenTen20, une collecte du Web néerlandais de 2020 (6 836 979 371 occurrences, 5 890 009 964 mots) ; les nombres de types viennent de mes listes de mots sur ce corpus, en ajoutant chaque filtre l’un après l’autre. Les 5,89 milliards d’occurrences qui restent après le deuxième filtre correspondent au nombre de mots du corpus, puisque Sketch Engine compte comme mot toute occurrence qui commence par une lettre (glossaire de Sketch Engine, « word », consulté le 6 octobre 2026).

Quatre barres horizontales, une par étape, avec le nombre de types restants ; une légende indique que la mise en minuscules est une normalisation (en bleu) et que les deux étapes sous une ligne pointillée sont des filtres (en orange). Aucune normalisation : 28,9 millions de types. Mise en minuscules : 25,1 millions. Commence par une lettre : 22,9 millions. Au moins cinq occurrences : 4,2 millions. À côté de chaque barre, le nombre d'occurrences : 6,84 milliards, toujours 6,84 milliards après la mise en minuscules, 5,89 milliards après le filtre sur la première lettre, et 5,86 milliards après le filtre sur la fréquence.
Figure 1. Types et occurrences dans un corpus du Web néerlandais de 6,8 milliards d'occurrences, après chaque étape.

Les normalisations courantes

Le tableau ci-dessous présente des normalisations que les outils proposent souvent, avec ce que chacune change et ce qu’elle peut coûter.

OpérationExempleCe qu’elle fait perdre
Mise en minusculesLe, LE, le deviennent leLa majuscule qui distingue Pierre de pierre, ou un début de phrase d’un nom
Suppression des accentsété, ete deviennent eteLa différence entre cote, côte, côté et coté
Uniformisation des guillemets et des apostrophes«, ”, „ deviennent ” ; ’ et ’ deviennent ’Rien, pour la plupart des tâches
Uniformisation des nombres10 000 et 10.000 deviennent 10000 ; ou bien chaque nombre est remplacé par un même symbole, de sorte que 2026, 3,5 et 10 000 deviennent tous NUMLa convention des milliers, qui indiquait la langue ; avec un symbole, la valeur elle-même
Décomposition des contractionsdon’t devient do not ; du devient de leLa forme écrite, qu’une recherche ne trouve plus
Uniformisation des variantes orthographiquescolour et color deviennent colorLa variété, qui indiquait où le texte a été écrit
Lemmatisationlivre, livres deviennent livre ; allons, allait deviennent allerLe nombre, le temps et la personne de chaque occurrence
Normalisations courantes, avec un exemple et ce que chacune fait perdre.

Décomposer les contractions

La décomposition des contractions est la seule normalisation du tableau qui ajoute des occurrences, puisqu’un mot écrit en devient deux.

  • En anglais, don’t devient do not, I’m devient I am et won’t devient will not.
  • En français, du devient de le, au devient à le et aux devient à les ; c’est, qu’un segmenteur coupe d’ordinaire en c’ et est, devient ce est.

C’est tout de même une normalisation, puisque rien n’est supprimé : le nombre de types baisse pendant que le nombre d’occurrences augmente, comme le montre la Figure 2figure 2. Après la décomposition, don’t et do not sont la même forme, et la négation de don’t, won’t ou isn’t est comptée avec tous les autres not. En français, les types du, au et aux disparaissent : leur préposition est comptée sous de ou à, et leur article sous le ou les. Certaines décompositions demandent d’abord de trancher : it’s vaut it is dans it’s raining et it has dans it’s been raining.

Deux panneaux, anglais et français. En anglais, trois types avant la décomposition, do trois fois, don't deux fois et not une fois, deviennent deux types après, do cinq fois et not trois fois ; des traits montrent que don't alimente les deux. Le décompte passe de 3 types et 6 occurrences à 2 types et 8 occurrences. En français, de quatre fois, du deux fois et le trois fois deviennent de six fois et le cinq fois, soit de 3 types et 9 occurrences à 2 types et 11 occurrences.
Figure 2. Décomposer une contraction la fusionne dans deux types qui existent déjà : il y a moins de types et plus d'occurrences.

La frontière avec la segmentation en unités lexicales n’est pas nette. Couper doesn’t en does et n’t ne fait que couper ce qui est écrit, c’est de la segmentation ; écrire n’t sous la forme not, ou du sous la forme de le, change les lettres, c’est de la normalisation. Beaucoup d’outils font les deux en une seule étape, et la liste de règles de segmentation construite pour le français dans le chapitre sur la segmentation se termine par une règle qui transforme au, du et des en deux mots (see also the Tokenizing a text with rules page) (voir aussi la page Segmenter un texte avec des règles).

Les formes qu’une décomposition produit ne sont pas toujours de vrais mots : ce est et de le ne sont pas du français. Elles servent à ce qu’un étiqueteur puisse étiqueter séparément le pronom et le verbe, ou la préposition et l’article. Le corpus annoté du chapitre sur l’étiquetage morphosyntaxique a été normalisé de cette façon, c’est pourquoi il contient la phrase mais ce est vrai (see also the Practice: tagging watch with probabilities page) (voir aussi la page Exercices : étiqueter montre avec des probabilités).

Choisir ce qu’on normalise et ce qu’on filtre

Toute normalisation et tout filtrage font perdre quelque chose, et la perte n’est acceptable que si la tâche n’a pas besoin de ce qui a été perdu. La mise en minuscules convient à une liste de fréquences, mais pas à la recherche de noms propres. La suppression des accents convient à une recherche approximative, mais pas au français, où a et à sont deux mots. La suppression des mots vides convient pour trouver le sujet d’un texte, mais pas pour en étiqueter la grammaire. On les choisit donc selon la tâche, et ce choix devrait être indiqué, parce qu’un décompte ou un score obtenu après un ensemble de normalisations et de filtres n’est pas comparable à un décompte obtenu après un autre.

Written in English. The French version was automatically generated and I have not revised it. Rédigé en anglais. La version française a été générée automatiquement et je ne l'ai pas révisée. Mise à jour 6 octobre 2026

Sources

Sources

Spotted an error? Une erreur ?

Language, content, a broken link: e-mail me what you saw and I will fix it. Langue, contenu, lien brisé : écrivez-moi ce que vous avez vu et je corrige.

ayla.rigouts.terryn@umontreal.ca

Please mention the page: Mentionnez la page :