GenealogyBot

De Wikipast
Aller à la navigation Aller à la recherche

Le but de ce bot est de traiter les données généalogiques provenant du recensement lausannois de 1832.

Données traitées

Les données traitées par ce bot sont des données généalogiques issues du recensement de 1832 dans la ville de Lausanne. Le document original est accessible sur le site des archives de Lausanne [1]. C'est la transcription automatique par un OCR de ces données qui est utilisée [2]. Cela correspond à 3701 entrées sous le format d'un tableau Excel.

Résumé des fonctionnalités

Dans un premier temps, le bot doit traiter toutes les entrées pour en extraire le nom de tous les chefs de famille et de leurs enfants ainsi que leurs dates de naissances respectives. Ensuite, il doit créer sur Wikipast les pages et/ou les entrées correspondantes en respectant la bonne syntaxe.

Description technique

Extraction des données

Nous utilisons la librairie Pandas de Python qui nous permet d'extraire les données du recensement de 1832 de la ville de Lausanne depuis un fichier .xlsx, ce qui nous donne 3701 entrées.

Traitement des données

Chaque entrée représente un ménage. Nous conservons uniquement les données qui nous intéressent, c'est-à-dire:

- Le nom et prénom du chef de ménage
- L'année de naissance du chef de ménage
- Le nom et prénom de l'épouse du chef de ménage (s'il est marié)
- Les noms des enfants du couple
- Leur année de naissance

Ces données étant transcrites automatiquement par un OCR contiennent des erreurs. Nous avons fait le choix que dès que nous détectons la moindre erreur, nous jetons la ligne de donnée pour éviter tout faux positif.

Pour ce faire: nous avons à disposition un dictionnaire de noms et prénoms provenant de sources historiques croisées. Si une ligne de nos données ne correspondent pas aux entrées de ces dictionnaires, nous l'ignorons simplement.

Nous commençons par filtrer les noms et prénoms des parents. Nous nous assurons que l'année de naissance du chef de famille soit également cohérentes (nous retirons les dates avant 1730 et après 1832.)

Après ce premier passage, il nous reste 679 lignes de données sans erreurs apparentes.

Ensuite, nous traitons les enfants d'un couple au cas par cas afin de ne pas évincer toute la fratrie à cause d'une erreur provenant d'un seul enfant. Les critères restent les mêmes que pour les parents.

Parmi les 1217 enfants, seuls 433 n'ont aucune erreur et sont ainsi gardés.

Vérification d'existence

Nous vérifions si la page que nous voulons créer existe déjà. Si elle n'existe pas ou que seul notre bot a modifié cette page, nous considérons qu'elle n'existe pas.

En cas en conflit, nous ajoutons dans le titre de la page le suffixe " - Généalogie" pour palier à ce problème.

Création des entrées sur les pages

Discussion des performances

Performances techniques

Le temps d'exécution du bot est 2m30. Cela permet la création de X nouvelles pages et la modification de X pages.

Après avoir traité les données (enlever les veuves de ..., les dates invalides), on a traité X entrées.

Améliorations possibles

De futures améliorations de ce bot sont envisageables :

  • Exploitation de données issues du recensement et non traitées par le bot actuel :
- année de naissance de l'épouse
- métier chef de famille
- adresse
- toutes les informations sur les pensionnaires
- pour la source dans les datafications biographiques, renvoyer vers le bon numéro de page au lieu de renvoyer juste sur le sites des archives
  • Correction de certaines erreurs d'OCR:
- pour les dates : remettre les | de séparation aux endroits où les dates sont correctes mais qu'ils sont juste manquants
- pour les noms : corriger les noms à l'aide des dictionnaires de noms et prénoms

Code

L'entièreté du code est disponible sur GitHub. [3]