Le scandale du stemma contaminé. Note sur l’usage des cardiogrammes en philologie.

Galerie

Cette galerie contient 2 photos.

 Lorsqu’il s’intéresse à une tradition textuelle, le philologue peut parfois rester perplexe. En effet, la situation rêvée dans laquelle un texte serait transmis de génération en génération, sinon à l’identique, du moins de manière linéaire (A recopie sur B, qui … Lire la suite

Comment buvait-on chez Al Capone? Observer l’inobservable 2

Galerie

Cette galerie contient 2 photos.

Observer l’inobservable : tel était l’ambitieux agenda de notre précédent billet. Aux incrédules qui refuseraient d’imaginer qu’une telle magie puisse opérer, nous proposons une petite démonstration de ce tour de passe-passe. Le défi que l’on se propose ici n’est pas si … Lire la suite

TEI, LaTeX et les éditions critiques sur papier : I. Les différents packages

Galerie

Cette galerie contient 3 photos.

En matière d’édition critique électronique, la norme qui semble aujourd’hui s’imposer suppose l’emploi du XML TEI. Mais, pour la version papier de cette même édition — on peut après tout souhaiter disposer également d’une version papier, ne serait-ce que parce que … Lire la suite

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 «Humanités numériques» à l’École nationale des chartes (PSL).
[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 «Humanités numériques» à l’École nationale des chartes (PSL).
[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 «Humanités numériques» à l’École nationale des chartes (PSL).
[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 «Humanités numériques» à l’École nationale des chartes (PSL).
[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