« BottinBot3 » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
(Ajout dans la section stratégie)
Ligne 12 : Ligne 12 :
Il se peut qu'une personne se retrouve d'années en années. Pour ce faire, nous comparons son nom, son travail et sa rue et s'il s'agit effectivement de la même personne, alors l'index de sa nouvelle apparition est ajoutée à la liste d'index.
Il se peut qu'une personne se retrouve d'années en années. Pour ce faire, nous comparons son nom, son travail et sa rue et s'il s'agit effectivement de la même personne, alors l'index de sa nouvelle apparition est ajoutée à la liste d'index.


Exemple d'une entrée du dictionnaire:
*Exemple d'une entrée du dictionnaire:
 
  {"Ollivier" : [[('café de la Redoute', 'Grenelle-SaintHonoré'), [47444]], [('limonadier', 'boulevard Beaumarchais'), [47447, 115747, 530253, 313487]], ... }
  {"Ollivier" : [[('café de la Redoute', 'Grenelle-SaintHonoré'), [47444]], [('limonadier', 'boulevard Beaumarchais'), [47447, 115747, 530253, 313487]], ... }


Ligne 20 : Ligne 19 :
Pour chaque année d'apparition d'une personne dans le dictionnaire, nous ajoutons une entrée de la forme suivante à sa page:  
Pour chaque année d'apparition d'une personne dans le dictionnaire, nous ajoutons une entrée de la forme suivante à sa page:  
  <nowiki>* [[year]] / [[Paris]], [[street_clean]] number. Mention de [[name]] avec la catégorie [[job]] </nowiki>
  <nowiki>* [[year]] / [[Paris]], [[street_clean]] number. Mention de [[name]] avec la catégorie [[job]] </nowiki>


== Stratégies ==
== Stratégies ==

Version du 18 mai 2020 à 10:25

Résumé des fonctionnalités

Ce bot a pour but d'insérer des données sur Wikipast issues de l'extraction de 4 Million d'adresses des anciens annuaires de la ville de Paris qui fut réalisée par l'équipe du DHLAB en 2019.

Notre BottinBot3 traite un sous-ensemble de ces données données groupe 3 correspondant aux années 1857 à 1864. Soit un total de 548704 entrées.

Description technique

Le bottin contient des entrées de la forme suivante:

directory, page, row, year, name, job, street, number, street_clean, street_only

Notre bot crée un dictionnaire et parcourt ces entrées dans l'ordre chronologique. Pour chaque personne, une entrée est créée contenant avec comme clé son nom, puis comme valeur une liste contenant un tuple avec son métier et sa rue, ainsi qu'une liste d'index pour retrouver la personne dans notre jeu de données. Si le nom de la personne existe déjà dans le dictionnaire, alors ses champs viennent être ajoutés à la clé correspondante.

Il se peut qu'une personne se retrouve d'années en années. Pour ce faire, nous comparons son nom, son travail et sa rue et s'il s'agit effectivement de la même personne, alors l'index de sa nouvelle apparition est ajoutée à la liste d'index.

  • Exemple d'une entrée du dictionnaire:
{"Ollivier" : [[('café de la Redoute', 'Grenelle-SaintHonoré'), [47444]], [('limonadier', 'boulevard Beaumarchais'), [47447, 115747, 530253, 313487]], ... }

Puis nous insérons les données sur Wikipast.\n

Pour chaque année d'apparition d'une personne dans le dictionnaire, nous ajoutons une entrée de la forme suivante à sa page:

* [[year]] / [[Paris]], [[street_clean]] number. Mention de [[name]] avec la catégorie [[job]] 

Stratégies

Dans le but de donner le plus de sens possible aux données, il a fallut mettre au point des stratégies afin de regrouper les mêmes personnes ensemble ainsi que corriger les erreurs d'extraction.

Nous basons nos comparaisons sur les entrées de la première année (soit 1857).

Comparaison entre deux personnes

Lorsqu'une entrée du bottin est lue , nous comparons si son nom est contenu dans le dictionnaire. Deux issues sont possibles:

  • Le nom n'existe pas dans le dictionnaire: alors une nouvelle entrée est ajoutée au dictionnaire comme décrit précédemment.
  • Le nom est dans le dictionnaire: alors la personne est comparée à toutes les personnes ayant le même nom. S'il existe une entrée avec le même nom, le même métier et la même rue, nous considérons que ces deux personnes sont les mêmes. Ce faisant l'index où elle a été trouvée vient être ajouté à la liste d'index. Si aucune des personnes ne lui ressemble assez, alors nous considérons qu'il s'agit d'une nouvelle personne.

Nous utilisons une fonction de comparaison entre les différents champs pour compenser les erreurs d'extraction. Typiquement 'passage Choiseul' et 'passage Choiseal' sont considéré assez proche pour être semblable. Nous laissons aussi la possibilité pour une personne de changer de métier, ou (exclusif) de rue d'habitation.

Cas d'homonymie (lors de l'ajout de la page)

Lors de cas d'homonymie, nous suivons la stratégie suivante: Si la page existe déjà, nous tentons d'ajouter de plus en plus d'informations (dans l'ordre suivant : nom, métier, rue) jusqu'à que la page devienne unique. Si malgré cela nous n'arrivons pas à ajouter la page, nous abandonnons cette entrée.


Il est à souligner que nous tentons jamais de corriger les erreurs d'extraction.

Évaluation des performances