« SportBot » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
Ligne 21 : Ligne 21 :
=== Vérification d'existence ===
=== Vérification d'existence ===


Afin de ne pas créer des pages à double nous vérifions dans un premier temps si il n'existe pas déjà  
Afin de ne pas créer des pages à double, nous vérifions dans un premier temps si il n'existe pas déjà la page que nous souhaitons créer. Dans les cas où elle est inexistante nous l'a créeons simplement en y ajoutant les entrées souhaités. Dans le cas où la page existe déjà nous appliquons une autre vérification pour voir si la page est vide. D


Avant de créer une page nous nous assurons toujours si elle n'existe pas auparavant. Si elle n'existe pas, la page est créée sinon elle est simplement modifiée en rajoutant la donnée
Avant de créer une page nous nous assurons toujours si elle n'existe pas auparavant. Si elle n'existe pas, la page est créée sinon elle est simplement modifiée en rajoutant la donnée

Version du 9 mai 2021 à 14:57

Le but du SportBot est d'apporter des informations sur les résultats obtenus par certains athlètes aux Jeux Olympiques d'hiver et d'été entre 1896 et 2014 à partir d'une dataset prise sur kaggle. Le SportBot extrait dans un premier temps les infos prises dans la base de données et créait en conséquence un page Wikipast de l'athlète avec les infos contenues dans la base de données. De plus le bot ajoute le nombre de médailles obtenues durant au cours d'une certaine année sur la page du pays concerné.

Objectifs

  • Création/modification de page pour chaque d'athlètes ayant obtenu une ou plusieurs médailles aux JOs.
  • Ajout du lieu, de la date, du type de médaille obtenue par l'athlète.
  • Ajout du nombre de médailles obtenue durant chaque JO sur la page du pays concerné.

Implémentation et fonctionnalités

Préprocessing du dataset

Afin de pouvoir lire et extraire les données de notre dataset, nous utilisons la libraire Pandas. Enzo continue de décrire ce que tu as fais pour l'extraction des données.



Vérification d'existence

Afin de ne pas créer des pages à double, nous vérifions dans un premier temps si il n'existe pas déjà la page que nous souhaitons créer. Dans les cas où elle est inexistante nous l'a créeons simplement en y ajoutant les entrées souhaités. Dans le cas où la page existe déjà nous appliquons une autre vérification pour voir si la page est vide. D

Avant de créer une page nous nous assurons toujours si elle n'existe pas auparavant. Si elle n'existe pas, la page est créée sinon elle est simplement modifiée en rajoutant la donnée au bon endroit chronologiquement.

Tri automatique croissant par date

Les données sont triées par ordre croissant de date, un algorithme (sort_year) s'occupe de réordonner les entrées. L'algorithme consiste à séparer le texte de la page par ligne et de détecter les dates des événements déjà existants. Ensuite on parcourt la liste d'années pour détecter où l'insertion se fait (ligne précédant l'endroit où l'on veut insérer la donnée). Enfin on ne modifie l'ancien texte de la page qu'en insérant la nouvelle donnée au bon endroit dans l'ancien texte.


Minimisation requête internet

Dans notre algorithme, les lignes de codes demandant le plus de temps sont les requêtes internet (lecture et écriture sur wikipast). Afin de minimiser ce nombre de requêtes dans le cas où nous devons écrire plusieurs lignes sur une même page nous copions dans un premier temps tout le texte de la page. Puis nous insérons les lignes que nous désirons dans cette copie local et pour finir nous réécrivons tout le texte de la page en une seule fois. Cela à l'avantage de faire uniquement deux requêtes internet pour un nombre potentiellement très grande de ligne à ajouté. Dans le cas où l'on ajouterai ligne par ligne nos entrées sur wikipast, nous aurions besoin de faire autant de requêtes que d'entrée, ce qui serai très couteux en temps.

Performances

Limitations

Exemples

Code

Le code source est disponible sur ce lien (Che ! Pas bien de vouloir copier les autres)

DATASET

Le dataset que nous utilisons provient du site kaggle. Plus précisément, nous utilisons le dataset suivant [1]