« BottinBot2 » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 7 : Ligne 7 :
Le but de cette partie est de créer un dictionnaire listant tout les entitées distinctes qui ont pu être extraites des bottins. Ici on considère que deux entrées ce réfère à la même personne si les variables ''name'', ''job'' et ''street_clean'' sont considérés comme étant similaires. 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:
Le but de cette partie est de créer un dictionnaire listant tout les entitées distinctes qui ont pu être extraites des bottins. Ici on considère que deux entrées ce réfère à la même personne si les variables ''name'', ''job'' et ''street_clean'' sont considérés comme étant similaires. 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:
<code>
<code>
def resemblance(s1, s2):
    def resemblance(s1, s2):
      
      
     dist = polyleven.levenshtein(s1, s2) #donne une 'distance'. (0: identique, 1: un caractere à changer, etc.)
     dist = polyleven.levenshtein(s1, s2) #donne une 'distance'. (0: identique, 1: un caractere à changer, etc.)

Version du 18 mai 2020 à 21:30

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. Ici on considère que deux entrées ce réfère à la même personne si les variables name, job et street_clean sont considérés comme étant similaires. 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 à changer, etc.)
       
   norm_dist = dist/max(len(s1),len(s2))  # ! -- sinon conduit à scores négatifs si divisé par plus petit.
   
   if ( (s1 in s2) or (s2 in s1) ):
       norm_dist = norm_dist/3 # Si détection d'une inclusion, alors on réduit artificiellement la distance.
   
   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