EliteBot
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 le site [1]. 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 Formattage. Enfin, le 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
Evaluation des perfs
Exemple de résultats
Nous allons suivre la page de Regina Elisabeth Aebi-Müller et son parcours à travers EliteBot [2]
Voici la page telle qu'elle est 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
Code
Le code est entierement disponible sur GitHub [3]