« BottinBot6 » : différence entre les versions
| Ligne 49 : | Ligne 49 : | ||
* Essayer d’enlever certaines erreurs d’OCR en utilisant la distance entre les entrées. Si par exemple on a deux entrées qui possèdent le même nom, la même adresse (rue + numéro), mais que le métier diffère seulement d’une lettre entre les deux entrées, on peut raisonnablement penser qu’il s’agit d’une erreur d’OCR. Il est alors plus logique de décider que l’entrée qui possède le plus de fréquence d’apparition correspond à la vraie, et celle qui n’apparait qu’une fois est une erreur d’OCR. Pour illustrer cet exemple, nous vous proposons l’exemple de « Pitt et Scott ». Cette idée permettrait de passer de 10 entrées à 13, en acceptant aussi « Seribe » au lieu de « Scribe », « Pitt et Seott » au lieu de Pitt et Scott », ou encore « agence marilime » à la place d’ « agence maritime ». | * Essayer d’enlever certaines erreurs d’OCR en utilisant la distance entre les entrées. Si par exemple on a deux entrées qui possèdent le même nom, la même adresse (rue + numéro), mais que le métier diffère seulement d’une lettre entre les deux entrées, on peut raisonnablement penser qu’il s’agit d’une erreur d’OCR. Il est alors plus logique de décider que l’entrée qui possède le plus de fréquence d’apparition correspond à la vraie, et celle qui n’apparait qu’une fois est une erreur d’OCR. Pour illustrer cet exemple, nous vous proposons l’exemple de « Pitt et Scott ». Cette idée permettrait de passer de 10 entrées à 13, en acceptant aussi « Seribe » au lieu de « Scribe », « Pitt et Seott » au lieu de Pitt et Scott », ou encore « agence marilime » à la place d’ « agence maritime ». | ||
[[Fichier:Pitt & Scott (13).PNG| | [[Fichier:Pitt & Scott (13).PNG|800px]] | ||
Version du 16 mai 2020 à 14:50
Introduction
Le bot BottinBot6 a pour but d'extraire, à partir des données provenant des anciens annuaires de Paris, des entrées data-biographiques respectant le format de Wikipast. Le but est de créer une page pour chaque personne différente qui a pu vivre à Paris. Cette page doit rassembler des informations du Bottin comme l’année, le travail ou encore l’adresse qui correspondent à cette même personne. Pour permettre cela, nous disposons du fichier données groupe 6, provenant de l’extraction de l’équipe du DHLAB :
Di Lenardo, I., Barman, R., Descombes, A., Kaplan F. (2019). Repopulating Paris: massive extraction of 4 Million addresses from city directories between 1839 and 1922, Digital Humanities conference DH2019, Utrecht, Pays-Bas, https://dev.clariah.nl/files/dh2019/boa/0878.html.
Pour donner un ordre d’idée, nos données contiennent 869 824 entrées, dont 228 108 noms uniques, 63 795 métiers uniques, 41 640 rues uniques. Nous disposons d’entrées correspondantes aux années : 1888 (101 782), 1890 (98 413), 1893 (101 588), 1894 (104 941), 1896 (111 475), 1897 (113 710), 1898 (117 566), 1900 (120 349).
Résumé des fonctionnalités
Notre bot va accepter des entrées regroupés dans un fichier .csv du type :
directory,page,row,year,name,job,street,number,street_clean,street_only
L’idée est de transformer ces entrées, pour qu’elles correspondent à une ligne de databiographie. Le Bottin pouvant correspondre à une personne physique ou morale (entreprise), il était nécessaire pour nous de trouver une phrase qui pourrait correspondre aux deux. Nous avons choisi de rester plutôt proche du Bottin et d’adapter ce type d’entrées :
[year] / Paris. [name], [job], exerce son activité au [number_clean] [street_clean] ([url]).
Cette entrée est ensuite transformée pour correspondre au code source de Wikipast :
* [[year]] / [[Paris]]. [[name], [[job]], exerce son activité au [[number_clean]] [[street_clean]]. [url]
Nous avons tenté de nettoyer quelque peu les données, en utilisant des fonctions déjà à notre disposition, permettant par exemple de ne garder que le numéro (et éventuellement bis) pour number_clean.
Nous avons donc regroupé les entrées qui correspondent à une même personne, selon le critère assez sélectif suivant : même nom, même métier, même adresse (rue + numéro). Pour chaque personne correspondante à notre critère, nous disposons donc d’une liste des entrées databiographiques à insérer dans Wikipast. Il ne nous semblait malheureusement pas possible de savoir si une personne a changé de travail ou d’adresse, et dans le doute nous avons préféré créer une nouvelle page.
Les personnes qui possèdent le même nom dans nos entrées, mais qui ne satisfont pas notre critère sont déclarés comme homonymes. Nous allons donc ajouter entre parenthèses leur métier et leur adresse dans le nom de leur page, ce qui permet de les distinguer et de disposer de noms de pages uniques. Pour aller un peu plus loin, nous avons créé un tableau rassemblant pour chaque nom qui apparait plusieurs fois, la liste des noms de pages correspondantes (du type nom (métier, adresse). Cette DataFrame devant nous permettre de créer facilement ce que nous appelons des pages d’Homonymies.
Pour n’importer sur Wikipast seulement les données qui nous semblent correct, nous avons décidé de n’importer que les personnes qui disposent au moins de deux entrées.
Discussion critique des performances
Sur les XXX pages que nous avons souhaité créer, nous avons pu en créer XXX, modifié XXX. XXX n’ont pas pu être ajoutés à cause de problèmes de réseaux. Nous avons finalement pu contribuer à Wikipast en ajoutant plus de XXX entrées.
Exemples de résultats
Observons ici comment va être transformée la première ligne que nous possédons :
Fichier .csv
bpt6k9684013b,378,1,1896,Aaron,march. de chevaux,r. Bouret,39,rue Bouret,Bouret
Entrée générée
- 1896 / Paris. Aaron, march. de chevaux, exerce son activité au 39 rue Bouret. [1]
Regroupement des entrées correspondant à une même personne :
Nom final de la page :
Aaron (march. de chevaux, 39 rue Bouret)
Liste des entrées correspondantes:
- 1896 / Paris. Aaron, march. de chevaux, exerce son activité au 39 rue Bouret. [2]
- 1897 / Paris. Aaron, march. de chevaux, exerce son activité au 39 rue Bouret. [3]
- 1898 / Paris. Aaron, march. de chevaux, exerce son activité au 39 rue Bouret. [4]
- 1900 / Paris. Aaron, march. de chevaux, exerce son activité au 39 rue Bouret. [5]
Listes des homonymes
- Aaron (chaussures, 4 Aubry-le-Boucher)
- Aaron (commissionn. en marchandises, 60 boulevard Haussmann)
- Aaron (march. de chevaux, 39 Bouret)
- Aaron (march. de chevaux, 39 rue Bouret)
- Aaron (march. à la toilette, 20 Juifs)
- Aaron (march. à la toilette, 83 bis boulevard RichardLenoir)
Idées d’améliorations
- Mieux gérer la collaboration avec les autres bots : avant de rajouter les informations à la fin d’une page, vérifier si cette page correspond bien à la même personne : présence de la ville de Paris, même métier, même adresse, années plausibles (avec un intervalle comme +/- 50 ans).
- Essayer d’enlever certaines erreurs d’OCR en utilisant la distance entre les entrées. Si par exemple on a deux entrées qui possèdent le même nom, la même adresse (rue + numéro), mais que le métier diffère seulement d’une lettre entre les deux entrées, on peut raisonnablement penser qu’il s’agit d’une erreur d’OCR. Il est alors plus logique de décider que l’entrée qui possède le plus de fréquence d’apparition correspond à la vraie, et celle qui n’apparait qu’une fois est une erreur d’OCR. Pour illustrer cet exemple, nous vous proposons l’exemple de « Pitt et Scott ». Cette idée permettrait de passer de 10 entrées à 13, en acceptant aussi « Seribe » au lieu de « Scribe », « Pitt et Seott » au lieu de Pitt et Scott », ou encore « agence marilime » à la place d’ « agence maritime ».