Statistiques Wikipedia - énoncé

Links: notebook, html ., PDF, python, slides ., presentation ., GitHub

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.

from jyquickhelper import add_notebook_menu
add_notebook_menu()
run previous cell, wait for 2 seconds

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.

import os
folder = "wikipv"
if not os.path.exists(folder):
    os.mkdir(folder)
from mlstatpy.data.wikipedia import download_pageviews
import os
from datetime import datetime

%timeit -n1 -r1 download_pageviews(datetime(2016,9,1), folder=folder)
1 loop, best of 1: 42.6 s per loop
%load_ext pyensae
%head wikipv/pageviews-20160901-000000
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

os.stat("wikipv/pageviews-20160901-000000").st_size / 2**20, "Mo"
(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.

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)
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 ?