Autour de la stylométrie appliquée à des sources anciennes… 3

Voici le troisième épisode de la série de billets consacrée à la stylométrie. Le deuxième épisode s’est terminé sur la conclusion que le texte oprhelin doit être attribué à Raoul de Caen. Nous allons à présent décortiquer les résultats obtenus par l’ACP en termes de variables, puis estimer l’impact sur ceux-ci d’un paramètre clef de la méthode, le nombre de lemmes à considérer dans chaque paquet de lemmes.

Résultats de l’ACP : les variables

Comme nous l’avons déjà vu, les deux composantes principales que nous avons utilisées pour visualiser nos paquets de lemmes sont des résumés des fréquences associées aux lemmes qui apparaissent dans les textes considérés. Néanmoins, tous les lemmes n’ont pas une importance égale dans ces deux composantes : certains sont très utiles pour expliquer les différences entre nos points (leur contribution est grande), d’autres beaucoup moins (leur contribution est petite).

Le tableau suivant donne les dix contributions les plus importantes :

lemme contribution
et 34.81 %
is 9.73 %
dominus 8.15 %
qui 7.20 %
in 3.74 %
hic 3.57 %
sum 1.85 %
rex 1.15 %
Christianus 1.00 %
se 0.91 %

 

 

 

 

 

Techniquement, ces contributions correspondent à la part de la variance totale à laquelle correspondent les variances des variables considérées (ici, des fréquences centrées de lemmes). Cela signifie donc que la variance du lemme et représente 34.81 % de la variance totale expliquée, ce qui est énorme.

Si ce tableau nous permet d’évaluer l’importance générale de chaque lemme dans l’ACP, il ne dit rien sur l’impact des lemmes. Je m’explique : certes, la fréquence de et est la variable la plus importante, mais comment se retrouve-t-elle sur les deux composantes principales que nous représentons sur nos graphiques en nuage de points ?

Pour répondre à cette question, on peut tracer un graphique de corrélation :

On observe sur ce graphique que la flèche et :

  1. pointe dans la direction positive de chacun des deux axes ;
  2. pointe de manière plus marquée dans la direction (horizontale) de la CP n° 1 que dans celle (verticale) de la CP n° 2 : et contribue plus à la première qu’à la deuxième.

Cela signifie que si un paquet de lemmes possède une fréquence et importante, il sera plutôt situé à droite du graphique (forte corrélation positive de la fréquence et avec la CP n°1, sur l’axe horizontal), et un peu en haut (corrélation positive de la fréquence et avec la CP n°2, sur l’axe vertical1).

Cette conclusion est cohérente avec ce que nous observons sur le nuage de points. En effet, on voit sur celui-ci que les paquets de lemmes de Raoul sont plutôt situés à gauche du graphique, ceux d’Albert plutôt à droite et ceux de Guillaume plutôt au milieu. Or, rappelez-vous, nous avions calculé, dans le premier billet de cette série, les fréquences totales de ce lemme pour l’ensemble de l’œuvre de chacun des trois auteurs :

Raoul de Caen Albert d’Aix Guillaume de Tyr
et 2,91 % 7,49 % 5,41 %

Puisque la corrélation entre la fréquence et et la CP n° 1 est positive, la « hiérarchie » qu’induisent ces fréquences totales (Raoul de Caen < Guillaume de Tyr < Albert d’Aix) se retrouve sur l’axe horizontal du nuage de points1.

L’impact du lemme rex sur les deux CP est de la même nature, même si la taille de la flèche (et donc l’importance de l’impact) est bien moindre :

D’autres lemmes contribuent négativement aux composantes principales, ou à l’une des deux. C’est par exemple le cas de hic :

La flèche pointe dans la direction positive selon l’axe horizontal, mais dans la direction négative selon l’axe vertical. Cela signifie donc qu’un paquet de lemmes dont la fréquence hic est importante est « tiré » vers le bas et vers la droite du graphique. Il n’est pas forcément situé dans le cadran sud-est, parce que tous les lemmes « tirent » le paquet de lemmes dans une direction qui leur est propre. Le lemme hic, qui possède une contribution totale modeste (3.57 %), en tout cas par rapport à celle de et, n’est donc pas « le seul à avoir son mot à dire » (sans mauvais jeu de mots) quant à la position du point en question sur le nuage de points.

Souvent, on représente plusieurs variables/lemmes en même temps sur le graphique de corrélation (ici les 10 lemmes les plus importants en termes de contribution totale, puisqu’afficher les flèches des 8.743 lemmes rend le graphique illisible) :

On trace aussi souvent un biplot, qui est la superposition du nuage de points et du graphique de corrélation :

Ce biplot permet de voir quelles variables ont « tiré » les paquets de lemmes jusqu’à l’endroit où ils sont situés. En particulier, on peut considérer les lemmes des flèches qui pointent dans la direction des paquets de lemmes d’un auteur comme une « caractéristique particulière » de cet auteur. Ainsi, on conclut que, au sein des trois auteurs, Guillaume est celui qui a le plus tendance à utiliser les lemmes dominus, is et qui. Il faut néanmoins rester prudent avec ce genre de conclusions, puisque nous ne prenons ici en compte que dix lemmes, alors que 8743 sont pris en compte par l’ordinateur pour tracer cette représentation.

La taille des paquets de lemmes considérés

Dans les billets précédents, j’ai fait le choix arbitraire de calculer les fréquences de chaque lemme dans des paquets de 2500 lemmes successifs. Que deviennent nos résultats lorsqu’on modifie ce paramètre de l’analyse ?

Augmenter la taille des paquets de mots a deux effets. D’une part, les fréquences qui sont calculées constituent de meilleures estimations de la fréquence d’utilisation générale du lemme par l’auteur, et on peut donc considérer que le résultat est plus précis. D’autre part, le nombre de paquets de lemmes (c’est-à-dire le nombre de points représentés sur le graphique) diminue. En considérant des paquets de 5000 lemmes, on obtient ainsi :

À première vue, la conclusion qu’on peut tirer de ce nouveau graphique semble plus tranchée qu’avant, plus nette. Mais il faut observer ici que le texte orphelin n’est plus représenté que par un seul point, ce qui signifie que nous n’avons plus aucune idée de la variabilité interne des fréquences des lemmes qui le composent. Il n’est donc sans doute pas pertinent de monter jusqu’à 5000 lemmes.

Que se passe-t-il lorsqu’au contraire on diminue la taille des paquets ? Le phénomène est l’inverse de celui que nous venons d’observer : d’une part les estimations de fréquences sont moins précises, d’autre part nous disposons de plus de points. On voit ainsi les trois nuages de points correspondants à nos trois auteurs se rapprocher puis se confondre, lorsqu’on considère des paquets de 1000 lemmes, 500 lemmes, 250 lemmes puis 100 lemmes :

Au fur et à mesure que les groupes de points se rapprochent, la conclusion d’attribution de notre texte orphelin à Raoul de Caen devient de moins en moins convaincante, pour finir par s’effondrer tout à fait !

Il est donc nécessaire de choisir la taille des paquets de lemmes considérés avec précaution : trop grande, elle empêche d’avoir une idée de la variabilité interne ; trop petite, elle ne permet tout simplement pas de conclure. Sur ce sujet précis, le lecteur intéressé consultera l’article de Maciej Eder dont les références figurent ci-dessous.


Dans le prochain épisode, nous verrons d’autres techniques d’analyse stylométrique, qui ne sont, quant à elles, pas liées à la visualisation des paquets de lemmes.

La suite au prochain épisode…

Notes

  1. Cet effet est visible directement parce que la contribution du lemme et est très importante. Pour un lemme dont la contribution est moins importante, l’effet n’est pas forcément visible aussi clairement. (retour a, retour b)

Pour en savoir plus

  • M. Eder, “Does size matter? Authorship attribution, small samples, big problem”, Literary and Linguistic Computing, vol. 30, n° 2, p. 107-121, 2015.

Autour de la stylométrie appliquée à des sources anciennes… 2

Voici le deuxième épisode de la série de billets consacrée à la stylométrie. Nous en étions restés sur un résultat peu satisfaisant et sur la conclusion qu’il était idiot de considérer les fréquences d’apparition de deux mots seulement… mais comment visualiser conjointement les fréquences de 10 mots, de 20 mots, de 150 mots, ou même de l’ensemble des 8743 mots distincts qui apparaissent dans nos quatre textes ?

L’analyse en composantes principales

Heureusement, nous avons à notre disposition une technique statistique pour nous venir en aide : l’analyse en composantes principales (ACP). L’idée de celle-ci est de résumer un grand nombre de variables en un plus petit nombre de nouvelles variables de manière efficace. Le résumé est optimal en termes de l’explication de la variabilité des données sur lesquelles on travaille, c’est-à-dire en termes de l’information que ces données contiennent. Dans le cas qui nous occupe, la variabilité des données est très importante, puisque c’est ce qui permet de distinguer les différents paquets de lemmes les uns des autres.

De plus, le résumé prend une forme particulièrement agréable. En effet, alors que les anciennes variables sont corrélées entre elles, ce qui signifie que l’information qu’elles transportent est « partiellement redondante », les nouvelles variables sont décorrélées entre elles : l’information qu’elles transportent n’est pas redondante.

Pour mieux comprendre comment l’ACP fonctionne, considérons le cas particulier d’un résumé de deux variables en une variable. Ce résumé peut être vu géométriquement comme une projection de l’ensemble du plan (dimension 2) sur une droite (dimension 1). Ainsi, nous partons de deux variables, ici, les fréquences des lemmes et et qui :

Avant toute chose, nous centrons ces variables, c’est-à-dire que nous leur soustrayons leur moyenne, histoire qu’elles soient situées « au centre des axes » ; le nuage de points ne change pas de forme, il est seulement translaté (déplacé) :

Nous pouvons maintenant projeter le nuage de points sur une droite quelconque, de la même manière que le soleil projette l’ombre d’un objet sur un mur. Commençons avec l’exemple d’une projection sur une droite horizontale, plus facile à visualiser :

Les petits carrés oranges constituent la projection des points noirs sur la droite horizontale. On peut donc se débarrasser des deux anciens axes et ne considérer que la droite horizontale sur laquelle la projection a été effectuée :

Celle-ci est une nouvelle variable, qui résume les deux variables dont nous sommes partis. Il est bien entendu possible d’effectuer des projections sur d’autres droites, pas forcément horizontales :

Conceptuellement, les deux projections (la première sur la droite horizontale, la seconde sur la droite à pente positive) sont très similaires. Cependant, elles ne sont pas aussi efficaces l’une que l’autre du point de vue du « résumé de l’information de départ » qu’elles produisent :

Les points de la première projection (à gauche ci-dessus) sont plus espacés que ceux de la deuxième (à droite) : elle a « mieux résumé » l’information de départ (qui consiste en des points présentant des différences entre eux) et elle est donc plus efficace. En termes techniques, la variance des points résultant de la première projection est supérieure à celle des points résultant de la seconde.

Le choix des deux droites présentées ci-dessus est bien entendu arbitraire, et il est possible d’effectuer des projections sur n’importe quelle droite du faisceau de droites du plan :

Quand on a compris l’idée des projections, le principe de l’analyse en composantes principales est clair : cette technique sélectionne la droite qui est optimale en termes de « résumé de l’information », c’est-à-dire en termes de variance des points projetés. Sans rentrer dans les détails techniques, mentionnons simplement que la direction en question est celle du premier vecteur propre de la matrice de corrélation (ou de la matrice de covariance) des données originales.

Dans le cas du nuage de points considéré en exemple, la droite sélectionnée, qu’on appelle première composante principale, est la suivante :

La seconde composante principale est ici la droite perpendiculaire à la première composante principale :

C’est cette seconde composante principale qui transporte « le reste de l’information », que la première composante principale n’a pas capté. On peut quantifier la proportion de « résumé de l’information » transporté par chacune d’elle :

Presque 85% de l’information est donc portée par la première composante. Puisque celle-ci est optimale de ce point de vue, nous sommes assurés de ne pas pouvoir trouver de projection qui transporte plus d’information. Ce pourcentage est très important, puisqu’il nous dit que nous ne perdons que 15% de l’information si nous ne considérons que la première composante et oublions la seconde, c’est-à-dire si nous résumons nos deux variables en une.

Cette première composante principale est une sorte de « mélange » des deux variables de départ. Dans notre cas, pour savoir où un point du nuage de points initial est situé sur la première composante, il suffit d’appliquer la règle

PC1 = -0,93 ∗ freqCentr(et) + 0,34 ∗ freqCentr(qui)

Cette équation exprime en termes mathématiques que PC1 est un mélange (ou, pour être plus rigoureux, une combinaison linéaire) de freqCentr(et) et freqCentr(qui).

Par exemple, le point situé aux coordonnées (-0,84 % ; 1,84 %) dans le système des deux variables de départ (et qui correspond donc à un paquet de mots — ou, pour être plus précis, de lemmes — au sein duquel la fréquence centrée de et est égale à -0,84 % et la fréquence centrée de qui est égale à 1,84 %) sera situé à

PC1 = -0,93 ∗ (-0,84 %) + 0,34 ∗ 1,84% = 1,4 %

sur la première composante principale.

Que se passe-t-il lorsqu’on projette non pas deux variables sur une, mais par exemple trois variables sur deux ? Cette opération est elle aussi aisément visualisable : nous effectuons maintenant la projection d’un nuage de points de dimension trois sur un plan de dimension deux. Par exemple, dans le cas du plan horizontal :

Résultats

L’analyse en composantes principales que nous mettons en œuvre pour effectuer notre analyse stylométrique des récits de croisade est bien plus difficile à visualiser, puisque nous projetons cette fois 8743 variables (c’est-à-dire les fréquences relatives à l’ensemble des lemmes qui apparaissent dans les quatre textes) sur deux variables1 ! Cela signifie donc que nous résumons un espace de dimension 8743 à l’aide d’un espace de dimension 2. Inutile de dire que le processus ne peut cette fois pas être représenté graphiquement.

Néanmoins, on peut représenter son résultat, dans un plan (donc en dimension 2) puisque nous avons choisi de projeter sur deux variables (c’est d’ailleurs la raison de ce choix) :

 

Dans ce cas, la première composante principale porte 27 % de l’information, et la seconde 11 %. Nous avons donc « oublié » 62 % de l’information contenue dans nos données de départ, mais un coup d’œil rapide au graphique ci-dessus permet de se rendre compte que notre but est atteint.

En effet, on voit que, même en négligeant presque 2/3 de l’information de départ, nous pouvons affirmer que les triangles mauves, qui représentent les paquets de lemmes du texte orphelin, sont situés « loin » des disques rouges et des carrés verts, qui représentent respectivement les paquets de lemmes de Guillaume de Tyr et d’Albert d’Aix. Cette observation nous permet de conclure, en faisant l’hypothèse que l’auteur du texte orphelin est forcément parmi les trois candidats-auteurs sélectionnés, que c’est à Raoul de Caen qu’il faut attribuer la paternité de notre fragment-mystère. Et c’est effectivement le cas : pour les besoins de l’exemple présenté ici, j’ai « fabriqué » le texte orphelin en allant piocher quelques chapitres de l’œuvre de ce chroniqueur et en les réunissant sous l’étiquette « auteur inconnu ».

Il me semble nécessaire d’insister ici sur ce qui peut passer pour un détail méthodologique mais qui revêt une importance capitale : nous ne concluons pas que le texte est de Raoul de Caen parce que les triangles mauves sont situés au même endroit que les carrés turquoises, mais bien parce qu’ils sont éloignés des disques rouges et des carrés verts et que notre liste ne compte que trois candidats-auteurs. En effet, comme nous avons perdu une partie de l’information en résumant nos variables, et comme cette information consiste en les différences entre nos points, nous ne pouvons pas nous fier aux similitudes. Deux points situés tout près l’un de l’autre dans le résumé sont peut-être situés loin l’un de l’autre dans les données de départ. Par contre, si deux points sont situés loin l’un de l’autre dans le résumé, ils le sont aussi dans les données de départ. Il est donc bon de garder en tête cette règle d’or de l’analyse en composantes principales :

Avec une ACP, on peut se fier aux dissemblances, mais pas aux similitudes.

On pourrait traduire celle-ci en termes stylométriques :

L’ACP ne permet d’identifier l’auteur d’un texte qu’en éliminant tous les éléments d’une liste exhaustive de candidats-auteurs, à l’exception d’un seul.

Cela implique qu’il est nécessaire de disposer, pour effectuer une attribution stylométrique parfaitement rigoureuse, d’un ensemble d’auteurs potentiels pour le texte étudié, au sein duquel le véritable auteur se trouve forcément. Dans énormément de cas, une telle liste n’existe tout simplement pas, et il faut donc faire preuve de circonspection. J’espère avoir l’occasion de discuter ce point précis sur ce carnet dans le futur.

Dans le prochain billet, nous explorerons certains des « paramètres » de l’ACP que nous avons mise en œuvre ici, comme la taille des paquets de mots considérés.

La suite au prochain épisode…

Notes

  1. Ce choix n’est certainement pas optimal : non seulement il est souvent mieux de choisir un nombre limité de lemmes parmi ceux qui apparaissent le plus fréquemment, mais d’autres critères de choix interviennent aussi, comme la nature grammaticale de ces lemmes. Il est en effet souvent plus intéressant de ne pas considérer les lemmes qui portent un sens en eux-mêmes, comme les noms, les adjectifs, les verbes ou les pronoms, et de se restreindre aux stop words. Nous aurons l’occasion de discuter plus en détails cet aspect de l’analyse dans un billet prochain (retour).

Pour en savoir plus

  • Neat, T. et al, « Surveying Stylometry Techniques and Applications », in ACM Computing Surveys 50, n° 6 (2017), p. 1-36.
  • Stamatatos, E., « A survey of modern authorship attribution methods », in Journal of the American society for information science and technology 60 (2009), p. 538-556.

Autour de la stylométrie appliquée à des sources anciennes… 1

Cette année, j’ai décidé de consacrer quelques billets sur ce carnet de recherche à la stylométrie, dans lesquels je tenterai de me poser certaines questions à propos des tenants et des aboutissants des méthodes qu’on range sous ce terme, avec le point de vue de non-spécialiste qui est le mien.

Avant de discuter d’éléments plus ou moins précis, il me semble utile de donner une présentation générale (mais bien entendu limitée) de ces techniques. Je reprendrai pour ce faire un petit cas d’étude artificiel que j’avais présenté lors d’un atelier co-organisé par le SMCS et le CENTAL, de l’UCLouvain en mai 2018.

Le principe de la stylométrie

La stylométrie est un ensemble de techniques à l’intersection de la linguistique et de la statistique, dont le but est d’identifier le style de documents textuels. Le style d’un texte est caractéristique de son contexte d’écriture au sens large : son auteur, son époque, son « genre », …

La stylométrie tente de montrer qu’un texte est écrit dans un style différent d’une collection d’autres textes. Cette différenciation permet donc, dans une certaine mesure, de déterminer si un « anonyme » a été écrit par un auteur précis, et surtout de déterminer si un texte n’a pas été écrit par un auteur précis… nous allons étudier un tel exemple infra !

La stylométrie est ici appliquée à des ouvrages anciens, mais est aussi appliquée à des textes actuels, comme des emails, des tweets, etc.

Les techniques appliquées aujourd’hui en stylométrie sont variées, et différent notamment par la méthode statistique qui est utilisée (analyse en composante principale, clustering, analyse des réseaux, …) et le « niveau » de discours sur lequel on travaille (caractère, mot, phrase, etc.).

Notons cependant qu’une analyse stylométrique mélange bien souvent diverses méthodes statistiques et plusieurs « niveaux » du texte.

Nous allons dans un premier temps considérer un exemple mettant en œuvre une analyse en composantes principales au niveau lexical (basée sur les mots).

Les débuts

La première trace d’une analyse stylométrique provient d’une lettre du logicien anglais De Morgan au révérend Heald (1851) : pour déterminer si deux passages des évangiles sont du même auteur, il propose de

« déterminer […] si le premier texte est formé de mots plus longs que le deuxième texte. […] Un de ces jours, les écrits apocryphes seront identifiés de cette manière. »

L’idée de comparer les longueurs des mots a été appliquée par le physicien américain Mendenhall en 1887 aux œuvres de Bacon, Marlowe et Shakespeare, sans résultat.

Il a fallu attendre les années 1930 pour que l’étude quantitative du style soit reprise, avec les travaux du linguiste américain Zipf et du statisticien écossais Yule, consacrés aux distributions des fréquences de mots.

Après la guerre, les premiers résultats positifs apparaissent :

  • en 1959, Cox et Brandwood parviennent partiellement à ordonner chronologiquement les écrits de Platon ;
  • en 1962, Ellegärd parvient à écarter plusieurs candidats-auteurs des Lettres politiques de Junius (pamphlets anonymes contre le gouvernement anglais de 1769-1772) ;
  • en 1964, Mosteller et Wallace parviennent à répartir les Federalist papers (publications anonymes de 1787-1788 enjoignant les citoyens américains à ratifier la constitution) entre les trois auteurs Hamilton, Jay et Madison.

Cette dernière étude a convaincu la communauté scientifique de l’intérêt de la stylométrie : elle marque le point de départ d’une série très fournie d’études de textes très divers, souvent passionnantes.

Notons que certaines de ces études ont défrayé la chronique et retenti comme de véritables scandales, notamment à cause de problèmes méthodologiques. J’espère pouvoir revenir sur quelques-unes d’entre elles dans un billet prochain.

Première analyse naïve de fréquence

Considérons à titre d’exemple le problème suivant. Supposons que nous ne connaissons pas l’auteur d’un texte (que nous appellerons « texte orphelin ») qui constitue une partie de récit de la première croisade1.

Nous avons en tête trois candidats-auteurs, qui sont tous les trois des chroniqueurs latins de la première croisade (1096-1099) :

Nom Raoul de Caen Albert d’Aix Guillaume de Tyr
Chronique Gesta Tancredi in expeditione Hierosolymitana Liber Christianæ expeditionis pro restitutione sanctæ Hierosolymitanæ ecclesiæ Historia rerum in partibus transmarinis gestarum
Nombre de mots 28.553 117.179 240.168
Rédaction 1112 – 1118 1125 – 1150 1170 – 1184

Une première idée pour tenter de trancher entre ces trois auteurs est de regarder les mots qui reviennent le plus souvent dans leurs œuvres, et de les comparer avec les mots qui reviennent le plus souvent dans le texte orphelin. Récupérons donc les mots les plus fréquents dans celui-ci :

Rang 1 2 3 4 5 6 7 8 9 10
Mot et in ad nec qui non ut est sed a
Traduction et dans vers et ne pas qui ne pas pour que il est mais par
Fréquence
5,8% 2,5% 1,3% 0,9% 0,8% 0,7% 0,7% 0,5% 0,5% 0,3%

Travailler directement sur les mots n’est cependant pas satisfaisant. On imagine par exemple que le verbe esse, « être », apparaît sous d’autres formes que simplement est (qui correspondent aux autres formes conjuguées), ce qui fausse donc le calcul de fréquence. Les verbes ne sont pas les seuls mots qui subissent une flexion, comme le qui : penser aux noms communs, pronoms, adjectifs, déterminants, …

Le nombre de formes différentes est particulièrement grand en latin, puisqu’il s’agit d’une langue à déclinaisons. Nous devons donc lemmatiser les textes sur lequel nous travaillons (c’est à dire envoyer chaque mot sur sa forme pure, non déclinée ou conjuguée). Avant cela, on tokenise le texte :

Un exemple simple, le mot latin quod, montre que le processus de lemmatisation n’est pas trivial : suivant la place du mot dans la phrase, le « catégoriseur de discours » doit déterminer s’il s’agit du relatif (« lequel »), de l’adjectif (« quelque »), de l’interrogatif (« quel ? »), de l’adverbe (« à ce propos »), de la conjonction (« parce que »), etc. Dans ce cas, le lemmatiseur affecte en général des probabilités aux différentes possibilités.

Pour qu’un lemmatiseur soit efficace pour une langue donnée, il faut l’entraîner sur un corpus de textes déjà lemmatisés, dont les structures grammaticales sont explicitées… construire une tel corpus est un travail monumental ! Pour le latin médiéval, on dispose par exemple de l’Index Thomisticus, qui compte 170.000 tokens pour 9.000 phrases et est basé sur la Summa theologica de Thomas d’Aquin. Mais on imagine aisément des mots qui apparaissent dans certains textes médiévaux mais qui n’apparaissent pas dans la Summa ! Ces mots sont a priori inconnus du lemmatiseur.

Certaines langues sont plus difficiles à lemmatiser que d’autres ; c’est le cas du latin médiéval :

  • certains mots se collent à d’autres, comme le suffixe –que (« et ») et le préfixe se– (renforcement de certains pronoms) ;
  • certaines combinaisons de lettres sont interchangeables, et ce sans aucune cohérence (un même mot peut apparaître sous deux graphies différentes sur une même ligne) :
    ci ↔ ti ch ↔ h ph ↔ f h ↔ Ø
    w ↔ uu ↔ vv ↔ uv ↔ vu i ↔ j ↔ y k ↔ c ↔ ch g ↔ gu

    Le mot chirographum apparaît ainsi sous les graphies alternatives cirographum, chyrographum, cyrographum, chirografum, cirografum, chyrografum et cyrografum ;

  • les textes sont souvent farcis de vernaculaire (par exemple de l’ancien français).

Comme prévu, les résultats diffèrent sensiblement lorsqu’on compare les fréquences des mots et les fréquences des lemmes :

Mot et qui in hic sum ad nec is ille non
Rang après 1 2 3 4 5 6 7 8 9 10
Rang avant 1 5

(qui)

2 19

(haec)

8

(est)

3 4 68

(id)

51

(illi)

6

Il est donc absolument essentiel de lemmatiser le corpus avant d’effectuer des calculs de fréquence !

Nous disposons maintenant de mesures pertinentes de la fréquence d’apparition des lemmes, et pouvons donc comparer notre texte orphelin aux trois textes sources.

Les deux lemmes qui apparaissent le plus souvent sont et et qui :

Raoul de Caen Albert d’Aix Guillaume de Tyr Orphelin
et 2,91 % 7,49 % 5,41 % 3,94 %
qui 2,99 % 2,34 % 3,62 % 3,46 %

Ce résultat ne nous apprend pas grand chose : les statistiques du texte orphelin ne permettent pas de le rapprocher de manière claire de l’un des trois auteurs… La comparaison directe des proportions totales n’est pas satisfaisante !

Elle ne tient par exemple pas du tout compte de la variabilité de ces proportions au sein des corpus considérés. On peut ainsi imaginer que les proportions varient fort au sein des chapitres de chacune des trois œuvres… si c’est le cas, quelle est la pertinence de la comparaison avec la fréquence de l’orphelin ?

Pour tenir compte de cette variabilité, nous pouvons couper les corpus en tranches, et effectuer les calculs de proportion sur chacune d’elles. La taille des tranches doit être bien choisie : si elle sont trop grosses, le problème de variabilité n’est pas résolu ; si elle sont trop petites, la variabilité sera immense et ne signifiera plus grand chose. J’ai choisi ici de grouper les mots par paquets de 2.500.

Nous remplaçons donc une proportion totale :

par les proportions de groupes de 2500 mots :

qu’on peut maintenant comparer pour nos auteurs :

Ce troisième graphe n’est pas très convaincant : les deux points mauves (les paquets de mots de l’orphelin) sont situés à une bonne distance des carrés verts (les paquets de mots d’Albert d’Aix), mais ils sont situés entre les disques rouges (les paquets de mots de Guillaume de Tyr) et les carrés turquoises (les paquets de mots de Raoul de Caen).

Mais la comparaison des fréquences de mots n’a pas dit son dernier mot. Nous n’avons en effet utilisé ici qu’une très faible portion de l’information disponible, puisque nous avons comparé les proportions des deux mots les plus fréquents ! Considérer plus de mots pose toutefois des problèmes… et notamment des problèmes de visualisation : si nous considérons 10 mots, par exemple, comment visualiser les différences entre les corpus, et donc comment espérer effectuer une attribution ? Et pourquoi s’arrêter à 10 mots ? Nous pourrions comparer les fréquences des 8743 mots distincts — ou plutôt des 8743 lemmes distincts — qui apparaissent dans nos textes…

La suite au prochain épisode

Notes

  1. Pour clarifier l’exposé, j’ai considéré ici comme texte orphelin un morceau d’un des trois candidats-auteurs analysés (dont l’identité sera révélée dans le numéro suivant), de sorte que les résultats expriment clairement son attribution. Bien entendu, dans une véritable analyse stylométrique, la paternité du texte orphelin est tout à fait inconnue (retour).

Pour en savoir plus

  • Holmes, D., « The evolution of stylometry in humanities scholarship », in Literary and Linguistic Computing 13, n° 3 (1998), p. 111-117.

Le rachat de la Revue d’Intelligence Artificiellle

Quand on pense publier un article et que l’on se retrouve au milieu d’un imbroglio scientifico-commercial international

Dans le cadre du projet d’identification automatique des sources de l’encyclopédie de Vincent de Beauvais, nous avons soumis un article à la Revue d’Intelligence Artificielle (RIA), dans le numéro spécial « Digital Humanities »… mais entre le moment de la soumission et le moment de la publication de la version peer-reviewée, la RIA a été rachetée par un éditeur peu scrupuleux (qui a notamment publié des articles dans la « nouvelle version » de la revue sans aucun processus de révision) et le comité de rédaction a démissionné !

Le président de l’ex-comité a écrit un communiqué de presse donnant les détails de la situation. On y trouve relaté le fait que juste après le rachat 

 « le nouvel éditeur a modifié sans prévenir un numéro de la revue déjà publiée : trois articles en anglais écrits par des auteurs chinois ont été ajoutés et “à l’insu du rédacteur en chef et des 36 membres du comité de rédaction”.« 

Si cela paraît déjà « très cavalier », ce n’est pas tout. En effet, Yves Demazeau, l’ex-rédacteur en chef de la Revue explique notamment que juste avant sa démission, des chercheurs lui ont proposé de l’argent pour une publication accélérée :

« Entre temps, […] le Rédacteur en Chef a reçu la proposition d’articles écrits en anglais par des auteurs chinois lui proposant à chaque fois 800 $ (!) en échange d’une publication accélérée de leur soumission, ce que le Rédacteur a évidemment décliné. »

L’analyse que donne France Culture de l’événement vaut aussi la peine d’être lue et est assez édifiante. On lit, entre autres que, selon Jean-Gabriel Ganascia, professeur au laboratoire d’informatique de l’Université Pierre et Marie Curie 

« Il faut savoir qu’en Chine, les chercheurs reçoivent des primes en fonction des articles qu’ils publient et plus la revue est cotée, plus la prime est élevée »

On peut vraisemblablement voir tout cela comme un énième avatar de l’effet pervers de la course à « l’excellence » mesurée avec force indices numériques, à commencer par le nombre de publications

En ce qui concerne la RIA il serait triste de constater un jour que ce qui a été un des fleurons de l’édition scientifique française dans un domaine pointu et on ne peut plus actuel se retrouve dans la liste des journaux prédateurs. Heureusement, la plupart des ex-membres de celui-ci cherchent maintenant à mettre en place une nouvelle revue, dans la continuité de l' »ancienne version » de la RIA.

Sébastien de Valeriola, Étienne Cuvelier et Céline Engelbeen

Identifier le jour de la semaine d’une date médiévale avec R

Les chirographes tournaisiens sur lesquels je travaille pour le moment donnent souvent la date de temps en indiquant un jour de la semaine. Voici un exemple :

l’an de grasce .mil.ccc.&.xiiii., lendemain dou jour S[ain]t Luc par .i. samedi ou mois d’octembre

L’acte (ici, une reconnaissance de dette) est donc passé devant les échevins en 1314, durant le mois d’octobre. Pour le dater complètement, il faut encore déterminer à quel jour correspond le samedi dont il est question, le lendemain de la Saint-Luc. Ce saint étant fêté le 18 octobre, il y a tout à parier que la date que nous cherchons correspond au 19 octobre.

En constituant ma base de données, j’ai demandé à R d’identifier les jours de la semaine qui correspondent aux dates données dans les actes. En plus d’apporter d’éventuelles informations quant à l’élaboration des chirographes (imaginons par exemple que tous les chirographes soient datés d’un même jour de la semaine, cela suggérerait que les actes de juridiction gracieuse ne passent devant les échevins qu’une fois par semaine), cette opération permet de vérifier la cohérence de la date identifiée avec celle qui est donnée dans l’acte, et d’effectuer ainsi une sorte de data quality check. J’ai pour cela utilisé l’excellent package lubridate, qui permet d’écrire par exemple pour l’acte qui nous occupe :

wday(ymd("1314-10-19"),label = TRUE,abbr = FALSE,week_start = 1)

La réponse de R pour cette date-là m’a surpris :

[1] vendredi

Après avoir vérifié que je ne m’étais pas trompé de jour pour la Saint-Luc, j’ai effectué le test pour d’autres actes, et suis toujours arrivé à la même erreur, qui donne un décalage d’un jour par rapport au jour donné dans la documentation. J’étais d’autant plus étonné que j’avais déjà utilisé ces fonctions pour identifier les jours de la semaine qui correspondaient aux actes des chirographes passés devant les échevins d’Ypres entre 1249 et 1291, et que cela fonctionnait sans problème.

Après quelques heures jours de frustration totale, j’ai fini par comprendre que le problème provenait de la différence entre le calendrier julien et le calendrier grégorien. C’est le second qui est utilisé par le package lubridate. Mais, puisqu’il n’est instauré qu’en 1582, ce n’est évidemment pas celui qui est utilisé au 14e siècle : les dates de mes chirographes tournaisiens doivent donc être comprises selon le calendrier julien. Voici ce que dit la page Wikipedia dédiée à la différence entre les deux calendriers :

Dans le calendrier julien, tous les millésimes multiples de quatre sont des années bissextiles, ce qui produit un décalage d’environ 3 jours par 400 ans par rapport à l’année astronomique. Dans le calendrier grégorien, les années séculaires ne sont normalement pas bissextiles (on parle alors d’« années communes »). Les années 1700, 1800 et 1900 furent donc bissextiles dans le calendrier julien et communes dans le calendrier grégorien. Par contre, les millésimes multiples de 400 (1600, 2000, 2400, 2800, 3200. etc.) sont bissextiles dans les deux calendriers.

Le calendrier julien « retarde » par rapport au calendrier grégorien. Ce retard était de 10 jours lors de l’instauration du calendrier grégorien en 1582. Du fait que les années séculaires ne sont normalement pas bissextiles dans le calendrier grégorien, le retard du calendrier julien s’accroit d’un jour par siècle, sauf à la fin des XVIe et XXe siècles. Le retard est actuellement de 13 jours.

La consultation d’une table de conversion entre les deux calendriers a fini de dissiper le mystère. Le problème ne s’était pas posé dans le cas des chirographes yprois du 13e siècle pour une bonne raison : le décalage est de sept jours entre 1100 et 1300, et est donc tout à fait invisible si on s’en tient aux jours de la semaine (lundi +7 = lundi !). Ce décalage passe à 8 jours à partir de 1300, raison pour laquelle j’observais un jour de différence dans les actes du 14e siècle.

Pour corriger ce problème dans R, j’ai d’abord été voir du côté du package ConvCalendar, dédié à la conversion entre différents calendriers. Hélas, celui-ci n’est plus disponible : la page CRAN du package dit

Package ‘ConvCalendar’ was removed from the CRAN repository.

J’ai donc finalement écrit une petite fonction qui fait la conversion pour les deux siècles qui m’occupent pour le moment :

library(lubridate)

Jul2Gre = function(dateJul){
    if (dateJul > dmy("28-02-1100") & dateJul <= dmy("28-02-1300")) {
        delta = 7
    } else if (dateJul > dmy("28-02-1300") & dateJul <= dmy("28-02-1400")){
        delta = 8
    } else {
        delta = NA
    }
    dateGre = dateJul + delta
    return(dateGre)
}

Le problème est ainsi résolu !

wday(Jul2Gre(dmy("19-10-1314")),label = TRUE,abbr = FALSE)
[1] samedi

Plans de pension hybrides et partage des risques entre générations

Ce mardi 11 septembre 2018, j’ai eu le plaisir de participer à la conférence de l’European Actuarial Journal, qui se déroulait à Leuven (Belgique). J’y ai présenté un exposé intitulé Convex and log-convex hybrid pension schemes and risk-sharing, basé sur un article en cours de finition avec Pierre Devolder (UCLouvain) dans le cadre de la Chaire d’excellence sur les pensions UCL, dont je suis chercheur associé.

Voici en quelques lignes le problème auquel nous nous sommes intéressés dans ce projet de recherche.

Il concerne le premier pilier (c’est-à-dire la retraite légale, gérée par l’État) des pensions belges, qui pose un lot de réels problèmes aujourd’hui, et dont plusieurs éléments doivent certainement être repensés. Nous allons passer ici un revue un petit modèle simple, qui est très proche de la réalité mais pas identique. Les différences de fonctionnement entre le système décrit ici et le système effectivement utilisé n’ont pas d’impact significatif sur ce dont il est question.

Avant de rentrer dans les détails, il faut souligner deux caractéristiques de ce système : la répartition pure et la définition des prestations.

Répartition pure

Le premier pilier belge est un système en répartition pure, c’est-à-dire qu’on considère que les contributions payées pendant une année t par tous les travailleurs actifs servent à payer les retraites de tous les pensionnés. En notant P la pension moyenne, C la contribution moyenne (c’est-à-dire le montant que les actifs paient pour le plan de pension), L^p le nombre de pensionnés et L^a le nombre d’actifs, on obtient : L^p P = L^a C \quad \text{ ou } \quad \frac{L^p}{L^a} P = C. On nomme cette relation l’équation de budget, parce qu’elle signifie que le budget du système est « à l’équilibre » : si cette condition est remplie, on dispose de suffisamment d’argent pour payer les retraites.

Le quotient \frac{L^p}{L^a} est appelé quotient de vieillesse. L’équation de budget est souvent ré-exprimée en divisant de chaque côté par le salaire moyen, de sorte à obtenir des taux : \frac{L^p}{L^a} \frac{P}{S} = \frac{C}{S} \quad \text{ qu'on note } \quad D \delta = \pi. D représente donc le quotient de vieillesse, \delta le taux de remplacement (c’est-à-dire le montant de pension moyenne par rapport au salaire moyen, ou en d’autres termes la proportion du niveau de vie des pensionnés par rapport à celui des actifs) et \pi le taux de contribution (c’est-à-dire la part de leur salaire que les actifs donnent au plan de pension).

Ces dernières décennies, D = \frac{L^p}{L^a} a beaucoup augmenté suite à différents effets : augmentation de la longévité (et donc augmentation de L^p), effet papy boom (idem) et diminution de la fertilité (et donc diminution de L^a). Cette augmentation pose un véritable problème : si D augmente, comme l’équation de budget D \delta = \pi doit continuer à être vérifiée (puisqu’elle exprime que le système « dispose d’assez de fonds »), on a deux possibilités :

  • soit on abaisse \delta, c’est-à-dire on abaisse le niveau de vie des retraités ;
  • soit on monte \pi, c’est-à-dire on monte les contributions et donc on abaisse le niveau de vie des actifs.

Comme nous allons le voir dans un instant, le système belge est basé sur la deuxième solution.

Définition des prestations

Un plan de pension classique peut être construit selon deux architectures :

  • soit on définit ce que les pensionnés reçoivent (les prestations), puis on calcule ce que les actifs doivent verser (les contributions) pour que cela fonctionne (on parle d’un plan en prestations définies, abrégé d’après l’anglais en DB pour defined benefits) ;
  • soit on définit ce que les actifs versent (les contributions), et on calcule ce que les retraités recevront (les prestations) pour que cela fonctionne (on parle d’un plan en contributions définies, abrégé d’après l’anglais en DC pour defined contributions).

Ces deux architectures correspondent respectivement à la fixation du taux \delta et à la fixation du taux \pi dans l’équation de budget établie dans la section précédente.

Le système de la pension légale belge est en DB ; en d’autres termes, la retraite est définie légalement (il existe une formule expliquant ce à quoi un travailleur partant à la retraite a droit en fonction de la longueur de sa carrière, des salaires qui lui ont été versés, etc.). Cela signifie donc que l’impact de l’augmentation de D (c’est-à-dire l’impact de l’évolution démographique ou, en termes actuariels, de la réalisation du risque démographique) est entièrement supporté par les actifs.

Un partage des risques

L’idée de notre projet de recherche est d’explorer des architectures de plan de pension hybrides, c’est-à-dire qui ne sont ni tout à fait DB, ni tout à fait DC. De cette manière, le risque démographique lié au vieillissement de la population (matérialisé par l’augmentation du quotient de vieillesse D) est partagé entre les actifs et les retraités.

Le point de départ de ces plans d’un nouveau type est une règle introduite en 1981 par l’économiste américain Richard Musgrave : plutôt que de fixer \pi (comme en DC) ou \delta (comme en DB), on fixe le quotient de la rente de retraite par le salaire net des contributions :
\frac{P}{S\ (1-\pi)} = \frac{\delta}{1-\pi} qu’on appelle quotient de Musgrave.

En adaptant automatiquement \pi et \delta pour que ce quotient reste constant, les deux taux évoluent lorsque les conditions démographiques se transforment (par exemple lorsque la population vieillit). Le risque démographique est donc partagé entre les actifs et les retraités. Nous obtenons donc un plan de pension intermédiaire entre DB et DC (qu’on appelle aussi hybride).

Ceci n’assure cependant pas que ce partage soit « bien fait » : partager le risque n’implique pas forcément que le partage soit « équitable » (peu importe le sens qu’on donne à ce concept). Dans notre projet de recherche, nous avons étudié la règle de Musgrave, et déterminé qu’elle était en fait plus proche de DB que de DC.

Nous l’avons aussi et surtout généralisée à une famille* de nouveaux plans de pension qui sont tous des intermédiaires entre DB et DC. Cette famille est indexée par un paramètre \alpha qui est compris entre 0 et 1, c’est-à-dire qu’à n’importe quelle valeur \alpha entre 0 et 1 correspond un plan hybride. Pour \alpha = 0, on retrouve DC, et pour \alpha=1 on retrouve DB. Quelque part entre les deux se situe la règle de Musgrave (DM) :

Tous les plans qui appartiennent à cette famille (hormis DC et DB) — et donc tous les plans qui correspondent à des valeurs \alpha strictement comprises entre 0 et 1, c’est-à-dire « l’intérieur » du segment de droite ci-cessus — sont des plans hybrides dans lequel le risque démographique est partagé entre actifs et retraités. En plus de permettre de mieux comprendre la règle de Musgrave, cette construction offre donc d’autres architectures pour le premier pilier (ou pour n’importe quel régime en répartition).

Dans la suite de ce projet de recherche, nous étudions tous ces nouveaux plans de pension, et mettons sur pied des techniques pour sélectionner celui qui peut être considéré comme « optimal »…

Notre article est en cours de finalisation ; lorsqu’il sera publié, je le signalerai sur ce carnet !

* Il existe en fait une infinité de familles de ce genre ; deux ont retenu notre attention en raison de leur caractère facilement interprétable.

Les membres de Quaresmi

Le laboratoire Quaresmi compte pour le moment quatre membres, qu’il s’agit de présenter très brièvement dans ce billet.

Céline Engelbeen

Céline Engelbeen est actuellement chargée de cours à l’ICHEC ainsi que maître d’enseignement à l’ULB (Solvay Brussels School of Economics and Management). Elle est cofondatrice du laboratoire QUARESMI.

Après avoir réalisé une thèse de doctorat en mathématiques portant sur l’optimisation des traitements de radiothérapie par IMRT (ULB, 2010), elle passe deux années à enseigner les mathématiques dans un Athénée de Bruxelles. Elle rejoint par la suite l’ICHEC en 2012 et y donne des cours de mathématiques, de statistiques et de recherche opérationnelle.

Elle s’intéresse à la recherche opérationnelle, l’optimisation combinatoire, l’algorithmique.

Page ICHEC

Étienne Cuvelier

Etienne CuvelierÉtienne Cuvelier est chargé de cours à l’ICHEC Brussels Management School (Bruxelles, Belgique), formateur chez CentraleSupélec Executive Education (Paris, France) , et professeur en promotion sociale en Hainaut (Belgique). Il est cofondateur du laboratoire QUARESMI.

Après une licence en mathématiques et une licence en informatique effectuées à l’UMons (Mons, Belgique),  il commence une première carrière dans l’enseignement secondaire, supérieur et de promotion sociale. Étienne Cuvelier effectue ensuite une thèse de doctorat en informatique à la faculté d’informatique de l’UNamur (Namur, Belgique). Celle-ci sera suivie d’un séjour post-doctoral de 30 mois à l’Ecole Centrale Paris (Paris, France).

Ses divers cours recouvrent les mathématiques de base, l’algèbre, les statistiques, les probabilités, la programmation, les bases de données, les principes des systèmes d’exploitation, l’analyse de données, les méthodes quantitatives et l’aide à la décision.

Ses principaux sujet de recherche concernent l’analyse de données complexes (données fonctionnelles, données symboliques, graphes attribués). Les treillis de Galois et les copules complètent ses centres d’intérêt scientifiques.

Page ICHEC

Sébastien de Valeriola

Sébastien de Valeriola est chargé de cours à l’ICHEC Brussels management school, et chargé de cours invité à l’ULB (filières STIC et sciences actuarielles) et à l’UCL (filière sciences actuarielles). Il est cofondateur du laboratoire QUARESMI.

Après une thèse de doctorat en mathématiques (2011, UCL) et un master en sciences actuarielles (2012, UCL), il a travaillé pendant sept ans dans une entreprise de consultance spécialisée en actuariat et en finance quantitative. Il se consacre maintenant à l’enseignement de l’actuariat, des mathématiques, des statistiques, de l’informatique et de la science des données en haute école et à l’université. Parallèlement à ces activités, Sébastien a matérialisé sa passion pour l’histoire en réalisant un master (2017, UCL) puis en entamant une thèse de doctorat dans cette discipline (UCL/UGent).

Ses activités et publications scientifiques concernent les mathématiques, l’actuariat, l’application de méthodes quantitatives aux sciences humaines et l’histoire médiévale.

Page ICHEC ; compte ORCID

Mohamed Selmouni

Mohamed Selmouni est actuellement chargé de cours à l’ICHEC et membre du laboratoire QUARESMI. Docteur en Sciences orientation Statistique de l’Université Libre de Bruxelles, il a enseigné dans plusieurs institutions belges notamment l’Université Libre de Bruxelles, les facultés Saint-Louis et l’Université de Namur.  Ses principaux domaines de recherche sont la statistique mathématique, la finance stochastique et l’actuariat.