Retour à l'accueil Remonter

Le dispositif mathématique

François Daoust.

François Daoust est informaticien et chercheur au Centre d'analyse de texte par ordinateur -Cognition et information-. Il est responsable du projet SATO-CALIBRAGE au Centre ATO-CI.

Nous désignons, par dispositif mathématique, l'ensemble des méthodes quantitatives utilisées à l'intérieur du projet SATO-CALIBRAGE pour interpréter les indices fournis par SATO. Ces méthodes mathématiques sont utilisées à deux fins. D'abord, on s'en sert pour déterminer les variables (indices) qui varient de façon significative par rapport aux textes provenant des divers niveaux scolaires. Ainsi, on peut confirmer ou infirmer nos hypothèses concernant divers fonctionnements discursifs. Ensuite, on s'en sert pour combiner les indices primitifs significatifs afin de construire des fonctions aptes à prédire le niveau scolaire d'un texte.

Dans SATO-CALIBRAGE, nous avons fait appel à quatre types de modèles mathématiques.

D'abord, puisque nous visons à trouver des indices permettant de distinguer les textes selon le niveau d'enseignement auquel ils sont destinés, nous avons utilisé des tests d'hypothèses pour réaliser une première sélection des indices.

En ce qui concerne la constitution des indices basés sur les termes fonctionnels, nous avons voulu réduire le nombre de variables. Pour ce faire, nous avons utilisé deux techniques.

Dans la première, nous avons soumis les termes fonctionnels retenus à l'analyse discriminante (progiciel SPSS). Nous avons conservé les termes gardés par l'analyse.

Dans la deuxième technique, nous avons d'abord soumis l'ensemble des termes retenus à un algorithme de classement (cf. l'article de Guy Cucumel) destiné à grouper les termes ayant des distributions similaires sur l'échelle scolaire. L'interprétation des groupes a permis d'éliminer certains groupes dont le comportement semblait atypique. Elle a aussi permis de garder les autres groupes sous la forme d'indices composites.

Finalement, nous avons élaboré des fonctions prédictives (indices SATO-CALIBRAGE) permettant de classer un texte dans un niveau d'enseignement. Pour ce faire, nous avons utilisé les régressions simples et multiples (cf article de Léo Laroche), et l'analyse discriminante.

La sélection des indices

Dans la partie précédente sur le dispositif linguistique, nous avons illustré comment, à partir d'hypothèses linguistiques et pédagogiques, nous avons construit des scénarios SATO qui dépistent la réalisation de certaines constructions discursives. Ces scénarios produisent des indices numériques à savoir le nombre, absolu ou relatif, d'occurrences du phénomène recherché.

La première question que l'on se pose est la suivante: est-ce que ces indices varient de façon significative lorsqu'on analyse des textes qui proviennent de niveaux d'enseignement différents?

Revenons à notre hypothèse selon laquelle l'usage de certains termes fonctionnels distingue les textes selon leur niveau scolaire. Pour valider une telle hypothèse, il nous faut établir un indice qui va prendre la forme d'une fonction à deux paramètres. Le premier paramètre représente un terme de l'ensemble du vocabulaire dont la liste nous est donnée naturellement par l'axe lexical construit par SATO. Un des dispositifs linguistiques auquel fait appel SATO-CALIBRAGE permet d'effectuer une catégorisation grammaticale hors contexte d'un lexique (cf. article de Fernande Dupuis et François Daoust). Par suite, il est donc facile de restreindre le vocabulaire soumis à notre indice aux lexèmes ayant reçus la catégorie grammaticale recherchée.

Ensuite, nous avons besoin d'un paramètre qui signe la variation des textes selon le niveau scolaire. Ce paramètre sera construit sur l'axe textuel (chaîne des occurrences) de SATO. Il suffit en effet de construire une partition sur cette axe qui distingue les occurrences des lexèmes selon qu'elles appartiennent à un texte issu de première année, deuxième, etc.

Cette partition peut s'opérer de diverses façons. Nous allons illustrer ici la façon la plus simple. Elle consiste à nommer chacune des classes d'enseignement lors même de la constitution du corpus.

Constitution d'un corpus par niveaux scolaires

*page=PR1 { document primaire 1 composé ...}
*page=@texte1. { d'un texte sur le fichier texte1}
*page=@texte2. { et texte2}

*page=PR2 { document primaire 2 composé ... }
*page=@texte3. { de texte3 }
*page=@texte4. { et texte4 }

Finalement l'indice lui-même se définit comme la somme des occurrences d'un lexème donné dans une classe donnée pondérée par le nombre total d'occurrences dans la classe. Il s'agit donc d'une fréquence relative, par exemple, la fréquence de la locution “en_outre” dans le domaine des textes de sixième année.

L'indice étant défini, on doit l'appliquer à notre corpus en faisant varier les paramètres. Voici un exemple d'un telle procédure en termes de commandes SATO :

Commandes SATO pour trouver des termes discriminants

(procédure CANDIDAT)

* On définit la propriété “motfonc” qui va contenir l'ensemble
* mots fonctionnels potentiellement discriminants
Propriété CRéer motfonc symbolique pour lexique oui non

* Pour ce faire, on sélectionne d'abord les lexèmes qui
* possèdent les catégories grammaticales suivantes:
* adv: adverbes;
* art, artdéf, artgén, artind, artpart:
* articles, articles définis, génériques, indéfinis et partitifs;
* conjonction;
* détdéf, détdém, détindéf, détposs:
* déterminants définis, démonstratifs, indéfinis, possessifs;
* délim: délimiteurs;
* p_dém, p_indéf, p_pers, p_poss, p_relatif:
* pronoms démonstratifs, indéfinis, personnels, possessifs, relatifs;
* ponctuation: ponctuation forte;
* prép: préposition;
* virgule: ponctuation faible.
Valeur motfonc oui pour **
$*gramr=(adv,art,art(déf,gén,ind,part),conjonction,**
dét(déf,dém,ind,poss),délim,**
p\_(dém,indéf,pers,poss,relatif),ponctuation,prép,virgule)

* On rajoute les locutions fonctionnelles bloquées par le caractère “_”
Valeur motfonc oui pour |\_$*mot=nil

* On élimine certaines marques d'édition
Valeur motfonc ­ oui pour (x,[,],%,#,+,/)

* Partition du texte en niveau scolaire
Segmenter par document

* On crée la propriété “chi2” qui va retenir l'indice calculé
Propriété CRéer chi2 entière pour lexique

* On calcule l'indice pour tous les lexèmes
* qui font partie de la liste des mots fonctionnels.
* (“$” est un opérateur de troncature sur les caractères)
Compter fréquences $*motfonc=oui Sauvegarde

Outre, le tableau des indices de fréquence des lexèmes dans chaque domaine, la procédure CANDIDAT fournit, grâce à la commande COMPTER, une représentation mathématique des résultats.

Représentation mathématique des résultats de la procédure CANDIDAT


 Moyenne Écart Répart. Discri. Chi2

 1.39%   0.18  100.0%  0.00    31.11 à
0.01% 0.00 83.3% 0.00 1.16 à_cause_de ...

Le tableau précédent fournit un certain nombre de mesures qui nous permettent d'interpréter mathématiquement les résultats obtenus par l'application de notre indice. Ainsi, dans SATO-CALIBRAGE, nous avons utilisé la statistique du Chi2 pour ne conserver, parmi l'ensemble des termes fonctionnels, que ceux dont l'indice Chi2 dépasse un certain seuil (23.20 pour une probabilité d'erreur de 1% à 11 degrés de liberté).

SATO calcule l'indice Chi2 en comparant, pour un lexème donné, son nombre d'occurences dans chacun des segments par rapport au nombre attendu sous l'hypothèse d'une indépendance de la distribution du lexème sur la partition choisie.

Sur les 1048 termes fonctionnels soumis à l'analyse, 332 ont été retenus comme étant inégalement distribués sur les 11 niveaux d'enseignements qui constituent le corpus.

Nous avons aussi soumis au test du Chi2 les autres variables du prototype, en particulier celles qui portent sur les constructions de phrases, pour ne conserver que les variables pertinentes.

Le groupement des indices par classification automatique

Comme le nombre de variables retenues par le test du Chi2 nous semblait trop important, nous avons voulu grouper certaines variables se comportant de façon similaire. En fait, c'est le groupement des termes fonctionnels qui nous intéressait d'abord. En effet, on retrouve parmi ces termes des fréquences relativement peu élevées. Nous avons voulu combiner des lexèmes afin de produire des indices plus stables.

L'article de Guy Cucumel explique les principes de la classification automatique. Sur la base de ces principes, nous avons utilisé des progiciels différents qui ont abouti à des classifications comparables.

Nous avons donc produit la matrice d'occurrences par segments des termes fonctionnels retenus en utilisant la procédure COMPTER de SATO. Par la suite nous avons soumis cette matrice au progiciel statistique SAS. Il est à noter que pour cette analyse, nous avons profité des résultats de l'analyse de régression déjà réalisée par Léo Laroche. Cette analyse nous a conduit à combiner les textes des secondaire 1 et 2, d'une part et de secondaire 3, 4 et 5 d'autre part. Deux jeux de commandes SAS sont utilisés. Le premier vise à recoder les fréquences de départ en fonction de la taille des documents (niveaux scolaires). Ensuite, on transforme les fréquences absolues ainsi pondérées en fréquences relatives à l'ensemble du corpus. Ainsi, on pourra utiliser la distance euclédienne pour constituer les différents groupes.

* Production de variables pondérées
libname MEQ 'répertoire des données en format SAS';
data MEQ.FONC;
infile 'fichier de données ASCII';
length id $ 24;
input id $ V1­V11;

* On pondère les fréquences absolues en égalisant la taille
des différentes classes;
F1=V1*36.83;
F2=V2*15.97;
F3=V3*8.51;
> F4=V4*6.26;
F5=V5*5.30;
F6=V6*3.85;
F7=(V7+V8)*2.15;
F8=V9+V10+V11;

* On transforme les fréquences absolues en proportion de distribution
entre les différentes classes;
TOTAL=F1+F2+F3+F4+F5+F6+F7+F8;
F1=F1/TOTAL;
F2=F2/TOTAL;
F3=F3/TOTAL;
F4=F4/TOTAL;
F5=F5/TOTAL;
F6=F6/TOTAL;
F7=F7/TOTAL;
F8=F8/TOTAL;

* Classification automatique
libname MEQ 'répertoire des données en format SAS';

* On peut faire varier le nombre de groupes (maxc)
proc FASTCLUS
data=MEQ.FONC maxc=10 short maxiter=10 out=MEQ.FC;
var f1­f8; id id;

* On classe les données en fonction de leur groupe
proc sort;
by cluster id;

* On imprime les données en fonction de leur groupe proc print
data=MEQ.FC;
var id f1­f8 total;
by cluster;

* On imprime, pour chaque groupe, la fréquence moyenne par niveau proc means
data=MEQ.FC;
var f1­f8;
by cluster;

La première chose que nous avons constaté en examinant les résultats de la classification automatique, c'est l'inégalité des classes obtenues. Cela nous a permis de dépister des comportements atypiques. Il faut voir en effet que nous n'avons pas utilisé de critères sémantiques dans le choix des termes fonctionnels. Ainsi, on peut trouver des adverbes de manière dont l'usage traduit davantage un choix d'auteur qu'un niveau de complexité. En examinant la distribution moyenne des lexèmes selon les niveaux scolaires, on peut constater ce caractère atypique.

Donc, la classification automatique nous a permis d'éliminer des variables. Nous avons repris ce processus d'élagage en retraitant de façon itérative les données restantes jusqu'à l'obtention de groupes significatifs par rapport à notre objectif. Après cinq ou six de ces itérations, nous avons réduit notre nombre de variable de 332 à 162. Ce travail d'élagage va se poursuivre par un examen plus approfondi des groupes. Finalement, dans les mois qui viennent nous soumettront les variables groupées à l'analyse de régression et à l'analyse discriminante.


Liste des mots fonctionnels potentiellement discriminants

Voici la liste des termes fonctionnels soumis à la classification automatique. Les lexèmes suivis d'un astérisque font partie de la liste des 162 lexèmes conservés après un premier travail d'élagage.

­ *
à *
à_côté_de
à_droite
afin_de
afin_qu'
à_gauche
ainsi *
à_jamais
à_l'_aide_d'
à_l'_exception_des
à_l'_instant *
alors *
alors_que *
à_même_de
à_mesure_que
à_moins_d' *
amoureusement
à_nouveau
à_part
après *
à_présent *
à_proximité_d'
à_proximité_de
à_savoir
attentivement
au *
au_bas_d'
au_bas_de
aucun *
au­delà *
au­dessous *
au­dessus *
au­devant *
au_haut_d'
aujourd''hui
aujourd'_hui
au_juste
au_moyen_d'
auprès_de
au_sommet_de
au_sommet_du
aussi *
aussitôt_que
autour_de
autour_du
autre *
autrefois
autres *
aux *
avant *
avec *
bas
beaucoup *
bien *
bien_que
bien_sûr
bientôt *
brusquement
c' *
ça *
car *
ce *
ceci
cela *
celui *
cependant
cependant_que
certaines *
certains *
certes *
ces *
cette
ceux *
chacun
chacune
chaque *
chèrement
chez *
ci *
comme *
comment *
confortablement
consciencieusement
contre
d' *
d'_accord_avec
d'_affilée *
d'_ailleurs *
dans *
dans_le_but_d'
de *
dedans
de_devant
dehors
delà
demain
de_nouveau *
depuis_qu'
des *
dès
dessus
devant
différents
directement *
donc
dont *
du *
durant *
également *
elle *
elles *
en *
en_conformité_avec
encore *
en_dessous
en_dessous_de
en_effet *
enfin *
en_haut_de
en_réalité
ensemble
ensuite *
entre *
envers
en_vertu_de *
environ *
en_vrac
et *
et_puis
face_au
facilement *
fébrilement
finalement
fort
fréquemment
gaiement
généralement
grâce_à *
grâce_aux
guère *
habituellement
haut

hélas
heureusement
hier
hors_du
ici
il *
ils *
immédiatement
impatiemment
inconsciemment
ironiquement
j' *
jamais *
je *
jusqu'_à *
jusqu'_au
l' *
la *
là *
la_sienne *
le *
le_long_de *
lentement
les *
les_miens
les_siens
leur *
leurs *
loin
loin_que *
long *
longtemps
lorsqu' *
lorsque *
lui *
m'
ma
maintenant *
maints *
mais *
mal *
malheureusement
me *
même *
mes *
moi *
mon *
n' *
ne *
ni *
non
nos *
notre
nous *
obligatoirement
on *
or
ou *
où *
ou_bien *
oui
outre
par *
parce_qu'
parce_que
par_contre *
par_exemple
parfaitement
parfois *
par_la_suite
parmi *
particulièrement *
partout *
pas *
patiemment
pendant *
pendant_que
peu *
pis
plein
plus *
plusieurs *
plus_qu'
plutôt *
plutôt_qu'
point *
pour *
pour_qu'
pourquoi *
près *
près_d'
près_de *
près_de_chez
près_du
principalement
proche_de
prudemment
puis *
puisque
qu' *
quand *
quant
quatre
que *
quelque *
quelquefois
quelques *
qui *
quoi
rien *
s' *
sa *
sans *
se *
selon
sensiblement
séparément *
ses *
seul *
si *
simplement
sinon *
soi
soigneusement
son *
soudain
sous
souvent *
subitement
sur *
surtout *
t' *
ta *
tandis_qu'
tant
tantôt
tard *
te *
tel *
telle
tellement_qu'
telles
tels
tes *
tiens
toi *
ton *
tous
tout *
tout_à_coup
tout_à_l'_heure
tout_de_suite
toute *
toutefois *
toutes
traditionnellement
très *
trop *
tu *
un *
une *
unes
un_peu *
un_peu_d'
vers *
verticalement
violemment
vite
voici *
voilà
vos
votre
vous *
vraiment
vu
, *
. *
: *
; *
? *
! *
... *
(
)
“ *
” *
$ *
" *


La construction de fonctions prédictives

Le dernier type de méthodes mathématiques utilisées dans SATO-CALIBRAGE vise à construire des fonctions prédictives permettant de classer un texte dans un niveau scolaire à partir des seuls indices produits par le prototype. C'est ce que l'on appellera l'indice SATO-CALIBRAGE.

Comme le jugement de la difficulté d'un texte nous vient de son classement selon le niveau scolaire auquel il est destiné, il est naturel de faire appel à des modèles de corrélation linéaire entre nos indices et la variable “niveau scolaire”. Voilà ce qui justifie l'emploi des méthodes de régression décrite dans l'article de Léo Laroche.

Nous pourrions aussi utiliser des méthodes d'analyse discriminante qui ont l'avantage de pouvoir utiliser des variables qui n'auraient pas cette relation linéaire avec le niveau scolaire. Cependant, l'interprétation de la fonction de classement est beaucoup moins intuitive en analyse discriminante que dans la régression.