# Le projet AGODA. Annoter et publier les débats parlementaires français de la fin du XIX e siècle: défis et solutions

Nicolas Bourgeois, Fanny Lebreton, Aurélien Pellet, Marie Puren, Pierre Vernus

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

## ► To cite this version:

Nicolas Bourgeois, Fanny Lebreton, Aurélien Pellet, Marie Puren, Pierre Vernus. Le projet AGODA. Annoter et publier les débats parlementaires français de la fin du XIX e siècle: défis et solutions. Présentation des projets AGODA et Gallicorpora, Bibliothèque nationale de France, Jun 2022, Paris, France. hal-03762957

HAL Id: hal-03762957

https://hal.science/hal-03762957v1

Submitted on 29 Aug 2022

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
# LE PROJET AGODA

## Annoter et publier les débats parlementaires français de la fin du XIXe siècle : défis et solutions

Nicolas Bourgeois<fnref n="1" />, Fanny Lebreton², Aurélien Pellet<fnref n="1" />, Marie Puren<fnref n="1" /> ³, Pierre Vernus⁴ ⁵

17 juin 2022 - Présentation des projets AGODA et Gallicorpora, Bibliothèque nationale de France (Paris)

<footnote n="1">¹MNSHS, Epitech ²Ecole nationale des chartes ³CJM, Ecole nationale des chartes ⁴LARHRA ⁵Université Lyon 2</footnote>
# PRÉSENTATION DU PROJET
* AGODA : Analyse sémantique et Graphes relationnels pour l'Ouverture et l'étude des Débats à l'Assemblée nationale

* Collaboration entre Epitech (MNSHS), l'Université Lumière Lyon 2 (LARHRA) et Inria (ALMAnaCH)
<figure><img src="image_3.png" /><figcaption>Figure – Séance parlementaire du 14 novembre 1889</figcaption></figure>

• Débats à la Chambre des députés (chambre basse du parlement) transcrits en détail dans le *Journal officiel de la République française*. *Débats parlementaires* (1881-1940)

• Disponible en ligne via Gallica (bibliothèque numérique de la Bibliothèque nationale de France)

• Difficile de travailler sur ce corpus, pourtant intéressant pour diverses disciplines (histoire, sociologie, science politique, linguistique)
- Donner plus facilement accès aux retranscriptions anciennes des débats parlementaires

- Faciliter la recherche dans ce corpus

- Permettre la constitution de sous-corpus

- Offrir de nouveaux modes de visualisation des documents
* Créer une plateforme de consultation

* Produire des données textuelles structurées et sémantiquement enrichies à partir de ces débats numérisés

* Contribuer à la conception d'un workflow adapté à la préparation, à la publication et à l'analyse de gros corpus de documents historiques
Traitement d'une sous-partie du corpus : législature 1889-1893 soit
10418 images à traiter

• Renouvellement partiel du personnel politique (boulangisme et scandale de Panama)

• Premières manifestations du Ralliement des catholiques à la République

• Tournant de la politique douanière (lois Méline)

• Essor du socialisme et du syndicalisme (Fourmies)

• Premiers attentats anarchistes
<figure><img src="image_4.png" /></figure>
OCÉRISER LES DÉBATS
* Récupération des textes océrisés via API Document de Gallica => qualité inégale de l'OCR

* Erreurs dues à :

* qualité du document : tâches et surimpression

* la courbure de la page au niveau de la reliure

<figure><img src="image_5.png" /><figcaption>Figure - Evaluation de la qualité de l'OCR fourni par Gallica</figcaption></figure>
<figure><img src="image_6.png" /><figcaption>Figure - 20
octobre
1890
(p.1718)</figcaption></figure>

pour les appliqués à son grid ? Anseur.

non. Si d'ailleurs l'administration (g, trouver, un pis aller, un texte 1011 en priseur faible stat, vous-d-elle dire le texte financier à imposer u devance de 25 centimes par hectar, personnes qui prennent des permis Pour recherche de guises autres à tESI ténoriso contesté de l'Awa ? Si ce les

n'est pas en sa possession, nous croyons le suppose, comment sa fait-d'qu'il(W)js) 20 centimes aux uns, elle impose 20 cet times aux autres ? » . Voilà la question. 4

« Est-ce une incohérence de sa te ou bien a-t-elle agi en vert d'un v'assemblé locale, souveraine en Ob liquid ? de taxe ? Je vous dirai tout de toute l'an soverénence d'ancome d'obliéant ?!PV ce
gère, et qui me porte à penser à un dessous de cartes. Mais devrais-t-il gagner tout de rechercher le c'P' et de la dire tout entre quand je Payer travaide. »

Economiser bien cœurs, messieurs. L'élh bien, messieurs, je vous dirai de bonnemant que si cette redevance 7 centimes a été imposée, c'est qu'ensu s, retirer aux petites bourses le faciht" une concession de l'Awa, c'est opl's a (g)hjy

<caption>Figure - Résultat de l'OCR</caption>

Décision de ré-océriser le corpus
1. Segmentation incorrecte

2. OCR moins performant

3. Texte très courbé et même coupé : peu lisible par un être humain, encore moins lisible par une machine

4. Annotation automatique en XML-TEI plus difficile car liée à la segmentation

5. Texte trop fautif : impossible à publier tel quel en ligne

6. Influence négative des erreurs de l'OCR sur la performance des analyses TAL (NER, topic modeling, word embedding) (cf. Assessing the Impact of OCR Quality on Downstream NLP Tasks)
# QUELLES SOLUTIONS ?
Améliorer la qualité de l'image avec une méthode de "dewarping" =>
résultats peu probants

* Gérer la courbure des pages avec le dewarping ?

* Utiliser des outils plus avancés ?

<figure><img src="image_7.png" /><figcaption>(a) Image d'origine</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>(b) Image "dewarpée"</figcaption></figure>

Figure – Dewarping : pas adapté à nos documents
<figure><img src="image_9.png" /><figcaption>Figure – Démonstration de l’outil SODUCO sur une page de débat</figcaption></figure>
* Redresser la courbure => redresser le texte tout entier et peut recourber les parties du texte non courbées.

* Solution envisagée : redresser uniquement la partie de l'image concernée (colonne en bord de reliure)
Quand le texte n'est pas lisible par l'humain et donc par la machine :

<figure><img src="image_10.png" /><figcaption>Figure – Mots coupés par la forte courbure</figcaption></figure>

* Utiliser un modèle de langue pour « prédire » le ou les mot(s) manquants

* Modèle de langue pour le français CamemBERT

* Mais entraîné sur du français (trop ?) contemporain

* Peut-être nécessaire de réentraîner sur du français de l'époque (utiliser la vérité de terrain, des corpus de presse corrigé...)
Deux problèmes récurrents :

* Mots coupés à cause de la courbure

* Mots océrisés mais apparaissant dans le désordre : conséquence de la mauvaise segmentation due à la courbure de la page

Utiliser une IA pour « restaurer » le texte, comme le fait Ithaca de Deep Mind (cf. *Restoring and attributing ancient texts using deep neural networks*)
DES solutions

Meilleure approche = combiner plusieurs approches
OCÉRISER ET POST-CORRIGER
Dans le cadre du financement, le traitement de l'image est impossible.

Décision de travailler d'abord sur les numéros les moins affectées :

- Océriser ces documents en priorité

- Corriger les textes extraits (cf. post-correction)

Utiliser le taux d'erreur dans l'OCR pour repérer les documents les plus problématiques
comparer les performances des moteurs OCR offerts par Huma-Num
(Sharedocs):

• Tesseract (ocr-tesseract ou pytesseract)

• ABBYY FineReader

<figure><img src="image_11.png" /><figcaption>(a) Image d'origine</figcaption></figure>

<caption>(b) OCR</caption>

Figure – Zoom sur un bloc de texte + OCR (tesseract)
LES SOLUTIONS À NOTRE DISPOSITION

<figure><img src="image_12.png" /><figcaption>(a) Image d'origine</figcaption></figure>

<figure><img src="image_13.png" /><figcaption>(b) OCR</figcaption></figure>

Figure – Zoom sur un bloc de texte + OCR (ABBYY)
Outil basé sur le moteur d'OCR **PERO OCR** : très efficace sur les textes historiques

Développé dans le cadre de l'ANR SODUCO

<figure><img src="image_14.png" /><figcaption>Figure - Outil LRDE (EPITA)</figcaption></figure>
<figure><img src="image_15.png" /><figcaption>(a) OCR</figcaption></figure>

<figure><img src="image_16.png" /><figcaption>(b) NER</figcaption></figure>

Figure – Zones d'OCR et de NER
```json
"box": {
  827.0018264183805,
  2374.55023584846,
  589.3638270234404,
  207.0097959944105
},
"checked": true,
"comment": "puiz",
"id": 352,
"par_nlm": "xpmom, francis Laur</PEH>, Je n'ai pas l'intention\u202b'd'apporter \u00e0 la Chambre d'autr\u202b de",
"origin": "computer",
"parent": 274,
"person": [ "IM, francis Laur", ],
"text_cocr": [ "IM, francis Laur, Je n'ai pas l'intention\nd'apporter \u00e0 la Chambre d'autres documents\nque ceux qui me sont fournis par la lettre\nnde d'u00e0mission de M. Levu00e0que, adre2nu00e0 \u00e0\nM, le ministre des finances. Je demanderai\n\u00e0 la Chambre si elle connna\n\u00e0et cette lettre ou\nsmi elle veut que j'en donne lecture. ",
  "type": "exavr"
},
"activities": [],
"addresses": [],
```

Figure – Sortie Json (extrait)
2 Groupes de métriques :

* Méthodes non-supervisées : Dictionnaire...

* Méthodes supervisées

* Bag Of Words : hérite de métrique classique, des limites

* Distance de Levenshtein

**Distance de Levenshtein** : Nombre minimal d'insertion, délétions et substitutions sur charactères seuls pour transformer un texte en un autre. Selon les implémentations, les espaces peuvent être pris en compte ou ignorés

<table><caption>**Table** – Exemples de distances de Levenshtein</caption><thead><tr><th>OCR (string|token)</th><th>Ground Truth | Dict</th><th>LEV<sub>1,1,1</sub></th></tr></thead><tbody><tr><td>« des ates sont accomplis »</td><td>« Des actes sont accomplis »</td><td>3</td></tr><tr><td>« tensor »</td><td>[tenseur, trois, cube]</td><td>2</td></tr></tbody></table>
$$ \text{CharacterErrorRate}(\text{CER}) = \frac{\text{Lev}(\text{text}_{\text{gt}}, \text{text}_{0\text{cr}})}{\text{len}(\text{text}_{\text{gt}})} $$

$$ \text{CharacterAccuracy} = \max(0, 1 - \text{CER}) $$

<table><caption>Table - Calcul de l'Accuracy</caption><thead><tr><td>OCR</td><td>Ground Truth</td><td>LEV</td><td>CharacterAccuracy</td></tr></thead><tbody><tr><td>« des ates sont accomplis »</td><td>« Des actes sont accomplis »</td><td>3</td><td>0.88</td></tr><tr><td>« as aboue so below »</td><td>« as above so below »</td><td>3</td><td>0.82</td></tr></tbody></table>
# EXEMPLE DE RÉSULTATS

<table><thead><tr><td>OCR</td><td>Document</td><td>CharAccuracy</td></tr></thead><tbody><tr><td>ocr-tesseract (eng,psm3)</td><td>26 Novembre 1889</td><td>0.93</td></tr><tr><td>ocr-tesseract (fr,psm3)</td><td>26 Novembre 1889</td><td>0.95</td></tr><tr><td>ABBYY</td><td>26 Novembre 1889</td><td>0.22</td></tr></tbody></table>

Table – Résultats sur un de nos document

On remarque la limite de la distance de Lenvenshtein, elle est trop sensible à l'odre de détection.
Une métrique moins sensible à l'ordre de détection du texte :

1. Sépare les deux textes en sacs de lignes (GT + OCR)

2. Ordonne les lignes de la GT de la plus longue à la plus petite

3. Pour la première ligne, chercher le meilleur match dans les lignes de l'OCR

4. Si match complet on sort la ligne

Sinon on sous-divise et on rajoute à la pile de lignes

5. On recommence l'étape précédente

6. On compte le nombre de modifications nécessaires pour les lignes qu'on ne peut pas matcher

7. Calcul de l'accuracy
# MÉTRIQUE : FLEXIBLE CHARACTER ACCURACY

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

(a) Ground Truth

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

(b) OCR

Figure - Exemple A

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

(a) Ground Truth

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

(b) OCR

Figure - Exemple B

<table><thead><tr><td>Exemple</td><td>CharAccuracy</td><td>FlexCharAccuracy</td></tr></thead><tbody><tr><td>A</td><td>0.45</td><td>1</td></tr><tr><td>B</td><td>0.39</td><td>0.95</td></tr></tbody></table>

Table - Character Accuracy vs Flexible Character Accuracy
# EXEMPLE DE RÉSULTATS

<table><caption>Table - Résultats sur un de nos documents</caption><thead><tr><td>OCR</td><td>Document</td><td>CharAccuracy</td><td>FlexCharAccuracy</td></tr></thead><tbody><tr><td>ocr-tesseract (fr,psm3)</td><td>26 Novembre 1889</td><td>0.95</td><td>0.95</td></tr><tr><td>ABBY</td><td>26 Novembre 1889</td><td>0.22</td><td>0.97</td></tr></tbody></table>

- La flexible character accuracy est moins sensible à l'ordre de détection

- Résultats sensiblement équivalents quand l'ordre est le bon

- Comparaison de la qualité de détection des caractères toutes choses égales par ailleurs

- Utile si on n'utilise des algorithmes qui ne s'occupent pas de l'ordre des mots (Clustering via frequency matrix, topic modelling : LDA...)
- Dictionnaire de post-correction

- Utilisation d'expressions régulières : gérer les espaces multiples, passage à la ligne, les « - »

- Corrections endogènes

- Modèle de langue CamemBERT pour corriger les mots fautifs (cf. ci-dessus)
ANNOTER LES DÉBATS EN XML-TEI
Encodage pensé selon 4 principes :

- Les différentes exploitations des textes

- Les particularités de la source

- Les projets similaires : ParlaClarin et ParlaMint

- Le processus de balisage automatique

Principes permettant d'orienter, de déterminer, d'influencer, et de contraindre nos choix.
<figure><img src="image_21.png" /><figcaption>Figure – Source numérisée – Séance parlementaire du 26 novembre 1889 (extrait)</figcaption></figure>
```html
<lb/><u who=#'pers_ID' xml:id='CR_1889-11-26_u5' ana=#'speaker'>
<seg xml:id='CR_1889-11-26_u5.1'>
<persName ref=#'pers_ID'>M. Paul Déroulède</persName>. Mes amis et moi
<lb/>avons applaudi à ce que nous avons cru, à /
<lb/>ce que nous croyons encore être la forma-
<lb/>tion spontanée d'une majorité de con-
<lb/>science, de justice, de tolérance et d'union.
<lb/><incident=#<desc>(Applaudissements sur quelques bancs à l'ex-
<-- Pas de lb possible dans incident --> trémité gauche de La salle. - Exclamations
<-- Pas de lb possible dans incident --> au centre et à gauche.)</desc></incident>
</seg>
</u>
```

```html
<lb/><u who=#'pers_ID' xml:id='CR_1889-11-26_u6' ana=#'speaker'>
<seg xml:id='CR_1889-11-26_u6.1'>
<persName ref=#'pers_ID'>Gustave Rivet</persName>. La tolérance pour
<lb/>toutes Les ignominies qui ont été commises
<lb/>Pendant la période électorale.
</seg>
</u>
```

### (a) Modèle d'encodage 1 : logique, sémantique et formel

```html
<lb/><u who=#'pers_ID' xml:id='CR_1889-11-26_u5' ana=#'speaker'>
<seg xml:id='CR_1889-11-26_u5.1'>persName ref=#'pers_ID'>M. Paul Déroulède</persName>. Mes amis et moi
avons applaudi à ce que nous avons cru, à ce que nous croyons encore être la formation spontanée d'une majorité de
conscience, de justice, de tolérance et d'union. <incident=#<desc>(Applaudissements sur quelques bancs à l'extrémité
gauche de la salle. - Exclamations au centre et à gauche.)</desc></incident>
</seg>
```

```html
<lb/><u who=#'pers_ID' xml:id='CR_1889-11-26_u6' ana=#'speaker'>
<seg xml:id='CR_1889-11-26_u6.1'>persName ref=#'pers_ID'>Gustave Rivet</persName>. La tolérance pour
toutes les ignominies qui ont été commises pendant la période électorale.</seg>
</u>
```

### (b) Modèle d'encodage 2 : logique et sémantique

<caption>Figure - Encodages - Séance parlementaire du 26 novembre 1889 (extrait)</caption>
PROBLÉMATIQUE : CONSERVER LA MISE EN PAGE ? - 3

```html
<div type="part" corrige="rappelations">
    <head>SUITE de LA VERIFICATION DES POUVOIRS</head>
    <u>uhon</u> "pers_ID" id="CB_1889-11-26_u23" name="chair">
        <p>appelle ref="pers_ID" president/roleName=\"persName\". L'ordre du jour</p>
        <p>appelle la suite de la verification des pouvoirs.</p>
        <p> election non contestée. /&seg;</p>
        <p> u uhon "pers_ID" id="CB_1889-11-26_u24" ana="rapporteur"> </p>
        <p> Lecture d'un rapport. /&seg;</p>
        <p> <code> </code> </p>
        <p> seg uon id="CB_1889-11-26_u24.1" persName ref="pers_ID" M. Reybert, <roleName>ref="pers_ID" rapporteur/roleName=\"persName\". </p>
        <p> <roleName>ref="pers_ID"</roleName> /&seg;</p>
        <p> placeName "fisi_ID" Departement de la Correze, arrondissement de Tulle, <num>lre</num> /circoncription/ placelame. /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.2" eee "les elections du 26 novembre 1889-09-22 septembre/date: ont donne les resultats suivants /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.3" Electeurs inscrits. <num>17.950</num>, dont le quart est de <num>4.263</num>, /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.4" Nombre des votants. <num>12.322</num> /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.5" Bullieting blancs et nuls, a deduire. <num>133</num> /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.6" Suffrages exprimes. <num>12.189</num> /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.7" ont obtenu M. <p> persName ref="pers_ID" Borie/roleName ref="pers_ID" depute sortant/roleName=\"persName\"... <num>7.508</num> /&seg;</p>
        <p> <num>4.748</num> /&seg;</p>
        <p> seg uon id="CB_1889-11-26_u24.8" persName ref="pers_ID" Vachal, <roleName>ref="pers_ID" ancien depute/roleName=\"persName\". </p>
        <p> <roleName>ref="pers_ID"</roleName> /&seg;</p>
        <p> <roleName>ref="pers_ID" Borie/roleName ref="pers_ID" a ete proclase depute comme ayant reuni un nombre de voix </p>
        <p> <code> </code> </p>
        <p> <u> floatingText "body":div=pb <num>176</num> /&seg;</u> /&seg;</p>
        <p> <u> floatingText "[...]</u> ... </p>
        <p> /&seg></p>
    </div>
```

(a) Modèle d'encodage 3 : solution médiane

Figure – Encodage – Séance parlementaire du 26 novembre 1889 (extrait)
```xml
<telcorp xmlns="http://www.tei-c.org/mu.1.0" xmlns:FR="FR\_R_S\_1889-11-26" xmlns:fr">
  <ns1>Nonformes du corpus (non développés) ...</ns1>
  <tei-header>
    <text>Titulaire</text>
    <text>Titulaire</text>
    <text>Publication(s)</text>
    <text>Publications</text>
    <text>Sources</text>
    <text>Marcations</text>
  </tei-header>
  <ns2>Lies et informations contextuelles ...</ns2>
  <ns3>Personnes</ns3>
  <listPerson>
    <listorp>org</listorp>
    <listorp>place</listorp>
    <listorp>image</listorp>
  </listPerson>
  <text>Shipment du composant correspondant à la shippance du 26 novembre 1889 ...</text>
  <ns4>Titulaire</ns4>
  <text>Shipment des autres composants du corpus de façon identique ...</text>
  <ns5>... ...</ns5>
  <teiCorp>
```

## (a) Structure générale d'un fichier corpus

```xml
<TEI xmlns="http://www.tei-c.org/mu.1.0" xmlns:FR="FR\_R_S\_1889-11-26" xmlns:lang="fr">
  <ns1>Nonformes du composant (non développés) ...</ns1>
  <tei-header>
    <text>Titulaire</text>
    <text>Titulaire</text>
    <text>Publication(s)</text>
    <text>Publications</text>
    <text>Sources</text>
    <text>Marcations</text>
  </tei-header>
  <ns2>Lies et informations contextuelles ...</ns2>
  <ns3>Personnes</ns3>
  <listPerson>
    <listorp>org</listorp>
    <listorp>place</listorp>
    <listorp>image</listorp>
  </listPerson>
  <text>Shipment du composant correspondant à la shippance du 26 novembre 1889 ...</text>
  <ns4>Titulaire</ns4>
  <text>Shipment des autres composants du corpus de façon identique ...</text>
  <ns5>... ...</ns5>
  <teiCorp>
```

## (b) Structure générale d'un fichier composant

Figure - Encodages - Structure générale des fichiers corpus et composant
```
▼ 19:
  activities: []
  addresses: []
▼ box:
  0: 220.12998972250773
  1: 282.12998972250773
  2: 561.852718750449
  3: 89.4418437486525
  checked: true
  comment: "seg"
  id: 276
▼ name_xnl:
  "DEPM.M. Borie/PERM= a wACT=dajb fait partie des Assemblées\u20291legislatives et satisfait aux conditions dn/ACT="\"ACT=dgeku\u20291et de nationalité\"/ACT= exigées par la loi.\u20291L'opération de la 2e circumscription de"
  origin: "computer"
  parent: 261
▼ persons:
  0: "H. Borie"
▼ text_crcr:
  "H. Borie a déjà fait partie des Assemblées\nlegislatives et satisfait aux conditions d'Agrenet de nationalité exigées par la loi."
  type: "ENTRY"
```

Données textuelles au format JSON

<figure><img src="image_22.png" /></figure>
* Publication avec TEI Publisher : outil de publication de corpus en TEI

* Basé sur la technologie Web Components : permet de développer de nouvelles fonctionnalités

* Développer de nouveaux modes de visualisation : par exemple, explorer les débats en fonction des sujets qu'ils évoquent, et pas seulement par des mots-clés
VERS LES LINKED DATA
VERS LES LINKED DATA

<figure><img src="image_23.png" /><figcaption>Figure - Linked data</figcaption></figure>
TOPIC MODELING ET WORD EMBEDDING
<table><thead><tr><th>Topic 8</th><th>Topic 11</th><th>Topic 15</th></tr></thead><tbody><tr><td>salaire</td><td>général</td><td>pari</td></tr><tr><td>question</td><td>commission</td><td>télégraphe</td></tr><tr><td>gouvernement</td><td>régiment</td><td>faire</td></tr><tr><td>jour</td><td>troupe</td><td>ingénieur</td></tr><tr><td>patron</td><td>monsieur</td><td>train</td></tr><tr><td>chambre</td><td>année</td><td>ligne</td></tr><tr><td>droit</td><td>jeune</td><td>chambre</td></tr><tr><td>syndicat</td><td>temps</td><td>personnel</td></tr><tr><td>délégué</td><td>faire</td><td>etat</td></tr><tr><td>monsieur</td><td>corps</td><td>administration</td></tr><tr><td>travail</td><td>soldat</td><td>employé</td></tr><tr><td>travaux</td><td>ministre</td><td>poste</td></tr><tr><td>ministre</td><td>homme</td><td>public</td></tr><tr><td>grève</td><td>loi</td><td>travaux</td></tr><tr><td>faire</td><td>an</td><td>service</td></tr><tr><td>mineur</td><td>guerre</td><td>agent</td></tr><tr><td>mine</td><td>service</td><td>ministre</td></tr><tr><td>loi</td><td>militaire</td><td>fer</td></tr><tr><td>compagnie</td><td>officier</td><td>chemin</td></tr><tr><td>ouvrier</td><td>armée</td><td>compagnie</td></tr></tbody></table>

(a) 3 sujets parmi 40 : classe ouvrière (8), armée (11) et infrastructures (15)

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

(b) Evolution de quatre sujets au cours du temps

Figure – Résultats de la modélisation de sujets
<figure><img src="image_25.png" /><figcaption>(a) Projection t-SNE des centroïdes des vecteurs (word2vec)</figcaption></figure>

<table><thead><tr><th>Cluster 55</th><th>Cluster 68</th><th>Cluster 70</th></tr></thead><tbody><tr><td>victimes</td><td>divorce</td><td>enveloppes</td></tr><tr><td>inondations</td><td>epoux</td><td>timbres</td></tr><tr><td>secourir</td><td>marriage</td><td>poste</td></tr><tr><td>eprouvances</td><td>conjugale</td><td>postale</td></tr><tr><td>orages</td><td>divorce</td><td>timbre</td></tr><tr><td>sinistres</td><td>adulte</td><td>recepisses</td></tr><tr><td>grele</td><td>conjugale</td><td>postes</td></tr><tr><td>secours</td><td>remarier</td><td>postaux</td></tr><tr><td>venir</td><td>separation</td><td>telegraphes</td></tr><tr><td>infortunes</td><td>indissolubile</td><td>colis</td></tr><tr><td>navages</td><td>conjoints</td><td>fixe</td></tr><tr><td>misères</td><td>mutil</td><td>recouvrements</td></tr><tr><td>catastrophe</td><td>separations</td><td>graphes</td></tr><tr><td>evenements</td><td>mari</td><td>postales</td></tr><tr><td>repartition</td><td>marriage</td><td>taxe</td></tr><tr><td>incendies</td><td>femme</td><td>decide</td></tr><tr><td>soulager</td><td>conjoint</td><td>soit</td></tr></tbody></table>

(b) 3 clusters parmi les 113 obtenus avec top2vec : tempêtes (55), divorce (68) et poste (70)

<caption>Figure - Résultats obtenus avec word2vec et top2vec</caption>
* Nicolas Bourgeois, Aurélien Pellet, Marie Puren. "Using Topic Generation Model to explore the French Parliamentary Debates during the early Third Republic (1881-1899)". (hal-03526254v2)

* Marie Puren, Nicolas Bourgeois, Aurélien Pellet, Pierre Vernus, Fanny Lebreton. "Between History and Natural Language Processing : Study, Enrichment and Online Publication of French Parliamentary Debates of the Early Third Republic (1881-1899)". ParlaCLARIN III at LREC2022 - Workshop on Creating, Enriching and Using Parliamentary Corpora, Jun 2022, Marseille, France. (hal-03623351)
<figure><img src="image_26.png" /></figure>

Nicolas Bourgeois: nicolas.bourgeois@epitech.eu

Fanny Lebreton: fanny.lebreton@chartes.psl.eu

Aurélien Pellet: aurelien.pellet@epitech.eu

Marie Puren: marie.puren@epitech.eu

Pierre Vernus: pierre.vernus@msh-lse.fr

Répertoire Github du projet: https://github.com/mpuren/agoda