# Collation assistée par ordinateur de témoins de textes en ancien français

Jean-Baptiste Camps, Lucence Ing

<figure><img src="image_1.png" /></figure>

## To cite this version:

Jean-Baptiste Camps, Lucence Ing. Collation assistée par ordinateur de témoins de textes en ancien français. 2018. halshs-02023936

HAL Id: halshs-02023936

https://shs.hal.science/halshs-02023936v1

Preprint submitted on 18 Feb 2019

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
Collation assistée par ordinateur de témoins de textes en
ancien français : défis et perspectives nouvelles

Jean-Baptiste Camps Lucence Ing

Centre Jean-Mabillon
École nationale des chartes
Université Paris Sciences & Lettres
jbcamps@hotmail.com
lucence.ing@chartes.psl.eu

Anciens textes, nouveaux outils :
des corpus alignés aux éditions multiples
Colegio de España, 19 octobre 2018
Atelier « Romanités Numériques »
Laboratoire d'Études Romanes, Université Paris 8

<figure><img src="image_3.png" /></figure>
# Enjeux principaux

## Constats sur la collation

* une étape importante dans le processus éditorial, qui ouvre la porte à une variété d'analyses;

* un travail souvent long, complexe et fastidieux.

## Vers une collation assistée par ordinateur ?

Des algorithmes existent pour tenter d'automatiser ce processus, mais...

* inadaptés aux langues vernaculaires médiévales;

* efficacité décroît fortement quand la variation ou le nombre de témoins augmente.

## Approche

* Penser la collation comme étape d'une chaîne de traitement global;

* décomposer en unités de traitement plus aisées à accomplir.
# Outline

## ① Introduction

* La collation, pourquoi ? comment ?

* Difficultés particulières des textes romans médiévaux

## ② Visualiser l'alignement de deux versions avec une carte de chaleur

* Matrice des distances d'édition

* Élaboration de la carte de chaleur

* Cas

* Un outil suffisant ?

## ③ Structuration des données et collation automatique

* Premières étapes

* Collation automatique

* Exploitation avancée des variantes

## ④ Conclusion

<figure><img src="image_4.png" /></figure>
# La collation : pourquoi ?

## DÉFINITION

F. Duval, *Les Mots de l'édition de textes...*

Comparaison des leçons de deux témoins ou plus.

M. Buzzoni, C. Macé, *Parvum lexicon stemmatologicum*

[Collation] can be defined as the comparative examination of the witnesses in order to determine the variant readings in all witnesses.

Une phase importante de l'édition critique

① recensio des manuscrits;

② collatio du texte des différents témoins;

③ classement des manuscrits et établissement de leur généalogie, rendue par un stemma;

④ établissement du texte, et emendatio.

Faire de l'ordre dans la foule des variations que l'on observe dans les témoins.

<figure><img src="image_5.png" /></figure>
# La collation : processus

Au lieu variant v du texte

A : ...maint el cuer...

B : ...as iex...

D : ...es iex...

H : ...maint el cuer...

I : ...maint en cuer...

J : ... et maint en cuer...

O : ...as iex...

## Modélisation

DOB :

D : es | OB : as
iex

AHIJ :

AHI : Ø | J : et

maint

IJ : en | AH : el
cuer

## Entrée d'apparat (Richart de Fournival, Li Bestiaires..., éd. C. Segre)

maint en cuer] es (as OB) iex DOB
maint (et maint J) en (el AH) cuer coet.
# Comment ?

## Approche traditionnelle

1. choisir un témoin de référence (exemplaire de collation);

2. définir le type de variation que l'on veut retenir;

3. sur une grande feuille, noter, par rapport à l'ex. de référence, ce que l'on voit dans les autres témoins;

4. classer, éditer avec un apparat de variante, jeter la feuille...

## Approche computationnelle

1. faire l'acquisition du texte de tous les témoins (HTR, OCR, transcription...);

2. aligner et collationner avec l'aide d'un algorithme;

3. retranscrire les données dans un modèle et une implémentation donnée (ex., TEI);

4. poursuivre le processus éditorial, tout en conservant l'ensemble du processus de collation.
# Approche computationnelle

## Avantages

* transparence;

* reproductibilité;

* pas de perte de données;

* réutilisations.

## Inconvénients

* lourdeur;

* complexité;

* pas de perte de données;

* résultats encore en partie insatisfaisants.

<figure><img src="image_6.png" /></figure>
Tradizione attiva (Vàrvaro)

Chanson d'Otinel

B ke Guenes les traï od la salvage gent
A que li fel Guennes, le cuvers sodïant,
les i vendi, ce sevent li auquant,
cel jor meismes qu'il furent combatant.

Chrétien de Troyes, *Chev. au lion, v.* 38

H Que toz jorz durra li renons
P En tant qu’i nomment des boins les nons
V Que toz jors vivera lor nons
F Que tos jors mais durra ses nons
G Q’au mains touz jorz vivra ses nons
A Que tos jors mais dura ses nons
S Que tous jours mais dura ses nons
R C’al mains tous tans vivra ses nons
Variation graphique

<table><thead><tr><th>forme</th><th>occurr.</th><th>forme</th><th>occurr.</th></tr></thead><tbody><tr><td>cheval</td><td>785</td><td>ceuax</td><td>10</td></tr><tr><td>cheual</td><td>375</td><td>cevax</td><td>10</td></tr><tr><td>chevaus</td><td>248</td><td>ceuaus</td><td>9</td></tr><tr><td>ceval</td><td>98</td><td>chiuau</td><td>9</td></tr><tr><td>chevax</td><td>92</td><td>cheuaux</td><td>8</td></tr><tr><td>chevals</td><td>84</td><td>kevaus</td><td>6</td></tr><tr><td>ceual</td><td>66</td><td>chevau</td><td>5</td></tr><tr><td>cheuaus</td><td>65</td><td>cevaux</td><td>3</td></tr><tr><td>chival</td><td>34</td><td>chivals</td><td>3</td></tr><tr><td>chevaux</td><td>30</td><td>cheuas</td><td>2</td></tr><tr><td>chivaux</td><td>27</td><td>keval</td><td>2</td></tr><tr><td>cheuax</td><td>23</td><td>chaval</td><td>1</td></tr><tr><td>chiual</td><td>23</td><td>chavaux</td><td>1</td></tr><tr><td>cevaus</td><td>19</td><td>cheua</td><td>1</td></tr><tr><td>chevas</td><td>19</td><td>cheualx</td><td>1</td></tr><tr><td>cheuals</td><td>14</td><td>cheuau</td><td>1</td></tr><tr><td>cevals</td><td>12</td><td>chevalx</td><td>1</td></tr><tr><td>chiuaus</td><td>11</td><td>chiuals</td><td>1</td></tr></tbody></table>

Identique ou non ?

Cait del fuere

Chiet dou fuerre

Kiet du feurre

Évident pour le philologue... mais pour l'algorithme ?

<figure><img src="image_7.png" /></figure>
Les corpus

*Chanson d'Otinel* chanson de la fin du XIIe siècle; un témoin continental (Reg. lat. 1616; Saint-Brieuc, 1317; traits de l'Est); deux témoins anglo-normands (fragm. NAF 5094, XIIex-XIIIinc; ms. Bodmer 168, XIII3/3); nombreuses traductions médiévales (anglaises, galloise, norroises, italienne; traces d'une diffusion ibérique).

*Chevalier au lion* de Chrétien de Troyes, à partir des transcriptions alignées de Pierre Kunstmann et Kajsa Meyer. Plus de 13 témoins.

*Lancelot en prose* Deux témoins : Ao, daté du premier tiers du XIIIe siècle, et Ez, incunable imprimé en 1488, servant une étude sur la disparition lexicale en diachronie.

<figure><img src="image_8.png" /></figure>
# Outline

## 1 Introduction

* La collation, pourquoi ? comment ?

* Difficultés particulières des textes romans médiévaux

## 2 Visualiser l'alignement de deux versions avec une carte de chaleur

* Matrice des distances d'édition

* Élaboration de la carte de chaleur

* Cas

* Un outil suffisant ?

## 3 Structuration des données et collation automatique

* Premières étapes

* Collation automatique

* Exploitation avancée des variantes

## 4 Conclusion

<figure><img src="image_9.png" /></figure>
Matrice des distances de Levenshtein

<table><thead><tr><th>Tém. 1</th><th>Cant</th><th>a</th><th>este</th><th>lancelot</th><th>en</th><th>la</th><th>garde</th></tr></thead><tbody><tr><td>Or</td><td>4</td><td>2</td><td>4</td><td>8</td><td>2</td><td>2</td><td>4</td></tr><tr><td>dit</td><td>3</td><td>3</td><td>3</td><td>7</td><td>3</td><td>3</td><td>5</td></tr><tr><td>li</td><td>4</td><td>2</td><td>4</td><td>7</td><td>2</td><td>1</td><td>6</td></tr><tr><td>contes</td><td>4</td><td>6</td><td>4</td><td>6</td><td>5</td><td>6</td><td>5</td></tr><tr><td>que</td><td>4</td><td>3</td><td>3</td><td>7</td><td>3</td><td>3</td><td>4</td></tr><tr><td>tant</td><td>1</td><td>3</td><td>4</td><td>5</td><td>3</td><td>3</td><td>4</td></tr><tr><td>a</td><td>3</td><td>0</td><td>4</td><td>7</td><td>2</td><td>1</td><td>4</td></tr><tr><td>esté</td><td>4</td><td>4</td><td>1</td><td>7</td><td>3</td><td>4</td><td>5</td></tr><tr><td>Lanceloz</td><td>6</td><td>7</td><td>7</td><td>2</td><td>7</td><td>7</td><td>6</td></tr><tr><td>en</td><td>3</td><td>2</td><td>3</td><td>7</td><td>0</td><td>2</td><td>5</td></tr><tr><td>la</td><td>3</td><td>1</td><td>4</td><td>6</td><td>2</td><td>0</td><td>4</td></tr><tr><td>garde</td><td>4</td><td>4</td><td>4</td><td>6</td><td>5</td><td>4</td><td>0</td></tr></tbody></table>

<figure><img src="image_10.png" /></figure>
Image-texte dans ImageJ

<figure><img src="image_11.png" /></figure>

FIGURE – Carte de chaleur binarisée obtenue à partir des données de la matrice des distances entre les deux témoins

<figure><img src="image_12.png" /></figure>
# Carte de chaleur de la matrice après traitement

<figure><img src="image_13.png" /></figure>

FIGURE – Alignement de deux témoins du *Lancelot en prose*

<figure><img src="image_14.png" /></figure>
# La visualisation : intérêts et limites

* un outil intéressant :

* une **première approche** des données

* un **point de vue global** qui permet de dégager la structure textuelle qu'entretiennent des témoins

<figure><img src="image_15.png" /></figure>
# La visualisation : intérêts et limites

1. un outil intéressant :

* une première approche des données

* un point de vue global qui permet de dégager la structure textuelle qu'entretiennent des témoins

2. mais un outil insuffisant :

* seuls deux témoins peuvent être traités en même temps

* l'exploitation des données textuelles à partir de cette visualisation n'est pas possible

<figure><img src="image_16.png" /></figure>
# Outline

## 1 Introduction

* La collation, pourquoi ? comment ?

* Difficultés particulières des textes romans médiévaux

## 2 Visualiser l'alignement de deux versions avec une carte de chaleur

* Matrice des distances d'édition

* Élaboration de la carte de chaleur

* Cas

* Un outil suffisant ?

## 3 Structuration des données et collation automatique

* Premières étapes

* Collation automatique

* Exploitation avancée des variantes

## 4 Conclusion

<figure><img src="image_17.png" /></figure>
# La chaîne de traitement

<figure><img src="image_18.png" /></figure>

<figure><img src="image_19.png" /></figure>
# En amont de la collation...

## Étapes

* OCR/HTR (OCRopy, Kraken, Transkribus...);

* post-correction (PoCoTo; relecture);

* encodage selon le modèle TEI (script; manuellement);

* lemmatisation (Pandora, Lemming);

book/inc1-100/010040.bin.png
disait a monfeigneur gauuain et lui a eulx. et
droit a monfeigneur gauuain et lui a eulx, et

book/inc1-100/010041.bin.png
cuida que biefuy fiert ainfi mais non fiert. Luy
cuida que brehin fiert ainfi mais non fiert. Lun

book/inc1-100/010042.bin.png
des chesuiere fiert meffire gauuain et lefcu
des cheualiers fiert meffire gauuain en lefcu

book/inc1-100/010043.bin.png
fi fost que fa lance Dolle en pieco. Et meffire
fi fort que fa lance volle en pieces. Et meffire

book/inc1-100/010044.bin.png
gauuain lattait de telle force qu'il le porte a ter
gauuain lattait de telle force qu'il le porte a ter

## OCRopy

* réseaux récurrents LSTM;

* logique d'apprentissage : préparation des données, entraînement d'un modèle, application, correction...

**FIGURE** – Fichier html à éditer

<figure><img src="image_20.png" /></figure>
# Notre approche de la collation

Pour pallier aux difficultés posées aux algorithmes par les particularités des textes vernaculaires, notre approche se décompose comme suit :

* alignement 'macro', des paragraphes ou des vers entre les témoins;

* collation faite sur les lemmes (et non pas les formes);

* récupération de l'information sur les formes, et restructuration de la collation en fonction ;

* annotation des lieux variants.

<figure><img src="image_21.png" /></figure>
# Alignement 'macro'

## Situation actuelle

* pour l'instant, à la main ;

* nouvelle approche en test : utilisation d'un algorithme calculant des similarités entre passages, de type 'text reuse'.

## Un outil possible, **Iteal** (Jänicke and Wrisley 2017)

* chaque témoin, A, B divisé en unités de structures (lignes), $A_1, ..., A_n$ et $B_1, ..., B_n$,

* calcul de distance entre chaque couple possible $\{A_i, B_j\}$

* n-grams,

* continus ou non,

* approximatifs (Relative Edit Distance, $RED(A, B) = \frac{2 \times LevDist(A, B)}{|A| + |B|}$ (défaut : $RED \le 0,5$).

* rapprochement des vers qui dépassent le seuil fixé.
Premiers résultats avec Iteal

<figure><img src="image_22.png" /></figure>

interactive text
edition alignment

Data Source:

Lancelot

Edition 1:

AF_travail.txt

Edition 2:

MF_travail.txt

Align!

String Similarity: 70%

MinCoverage: 40%

NgramMin: 3

BrokeNgrams?

no

yes

Read Direction

(only display)

Cut Text

no

yes

(only display)

Lancelot

AF_travail.txt

MF_travail.txt

AF_travail.txt

Comment fait messire Yvains bias dol...

Sire fait il vallez ge ne serai mon...

Certs fait il mout volentiers

Messire Yvains s a vait au roi si il dit

Sire saires vallez vos mande par mo...

Ou ex vallel fait il rois

Sire fait il vallez qui arsoir vos f...

A ces paroles vint la reine parmi la...

Comment fait il rois si veuit ja estre ch.

Voire fait il demain au jour

Oez Gauvains fait li rois de nostre va...

Qu est fait la reine cil vallez

Qu dame fait messire Yvains c est tre...

Lors l corite comment il avoit esté

Comment fait la reine ersoir vint a co...

Voire dame fait messire Yvains car il...

MF_travail.txt

Messire yavin va au roy et lui dist

Sire votre varlet veult et vous prie...

Le quel varlet fait le roy

Vostre varlet de er seir qui veuit ja es...

Certs fait messire gauvain il a grant...

Comment fait le roy veuit ja estre c...

Oy sire fait il demain au jour

En verite fait le roy il sera

Qui est ce varlet fait la roine

Ou il est fait messire yavins C est le...

Lors lui compte comment il avoit est...

Comment fait la roine er seoir vint a...

Certs fait messire yavin il en a trop...

Je le verite volentiers fait la roine

Dame fait le roy vous le verze le mie...

Lors dist a messire yavin qu il voil...

<figure><img src="image_23.png" /></figure>
CollateX (Dekker et al., v. 2.2.)

<figure><img src="image_24.png" /><figcaption>FIGURE – Exemple de graphe issu de CollateX</figcaption></figure>

* outil de collation assistée par ordinateur;

* matrice en n-dimensions des textes;

* alignement des séquences identiques;

* cherche les 'diagonales' les plus longues possibles;

* modèle graphe (DAG).

Modèle de Göteborg :

* tokénisation

* alignement

* détection des transpositions

* visualisation

<figure><img src="image_25.png" /></figure>
# Traitement en Python avec CollateX

<figure><img src="image_26.png" /></figure>

## XML

```xml
<w lemma="il"
type="PROper|PERS.=3|NOMB.=s|GENRE=m|
|CAS=i" xml:id="w_A_002">lui</w>
```

## JSON

```json
{
    "t": "lui",
    "xml:id": "w_A_002",
    "lemma": "il",
    "POS": "PROper",
    "morph": "PERS.=3|NOMB.=s|GENRE=m|C
}
```

<figure><img src="image_27.png" /></figure>
# Sorties de Collatex

<table><caption>TABLE D'ALIGNMENT</caption><thead><tr><th>A</th><th>B</th></tr></thead><tbody><tr><td>a</td><td>a</td></tr><tr><td>si</td><td>si</td></tr><tr><td>preudome</td><td>preudomme</td></tr><tr><td>com</td><td>comme</td></tr><tr><td>vos</td><td>vous</td></tr><tr><td>iestes</td><td>estes</td></tr><tr><td>ne</td><td>-</td></tr><tr><td>doi</td><td>-</td></tr><tr><td>ge</td><td>je</td></tr><tr><td>-</td><td>ne</td></tr><tr><td>-</td><td>dois</td></tr><tr><td>pas</td><td>pas</td></tr><tr><td>mon</td><td>mon</td></tr><tr><td>non</td><td>nom</td></tr><tr><td>celer</td><td>celer</td></tr><tr><td>et</td><td>-</td></tr><tr><td>gel</td><td>-</td></tr><tr><td>vos</td><td>-</td></tr><tr><td>dirai</td><td>-</td></tr></tbody></table>

CollateX propose des sorties multiples :

Table d'alignement

Graphe de variantes

JSON

XML

XML/TEI

TEI

<app>

<rdg wit="#A #H #M #P #S #V">lui</rdg>

<rdg wit="#F">li</rdg>

<rdg wit="#G #R">soi</rdg>

</app>

<figure><img src="image_28.png" /></figure>
## Erreurs produites par l'alignement automatique

```xml
<app>
<rdg ana="MODE=con|PERS.=3|NOMB.=s" lemma="savoir" type="VERcjg" wit="#A"
      xml:id="Ao_w_008131">savroit</rdg>
<rdg ana="MODE=ind|TEMPS=fut|PERS.=3|NOMB.=s" lemma="savoir" type="VERcjg" wit="#B"
      xml:id="Ez_w_006332">saura</rdg>
</app>
```

```xml
<app>
<rdg ana="MORPH=empty" lemma="enseignier" type="VERinf" wit="#A"
      xml:id="Ao_w_008132">enseignier</rdg>
</app>
```

```xml
<app>
<rdg ana="DEGRE=c" lemma="mieus" type="ADVgen" wit="#A" xml:id="Ao_w_008133"
      miauz</rdg>
<rdg ana="DEGRE=c" lemma="mieus" type="ADVgen" wit="#B" xml:id="Ez_w_006333"
      mieux</rdg>
</app>
```

```xml
<app>
<rdg ana="MORPH=empty" lemma="de" type="PRE" wit="#A" xml:id="Ao_w_008134">de</rdg>
<rdg ana="MORPH=empty" lemma="enseignier" type="VERinf" wit="#B"
      xml:id="Ez_w_006334">enseignier</rdg>
</app>
```

```xml
<app>
<rdg ana="MORPH=empty" lemma="quel" type="CONsub" wit="#B" xml:id="Ez_w_006335"
      que</rdg>
</app>
```

<figure><img src="image_29.png" /></figure>
# Questions de modélisation

## Principes

* un lieu variant est la plus grande unité de co-variation d'un même type.

* dans l'annotation des variantes, distinguer ce qui caractérise la relation entre plusieurs variantes, ou la variante en elle-même;

* distinguer en outre ce qui concerne le type de variation, la cause et la source.

<figure><img src="image_30.png" /></figure>
# Typologie

## app/@type

1. même lemme, partie du discours & morph., forme différente : graphic diatopic, diachronic, ..., ex. *chivalier*/*chevalier*

2. même lemme & partie du discours, morph. différente : flexional verbal, nominal, ... ex. *chivalier*/*chivaliers*

3. même lemme, partie du discours différente : morphosyntactic substantivation, ... Ex. *mangier*/(li) *mangier(s)*

4. lemme différent : derivational prefix, suffix, ... ex. *creanter*/*acreanter*

synonymism synonyms, hypero-/hyponymes, cohyponymes, holo-/méronyme (paronymes?). Ex., *chivalier*/*baron*

semantic nonsense, equipollent, *difficilior*/*facilior*... Ex. *chivalier*/*charete*

<figure><img src="image_31.png" /></figure>
# De la sortie de CollateX à des documents enrichis

## Sortie CollateX

`<app>`

`<rdg wit="#A">venimeus</rdg>`

`<rdg wit="#F">venimeus</rdg>`

`<rdg wit="#P">enuious</rdg>`

`<rdg wit="#R">venimex</rdg>`

`<app>`

## SORTIE TRAITÉE (PROVISOIRE)

`<app type="substantive">`

`<rdg wit="#A #F #R" lemma="venimos" POS="NOMcom">`

`<app type="graphic">`

`<rdg wit="#A #F">venimeus</rdg>`

`<rdg wit="#R">venimex</rdg>`

`</app>`

`</rdg>`

`<rdg wit="#P" lemma="envíos" POS="VERppe" morph="NOMB. =p | GENRE=m | CAS=r">enuious</rdg>`

`</app>`

<figure><img src="image_32.png" /></figure>
# Exploitation des variantes

## Les textes après la collation

* annotés linguistiquement

* collationnés au mot près

* dont les variantes sont précisées

## Fin de la chaîne de traitement

* possibilités d'édition numérique

* études linguistiques

<figure><img src="image_33.png" /></figure>
## Outline

1. Introduction

* La collation, pourquoi? comment?

* Difficultés particulières des textes romans médiévaux

2. Visualiser l'alignement de deux versions avec une carte de chaleur

* Matrice des distances d'édition

* Élaboration de la carte de chaleur

* Cas

* Un outil suffisant?

3. Structuration des données et collation automatique

* Premières étapes

* Collation automatique

* Exploitation avancée des variantes

4. Conclusion

<figure><img src="image_34.png" /></figure>
# Pour finir...

## Bilan d'étape

* une chaîne de traitement encore à l'état de prototype ;

* qui devra être complétée pour diminuer la part d'intervention manuelle ;

* mais des résultats améliorés sur la collation.

## Remerciements

Un grand merci à Daniel Stockholm (EPHE | PSL) pour les cartes de chaleur.

<figure><img src="image_35.png" /></figure>
Pour finir...

Bilan d'étape

* une chaîne de traitement encore à l'état de prototype ;

* qui devra être complétée pour diminuer la part d'intervention manuelle ;

* mais des résultats améliorés sur la collation.

Remerciements

Un grand merci à Daniel Stockholm (EPHE | PSL) pour les cartes de chaleur.

Merci de votre attention !

<figure><img src="image_36.png" /></figure>