Séminaire quaresmi ce jeudi 20 octobre 2022 “Comment appréhender l’hétérogénéité des relations interpersonnelles au Moyen Âge ?”

C’est avec un grand plaisir que le laboratoire Quaresmi vous invite à son premier séminaire de cette année 2022-2023. Celui-ci aura lieu le jeudi 20 octobre prochain à 14h30 au B001 sur le campus de l’ICHEC. Sébastien de Valeriola, chargé de cours à l’ULB, nous proposera un exposé intitulé “Comment appréhender l’hétérogénéité des relations interpersonnelles au Moyen Âge ?” dont voici un résumé :

Dans cet exposé, nous explorons certains des défis auxquels sont confrontés les historiens utilisant l’analyse des réseaux sociaux lorsqu’ils traitent des arêtes représentant des relations interpersonnelles de différents types. À cette fin, nous analysons un réseau modélisant la lutte pour l’investiture dans le diocèse de Cambrai-Arras (c. 1100) en le considérant comme un graphe multicouche et en lui appliquant une méthode de reconstruction automatique des partis politiques impliqués. Ce contexte technique nous permet d’étudier en détail certaines hypothèses de modélisation directement liées à la diversité des catégories d’arêtes. Plus précisément, nous abordons trois questions : 1. la hiérarchie des catégories d’arêtes en termes d’utilité pour la compréhension du phénomène historique étudié ; 2. la pertinence de prendre en compte un certain type de relations “indirectes” apparaissant dans de nombreux réseaux historiques ; 3. la pertinence de prendre en compte une hiérarchie entre les relations de la catégorie la plus importante.

Ce séminaire est ouvert à tou.te.s. Afin de faciliter l’organisation, merci de vous inscrire auprès de quaresmi@ichec.be.

Au plaisir de vous y voir nombreux !

Séminaire Quaresmi ce 25 novembre 2021 “Corpus latin et stylométrie. Construire l’enquête autour de l’hagiographie tréviroise du début du XVIe siècle”

Ce jeudi 25 novembre à 13h30, Bastien Dubuisson des Universités Unilux et UNamur nous présentera un exposé intitulé “Corpus latin et stylométrie. Construire l’enquête autour de l’hagiographie tréviroise du début du XVIe siècle” dont voici un résumé :

L’hagiographie tréviroise, une littérature portant sur la vie, le martyr ou les miracles des saints, connaît, dans la cité allemande de Trèves, une réactualisation particulièrement importante au début du XVIe siècle. Cette réécriture porte exclusivement sur les saints de Trèves – évêques et martyrs – dont les reliques drainent les foules de pèlerins, et semble trouver son origine dans les églises du Nord de la ville, qui subissent la concurrence de la cathédrale et de la grande abbaye bénédictine méridionale de Saint-Matthias. Qui sont les auteurs de ces textes nouveaux ? Quels éléments empruntent-ils au corpus médiéval ? Quels éléments communs peut-on identifier avec des guides de pèlerinage appelés Heiltumsdrucke ? Au travers d’une enquête stylométrique, des pistes sont proposées et jettent un nouveau regard sur une part négligée de la littérature tréviroise.

Séminaire ouvert à tous. La présentation aura lieu à l’ICHEC, site Anjou, local E105 à 13h30. Pour faciliter l’organisation, merci de vous inscrire auprès de quaresmi@ichec.be.

Au plaisir de vous y voir nombreux

Séminaire Quaresmi ce 4 mars 2021 “Hagiographie et data mining : comment l’ordinateur peut indiquer à quel saint se vouer”

Ce jeudi 4 mars à 14h, Sébastien de Valeriola du laboratoire Quaresmi nous présentera un exposé intitulé “Hagiographie et data mining : comment l’ordinateur peut indiquer à quel saint se vouer” dont voici un résumé :

Depuis le milieu du XVIIe siècle, les Bollandistes décrivent de façon systématique les nombreux manuscrits conservés dans les bibliothèques et les institutions religieuses de nos régions et du reste de l’Europe qui contiennent des textes hagiographiques, c’est-à-dire racontant la vie des saints. Dans ce projet de recherche en cours en collaboration avec Bastien Dubuisson (Université du Luxembourg-Université de Namur), nous appliquons à la base de données qui résulte de ces dépouillements des outils de data mining qui permettent d’étudier ces manuscrits sous un angle nouveau. Au cours de cet exposé, nous présenterons les premiers résultats que nous avons obtenus, notamment en termes de classification automatique des manuscrits d’après leur système d’organisation interne, et de reconstitution des collections hagiographiques des abbayes.

La présentation aura lieu sur Teams. Pour faciliter l’organisation, merci de vous inscrire auprès de Celine.Engelbeen@ichec.be.

Au plaisir de vous y voir nombreux !

Séminaire Quaresmi ce 27 février: “… a ses meules & a ses cateus” : Culture(s) du risque et pratiques de l’écrit à Tournai au début du 14e siècle.

Ce jeudi 27 février, Sébastien de Valeriola animera le séminaire Quaresmi avec un exposé intitulé “… a ses meules & a ses cateus: Culture(s) du risque et pratiques de l’écrit à Tournai au début du 14e siècle.

Dans cet exposé, nous considérons les clauses de garantie qu’on trouve dans les reconnaissances de dette du 13e et du début du 14e siècles dans nos régions.
Partant de l’observation que celles-ci présentent une variabilité importante, nous présentons d’abord un point de vue global en examinant l’ensemble des chirographes de ce type rédigés à Douai, Ypres et Tournai durant la période d’intérêt. Nous nous intéressons ensuite à un sous-corpus particulier, celui des dettes tournaisiennes du début du 14e siècle. L’exceptionnel état de conservation de ces documents permet d’enquêter de manière plus approfondie sur la variabilité des clauses, et de mettre celle-ci en parallèle avec le processus de rédaction des actes passés devant les voirs-jurés. L’exposé fait la part belle aux méthodes utilisées pour enquêter, quantitatives et exploratoires dans leur majorité.

Séminaire ouvert à tous. La présentation aura lieu à l’ICHEC, site Anjou, local E105 à 14h00. Pour faciliter l’organisation, merci de vous inscrire auprès de  quaresmi@ichec.be.

Au plaisir de vous y voir nombreux.

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.

Séminaires Quaresmi 2018-2019

Le laboratoire Quaresmi est très heureux d’annoncer qu’il inaugurera le jeudi 28 février 2019 sa première série de séminaires, avec un exposé de M. Sébastien de Valeriola (ICHEC) intitulé “Risque de défaut et réseaux de crédit à Ypres au XIIIe siècle” .

Ces séminaires sont ouverts à tous, mais pour des raisons organisationnelles, merci de vous signaler à l’adresse celine.engelbeen_at_ichec.be.

Les séminaires se dérouleront sur notre site du Manoir d’Anjou : Rue au Bois, 365a, 1150 Bruxelles.

Vous pouvez retrouver ces séminaires dans notre section “Nos activités” .

Affiche des séminaires du laboratoire Quaresmi. Les dates sont aussi disponibles via notre section "nos activités".

Atelier DAHLIA – EGC 2019

Ce mardi 22 janvier, j’ai eu l’occasion de présenter brièvement notre travail réalisé sur une partie de l’œuvre de l’encyclopédiste médiéval Vincent de Beauvais lors de l’atelier DAHLIA (Groupe de travail DigitAl Humanities and cuLtural herItAge) qui précédait la conférence EGC 2019 à Metz.

Face au volume très important que représente l’ensemble des encyclopédies médiévales, la question de l’identification des sources utilisées par les encyclopédistes paraît naturelle, mais représente une tâche colossale et fastidieuse pour les historiens si elle est entreprise manuellement. Le but de ce travail présenté est de créer un outil d’identification automatique des sources utilisées par Vincent de Beauvais dans ses livres 16 à 22 du speculum naturale.

Afin de créer cet outil, il a été nécessaire de découper en petites entités, appelées notices, les différentes œuvres sur lesquelles nous avons travaillé. Pour le speculum maius de Vincent de Beauvais, cette division existait déjà. Cette présentation, ainsi que les questions du public, ont été l’occasion de revenir sur la façon dont nous avons choisi d’effectuer ce découpage pour les différentes sources utilisées. Je suis également revenue brièvement sur les conséquences de cette subdivision sur l’outil.

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