Observez l’inobservable: la magie des proxys

Galerie

Pour les spécialistes d’époques lointaines, ou pour ceux qui s’intéressent à une histoire plus récente, mais néanmoins troublée, il n’est pas rare de ne disposer que d’une information lacunaire sur tel ou tel point ou période que l’on voudrait étudier. … Lire la suite

Exorciser vos statistiques 2: combattre la débauche des modalités

Galerie

Lors de mon précédent billet, je m’étais rapidement intéressé à quelques principes permettant d’éviter des problèmes de dimensionnalité liés à un grand nombre de variables. Cette fois-ci, je souhaiterais évoquer le cas où c’est le grand nombre des modalités de … Lire la suite

Zotero et BibLaTeX : créer une bibliographie classée par thèmes

Galerie

Cette galerie contient 3 photos.

Parmi les utilisations un peu plus avancées que l’on peut faire du couple Zotero-BibLaTeX, nous verrons aujourd’hui comment créer une bibliographie thématique. Pour exposer quelque peu mon objectif : je souhaite utiliser une collection Zotero pour créer ma bibliographie de thèse, … Lire la suite

N-grams et identification des auteurs

Galerie

Cette galerie contient 3 photos.

Ces derniers temps, les études dans le domaine de l’authorship attribution ou de la classification des textes ont pris un souffle nouveau par le biais de l’utilisation de n-grams1, ouvrant des perspectives nouvelles pour la création de modèles indépendants de … Lire la suite

Colloque Modèles et apprentissages en Sciences Humaines et Sociales (MASHS 2011)

Galerie

Les 23 et 24 juin prochains se tiendra à Marseille, au Centre de la Vieille Charité, la cinquième édition du colloque Modèles et apprentissages en Sciences Humaines et Sociales (MASHS 2011), consacrée à la modélisation mathématique ou informatique appliquée aux … Lire la suite

Exorcisez vos statistiques: contre la malédiction de la dimension

Galerie

Les bases de données que nous traitons en histoire, philologie, ou toute autre science intéressée au passé ont-elles une forme particulière ? A priori, étant donnée la diversité des sujets étudiés, des époques de référence, des problématiques dans lesquelles elles … Lire la suite

Une nouvelle revue consacrée à la Philologie numérique : Digital Philology: A Journal of Medieval Cultures

Une nouvelle revue consacrée à la Philologie numérique vient de naître. Fondée par  les romanistes Stephen G. Nicols (tenant historique de la « Nouvelle Philologie »1) et Nadia R. Altschul, Digital Philology: A Journal of Medieval Cultures paraîtra deux fois par an aux presses de l’Université John Hopkins (Baltimore, Maryland). Chaque année, un des deux numéros se construira autour d’une thématique précise, tandis que l’autre sera ouvert aux candidatures. Voici l’appel à contribution pour les numéros « ouverts » de 2012 et 2013.

Digital Philology: A Journal of Medieval Cultures

Call for Submissions

Digital Philology is a new peer-reviewed journal devoted to the study of medieval vernacular texts and cultures. Founded by Stephen G. Nichols and Nadia R. Altschul, the journal aims to foster scholarship that crosses disciplines upsetting traditional fields of study, national boundaries, and periodizations. Digital Philology also encourages both applied and theoretical research that engages with the digital humanities and shows why and how digital resources require new questions, new approaches, and yield radical results.

Digital Philology will have two issues per year, published by the Johns Hopkins University Press. One of the issues will be open to all submissions, while the other one will be guest-edited and revolve around a thematic axis.

Contributions may take the form of a scholarly essay or focus on the study of a particular manuscript. Articles must be written in English, follow the 3rd edition (2008) of the MLA style manual, and be between 5,000 and 9,000 words in length, including footnotes and list of works cited. Quotations in the main text in languages other than English should appear along with their English translation.

Digital Philology welcomes submissions for the 2012 and 2013 open issues. Inquiries and submissions (as a Word document attachment) should be sent to dph|a|jhu.edu, addressed to the Editor (Albert Lloret) and Managing Editor (Jeanette Patterson). Digital Philology will also publish reviews of books and digital projects. Correspondence regarding digital projects and publications for review may be addressed to Timothy Stinson at  tlstinson|a|gmail.com.

Editorial Board

Tracy Adams (Auckland University)

Benjamin Albritton (Stanford University)

Nadia R. Altschul (Johns Hopkins University)

R. Howard Bloch (Yale University)

Kevin Brownlee (University of Pennsylvania)

Jacqueline Cerquiglini-Toulet (Université Paris Sorbonne – Paris IV)

Suzanne Conklin Akbari (University of Toronto)

Lucie Dolezalova (Charles University, Prague)

Alexandra Gillespie (University of Toronto)

Jeffrey Hamburger (Harvard University)

Daniel Heller-Roazen (Princeton University)

Sharon Kinoshita (University of California, Santa Cruz)

Joachim Küpper (Freie University of Berlin)

Deborah McGrady (University of Virginia)

Christine McWebb (University of Waterloo)

Stephen G. Nichols (Johns Hopkins University)

Timothy Stinson (North Carolina State University)

Lori Walters (Florida State University)

Digital Philology: A Journal of Medieval Cultures

Call for Submissions

Digital Philology is a new peer-reviewed journal devoted to the study of medieval vernacular texts and cultures. Founded by Stephen G. Nichols and Nadia R. Altschul, the journal aims to foster scholarship that crosses disciplines upsetting traditional fields of study, national boundaries, and periodizations. Digital Philology also encourages both applied and theoretical research that engages with the digital humanities and shows why and how digital resources require new questions, new approaches, and yield radical results.

Digital Philology will have two issues per year, published by the Johns Hopkins University Press. One of the issues will be open to all submissions, while the other one will be guest-edited and revolve around a thematic axis.

Contributions may take the form of a scholarly essay or focus on the study of a particular manuscript. Articles must be written in English, follow the 3rd edition (2008) of the MLA style manual, and be between 5,000 and 9,000 words in length, including footnotes and list of works cited. Quotations in the main text in languages other than English should appear along with their English translation.

Digital Philology welcomes submissions for the 2012 and 2013 open issues. Inquiries and submissions (as a Word document attachment) should be sent to dph@jhu.edu, addressed to the Editor (Albert Lloret) and Managing Editor (Jeanette Patterson). Digital Philology will also publish reviews of books and digital projects. Correspondence regarding digital projects and publications for review may be addressed to Timothy Stinson at tlstinson@gmail.com.

Editorial Board

Tracy Adams (Auckland University)

Benjamin Albritton (Stanford University)

Nadia R. Altschul (Johns Hopkins University)

R. Howard Bloch (Yale University)

Kevin Brownlee (University of Pennsylvania)

Jacqueline Cerquiglini-Toulet (Université Paris Sorbonne – Paris IV)

Suzanne Conklin Akbari (University of Toronto)

Lucie Dolezalova (Charles University, Prague)

Alexandra Gillespie (University of Toronto)

Jeffrey Hamburger (Harvard University)

Daniel Heller-Roazen (Princeton University)

Sharon Kinoshita (University of California, Santa Cruz)

Joachim Küpper (Freie University of Berlin)

Deborah McGrady (University of Virginia)

Christine McWebb (University of Waterloo)

Stephen G. Nichols (Johns Hopkins University)

Timothy Stinson (North Carolina State University)

Lori Walters (Florida State University)

  1. Voir notamment Stephen G. Nichols, « Introduction: Philology in a Manuscript Culture », Speculum, 65-1 (Jan. 1990), p. 1-10. []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn

Une solution bibliographique pour LaTeX et les Humanités : BibLaTeX

Depuis bien longtemps, les utilisateurs de LaTeX s’arrachaient les cheveux devant la seule véritable solution de gestion de bibliographique qui leur était proposée, j’ai nommé  BibTeX. N’accablons pas trop BibTeX : créé en 1985, peu après LaTeX, par Oren Patashnik et Leslie Lamport (le créateur de LaTeX himself), BibTeX répondait à un besoin de solution de gestion semi-automatisée des références bibliographiques, fondée sur une base de données contenant les références (fichier .bib) et un fichier de style (.bst). Cette solution était particulièrement innovante pour l’époque, où personne n’entendait encore parler de Zotero, et l’est encore à certains égards. Rendons grâce à ses auteurs.

Maintenant, avouons-le, BibTeX a un (très) gros défaut : ses fichiers de style. Ceux-ci sont écrit dans un code très particulier (qu’on qualifie de notation polonaise inversée ou reverse polish notation1, il fallait y penser). À titre d’exemple, voici un bout de bon vieux code bst de BibTeX (souvenirs, souvenirs…) :

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "\bgroup\sc {vv~}{ll~}\egroup{{}}{(ff)}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "" * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " et " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

Si vous ne vous êtes pas enfuis en courant, vous aurez la joie d’apprendre qu’il existe désormais une alternative relativement plus simple, plus souple, et plus riche à BibTeX, qui s’appelle BibLaTeX. Développé et maintenu par Philipp Lehman, BibLaTeX réunit un grand nombre d’outils qui étaient auparavant dispersés dans divers modules. BibLaTeX fonctionne en utilisant les mêmes bases de données .bib que BibTeX, et, si à l’origine il se servait en partie du moteur de BibTeX, il peut désormais s’en dispenser complètement grâce à Biber, et gère ainsi nativement l’UTF8. En outre, et c’est là son plus grand avantage comparatif,  il utilise un langage pour les styles beaucoup plus abordable que celui de BibTeX :

\renewcommand*{\mkbibnamefirst}[1]{\textit{#1}}
\renewcommand*{\mkbibnamelast}[1]{\textit{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textit{#1}}
\renewcommand*{\mkbibnameaffix}[1]{\textit{#1}}
\DeclareFieldFormat{booktitle}{#1\isdot}
\DeclareFieldFormat{journaltitle}{#1\isdot}
\DeclareFieldFormat{issuetitle}{#1\isdot}
\DeclareFieldFormat{maintitle}{#1\isdot}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{title}{#1\isdot}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[inbook]{title}{#1}
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[inproceedings]{title}{#1}
\DeclareFieldFormat[patent]{title}{#1}
\DeclareFieldFormat[thesis]{title}{#1}
\DeclareFieldFormat[unpublished]{title}{#1}

Pour quelqu’un qui connaît un peu LaTeX, c’est tout de suite beaucoup plus parlant. Qui plus est, en plus d’être relativement accessible, ces styles sont configurables à l’extrême, et ce bien plus qu’à peu près n’importe quel autre format de styles bibliographiques que j’ai pu rencontrer. Je me suis lancé dans la création d’un style, et j’ai été agréablement surpris à la fois du degré de détail jusques auquel on peut aller et de l’élégance du code.

En outre, pour ceux qui ne voudraient malgré tout pas se lancer dans la création d’un style, il existe des styles tout prêts qui correspondent beaucoup mieux aux normes des humanités françaises (il y a notamment des styles de base qui fonctionnent en Auteur, titre, et qui gèrent le titre abrégé, les ibid., etc.). Pour les historiens, le style de la Historische Zeitschrift peut être un point de départ intéressant.

Parmi les nombreuses autres fonctionnalités qui me restent à explorer figurent celles jadis éparpillées dans les modules babelbibbibtopicbibunitschapterbib,citeinlinebibmcite et mciteplusmlbibmultibibsplitbib, plus d’autres propres à BibLaTeX. Les fonctionnalités évoquées dans la description du paquet on de quoi faire pâlir d’envie les utilisateurs d’autres logiciels de gestion bibliographique : la possibilité de diviser sa bibliographie en sections, de réaliser plusieurs bibliographies dans le même document, de diviser sa bibliographie selon l’emploi des références dans les chapitres, ou selon des thèmes et mots-clés, ou par types de documents…

Concrètement, pour l’impatient qui voudrait se lancer tout de suite dans BibLaTeX, il suffit d’ajouter dans le préambule la commande suivante :

\usepackage[babel]{csquotes}% Si vous ne l'aviez pas déjà.
\usepackage[backend=biber,%si on utilise biber, sinon bibtex.
sorting=nyt,%si on veut que les références soient triées dans la bibliographie par nom/date/titre.
style=style_choisi%par ex. historische_zeitschrift.
]{biblatex}
\addbibresource{Mon_fichier.bib}

Pour citer une référence, il suffira d’insérer à l’endroit opportun la commande :

\cite{clé}

Puis, pour afficher la bibliographie :

\printbibliography

Pour terminer, voici quelques exemples obtenus avec mon style de citation maison (encore en version bêta). Tout d’abord quelques citations en note :

Citations

Des citations en note

Et maintenant un extrait de la bibliographie :

bibliographie

Un extrait de la bibliographie

  1. Pour comprendre le principe de cette notation, il faut imaginer que les chiffres et opérations que l’on y met s’empilent, et que l’on pioche à partir du sommet de la pile : ainsi, si l’on écrit 10 3 2 + * le résultat est 50, puisque l’on prend les deux éléments du sommet de la pile (3 et 2) pour réaliser la première opération, donc 3+2 = 5 puis 5 est reposé au sommet de la pile, et on reprend les deux éléments du sommet de la pile pour faire la seconde opération, soit 5*10 = 50. Clair, non ? []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn

L’Information retrieval appliquée à la philologie. II. Differential term weighting

Revenons1 ici sur un projet de billet annoncé depuis quelques temps : celui de l’application possible que l’on peut faire à la philologie de traitements provenant du champ de l’Information retrieval. Cette fois-ci, il sera question du Differential term weighting.

Le principe général du Differential term weighting est de remplacer les effectifs lexicométriques bruts par une valeur calculée selon une formule déterminée. La formule choisie peut répondre à différents principes mathématiques et peut varier selon l’objectif recherché. Nous verrons d’abord les formules existantes et les principes mathématiques et objectifs auxquelles elles répondent, puis, dans un deuxième temps, on se penchera sur leur application possible aux analyses lexicométriques des textes anciens.

Les formules classiques

Avant de nous plonger en détail dans les différentes formules et leur principes et objectifs, attardons nous un peu sur les principes généraux qu’elles recouvrent. Au niveau du résultat recherché, tout d’abord, il ne nous faut pas oublier que ces formules ont été conçues sur la base d’une recherche de pertinence dans les recherches d’information, et que leur objectif est donc l’élimination du bruit dans le cadre d’une recherche plein-texte. Cet objectif diffère sensiblement du nôtre et de notre utilisation des effectifs lexicométriques. Au niveau du principe mathématique, il nous faut tout d’abord différencier deux choses : le poids local (L) qui est affecté à un nombre N d’occurrences d’un mot i dans un texte j (c’est-à-dire à la valeur qui figure, dans un tableau d’occurrences lexicométriques dans une des cellules) , et le poids global (G) qui est affecté au mot i dans l’ensemble des textes. Certaines des formules ne font usage que d’un seul de ces types de poids, d’autres utilisent les deux, sous la forme :LijxGi

Les poids locaux

Les trois types de poids locaux (Lij) employés les plus couramment sont ainsi :

  1. La fréquence brute du mot dans le document, soit Lij = Nij.
  2. Une valeur binaire : si Nij ≥ 1, alors Lij = 1, sinon Lij = 0.
  3. Une valeur logarithmique, employée généralement pour réduire les écarts trop importants entre les termes très fréquents et les termes rares, Lij = log(Nij+1).

Les poids globaux

Les poids globaux s’appuient tous sur une ou plusieurs des trois valeurs suivantes :

  1. le nombre d’occurrences du terme i dans le document j (que nous appellerons ici encore Nij).
  2. Le nombre total de documents dans lequel le terme i apparaît (que nous appellerons Di).
  3. Le nombre d’occurrences total du terme i dans l’ensemble des documents (que nous appellerons Ti).

Il faudrait pour être tout à fait complet, ajouter une dernière valeur, celle du nombre total de documents (Ndoc). Il y a, pour les poids globaux, trois méthodes principales :

1. La méthode dite « Normale » :

Cette méthode consiste donc à définir un poids global qui prenne en compte les différences entre mots très fréquents et mots peu fréquents, tout en les amoindrissant.

2. Occurrences totales sur nombre de documents où le terme est présent :

Ti/DiCette formule donne un poids global qui favorise les termes apparaissant très fréquemment dans un nombre très restreint de documents (un terme qui apparaît 100 fois dans un seul document aura un poids global de 100 ; un terme qui apparaît 100 fois dans 100 documents, aura un poids global de 1).

3. Log2(Ndoc/Di)+1Cette méthode donne un poids global qui favorise les termes qui apparaissent dans peu de documents.

La méthode 1 – entropie

Dans un article désormais un petit peu ancien, Susan T. Dumais décrit une autre méthode dont, selon elle, les résultats sont de loin supérieurs à ceux des autres2. Elle se fonde sur un calcul d’entropie ou de bruit. Mathématiquement, elle se présente ainsi :

entropyCette valeur d’entropie prend en compte la fréquence du terme dans le document concerné par rapport à la fréquence totale du terme, et la rapporte au nombre de documents total. En gros, plus le terme apparaît fréquemment dans un petit nombre de documents, plus la valeur d’entropie sera grande (elle sera supérieure pour un terme apparaissant 10 fois dans un seul document que pour un terme apparaissant en tout dix fois, mais une fois par document).

Intérêt et application de ces méthodes

L’objectif principal de ces méthodes est de fournir des documents pertinents lors d’une recherche d’information. Si elles sont extrêmement intéressantes dans leurs principes, leur utilité dans leur application à la philologie reste en partie à démontrer. On peut toutefois en retenir le principe et l’adapter à ses besoins.

Travaillant récemment, à l’aide d’analyses factorielles et de classification ascendantes hiérarchique, sur un corpus de courts textes (des vidas de troubadours contenues dans le ms. A) avec des propriétés très particulières, j’ai eu recours à une forme très basique de differential term weighting, mais celle-ci m’a été extrêmement utile et m’a permis d’exploiter le corpus sans me retrouver face à des résultats totalement biaisés. Les propriétés particulières de ce corpus étaient :

1. De se composer d’un ensemble de très courts textes, avec une moyenne de 164 mots, et une médiane de 147, qui pouvaient se répartir de ce point de vue en deux groupes principaux : entre 20 et 100 mots, et entre 100 et 300, mais malgré tout avec quelques individus aberrants pouvant dépasser 400 mots, voire atteindre 676. Comme une image vaut parfois mieux que de longs discours, voici la boîte à moustaches :Boîte à moustaches des vidas de A

2. D’utiliser un vocabulaire restreint, assez répétitif, avec un nombre délimité de formules types, et d’être donc en grande partie très homogènes du point de vue de leur lexique, provenant en outre du même manuscrit.

Ces deux éléments faisaient que l’analyse factorielle ne donnait pas grand chose, tandis que la classification ascendante hiérarchique me triait les textes uniquement d’après leur nombre de mots… Or, ce n’était pas ça qui m’intéressait, pas plus que la vérification de l’homogénéité globale de leur vocabulaire (que je connaissais déjà pour les avoir un peu pratiqués), mais bien au contraire les quelques éléments d’hétérogénéité pouvant renvoyer à des branches différentes de la tradition, à des auteurs différents, à des datations ou localisations différentes, etc. Pour pouvoir arriver à des résultats exploitables, j’ai fait usage d’une forme de poids local très rudimentaire, mais dans ce cas précis tout à fait salvatrice, en divisant le nombre d’occurrences du mot dans le document (Nij) par le nombre total de mots du document (Tj), ce qui revient à utiliser un taux :

Nij/TjÀ l’aide de ce poids local, j’ai obtenu des résultats beaucoup plus pertinents, dans lesquels j’ai déjà pu distinguer des rapprochements liés à des groupes de manuscrits, à des datations/localisations, et à des auteurs présumés. Il ne me reste plus désormais qu’à les analyser en détail !

  1. Après une période prolongée sans billet due à une période un peu chargée (colloques) de mon côté. []
  2. Dumais (Susan T.), « Improving the retrieval of information from external sources », Behavior Research Methods, Instruments, & Computers, 23 (1991), p. 229-236. []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn

Les logiciels statistiques épisode II: visualiser librement ses données

Nous continuons notre exploration des logiciels statistiques en présentant les possibilités offertes par les logiciels libres. Il existe de très nombreux logiciels capables de réaliser tout ou partie des opérations possibles sur les logiciels propriétaires que nous évoquions précédemment – voire de réaliser des opérations qu’on ne peut pas faire avec les précédents. Avant d’aborder la question des logiciels libres généralistes (en pratique, du logiciel libre généraliste, R), nous allons dresser un rapide panorama des logiciels libres spécialisés. Commençons cette semaine par les logiciels libres permettant de visualiser ses données.

ViSta (Visual Statistics), développé à l’origine par le psychomètre américain Forrest Young, permet de réaliser simplement une grande variété de graphiques, de bonne qualité, et rigoureusement conçus. Les adeptes de Microsoft Office regretteront sûrement une intégration difficile de ce logiciel à leur suite bureautique favorite (importation de données depuis Excel très pénible, affichage des graphiques sous Word décevant). Au-delà de la simple préférence individuelle, ce point peut être gênant dans le cas de publications demandant des articles sous un format .doc.

Représentation cartographique sous VisIt 1.6

Représentation cartographique sous VisIt 1.6

Pour des graphiques plus impressionnants visuellement, on préfèrera probablement utiliser VisIt. Moins adapté aux sciences humaines que VisTa – ce logiciel ayant été originellement développé pour le « Department of Energy » américain – , il n’en reste pas moins un puissant outil pour les visualisations 2D et 3D.

La prise en main n’est pas aisée, les possibilités nombreuses, trop étendues pour nos usages – il est rare d’avoir besoin de créer des représentations tri-dimensionnelles de molécules, ou de passagers d’une voiture prête à s’écraser… – mais pour quiconque cherche une visualisation à la fois pointue et percutante, en particulier pour travailler sur des bases de données de grandes dimensions, VisIt s’impose comme une référence.

Existe aussi dans le domaine du traitement de bases de données de grande ampleur Open DX, un programme de visualisation très puissant, programmé à partir de l’explorateur de données d’IBM, et lui aussi centré sur la visualisation de données scientifiques. Malheureusement, le projet semble à l’abandon depuis près de quatre ans: sauf rebondissement, ce logiciel ne devrait donc pas connaître de mises à jour, ce qui risque de poser problèmes dans un futur immédiat.

Si vous chercher à travailler sur des données ayant un grand nombre de dimensions plutôt qu’un grand nombre d’individus, GGobi peut être une idée de choix. A l’aise pour les visualisations de données standard, il se montre encore à plus son avantage dans la visualisation de données  ayant de nombreuses dimensions, et est capable de réaliser des partitionnements intéressants de ces données. Il permet par ailleurs de créer des graphiques dynamiques et interactifs très réussis. Grâce au package rggobi, le logiciel permet par ailleurs de nombreuses interactions avec R. Là encore, la prise en main peut être un peu délicate, mais les fonctionnalités sont impressionnantes.

Florian CAFIERO

Ancien élève de l'Ecole Normale Supérieure, Florian Cafiero enseigne les méthodes quantitatives appliquées à la philologie à l'Ecole nationale des chartes, ainsi que les humanités numériques à Paris Sciences et Lettres (PSL).

More Posts

Follow Me:
TwitterLinkedIn

L’Information retrieval appliquée à la philologie. I. Approximate string matching

Le domaine de l’Information retrieval, profondément lié dans son histoire à l’informatique, connaît sans cesse des développements très importants, au cœur de l’activité du Web, de la documentation, des moteurs de recherche. On peut comprendre la tentation d’exploiter certains des acquis de cette science pour l’appliquer aux domaines qui nous intéressent, ou, pour reprendre une métaphore dans la tonalité générale de notre carnet, de boire à cette coupe qui ne se tarit jamais. Toutefois, une telle démarche ne peut aller sans une réflexion préalable.

Il ne faut pas en effet oublier que ces outils ont été créés non pas pour faciliter le travail des philologues, pour opérer des traitements scientifiques sur des corpus de textes, mais bien dans une optique de recherche d’information et de pertinence qui diffère sensiblement de la nôtre. Ce billet se veut le premier d’une série cherchant, sans exhaustivité, à passer en revue certains des outils les plus fréquents dans le domaine de l’Information retrieval et de voir en quoi ils peuvent nous être utiles, s’ils sont applicables ou adaptables à nos sciences. À cette fin, nous commencerons par un des éléments les plus « classiques », l’Approximate string matching, dont nous connaissons tous empiriquement le principe, ne serait-ce que par notre utilisation des moteurs de recherche…

Exemple sur Google

Exemple sur Google...

1. Algorithmes et calculs de distance

La Distance de Levenshtein

La mesure de distance décrite en 1965 par le mathématicien soviétique Vladimir Levenshtein1 consiste en la somme des suppressions, remplacements ou insertions qu’il faudrait effectuer pour passer d’une chaîne de caractères à une autre. De cette façon, pour passer de

Philologe à Philologie

la distance est de 1 (une insertion) ou env. 11%. Et entre :

Philologie et Philosophie

la distance est de 3 (deux remplacements et une insertion) ou 30%. La distance de Levenshtein a été implémentée par les informaticiens Robert Wagner et Michael Fischer2  (on parle alors d’algorithme de Wagner-Fischer).

La distance de Damerau–Levenshtein

La distance dite de Damerau–Levenshtein, du nom du chercheur d’IBM Frederick J. Damerau, quant à elle, se distingue de la distance de Levenshtein en ce qu’elle inclue, outre les suppressions, remplacements ou insertions, un quatrième type d’opération, à savoir l’interversion de caractères adjacents. Ainsi, la distance  entre

Philoloige et Philologie

est de 2 selon la mesure de Levenshtein, et seulement de 1 selon la mesure de Damerau-Levenshtein.

Autres mesures de distance

Si ces deux mesures de distance entre chaînes de caractères sont celles que l’on rencontre le plus fréquemment, il en existe d’autres. On citera ainsi pour mémoire la Distance de Hamming, qui ne fonctionne qu’avec des chaînes du même nombre de caractères et consiste en la somme de caractères différents à la même position. D’après cette mesure, la distance entre

Histoire et Histeire

est de 1, tandis qu’entre

Histoire et Hstoires

elle est de 7. Il faut dire que cette mesure de distance, qui correspond assez peu au fautes de frappe habituelles, est peu utilisée en tant que telle dans le domaine de la recherche d’information.

2. Mise en œuvre

Des modules Perl existant permettent de mettre en œuvre ces calculs. Nous parlerons ici brièvement des deux principaux, Text::WagnerFischer et String::Approx (je déconseille d’utiliser Text::Levenshtein qui a apparemment des problèmes avec utf8 et,  chez moi  en tout cas, donne des résultats faux…).

Text::WagnerFischer sert à la comparaison entre deux chaînes de caractères et permet d’obtenir le résultat de  la mesure de distance, ainsi :

#!/usr/bin/perl
use Text::WagnerFischer qw(distance);
print distance("bonjour","bonsoir") ;

donne comme résultat 2 (deux substitutions en l’occurrence). Mais ce module permet également d’aller un peu plus loin en configurant séparément (mais dans cet ordre) le coût d’une correspondance, d’une suppression/insertion, et d’une substitution. Ainsi, pour reprendre l’exemple précédent :

print distance([0,1,1],"bonjour","bonsoir") ;
print distance([-1,2,3],"bonjour","bonsoir");

Si le résultat de la première commande donnera toujours 2 (deux substitutions dont le coût est 1), la seconde donnera cinq correspondances et deux substitutions, soit -1*5 + 3 *2, c’est-à-dire 1 (ce n’est qu’un exemple).

Le module String::Approx, quant à lui, permet, de façon relativement simple, non plus de simplement comparer des chaînes de caractères (i.e. établir la distance qui les sépare), mais de relever directement les chaînes qui correspondent à une autre pour une distance préétablie (par défaut 10%). Ainsi, dans le script suivant :

use String::Approx 'amatch';
@mots = qw("bonjous", "bonjours", "bonsoir", "adieu");
@resultat1 = amatch("bonjour", @mots);
@resultat2 = amatch("bonjour",["25%"], @mots);

la liste @resultat1 comprendra les mots « bonjous », « bonjours » et la liste @resultat2 les mots « bonjous », « bonjours », « bonsoir » (la distance spécifiée étant de 25%).

3. Exemple d’application

Pour prendre un exemple un peu plus intéressant, j’ai testé ce module sur un corpus de textes occitans médiévaux. J’y ai recherché le terme cansos avec la distance par défaut de 10%. Dans ma liste de résultats se trouvent les termes suivants :

cansonetas, 1
cansos, 5
cansson, 5
canssons, 5
canssos, 7
chansos, 2

Ce résultat est intéressant, car ne s’y trouvent en effet que des graphies différentes de cansos, (excepté cansonetas, ce qui nous apprend par la même occasion que amatch est programmé pour s’arrêter dès qu’il trouve une correspondance, en l’occurrence canson[etas], ce qui peut-être particulièrement gênant si l’on veut traiter des monosyllabes). Toutefois, toutes les formes de cansos ne figurent pas dans cette liste : il y manque notamment chansson, chanssons et chanssos. On peut tenter d’augmenter la distance, en la fixant par exemple à 20%, mais dans ce cas, on obtient également tout une série de termes qui on peu de choses à voir avec nos chansons, en vrac canorgues, Cartosa, enansset, fermanssa, percassava3

Pour conclure, on pourra noter que, si ces modules peuvent en effet donner des résultats intéressants, il manque, pour correspondre tout à fait à nos besoins, la possibilité de configurer indépendamment des coûts permettant de différencier certaines substitutions bénignes (comme la simple variation graphique entre i et y ou l’alternance c/ch par exemple) de celles qui ne le sont pas. Pour ce faire, a priori, il faudra plutôt recourir à une grammaire d’expressions régulières.

  1. Vladimir I. Levenshtein, « Binary codes capable of correcting deletions, insertions, and reversals », dans Soviet Physics Doklady, 10 (1966), p. 707-710. []
  2. Robert A.Wagner et Michael J.Fischer, « The string- to-string correction problem », dans Journal of the ACM, 21(1974), p. 168–173. []
  3. Les précédentes versions de String::Approx contenaient une commande aregex() qui aurait permis de contourner en partie ces difficultés par l’emploi d’expressions régulières, mais celle-ci n’existe hélas plus dans la dernière version. []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn

Les logiciels statistiques t.1: les logiciels commerciaux

Pour cette nouvelle année que nous vous souhaitons aussi heureuse que possible,  nous ouvrons un nouveau chapitre dans notre série « à la recherche d’Excalibur ». Sans pour autant clore notre petit tour des langages de programmation utiles en sciences humaines, nous allons nous attacher un instant à vous présenter le riche marché des logiciels statistiques, grâce auxquels vous passerez, j’en suis sûr, de grands moments de plaisirs.

"Piled Higher and Deeper" by Jorge Cham www.phdcomics.com

Commençons d’abord par les logiciels commerciaux, que nous nous devons de présenter,  même si au cours de nos recherches et de nos prochains billets, nous utiliserons essentiellement (euphémisme, quand tu nous tiens!) des logiciels libres. L’importante utilisation de ce type de logiciels dans des situations commerciales (finance, étude de marché, biostatistique) a incité de nombreuses firmes à développer des programmes performants (il en existe aujourd’hui plusieurs dizaines), et somme toute assez diffusés dans le milieu de la recherche. Nous en présentons ici quelques uns.

SAS – Statistical Analysis System

Répandu dans le monde universitaire français, en particulier chez les économistes (le fait qu’il s’agisse du logiciel qu’utilise l’INSEE n’y est pas étranger), le logiciel SAS est, dans sa version « standard », un logiciel généraliste permettant la création et l’édition de base de données, y compris de très grandes envergures, et leur analyse. Le langage de ce logiciel est d’ailleurs basé sur cette distinction. D’un côté, grâce aux « étapes data », vous pouvez modifier, fusionner, recomposer comme bon vous semble vos bases de données – par exemple, créer une base de données « sacregraal » à partir d’une base données originelle « graal », en supprimant des variables gênantes:

Etape data sous SAS

De l’autre côté, grâce aux « procédures » (proc), vous pouvez réaliser vos régressions, vos analyses factorielles, faire éditer des statistiques descriptives, ou créer des graphiques prêts à exporter – mais ce n’est pas pour le côté visuel de ces derniers qu’on admirera SAS. Vous pourrez par exemple tenter d’expliquer les rires devant Sacré Graal par la présence de tel ou tel acteur, grâce à une régression logistique de premier choix:

Régression logistique sous SAS

Des macros vous permettront par ailleurs de réaliser des tâches automatiques – un outil bien utile.

SAS en est aujourd’hui à sa version 9.2, datant de 2008. Mais il peut malgré tout être utilisé de sorte qu’il soit entièrement à la pointe de l’actualité.  SAS permet en effet d’appeler des fonctions depuis le logiciel libre R, et de coder en R directement dans son interface,  grâce à SAS/IML(R) Studio 3.3. Ceci permet de profiter de toutes les innovations réalisées dans les packages pour R, avant que celles-ci ne soient éventuellement retranscrites dans le logiciel (nous reviendrons sur ces points quand nous parlerons de R dans un prochain billet).

Stata

Pas d’acronyme cette fois pour le nom de ce logiciel, qui n’est que la contraction de « stat » et « data ». Développé depuis plus de 25 ans par la Stata Corporation, Stata est certainement le rival majeur de SAS dans le monde académique, en particulier en économie, mais aussi en sciences médicales.

Lui aussi à vocation généraliste (on y retrouve peu ou prou les mêmes fonctions que dans SAS), Stata a néanmoins une originalité majeure pour un logiciel propriétaire et commercial: il permet aux utilisateurs de créer ses propres extensions (« ado-files »), qui peuvent être ensuite proposées au téléchargement. Un avantage certain, augmenté de l’abondante littérature autour de ce logiciel. Une revue à comité de lectures, le Stata Journal, ainsi qu’une mailing list, la Statalist, documentent abondamment potentialités et les mises à jour du logiciel.

En terme de langage, Stata paraît peut-être moins systématiquement construit que SAS, mais donne des programmes particulièrement courts à écrire. La régression logistique de tout à l’heure s’écrirait ainsi tout simplement (à la déclaration de la base de données près):

logistic laugh tgilliam tjones gchapman jcleese eidle mpalin

Si Stata a par contre un désavantage, c’est son prix: aux dernières nouvelles, environ 500 euros pour la licence « académique »…

Autres logiciels utiles

Les historiens s’intéressant régulièrement à des séries temporelles, ils pourront utiliser avec profit EViews, spécialisé dans ce domaine – bien qu’il assure également la plupart des fonctions des logiciels généralistes. Les étudiants ont accès à une version bridée de EViews 6 (taille maximale des bases de données réduite, ce qui n’est pas  si souvent gênant) vendue à 39,95 $. RATS (Regression Analysis of Time Series), son concurrent direct, permet également de puissants calculs autour des séries temporelles, mais gère aussi des fonctions plus rares comme les réseaux de neurone. La licence étudiante de RATS 8.0 coutera par contre 300$, la licence complète 500$…

Ceci reste toutefois donné comparé au très célèbre logiciel généraliste SPSS (Statistical Package for the Social Sciences), récemment devenu propriété d’IBM, qui s’oriente de plus en plus vers les professionnels et de moins en moins vers l’université. SPSS a l’avantage d’être particulièrement agréable à manier pour l’utilisateur, mais ceci a un prix. Toutefois, une version d’essai gratuite de 14 jours de SPSS 19 est disponible, pour quiconque voudrait s’en faire une idée plus précise. Son rival Statistica 10, lui aussi surtout destiné aux entreprises, préserve néanmoins une influence importante sur les campus nord-américains ; il n’est donc pas inintéressant de savoir le manier dans cette optique, d’autant que ces performances en terme de « data mining » sont très intéressantes. Lui aussi très à l’aise dans ce domaine, et champion des analyses factorielles – le logiciel français SPAD pourra certainement séduire, d’autant que son interface graphique est plutôt avenante, rendant le logiciel assez simple d’utilisation.

Notons enfin l’existence du logiciel Stat Transfer, qui permet de convertir tous types de bases de données en le langage que votre logiciel préféré vous demande . Pour l’utiliser, il vous en coutera 59$ pour la version étudiante, 179$ par poste pour la version académique.

Voilà! Avec tout ça, vous êtes armés ! Ruinés, mais armés… C’est déjà ça…

Florian CAFIERO

Ancien élève de l'Ecole Normale Supérieure, Florian Cafiero enseigne les méthodes quantitatives appliquées à la philologie à l'Ecole nationale des chartes, ainsi que les humanités numériques à Paris Sciences et Lettres (PSL).

More Posts

Follow Me:
TwitterLinkedIn

Python’s Flying Circus épisode 2: vous aimez les Perl, mais aimez vous les Ruby ?

Après notre comparatif rapide entre Python et Perl, il convenait tout de même de présenter un autre langage de programmation concurrent: Ruby. Comme Python et Perl, Ruby est un langage libre, de très haut niveau, multi-plateforme, générique, multi-paradigme, et doté d’un typage dynamique fort.

Dans l’esprit, Ruby est cependant plus proche de Perl. Son créateur Yukihiro Matsumoto (dit « Matz ») s’est en effet inspiré de certains principes de Perl pour concevoir son langage. En particulier, il s’est opposé au Zen de Python1 selon lequel  « il doit y avoir une – et de préférence seulement une – manière de faire ce que l’on veut ». Dans une interview donnée en 20032, Matsumoto déclarait ainsi :

Ruby a hérité de la philosophie de Perl le fait de laisser plus d’une manière de faire la même chose. Je tiens cette philosophie de Larry Wall, qui est véritablement mon héros. Je veux libérer les utilisateurs de Ruby. Je veux leur donner la liberté de choisir .

Dans l’usage, Ruby est comme Perl, moins diffusé que Python. Il est très utilisé dans la programmation web grâce au succès de Ruby on Rails. Mais il ne faut pas oublier pour autant que ses compétences vont bien au-delà, et qu’il peut donc aussi nous être très utile. Il est d’ailleurs assez riche par défaut – de nombreuses fonctions existant par défaut sur Ruby devant être importée depuis des modules spécifiques dans Python. Après le passage de la version 1.9 à une version stable 2.0, qui doit avoir lieu sous peu, nous nous attacherons donc à vous montrer quelques unes des applications que l’on peut dessiner pour nos domaines avec ce langage.

  1. Lisible par exemple ici. []
  2. VENNERS Bill, « The Philosophy of Ruby – A Conversation with Yukihiro Matsumoto », 29 septembre 2003 [En ligne]. URL: http://www.artima.com/intv/rubyP.html []

Florian CAFIERO

Ancien élève de l'Ecole Normale Supérieure, Florian Cafiero enseigne les méthodes quantitatives appliquées à la philologie à l'Ecole nationale des chartes, ainsi que les humanités numériques à Paris Sciences et Lettres (PSL).

More Posts

Follow Me:
TwitterLinkedIn

Python’s Flying Circus épisode 1: Python vs. Perl

Jusqu’ici, le langage que nous avons utilisé a toujours été Perl. Mais nous ne pouvions pas, surtout vu l’intitulé de notre blog, ignorer trop longtemps un des langages « rivaux » de celui-ci: Python. Notons que le rapprochement entre le nom de ce langage et une célèbre troupe de comédiens britanniques ne vient pas que de mon appétence visiblement pas assez modérée pour les jeux de mots ; c’est bien en honneur des Monty Python, dont il était un grand admirateur, que Guido van Rossum a nommé en 1989 son nouveau langage de programmation de la sorte.

Le premier billet à propos de Python reprendra un sujet déjà largement débattu : Perl ou Python ?

Les points communs

Avant d’examiner les raisons qui feraient choisir un ou autre langage, commençons d’abord par comprendre pourquoi on peut hésiter entre ces deux langages.

Perl et Python ont tous les deux des usages variés

Même s’ils ont chacun des domaines de prédilection, Python et Perl sont tous deux des langages génériques, utilisables dans des contextes fort nombreux, en particulier grâce à  l’utilisation de bibliothèques spécialisées.

Perl et Python sont tous les deux multi-plateformes

Vous êtes un geek assumé travaillant chez vous sur une distribution obscure de Linux, mais à votre université, on s’acharne à vouloir accroître les profits de Microsoft ? Vous avez toujours votre brave vieux PC sous Windows XP, mais votre laboratoire s’est équipé en iMac 27 pouces Quad-Core flambant neufs (je m’adresse là à d’éventuels visiteurs qui ne seraient pas dans la recherche publique française, bien entendu) ? N’ayez crainte! Aussi bien Perl que Python peuvent être utilisés quel que soit le système d’exploitation. C’est un magnifique avantage pour les situations plus ou moins crédibles que nous venons d’évoquer, et pour beaucoup d’autres d’ailleurs. Mais ce n’est donc pas un facteur de choix entre ces deux langages.

Perl 6 et Python 3 ne sont pas rétro-compatibles

Quand vous apprenez l’un ou l’autre de ces langages, vous apprenez un langage qui n’est pas compatible (ou du moins, pas fait pour être compatible) avec ses versions antérieures. Ce point peut-être gênant si vous cherchez à intégrer votre travail à un projet réalisé avec une version antérieure de ces langages. Des solutions ont été proposées de chaque côté. Du côté de Perl, un mode de compatibilité a cependant mis en place pour aider la portabilité entre Perl 5 et Perl 6. Du côté de Python, par contre, on a choisi de continuer à améliorer Python 2 au fur et à mesure des actualisations faites pour Python 3 – le but étant que les utilisateurs de Python ne soient pas obligés d’apprendre la nouvelle version pour bénéficier de ses améliorations. Mais si vous êtes un nouvel utilisateur de Python et que vous voulez produire un travail compatible avec Python 2, il vous faudra apprendre et Python 2 et Python 3.

Perl et Python utilisent un typage dynamique

La chose peut paraître anecdotique – mais elle me permet de revenir sur un des points du « hello world! ».  Comme Jean-Baptiste le faisait remarquer, C++ demande à l’utilisateur de déclarer le type de la variable qu’il crée: s’agit-il d’un nombre entier, d’un nombre réel (« à virgule flottante », si on aime cet anglicisme), d’une chaîne de caractères etc.  ? On parle pour les langages agissant de la sorte de « typage statique ». A l’opposé, pas plus Perl que Python ne vous demanderont cette information.  Ils utilisent un « typage dynamique ». Jean-Baptiste ayant déjà illustré ce point sous Perl, je me charge uniquement d’expliciter ce phénomène sous Python. Plutôt que de demander la nature d’une variable (son « type »), Python va regarder ses attributs pour déduire de lui-même le type. On parle de « duck typing »: si je vois un oiseau qui nage dans une mare, doté  d’un joli col vert et de palmes jaunes, qui se manifeste par des « coin-coin » aussi élégants que sonores, j’appelle cet oiseau « canard »1. Python fait de même: si je lui crée trois variables de types différents, il observe leurs caractéristiques et infère leur type.

Ainsi, Python reconnaît-il sans aide que la constante de Planck est un nombre réel (float), que 42 est un entier (int – pour « integer ») et que « coin coin » est une chaîne de caractères (str, pour « string »).

Les différences

Python: un langage plus rapide ?

Pour la plupart des tâches testées, l’exécution d’un code Python se fait plus rapidement que celle d’un code Perl2. Avouons-le, ce dernier point n’est pas crucial dans la plupart des applications en littérature et en sciences humaines – mais selon vos utilisations, il peut tout de même avoir de l’importance.

Python: un langage plus simple ?

De l’avis de beaucoup, et en particulier depuis la version 3 de Python, ce langage est globalement plus simple à apprendre. Un de ses avantages est ainsi d’avoir été conçu pour que chaque tâche ne puisse être exécutée que si l’on écrit un ensemble précis et unique de lignes de codes. En résulte un code  lisible et facile à maîtriser. A l’opposé, en Perl, il peut exister beaucoup de solutions différentes pour réaliser la même opération, ce qui rend difficile, même pour un utilisateur avancé, de lire le code d’un autre programmeur. C’est ce point qui a probablement le plus aidé à la diffusion de Python, plus répandu que Perl aujourd’hui.

Perl vs. Python: littéraire contre scientifique ?

A ce stade, avouons-le, on ne voit pas bien pourquoi certains pourraient préférer Perl à Python. Pourtant, Perl a lui aussi des avantages clefs, en particulier pour les domaines qui nous intéressent. Perl a ainsi été conçu pour extraire au mieux des informations d’un texte, et de générer des rapports à partir de ses analyses. C’est donc naturellement que Perl est devenu le langage de prédilection des linguistes – et qu’il peut être celui des philologues, voire des historiens, sociologues ou juristes voulant analyser des corpus textuels importants. Python est quant à lui plus à l’aise avec les tâches plus calculatoires, ou mathématiques en général, en particulier avec l’aides de modules comme  NumPy, SciPy, ou Matplotlib. Il est grâce à cela populaire dans des domaines comme la bio-informatique, la finance, et généralement pour l’analyse de données scientifiques. Bien sûr, Python ou Perl peuvent être utilisés sur les terrains de prédilection de l’autre  avec une certaine efficacité – mais nous y reviendrons dans de prochains billets.

Au final, le choix entre Python et Perl est délicat, et dépend de vos centres d’intérêts précis. En dehors de l’analyse textuelle, il  paraît clair qu’un expert en humanités devrait préférer débuter Python, qui reste plus facile d’accès que Perl. Pour l’analyse textuelle, Perl est probablement le bon choix – mais nous mettrons régulièrement ce choix à l’épreuve, en comparant l’efficacité de Perl et Python sur différentes tâches d’analyse de corpus au cours des prochains billets.

  1. C’est bien là l’origine de ce terme, rarement traduit en français – « duck typing » préservant une impression de sérieux, contrairement à « typage canard ». On trouve trace de cette expression et de ce raisonnement pour la première fois en 2000 dans la bouche d’Alex Martelli sur ce newsgroup. []
  2. Les sources de ces tests sont trop nombreuses à citer. Juste en clin d’oeil à notre premier billet, on pourra par exemple consulter cette évaluation sur le blog d’Ivan Zahariev []

Florian CAFIERO

Ancien élève de l'Ecole Normale Supérieure, Florian Cafiero enseigne les méthodes quantitatives appliquées à la philologie à l'Ecole nationale des chartes, ainsi que les humanités numériques à Paris Sciences et Lettres (PSL).

More Posts

Follow Me:
TwitterLinkedIn

Du texte à l’écran : L’édition de textes à l’heure de l’électronique

J’ai assisté, le jeudi 4 novembre, à un Atelier organisé par l’École nationale des chartes et l’Università degli studi di Siena ad Arezzo, intitulé Du texte à l’écran : L’édition de textes à l’heure de l’électronique, dont le programme est disponible ici, et j’aimerais vous faire profiter des quelques notes que j’ai prises à cette occasion.

La matinée était consacrée, avec un parti-pris pratique appréciable, à la présentation d’expériences d’éditions, dont la diversité était un point fort. Ainsi, après un mot de bienvenue du directeur de l’ENC, Jacques Berlioz, la journée s’est ouverte sur une présentation, par Florence Clavaud, du travail qu’elle a effectué en collaboration avec le Groupe de recherche sur les pouvoirs et les sociétés de l’Occident médiéval et moderne (le GREPSOMM) pour convertir de façon semi-automatisée les 387 minutes correspondant à l’année 1437 dans la pratique de Pierre Christofle, notaire à Orléans, depuis le format Open document, utilisé  pour leur travail préparatoire par les chercheurs canadiens, au format XML TEI, adapté à une publication en ligne, qui ne saurait tarder, sur la plateforme d’édition électronique de l’ENC, ELEC. Camille Desenclos a ensuite poursuivi sur la TEI, avec la présentation du travail d’édition entrepris pour son mémoire de Master II et portant sur la correspondance active de l’ambassade du Duc d’Angoulême (1620-1621), corpus constitué de 87 lettres. Elle a montré en  quoi elle avait été amenée à opérer des choix d’encodage en raison d’une forme d’inadéquation de la TEI à l’édition de correspondances. Elle a également souligné qu’au sein du projet TEI, un groupe spécialement dédié aux correspondances travaillait à la définition de bonnes pratiques et à la création de nouveaux éléments et classes adaptés.

On s’est ensuite éloigné temporairement de la TEI, avec une présentation par Elisa Brunoni et Irene Giacomelli de l’édition digitale du Corpus Rhythmorum Musicum (IVe-IXe siècle), dirigée par Francesco Stella, édition très riche, notamment du côté de l’interactivité et des statistiques textuelles, concernant entre autres choses l’ordre syntaxique (vers par vers !) ou les cas employés. S’il est permis de faire une légère critique sur cette présentation, par ailleurs passionnante et concernant une édition très aboutie, on pourra déplorer le manque relatif de détails techniques sur la réalisation concrète de la base de données qui est derrière l’édition.

Pont entre les travaux des érudits français et italiens, la communication de Laura Gili s’est penchée sur les possibilités procurées par l’outil électronique pour les éditions multilingues. Elle a également introduit la question du lien entre édition papier et électronique, problématique qui a été ensuite reprise par Anne Rochebouet, qui a présenté l’intérêt indéniable de LaTeX pour les éditions critiques sous forme papier, tant en ce qui concerne la présentation d’un apparat critique sur plusieurs étages de notes, la mise en vis-à-vis de textes sur plusieurs colonnes ou sur deux pages, ou la typographie impeccable que permet ce logiciel de traitement de texte, certes un peu atypique à l’heure de l’hégémonie du WYSIWYG, mais dont l’efficacité n’est plus à démontrer.

L’après-midi s’est ensuite ouverte par une présentation, par Frédéric Glorieux et Vincent Jolivet, de Diple, modules et méthodes pour l’édition en ligne de documents TEI. Diple fournit plusieurs outils pour qui voudrait se lancer dans l’édition en TEI : un module de conversion de fichiers Open document en fichiers XML TEI ; le schéma TEI utilisé par ELEC ; un module, XREM, de génération automatique de la documentation d’un fichier XML ; une libraire PHP permettant de générer le site de consultation…  Devant tant d’outils permettant virtuellement de faire une édition électronique de façon automatisée, une question récurrente et fondamentale a refait surface : Peut-on faire une édition en XML sans connaître les balises ? Si l’on ne peut proposer de réponse univoque à cette question, on notera toutefois que, si des développements permettent d’automatiser la partie la plus technique du travail d’édition en ligne, la responsabilité des choix scientifiques, y compris en ce qui concerne le balisage, et leur justification repose nécessairement sur l’éditeur.

La dernière partie de cette journée a enfin été consacrée à l’exploitation des éditions électroniques, avec en premier lieu une intervention de Dominique Stutzmann sur l’exploitation de l’information paléographique du matériau écrit. La démonstration s’est appuyée sur l’exemple des différentes formes du s et des variations dans le système abréviatif. Une analyse en composantes principales exceptionnellement claire a montré sur le plan factoriel envisagé une division de la population en deux groupes selon un critère chronologique (avant ou après 1169). L’intervenant a également renvoyé à un article de Nicolas Mazziotta dans Corpus relatif à ces questions d’encodage des abréviations du français médiéval1 et souligné à la fois la multiplicité des initiatives actuelles et l’importance de l’élaboration d’une norme d’encodage, nécessaire à la pérennité et l’interopérabilité.

Ce fut alors au tour de Frédéric Glorieux et Renaud Alexandre de présenter le projet OMNIA, Outils et méthodes numériques pour l’interrogation et l’analyse de textes médiolatins2, en mettant l’accent sur le besoin de numérisation et de mise en ligne des ressources lexicographiques existantes et l’utilisation des documents numérisés « pour mettre en place des procédures de recherche formalisées et largement assistées ». Pour satisfaire à ce dernier objectif, il est indispensable de recourir à des outils de lemmatisation, de génération de tables de cooccurrence et d’interrogation chronologique. Nous ne pouvons en effet que souligner l’importance de ces besoins, pas uniquement spécifiques au latin médiéval, mais valant également pour les langues romanes médiévales3.

Last but not least, la journée s’est conclue par une intervention de Francesco Stella sur des Expérimentations de statistique linguistique sur un genre littéraire : l’épître latine. S’il est impossible de résumer en détail ici cette communication particulièrement riche, on s’attardera sur un point très intéressant soulevé dans le débat : faut-il lemmatiser ? En effet, dans une certaine mesure, lemmatiser c’est détruire de l’information linguistique, comme il a été souligné avec un renvoi aux théories de Michel Banniard, bâties en bonne part sur l’observation des formes. On ne peut néanmoins s’empêcher de constater, en consultant de nombreuses études de statistiques textuelles, et particulièrement en regardant « en bas » des tableaux d’occurrences, que l’importance  de certains lemmes dont beaucoup de formes différentes sont employées (et je pense particulièrement aux verbes) est masquée par l’absence de lemmatisation. En attendant de consacrer un billet entier à cette question, je me contenterai de noter ici, avec D. Stutzmann, qu’il serait intéressant d’étudier ce qui se passe au moment de la lemmatisation, c’est-à-dire l’utilisation des cas et des genres propre à chaque lemme, et de conclure avec l’ensemble des participants qu’une étude sérieuse se doit d’envisager à la fois l’utilisation des formes brutes et des lemmes.

Au moment de conclure ce billet, je m’aperçois que cette journée d’études a déjà fait l’objet d’un fort intéressant compte rendu, que je vous invite à consulter également, sur le blog de Dominique Stutzmann.

  1. Nicolas Mazziotta, « Traiter les abréviations du français médiéval. Théorie de l’écriture et pratiques d’encodage », Corpus [En ligne], n°7 | novembre 2008, mis en ligne le 13 novembre 2009, Consulté le 18 décembre 2010. URL : http://corpus.revues.org/index1517.html []
  2. On trouvera une présentation générale de ce projet, datant de 2009, dans Bruno Bon, « OMNIA: outils et méthodes numériques pour l’interrogation et l’analyse des textes médiolatins (2) », Bulletin du centre d’études médiévales d’Auxerre | BUCEMA [En ligne], 14 | 2010, mis en ligne le 14 octobre 2010, Consulté le 18 décembre 2010. URL : http://cem.revues.org/index11566.html []
  3. La question des outils existants  de lemmatisation pour l’ancien français ou l’ancien occitan fera d’ailleurs ici même l’objet d’un billet détaillé. []

Jean-Baptiste Camps

Diplômé de l'École nationale des chartes et docteur en études médiévales de l'Université Paris-Sorbonne (la Chanson d'Otinel…, dir. Dominique Boutet ), Jean-Baptiste Camps est responsable pédagogique du master «Technologies numériques appliquées à l'histoire» à l'École nationale des chartes. [CV et liste des publications, voir : http://paris-sorbonne.academia.edu/JeanBaptisteCamps]

More Posts - Website

Follow Me:
LinkedIn