BottinBot2

De Wikipast
Aller à la navigation Aller à la recherche

Présentation du bot

La fonction de ce bot est d'automatiser la création d'articles biographiques à partir de données extraites des anciens annuaires de la ville de Paris. La donnée primaire est un DataFrame dont les lignes sont les entrées des bottins, chaque entrée contient les informations suivantes:

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

Fonctionnement du bot

Traitements des données du bottin

Le but de cette partie est de créer un dictionnaire listant tout les entitées distinctes qui ont pu être extraites des bottins. On considère ici que deux entrées se réfèrent à la même personne si les variables :

name, job, street_clean

sont assez "similaires" ( la notion de similarité dans notre algorithme est explicité plus bas). Chaque entité est donc uniquement caractérisé par son nom, son métier et son adresse.

regroupement des entrées

Les


La similarité entre deux chaines de caractères est quantifié par un nombre allant de 0 (aucune resemblance) à 1 (parfaitement identique) dont la valeur est fixée par le fonction:

   def resemblance(s1, s2):
   
      dist = polyleven.levenshtein(s1, s2) #donne une 'distance'. (0: identique, 1: un caractere à changé, etc.)
       
      # ! -- sinon conduit à scores négatifs si divisé par plus petit.
      norm_dist = dist/max(len(s1),len(s2))  
      if ( (s1 in s2) or (s2 in s1) ):
         # Si détection d'une inclusion, alors on réduit artificiellement la distance.
         norm_dist = norm_dist/3 
   
      score = 1 - norm_dist
       
      return score


Ecriture des articles

à l'aide de la fonction entry2url, il est possible de déduire des variables directory,page et row une adresse URL menant à la page du bottin sur GALLICA, qui pourra servir de source