Statistiques Wikipedia - énoncé#
Links: notebook
, html, PDF
, python
, slides, 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()
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 ?