BottinBot4

De Wikipast
Aller à la navigation Aller à la recherche

Résumé des fonctionnalités

Le bot prend comme entrée des données dans le format csv. Chaque ligne du fichier d'entrée contient le nom, le métier et l'adresse d'une personne, ainsi que l'année à laquelle l'information a été collectée. D'autres méta-données de moindre importance sont aussi présentes. Le nom des colonnes du fichier sont les suivants:

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

L'idée principale du fonctionnement du bot est d'identifier toutes les lignes correspondant à une personne distincte, extraire celles-ci et créer ou modifier une page wikipast à partir de ces données. Une fois les données extraite, chaque ligne du fichier d'entrée devrait en théorie correspondre à une entrée dans la section Biographie de la page correspondante. Les données fournies s'étalant sur un intervalle de 10 ans, le bot devrait donc avoir la capacité de générer jusqu'à 10 entrées par personne. Pour qu'un tel regroupement soit possible, il faut cependant avoir la certitude que les entrées regroupées dans un même article correspondent à la même personne. Plusieurs astuces permettent d'arriver à un résultat relativement fiable.

Regroupement des entrées d'une même personne

La stratégie utilisée pour regrouper les lignes du fichier d'entrée faisant référence à la même personne est une des principales difficultés. La technique utilisée dans la version finale du bot est simplement de regrouper les lignes dont le nom, l'adresse et le métier sont identiques. Il aurait été également possible d'utiliser un critère moins conservateur et de regrouper uniquement par nom et adresse. Il semble en effet peu probable que deux personnes avec le même nom et la même adresse soient en réalité une personne différente.

Cependant, il a été décidé de garder un critère plus strict pour plusieurs raisons. Premièrement, il est difficile de distinguer deux personnes d'une même famille sans utiliser le critère du métier. Comme les membres d'une même famille partagent le même nom de famille et souvent la même adresse, le critère du métier est dans beaucoup de cas le seul critère permettant de départager ces personnes. Deuxièmement, il paraît probable que deux personnes avec le même nom de famille habitent dans le même immeuble, même si ces personnes n'ont pas de lien de parenté. Si des données complètes sur les prénoms étaient disponibles dans tous les cas, il serait probablement possible d'exploiter cette information pour obtenir plus de précision.

L'exemple suivant, tiré des données de l'annuaire, illustre la problématique du critère du nom et de l'adresse.

* 1874.01.01 / Paris, Rivoli, 68. Mention de Mazzucchi avec la catégorie diamants pour vitriers. 
* 1874.01.01 / Paris, Rivoli, 68. Mention de Mazzucchi avec la catégorie marrons en gros.

Les deux lignes datant de la même années, on peut conclure avec certitude que ces deux lignes correspondent à des personnes différentes, même si l'adresse et le nom de famille sont identiques. On peut faire l'hypothèse qu'un lien de parenté unit ces deux individus.

Désambiguïsation

Lors de l'écriture de notre bot, nous avions fais en sorte que celui-ci soit capable de "merge" les informations contenues dans notre partie du bottin avec celles des autres groupes, afin de ne pas créer de pages supplémentaires pour la même entité. Lorsque nous faisions de tels tests avec nos propres pages,tout fonctionnait très bien.

Le problème qui s'est posé à nous vient du fait que le format choisi par chaque groupe est différent. Nous avons donc essayé d'extraire la sémantique des entrées, notamment en considérant les hypermots. Cette méthode s'est malheureusement soldée par un échec et nous n'avons pas réussi à merge proprement les pages existantes avec les notre, sauf cas très précis. Nous avons finalement pris le parti de créer des pages au titre le plus simple possible. Par exemple, pour un nom peu commun comme Marion-Carème, pour laquelle il n'existe pas de pages, nous avons créé une page ne contenant que son nom. En revanche, pour une entité telle que Lemestre, il était nécessaire d'ajouter le métier de la personne (car une page Lemestre existait déjà)

Dans certains cas, le bot tente d'ajouter des entrées pour une personne alors qu'un article existe déjà pour une personne avec le même nom. Afin d'éviter les confusions, il est nécessaire d'ajouter des informations dans le titre. Le bot tente de créer un titre avec le moins d'informations possibles. Par exemple, si le bot créé un article pour Marion-Carème, le titre ne contient que le nom car aucune autre page avec le même nom existe. Par contre, si le bot créé un article pour Lemestre, un nom relativement commun, il est nécessaire d'ajouter le métier de la personne entre parenthèses. L'ajout d'entrées dans un article existant ne peut se faire que si tous les champs correspondent (même nom, même adresse, même métier).

Analyse critique et améliorations envisagées

Le bot est malheureusement peu efficace pour combattre les erreurs d'OCR ou les variations dans le format des données. Une stratégie initialement envisagée était de constituer des ensembles de métiers voisins afin d'être capable de regrouper les entrées selon des critères moins stricts. Pour créer ces ensembles, une approche possible aurait été d'identifier les entrées pouvant être regroupées avec certitude en utilisant uniquement les autres critères (nom, adresse). Pour chacune de ces personnes, on obtiendrait un ensemble des différents métiers listés sur les entrées successives. Cet ensemble pourrait ainsi être réutilisé pour identifier d'autres personnes avec ce critère. Ainsi, si une personne passe de notaire à notaire honoraire, on peut en déduire que d'autres personnes pourraient connaître une évolution similaire. Cependant, comme expliqué plus haut, il est difficile d'identifier les entrées qui se rapportent à une même personne sans utiliser le critère du métier. Pour cette raison, il est difficile d'appliquer cette stratégie en pratique.

Une autre solution envisagée était de faire recours à une source externe (par exemple Wikipédia) pour identifier les métiers similaires. Cependant, le format du métier dans les données d'entrée n'est pas toujours très cohérent. Par exemple, l'activité "vins" est souvent mentionnée dans le fichier d'entrée. Comme il ne s'agit pas d'un métier à proprement parler mais plutôt d'un secteur d'activité, il devient vite difficile d'exploiter cette information.

Code du bot

Le code du bot est disponible à l'adresse [1]