# Les catalogues et GROBID

Simon Gabay, Mohamed Khemakhem, Laurent Romary

► To cite this version:

Simon Gabay, Mohamed Khemakhem, Laurent Romary. Les catalogues et GROBID. Doctorat. Du catalogue aux humanités numériques: quelles méthodes pour quels résultats?, Paris, France. 2018. cel-01951107

HAL Id: cel-01951107

https://hal.science/cel-01951107v1

Submitted on 11 Dec 2018

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_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
Les catalogues et GROBID

Simon Gabay
Université de
Neuchâtel

Mohamed
Khemakhem
ALMAnaCH
Paris 7
Centre Marc Bloch

Laurent Romary
ALMAnaCH
Centre Marc Bloch
BBAW

15 novembre 2018

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

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

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

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

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

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

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

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

<figure><img src="image_10.png" /></figure>
L'encodage automatique de catalogues de vente en TEI avec
**GROBID dictionaries**

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

catalogues et
GROBID

Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller
GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

GROBID (dictionaries)

<figure><img src="image_12.png" /></figure>
## La famille GROBID

* Bibliographie:
http://cloud.science-miner.com/grobid

* NERD: http://cloud.science-miner.com/nerd

* Quantities:
http://cloud.science-miner.com/quantity

* le petit nouveau: Dictionaries

<figure><img src="image_13.png" /></figure>
## GROBID dictionaries

* Développé par Mohamed Khemakhem (Paris VI-CMB/Humboldt)

* Initialement prévu pour les ressources lexicales numérisées (dictionnaires, glossaires, lexiques...)

* Détourenement du système pour les sources *Encyclopedic-like*

* Annuaires, catalogues...

<figure><img src="image_14.png" /></figure>
# L'encodage TEI et GROBID dictionaries

<figure><img src="image_15.png" /></figure>
## La TEI de GROBID dictionaries

* Les options d'encodage sont limitées...

* ... et basée sur la TEI pour les ressources lexicographiques

* la structure des dictionnaires et des catalogues est cependant similaire: on peut exploiter cette ressemblance...

* ... ce qui entraîne une utilisation quelque peu «métaphorique» de la TEI

<figure><img src="image_16.png" /></figure>
**ABERDEEN** [*aberdin*'], v. d'Ecosse, ch.-l. de comté; port sur la mer du Nord; 170.000 h. Université.

**ABERDEEN** (G. H. Gordon, *comte d'*), homme d'Etat anglais, né à Edimbourg. Premier ministre en 1852, il conclut avec la France une alliance contre la Russie (1784-1860).

**ABER-VRACH**, fl. côtier du Finistère (Atlantique); 34 kil. Station marémotrice d'essai.

**ABGAR**, nom de huit rois d'Edesse, en Mésopotamie (132 av. J.-C.-216 apr.).

**ABIA**, roi de Juda, fils de Roboam, vainqueur de Jéroboam, roi d'Israël (957-955 av. J.-C.).

**ABIDJAN**, ch.-l. de la Côte-d'Ivoire (A.-O. F.), sur une vaste lagune navigable; 15.000 h.

**ABIMÉLECH** [*lèk*], fils de Gédéon. Il devint Juge d'Israël, après avoir fait égorger ses frères; il établit son pouvoir sur Sichem et fut tué au siège de Thèbes, en Palestine (vers 1100 av. J.-C.).

**ABIRON**, lévite qui fut englouti dans la terre avec Coré et Dathan, tous trois révoltés contre Moïse et Aaron (*Bible*).

Le *Petit Larousse* illustré

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

Intaller

GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

ABERDEEN (G. H. Gordon, comte d'), homme d'Etat anglais, né à Edimbourg. Premier ministre en 1852, il conclut avec la France une alliance contre la Russie (1784-1860).

1 ▼ <entry>
2 ▼ <form type="lemma">
3   <persName>ABERDEEN</persName>
4   <addName>(G. H. Gordon, comte d')</addName><pc>,</pc>
5   <desc>homme d'Etat anglais, né à Edimbourg</desc>
6   </form>
7   <pc>.</pc>
8 ▼ <sense>
9   <def>Premier ministre en 1852, il conclut avec la France une alliance contre la Russie (1784-1860)</def>
10
11   </sense>
12   <pc>.</pc>
13 </entry>

Le Petit Larousse illustré

<figure><img src="image_18.png" /></figure>
49 **Kouřakin** (le prince Alexis B.), frère du précédent, homme d'État russe. — Billet aut. sig., en français, à M. Monférand, 1 p. in-8. 2 »

50 **Labanoff** (le prince Alex.), célèbre général et écrivain russe, historien de Marie Stuart. — L. a. s., en français, 1835, 1 p. in-4. 3 »

51 **Ladislas IV**, roi de Pologne, célèbre par ses succès contre les Russes, époux de Marie de Gonzague. — L. sig., en latin, au cardinal de Montalte; Varsovie, 1645, 1 p. in-f. 8 »

52 **Lafayette**, illustre général. — L. a. sig. de ses initiales à M. Masclet; Washington, 13 août 1825, 1 p. 1/4 in-4. Un peu fatiguée. 15 »

Très-curieuse lettre sur le voyage qu'il fit en Amérique, de 1824 à 1825. « C'est avec de bien tendres regrets que je quitterai cette terre américaine, le bon, grand et heureux peuple des Etats-Unis auquel je suis amalgamé depuis près d'un demi-siècle, et qui vient encore de me combler de ses bontés. J'y ai vu les miracles de l'indépendance, de la liberté, égalité et self government; le problème des institutions républicaines a été résolu ici sur une grande échelle et jamais expérience n'a si bien réussi. » Il comptait retourner comme il était venu, sur un paquebot-poste, mais le peuple et le gouvernement en ont disposé autrement. On a donné le nom de Brandywine à une superbe frégate qui est chargée de le ramener en France.

Revue des autographes

<figure><img src="image_19.png" /></figure>
49 Kourakin (le prince Alexis B.), frère du précédent, homme d'Etat russe. — Billet aut. sig., en français, à M. Monférand, 1 p. in-8. 2 »

1 ▼ <entry>

2 ▼ <num>49</num>

3 ▼ <form type="lemma">

4 ▼ <surName>Kourakin</surName>

5 ▼ <addName>(le prince Alexis B.),</addName>

6 ▼ <desc> frère du précédent, homme d'Etat russe.</desc>

7 ▼ </form>

8 ▼ <sense>

9 ▼ <pc>-</pc>

10 ▼ <def>

11 ▼ <bibl>Billet auto sig., en français, à M. Monférand, 1 p, in-8.</bibl> <num type="price">2</num>

12 ▼ </def>

13 ▼ </sense>

14 ▼ </entry>

## Revue des autographes

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

catalogues et
GROBID

Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller
GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

Installer *GROBID dictionaries*

<figure><img src="image_21.png" /></figure>
Quelques remarques

► GROBID dicionaries utilise un container docker (qu'il faut télécharger)

► Cela permet de fournir simplement un espace de travail avec toutes les librairies, dépendances et outils nécessaires

► L'installation se fait via le terminal

Ligne de commande

$ docker pull medkhem/grobid-dictionaries

<figure><img src="image_22.png" /></figure>
## Téléchargement du container

```dockerfile
docker pull medkhem/grobid-dictionaries
Using default tag: latest
latest: Pulling from medkhem/grobid-dictionaries
bc9ab73e5b14: Pull complete
193a6306c92a: Pull complete
e5c3f8c317dc: Pull complete
a587a86c9dcb: Pull complete
a4c7ee7ef122: Pull complete
a7c0dad691e9: Pull complete
367a6a68b113: Pull complete
60c0e52d1ec2: Pull complete
c9d22bc43935: Pull complete
e3de5a273367: Pull complete
c8a45fcf02c1: Pull complete
a9cba52ae4f5: Pull complete
9a69063e63f8: Pull complete
7189b29e6a6d: Pull complete
e59d50656f46: Pull complete
de8d2eb6e42: Pull complete
Digest: sha256:e7b30f49637da3c8ce86462418e11e2667b35e728d8a8036ee640d34bbd23e16
Status: Downloaded newer image for medkhem/grobid-dictionaries:latest
```

<figure><img src="image_23.png" /></figure>
On lance docker

Ligne de commande

$ docker run -it medkhem/grobid-dictionaries bash

<figure><img src="image_24.png" /></figure>
# Données d'entraînement

## Principe d'entraînement

* le container doit être synchronisé avec un dossier *toydata* (disponible sur https://github.com/MedKhem/grobid-dictionaries)

* C'est dans ce dossier *toydata* que vont être placées les données d'entraînement

* On exécute la commande <fnref n="1" />

## Ligne de commande

```
$ docker run -v PATH_TO_YOUR_TOYDATA/toyData:/grobid/grobid-dictionaries/r -p 8080:8080 -it medkhem/grobid-dictionaries bash
```

<footnote n="1">¹Nous sommes sur mac, pour les commandes sous windows, cf. https://github.com/MedKhem/grobid-dictionaries</footnote>
Teaching GROBID dictionaries

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

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

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

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

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

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

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

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

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

<figure><img src="image_34.png" /></figure>
## Sous le capot

* Développé en Java

* Utilise des champs aléatoires conditionnels (*conditional random fields*), des modèles statistiques utilisés en reconnaissance des formes et plus généralement en apprentissage statistique

* Ces champs fonctionnent en cascade

* C'est donc du *machine learning*...

* ... et ça commence donc par du *machine teaching*

<figure><img src="image_35.png" /></figure>
Premier niveau d'entraînement

*Dictionary Segmentation*

<figure><img src="image_36.png" /></figure>
<figure><img src="image_37.png" /><figcaption>Dictionary Segmentation</figcaption></figure>

<figure><img src="image_38.png" /></figure>
L'objectif est de séparer le corps du texte du reste (title
courant, numéro de page...)

<figure><img src="image_39.png" /></figure>
On crée les données d'entraînement

## ligne de commande

```
$ java -jar
```

```
/grobid/grobid-dictionaries/target/grobid-dictionaries-0.4.3-SNAPSHOT.one.jar -dIn
```

```
resources/dataset/dictionary-segmentation/corpus/pdf/ -dOut resources -exe
```

```
createTrainingDictionarySegmentation
```

<figure><img src="image_40.png" /></figure>
Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller

GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

On annote

headnote -14 - headnote

1b 1b body 43 Foroade-Laroquette (Ad. de), ministre de Napoléon III. -

1b 1b L. a. s. à Stéphen de la Madeleine, 1840, 1 p. in-8. 2 50

1b 1b 44 Garcia (Eugénie), célèbre cantatrice italienne. -L. a. s. à

1b 1b Stéphen de la Madeleine. 1850, 3 p. in-8. 2 »

1b 1b 45 Gautier (Théop.), le célèbre critique. -L. a. s. à Stéphen de

1b 1b la Madeleine, 1850, 1 p. in-8. 2 50

1b 1b 46 Godefroy (Théodore), savant historien et généalogiste. -

1b 1b Huit. a. s. sur vélin, 1604, pet. in-4 oblong. 2 »

1b 1b 47 Hadick (le comte André), général hongrois au service de l'Au-

1b 1b triche, célèbre pas ses exploits dans la guerre de Sept ans. -

1b 1b L. s. à M. de Balsch, en français; Vienne, 9 janv. 1782, 2 p.

<figure><img src="image_41.png" /></figure>
On entraîne à partir des données annotées

## ligne de commande

```
$ mvn generate-resources -P train_dictionary_segmentation -e
```

<figure><img src="image_42.png" /></figure>
L'entraînement est lancé

<table><tr><td>[ 301 ] obj=133.17</td><td>act=332</td><td>err= 0.02%/42.86% time=0.21s/51.04s</td></tr><tr><td>[ 302 ] obj=133.17</td><td>act=341</td><td>err= 0.01%/14.29% time=0.21s/51.25s</td></tr><tr><td>[ 303 ] obj=133.17</td><td>act=332</td><td>err= 0.02%/42.86% time=0.21s/51.46s</td></tr><tr><td>[ 304 ] obj=133.17</td><td>act=341</td><td>err= 0.01%/14.29% time=0.21s/51.67s</td></tr><tr><td>[ 305 ] obj=133.16</td><td>act=332</td><td>err= 0.02%/42.86% time=0.21s/51.88s</td></tr><tr><td>[ 306 ] obj=133.16</td><td>act=340</td><td>err= 0.01%/14.29% time=0.21s/52.09s</td></tr><tr><td>[ 307 ] obj=133.16</td><td>act=333</td><td>err= 0.02%/42.86% time=0.21s/52.23s</td></tr><tr><td>[ 308 ] obj=133.16</td><td>act=336</td><td>err= 0.01%/14.29% time=0.21s/52.58s</td></tr><tr><td>[ 309 ] obj=133.15</td><td>act=333</td><td>err= 0.01%/28.57% time=0.21s/52.71s</td></tr><tr><td>[ 310 ] obj=133.15</td><td>act=333</td><td>err= 0.00%/ 0.00% time=0.21s/52.92s</td></tr><tr><td>[ 311 ] obj=133.15</td><td>act=330</td><td>err= 0.01%/28.57% time=0.21s/53.13s</td></tr><tr><td>[ 312 ] obj=133.15</td><td>act=318</td><td>err= 0.00%/ 0.00% time=0.21s/53.34s</td></tr><tr><td>[ 313 ] obj=133.14</td><td>act=318</td><td>err= 0.01%/14.29% time=0.21s/53.55s</td></tr><tr><td>[ 314 ] obj=133.14</td><td>act=318</td><td>err= 0.00%/ 0.00% time=0.21s/53.76s</td></tr><tr><td>[ 315 ] obj=133.14</td><td>act=319</td><td>err= 0.01%/14.29% time=0.21s/53.97s</td></tr><tr><td>[ 316 ] obj=133.14</td><td>act=329</td><td>err= 0.00%/ 0.00% time=0.21s/54.17s</td></tr><tr><td>[ 317 ] obj=133.13</td><td>act=318</td><td>err= 0.01%/14.29% time=0.21s/54.38s</td></tr><tr><td>[ 318 ] obj=133.13</td><td>act=317</td><td>err= 0.00%/ 0.00% time=0.21s/54.59s</td></tr><tr><td>[ 319 ] obj=133.13</td><td>act=318</td><td>err= 0.01%/28.57% time=0.14s/54.73s</td></tr><tr><td>[ 320 ] obj=133.12</td><td>act=326</td><td>err= 0.00%/ 0.00% time=0.14s/54.87s</td></tr><tr><td>[ 321 ] obj=133.12</td><td>act=317</td><td>err= 0.01%/14.29% time=0.14s/55.00s</td></tr><tr><td>[ 322 ] obj=133.12</td><td>act=325</td><td>err= 0.00%/ 0.00% time=0.14s/55.14s</td></tr><tr><td>[ 323 ] obj=133.12</td><td>act=326</td><td>err= 0.01%/14.29% time=0.15s/55.29s</td></tr><tr><td>[ 324 ] obj=133.12</td><td>act=324</td><td>err= 0.00%/ 0.00% time=0.14s/55.43s</td></tr><tr><td>[ 325 ] obj=133.11</td><td>act=325</td><td>err= 0.01%/14.29% time=0.14s/55.57s</td></tr><tr><td>[ 326 ] obj=133.11</td><td>act=325</td><td>err= 0.00%/ 0.00% time=0.15s/55.72s</td></tr><tr><td>[ 327 ] obj=133.11</td><td>act=326</td><td>err= 0.01%/28.57% time=0.14s/55.86s</td></tr><tr><td>[ 328 ] obj=133.10</td><td>act=326</td><td>err= 0.01%/28.57% time=0.22s/56.07s</td></tr><tr><td>[ 329 ] obj=133.10</td><td>act=324</td><td>err= 0.01%/28.57% time=0.14s/56.21s</td></tr><tr><td>[ 330 ] obj=133.10</td><td>act=326</td><td>err= 0.01%/14.29% time=0.15s/56.36s</td></tr><tr><td>[ 331 ] obj=133.10</td><td>act=326</td><td>err= 0.02%/42.86% time=0.15s/56.51s</td></tr><tr><td>[ 332 ] obj=133.10</td><td>act=335</td><td>err= 0.01%/14.29% time=0.14s/56.64s</td></tr></table>

<figure><img src="image_43.png" /></figure>
On contrôle la qualité de l'entraînement

```
label: 'entraînement', 'accuracy', 'body', 'segmentation', 'recall', 'f1'

  Lancer l'apprentissage
  <entry>                 100   100   100   100
  <pc>                    100   100   100   100

all: 'fields', 'ENTRY', 100, 100, 100, 100 (micro average)
                                   100   100   100   100 (macro average)
```

```
===== Field-level results =====

label: 'entraînement', 'accuracy', 'body', 'segmentation', 'recall', 'f1'

  Lancer l'apprentissage
  <entry>                 100   100   100   100
  <pc>                    100   100   100   100

all: 'fields', 'ENTRY', 100, 100, 100, 100 (micro average)
                                   100   100   100   100 (macro average)
```

```
label: 'entraînement', 'accuracy', 'body', 'segmentation', 'recall', 'f1'

  Lancer l'apprentissage
  <entry>                 100   100   100   100
  <pc>                    100   100   100   100

all: 'fields', 'ENTRY', 100, 100, 100, 100 (micro average)
                                   100   100   100   100 (macro average)
```

===== Instance-level results =====

```
Total expected instances: 2
Correct instances: 2
Instance-level recall: 100
```

<figure><img src="image_44.png" /></figure>
Deuxième niveau d'entraînement

*Body Segmentation*

<figure><img src="image_45.png" /></figure>
<figure><img src="image_46.png" /><figcaption>Body Segmentation</figcaption></figure>

<figure><img src="image_47.png" /></figure>
Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller
GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

L'objectif est de séparer les différentes entrées

1 ▼ <entry>
2     54
3     |
4     Lassalle
5     (A.-Ch.-L. de),
6     le plus brillant général de cavalerie des guerres de la République et de l'Empire, né à Metz, tué à la bataille de Wagram

7
8
9
10
11
12
13

L. a. s. au général Dugua; 1 p. in-f.
10 »

Superbe lettre sur la campagne d'Egypte. Il profite du départ du général Desaix pour lui donner des nouvelles. Desaix lui laisse le commandement de la colonne qui doit poursuivre Mourad-Bey, et qui se compose de 400 hommes de cavalerie, 4 pièces de canon et 160 dromadaires. Le général Boyer a, dans une petite affaire, tué 10 mameloucks et 40 arabes, etc.

14
15
</entry>

16

Body Segmentation

<figure><img src="image_48.png" /></figure>
On crée les données d'entraînement

## ligne de commande

```
$ java -jar
```

```
/grobid/grobid-dictionaries/target/grobid-dictionaries-0.4.3-SNAPSHOT.one.jar -dIn
```

```
resources/dataset/dictionary-segmentation/corpus/pdf/ -dOut resources -exe
```

```
createTrainingDictionaryBodySegmentation
```

<figure><img src="image_49.png" /></figure>
On anote

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

<figure><img src="image_51.png" /></figure>
On entraîne à partir des données annotées

## ligne de commande

```
$ mvn generate-resources -P train_dictionary_body_segmentation -e
```

Et on passe au modèle suivant

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

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

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

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

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

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

<figure><img src="image_58.png" /></figure>
Troisième niveau d'entraînement

*Lexical Entry*

<figure><img src="image_59.png" /></figure>
<figure><img src="image_60.png" /><figcaption>Lexical Entry</figcaption></figure>

<figure><img src="image_61.png" /></figure>
Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller

GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

L'objectif est de séparer les grandes articulations de chaque
entrée du catalogue

1 ▼ <entry>
2     <num>54</num>
3 □ <form type="lemma">
4         Lassalle
5         (A.-Ch.-L. de),
6         le plus brillant général de cavalerie des guerres de la République et de l'Empire, né à Metz, tué à la bataille de Wagram
7     </form>
8 □ <sense> .-
9
10         L. a. s. au général Dugua; 1 p. in-f.
11         10 »
12
13         Superbe lettre sur la campagne d'Egypte. Il profite du départ du général Desaix pour lui donner des nouvelles. Desaix lui laisse le commandement de la colonne qui doit poursuivre Mourad-Bey, et qui se compose de 400 hommes de cavalerie, 4 pièces de canon et 160 dromadaires. Le général Boyer a, dans une petite affaire, tué 10 mameloucks et 40 arabes, etc.
14     </sense>
15 </entry>

Lexical Entry

<figure><img src="image_62.png" /></figure>
On crée les données d'entraînement

## ligne de commande

```
$ java -jar
```

```
/grobid/grobid-dictionaries/target/grobid-dictionaries-0.4.3-SNAPSHOT.one.jar -dIn
```

```
resources/dataset/dictionary-segmentation/corpus/pdf/ -dOut resources -exe
```

```
createTrainingLexicalEntry
```

<figure><img src="image_63.png" /></figure>
GROBID

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

Encodeage
TEI

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

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

Intaller
GROBID

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

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

Machine
teaching

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

Visualiser le
résultat

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

Conclusion

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

<figure><img src="image_72.png" /></figure>
On entraîne à partir des données annotées

## ligne de commande

```
$ mvn generate-resources -P train logicalEntries -e
```

Et on passe au modèle suivant

<figure><img src="image_73.png" /></figure>
Quatrième niveau d'entraînement
Form

<figure><img src="image_74.png" /></figure>
<figure><img src="image_75.png" /><figcaption>Form</figcaption></figure>

<figure><img src="image_76.png" /></figure>
On va traiter séparement le niveau *Form* et le niveau *Sense*, l'un après l'autre

<figure><img src="image_77.png" /><figcaption>*Form*</figcaption></figure>

<figure><img src="image_78.png" /></figure>
L'objectif est de séparer les différentes informations dans
<form> (nom et informations biographiques)

1 ▼ <entry>
2 <num>54</num>
3 ▼ <form type="lemma">
4 <surname>Lassalle<//surname>
5 <addName>(A.-Ch.-L. de)</addName>,
6 <desc>le plus brillant général de cavalerie des guerres de la République et de l'Empire, né à Metz, tué à la bataille de Wagram</desc>
7 </form>
8 ▼ <sense> .-
9
10 L. a. s. au général Dugua; 1 p. in-f.
11 10 »
12
13 Superbe lettre sur la campagne d'Egypte. Il profite du départ du général Desaix pour lui donner des nouvelles. Desaix lui laisse le commandement de la colonne qui doit poursuivre Mourad-Bey, et qui se compose de 400 hommes de cavalerie, 4 pièces de canon et 160 dromadaires. Le général Boyer a, dans une petite affaire, tué 10 mameloucks et 40 arabes, etc.
14 </sense>
15 </entry>
16

Form

<figure><img src="image_79.png" /></figure>
On crée les données d'entraînement

## ligne de commande

```
$ java -jar
```

```
/grobid/grobid-dictionaries/target/grobid-dictionaries-0.4.3-SNAPSHOT.one.jar -dIn
```

```
resources/dataset/dictionary-segmentation/corpus/pdf/ -dOut resources -exe
```

```
createTrainingForm
```

<figure><img src="image_80.png" /></figure>
On annote

name Foroade-Laroquette (Ad. de <name>), desc ministre de Napoléon III desc

name Garcia (Eugénie <name>), desc célèbre cantatrice italienne desc

name Gautier (Théop. <name>), desc le célèbre critique <desc>

<figure><img src="image_81.png" /></figure>
On entraîne à partir des données annotées

## ligne de commande

```
$ mvn generate-resources -P train_form -e
```

Et on passe au modèle suivant

<figure><img src="image_82.png" /></figure>
Quatrième niveau d'entraînement *bis*
*Sense*

<figure><img src="image_83.png" /></figure>
<figure><img src="image_84.png" /></figure>

Sense

<figure><img src="image_85.png" /></figure>
L'objectif est de séparer la description du manuscrit (<def>)
des éventuelles notes additionnelles (<note>)

1 ▼ <entry>
2   <num>54</num>
3 ▼ <form type="lemma">
4   Lassalle
5   (A.-Ch.-L. de),
6   le plus brillant général de cavalerie des guerres de la République et de l'Empire, né à Metz, tué à la bataille de Wagram
7   </form>
8 ▼ <sense> .
9 ▼ <def>
10   L. a. s. au général Dugua; 1 p. in-f.
11   10 »
12   </def>
13   <note>Superbe lettre sur la campagne d'Egypte. Il profite du départ du général Desaix pour lui donner des nouvelles. Desaix lui laisse le commandement de la colonne qui doit poursuivre Mourad-Bey, et qui se compose de 400 hommes de cavalerie, 4 pièces de canon et 160 dromadaires. Le général Boyer a, dans une petite affaire, tué 10 mameloucks et 40 arabes, etc.</note>
14   </sense>
15 </entry>

Sense

<figure><img src="image_86.png" /></figure>
On crée les données d'entraînement

## ligne de commande

```
$ java -jar
```

```
/grobid/grobid-dictionaries/target/grobid-dictionaries-0.4.3-SNAPSHOT.one.jar -dIn
```

```
resources/dataset/dictionary-segmentation/corpus/pdf/ -dOut resources -exe
```

```
createTrainingSense
```

<figure><img src="image_87.png" /></figure>
GROBID

Encodeage
TEI

Intaller
GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

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

<figure><img src="image_89.png" /></figure>
On entraîne à partir des données annotées

## ligne de commande

```
$ mvn generate-resources -P train_sense -e
```

Et on passe au modèle suivant

<figure><img src="image_90.png" /></figure>
Cinquième niveau d'entraînement (à construire)

<figure><img src="image_91.png" /></figure>
<figure><img src="image_92.png" /><figcaption>Revue des autographes</figcaption></figure>

<figure><img src="image_93.png" /></figure>
Short Name
(U ABC)

GROBID

Encodeage
TEI

Intaller
GROBID

Machine
teaching

Visualiser le
résultat

Conclusion

1 ▼ <entry>
2   <num>54</num>
3 ▼ <form type="lemma">
4     <surname>Lassalle</surname>
5     <addName>(A.-Ch.-L. de)</addName>,
6     <desc>le plus brillant général de cavalerie des guerres de la République et de l'Empire, né à Metz, tué à la bataille de Wagram</desc>
7 </form>
8 ▼ <sense> -
9 ▼ <def>
10     <bibl>L. a. s. au général Dugua; 1 p. in-f.</bibl>
11     <num type="price">10</num>
12 </def>
13     <note>Superbe lettre sur la campagne d'Egypte. Il profite du départ du général Desaix pour lui donner des nouvelles. Desaix lui laisse le commandement de la colonne qui doit poursuivre Mourad-Bey, et qui se compose de 400 hommes de cavalerie, 4 pièces de canon et 160 dromadaires. Le général Boyer a, dans une petite affaire, tué 10 mameloucks et 40 arabes, etc.</note>
14 </sense>
15 </entry>
16

Grammatical group

<figure><img src="image_94.png" /></figure>
Une API permet d'utiliser *GROBID dictionaries* une fois qu'il a été entraîné

* Il faut exécuter le service

## ligne de commande

```
mvn -Dmaven.test.skip=true jetty:run-war
```

* Et aller à l'adresse http://localhost:8080/ sur son navigateur

<figure><img src="image_95.png" /></figure>
<figure><img src="image_96.png" /></figure>

<figure><img src="image_97.png" /></figure>
Conclusion

<figure><img src="image_98.png" /></figure>
## Quelques problèmes à résoudre

* Grobid s'appuie sur la mise-en-page (gras, italique, retour à la ligne...)

* Il s'appuie aussi sur le texte: point, virgule, cadratin...

* Cela signifie qu'il lui faut un bon système d'OCR, car la qualité de l'OCRisation du PDF est cruciale

* Mais quel OCR?

* En plus de la question de l'entrée des données se pose celle de la sortie. Étant donnée la simplicité du schéma, cette problème est le moins complexe

* Simplifier l'utilisation au moyen d'un *pipeline*?

<figure><img src="image_99.png" /></figure>
Nos données d'entraînement sont disponibles en ligne

* https://github.com/gabays/grobid

## Télécharger GROBID

* https://github.com/MedKhem/grobid-dictionaries

## Utiliser GROBID

* https://github.com/MedKhem/grobid-dictionaries/wiki/Docker_Instructions

* https://github.com/MedKhem/grobid-dictionaries/wiki/How-to-Annotate

<figure><img src="image_100.png" /></figure>
<figure><img src="image_101.png" /></figure>
# Bibliographie

## Bibliographie

* Mohamed Khemakhem, Luca Foppiano, Laurent Romary, "Automatic Extraction of TEI Structures in Digitized Lexical Resources using Conditional Random Fields", *electronic lexicography*, eLex 2017, Leiden (Netherlands), [https://hal.archives-ouvertes.fr/hal-01508868]

* Mohamed Khemakhem, Axel Herold, Laurent Romary, "Enhancing Usability for Automatically Structuring Digitised Dictionaries", GLOBALEX workshop at LREC 2018, Miyazaki (Japan) [https://hal.archives-ouvertes.fr/hal-01708137]

* Mohamed Khemakhem, Laurent Romary, Simon Gabay, Hervé Bohbot, Francesca Frontini, Giancarlo Luxardo, "Automatically Encoding Encyclopedic-like Resources in TEI", TEI 2018, Tokyo (Japan) [https://hal.inria.fr/hal-01819505]

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