.. _wikipediastatsenoncerst: =============================== Statistiques Wikipedia - énoncé =============================== .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`PDF `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/internet/wikipedia_stats_enonce.ipynb|*` On s’instéresse aux statistiques de consultations de Wikipédia : `pageviews `__. Ce TD commence par récupération des données avant de s’intéresser aux séries temporelles. .. code:: ipython3 from jyquickhelper import add_notebook_menu add_notebook_menu() .. contents:: :local: Récupération des données ------------------------ Les statistiques sont disponibles pour chaque heure et chaque jour. Compressés, cela représente environ 60Mo. On regarde un fichier. .. code:: ipython3 import os folder = "wikipv" if not os.path.exists(folder): os.mkdir(folder) .. code:: ipython3 from mlstatpy.data.wikipedia import download_pageviews import os from datetime import datetime %timeit -n1 -r1 download_pageviews(datetime(2016,9,1), folder=folder) .. parsed-literal:: 1 loop, best of 1: 42.6 s per loop .. code:: ipython3 %load_ext pyensae .. code:: ipython3 %head wikipv/pageviews-20160901-000000 .. raw:: html
    aa Main_Page 2 0
    aa.d Main_Page 2 0
    aa.m Main_Page 2 0
    aa.m.d Main_Page 2 0
    ab 1989 1 0
    ab 2007 2 0
    ab Авикипедиа:Афорум 1 0
    ab Авикипедиа:Описание 2 0
    ab Австралиа 1 0
    ab Адин 1 0

    
.. code:: ipython3 os.stat("wikipv/pageviews-20160901-000000").st_size / 2**20, "Mo" .. parsed-literal:: (150.17064571380615, 'Mo') Ca va prend un petit peu de temps et d’espace de télécharger ces données. Exercice 1 : parallélisation du téléchargement ---------------------------------------------- Regarde le module `multiprocessing `__ et implémenter une version parallélisée du programme suivant. `multiprocessing `__ est la librairie standard mais il en existe beaucoup d’autres : `ParallelProcessing `__, `joblib `__. .. code:: ipython3 from mlstatpy.data.wikipedia import download_pageviews from datetime import datetime folder = "wikipv" for h in range(0, 24): # boucle sur les 24 heures de la journée dt = datetime(2016,9,1,h) print("téléchargement", dt, "début", datetime.now()) download_pageviews(dt, folder=folder) .. parsed-literal:: téléchargement 2016-09-01 00:00:00 début 2016-09-11 21:32:18.373115 téléchargement 2016-09-01 01:00:00 début 2016-09-11 21:32:18.374114 téléchargement 2016-09-01 02:00:00 début 2016-09-11 21:32:18.374114 téléchargement 2016-09-01 03:00:00 début 2016-09-11 21:32:18.374114 téléchargement 2016-09-01 04:00:00 début 2016-09-11 21:32:18.375114 téléchargement 2016-09-01 05:00:00 début 2016-09-11 21:32:18.375114 téléchargement 2016-09-01 06:00:00 début 2016-09-11 21:32:18.375114 téléchargement 2016-09-01 07:00:00 début 2016-09-11 21:32:18.375114 téléchargement 2016-09-01 08:00:00 début 2016-09-11 21:32:18.375114 téléchargement 2016-09-01 09:00:00 début 2016-09-11 21:32:18.376113 téléchargement 2016-09-01 10:00:00 début 2016-09-11 21:32:18.376113 téléchargement 2016-09-01 11:00:00 début 2016-09-11 21:32:58.745096 téléchargement 2016-09-01 12:00:00 début 2016-09-11 21:34:08.073304 téléchargement 2016-09-01 13:00:00 début 2016-09-11 21:35:04.923348 téléchargement 2016-09-01 14:00:00 début 2016-09-11 21:36:10.377303 téléchargement 2016-09-01 15:00:00 début 2016-09-11 21:37:20.523141 téléchargement 2016-09-01 16:00:00 début 2016-09-11 21:38:21.088853 téléchargement 2016-09-01 17:00:00 début 2016-09-11 21:39:24.186874 téléchargement 2016-09-01 18:00:00 début 2016-09-11 21:40:11.545482 téléchargement 2016-09-01 19:00:00 début 2016-09-11 21:41:05.327336 téléchargement 2016-09-01 20:00:00 début 2016-09-11 21:41:56.814023 téléchargement 2016-09-01 21:00:00 début 2016-09-11 21:42:50.729708 téléchargement 2016-09-01 22:00:00 début 2016-09-11 21:43:49.187079 téléchargement 2016-09-01 23:00:00 début 2016-09-11 21:44:48.095661 Exercice 2 : statistiques ------------------------- On veut comparer les habitudes de lectures des utilisateurs pour différents types de pages, politique, musique, cinéma, science, littérature… On prendra une semaine quelconque comme période d’étude. Que proposez-vous ?