BottinBot2
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.)
# ! -- 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