EliteBot

De Wikipast
Aller à la navigation Aller à la recherche

Ce bot a comme but d'extraire les données présents (pour les individus seulement) de la base de donnée des Elites suisses et de les mettre sur wikipast.

Résumé des fonctionnalités

EliteBot va venir récupérer l'ensemble des Elites suisses disponibles sur https://www2.unil.ch/elitessuisses/index.php?page=accueil. Le robot va ensuite récupérer les informations liées aux données biographiques, à la formation et au parcours professionnel de l'élite. Ces fonctions sont développées dans le module de scrapping. Pour chacune de ces élites, les données brutes sont traitées et mises en forme au format Wikipast dans le module Formatage. Enfin, un dernier module permet d'identifier les pages à créer sur Wikipast (élites encore non renseignées) et les informations à rajouter dans les élites déjà existantes.

Description technique

Scrapping

Le module de scrapping permet de répondre à deux besoins : récupérer la liste des élites suisses disponibles sur le site et récupérer les données liées à la biographie, la formation et le parcours professionnel de l'élite.

Nous utilisons le module BeautifulSoup4 pour scrapper le code HTML de chaque page d'intérêt.

Formattage

Les données sont scrappées passée à un classe appellée PastaMaker qui se charge de les mettre au format wikipasta. Les données passées sont sous forme de dictionnaire. La clé de ce dictionaire dit de quelle type de valeurs il s'agit, et formatte les données selon la catégorie auquel elle appartient. Il y a 3 categories qui sont formattées.

La premiere est la biographie, ou est recupéré le nom et prenom de l'individus. Si la date de naissance et/ou la date de décès sont données alors les evenements correspondants sont aussi générées. La biographie doit imperativement etre donnée sans quoi le formattage ne sera pas correcte.

La deuxième est la formation. Un evenement "Diplôme" est créé avec les informations présents, c'est-à-dire le nom de l'école, le titre obtenu et la spécialisation. Si il n'y pas de date pour la formation, l'évenement n'est pas créé.

La troisième est la fonction. Nous n'avons pas reussi à trouver d'évenement corresponant et ainsi l'évenement comprend principalement le titre de la fonction. Il n'y a pas de format rigouruex pour les fonction, rendant la tache compliqué et cetaines informations ne peuvent pas être utilisées car il y a trop d'informations differentes (lieu ou institutions ou même juste des lettres) Ici aussi, si il n'y pas de date pour la fonction, l'évenement n'est pas créé.

A travers toutes ces catégories plusieurs fonctions sont utilisés qui lisent et transforment par exemple les dates ou qui méttent la sources et les hypermots correctements

Mise sur Wikipast

Analyse des résultat

Exemple d'un résultat

Nous allons suivre la page de Regina Elisabeth Aebi-Müller et son parcours à travers EliteBot [1]

Voici la page telle qu'elle est sur elite suisse: Contenu de la page de Regina Elisabeth Aebi Müller sur Elite Suisse

Et voici le resultat donné par le scrapping:

{'ID': 84684, 
'Données biographiques': {'Nom :': 'Aebi-Müller', 
                         'Prénom :': 'Regina Elisabeth ', 
                         'Sexe :': 'F', 
                         'Nationalité :': 'suisse', 
                         'Naissance:': '1971'}, 
'Formation': [{'année': '2000', 
               'titre': 'Doctorat', 
               'catégorie': 'droit', 
               'lieu': 'UniBe', 
               'pays': 'Suisse'}], 
'Fonctions et mandats': [{'durée': '2005- (2020)', 
                          'université': 'UniLu (faculté de droit)', 
                          'fonction': 'professeur ordinaire'}, 
                         {'durée': '(2010)', 
                          'université': 'UniLu (Rechtswissenschaftliche Fakultät)', 
                          'fonction': 'doyen'}, 
                         {'durée': '(2015)- ≥ 2020', 
                          'université': 'Fonds national suisse de la recherche scientifique (conseil national de la recherche )', 
                          'fonction': 'Membre', 
                          'discipline': 'division 4', 
                          '': '1'}]
}

Un fois formatée ceci donne (où source est https://www2.unil.ch/elitessuisses/index.php?page=detailPerso&idIdentite=84684):

 *  [[1971]] / -. [[Naissance]] de [[Regina Elisabeth  Aebi-Müller (84684)]] [source]
 *  [[2000]] / [[Suisse]]. [[Diplôme]]: [[Regina Elisabeth  Aebi-Müller (84684)]] diplomée de [[UniBe]] : Doctorat en droit [source]
 *  [[2005]] / -. [[Regina Elisabeth  Aebi-Müller (84684)]] est professeur ordinaire à [[UniLu]] (faculté de droit) [source]
 *  [[2010]] / -. [[Regina Elisabeth  Aebi-Müller (84684)]] est doyen à [[UniLu]] (Rechtswissenschaftliche Fakultät) [source]
 *  [[2015]] / -. [[Regina Elisabeth  Aebi-Müller (84684)]] est Membre à [[Fonds national suisse de la recherche scientifique]] (conseil national de la recherche ) [source]

Performance du scrapping

Analyse des performances sur l'ensemble du jeu de données

Nous remplirons cette partie après l'exécutions du bot.

Améliorations possible

  • Sur certaines pages se trouve une partie militaire qui parles des mandats et succès des militaires et/ou une partie généalogie qui montre la famille de l'individus. Ces deux parties ne sont pas utlisées
  • Le formattage n'utilise pas certaines inforamtion de catégories diverses, mais peut-être des analyses plus poussées pourraient en faire usage

Code

Le code est entierement disponible sur GitHub [2]