Archives de l’auteur : étienne

À propos étienne

Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

Les calculs dans les nuages

La légende veut qu’une année, au moment des fêtes de fin d’année, Amazon ait connu un problème technique. Proche de leurs limites depuis plusieurs heures, les serveurs auraient rendu l’âme de manière inopportune, faisant perdre des sommes considérables à l’entreprise de Seattle. Pour éviter que cette déconvenue ne se reproduise, cette dernière aurait décidé d’investir massivement dans des infrastructures. Mais tout cela ne va pas sans coûts : le matériel est onéreux, il devient rapidement obsolète, il faut l’entretenir, payer des factures astronomiques en climatisation (ou s’installer en Islande)… Pour rentabiliser le tout, Amazon aurait donc proposé de louer ses serveurs, d’abord à des entreprises, puis à des particuliers.

L’offre est désormais bien rodée, et Amazon Web Services est l’un des nombreux prestataires de services dans le « cloud ». On peut louer de l’espace de stockage, mais aussi de la bande passante, ou de la puissance de travail… ce qui est non négligeable quand on travaille avec des quantités de données assez vastes. Ça l’est d’autant plus, comme de nombreux chercheurs, on travaille avec R – connu pour ses problèmes de mémoire.

J’ai récemment été confronté à cette situation lors du traitement d’une base de données un peu lourde. Pour le projet sur la réception des sociologues français aux États-Unis (déjà évoqué ici) déjà évoqué, je cherchais à repérer une série d’informations dans des bibliographies. Mais 40 années multipliées par 35 journaux correspondent à 40 000 articles, et à 1,6 millions de citations. Et je devais faire 200 requêtes modérément complexes (une par auteur) sur chacun de ces items. Ce n’est pas énorme pour certains logiciels, mais du fait de la manière dont R gère sa mémoire et du fait de la manière dont j’abordais le problème, mon ordinateur n’y suffisait pas.

Comment faire pour traiter des données lorsque la puissance de sa machine est insuffisante ? La question ne se pose pas que dans le cas d’opérations de data-mining, on y est aussi confronté quand on fait des calculs un peu gros (comme en analyse de réseau). On a alors plusieurs possibilités. La première chose consiste à voir s’il n’est pas possible d’améliorer son programme, pour l’adapter au mieux à la manière dont R gère la mémoire (on lira à profit R Inferno, que m’avait utilement conseillé Y. Savina). Ensuite, on peut utiliser des outils plus adaptés par exemple les modules (ff ou bigmemory). Enfin, on peut passer par un autre langage de programmation qui ne s’étouffe pas devant ces nombres, soit en l’appelant depuis R, soit directement.

La solution que j’ai retenue est autre. Outre l’optimisation du calcul, j’ai décidé de louer une grande puissance de calcul contrôlable à distance. C’est ce qu’on appelle le cloud computing.

Louer un supercalculateur depuis votre bureau

Le principe est le suivant : vous louez de l’espace de travail (puissance de calcul + RAM + stockage), vous installez une « image » d’un logiciel que vous voulez faire tourner, vous chargez vos données, et c’est parti. Le résultat est surprenant. En moins de vingt minutes, j’avais loué l’équivalent de 28 processeurs. Et quelques heures plus tard mon problème était résolu alors que mon tout nouvel ordinateur plantait au bout de 14h des mêmes calculs avec R sans avoir fini.

Quelle offre choisir?

De très nombreuses offres commerciales existent, censées s’adapter à vos besoins. Certaines ne vous concernent pas du tout, qui visent à satisfaire des besoins industriels. Mais même parmi celles qui peuvent s’adresser à nous, il faut choisir : faut-il plus de RAM (mémoire vive) ? plus de cœurs ? plus de processeurs (CPU) ? C’est cette question (qui est l’objet de l’algorithmique, versant « théorie de la complexité ») à laquelle on se retrouve confronté quand on compare les offres de cloud computing. Sans rentrer dans les détails, voilà les grandes lignes :

– Si vous avez à répéter de très nombreuses fois un calcul très simple, il vaut mieux privilégier un nombre élevé de CPU (processeur). Plus vous en avez, plus vous enchainez les calculs rapidement.

– Mais si vos objets sont gros ou que vos calculs sont complexes et prennent une place importante, vous voulez avoir de la RAM. C’est particulièrement vrai avec R, qui en consomme plus que de raison.

Ces règles ne sont pas intangibles, ni linéaires, car d’autres facteurs rentrent en ligne de compte. On peut aussi chercher à optimiser le temps en les combinant, par exemple en faisant faire toute une série de pré-calculs en amont et en les stockant dans la RAM avant de lancer le calcul principal.

À quel prix ?

La question centrale est évidemment celle du prix. Combien coûte cette location, et est-elle rentable ? Du point de vue de nos disciplines, la réponse aux deux questions est : « ça dépend ». Sur le papier, louer une série d’ordinateurs dans les nuages ne coûte pas grand chose. En général, bien moins de $0.5 de l’heure. Mais tout dépend du mode de paiement. Certains louent à l’heure, mais plus cher. D’autres vous louent un espace mais pour le mois. Vous pouvez comparer en regardant ici les prix pour AmazonRackspaceinternap, et l’entreprise française OVH qui lance son service en ce moment.

 

Bien sûr, avant de commencer une location, il vaut mieux tester bien son code et ses données pour éviter de devoir faire les calculs plusieurs fois, sachant que le compteur tourne. Et attention ne pas oublier de se déconnecter quand on a terminé ! Cet été, j’ai fait tourner l’équivalent d’une trentaine de machines pendant 48h et cela m’a coûté 20 euros – mais j’avais un peu surestimé mes besoins. L’autre danger, c’est qu’une fois qu’on a utilisé ces moteurs sur des analyses de réseau dont les utilisateurs de R savent qu’elles sont un peu gourmandes, on trouve que son ordinateur est horriblement long. Mais s’habituer à ce confort risque de coûter cher, en tout cas aux tarifs actuels.

Le prochain post proposera un tutoriel pour utiliser l’un de ces services de calculs dans les nuages.

 

étienne

Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

More Posts

Les archives du web

Les ajouts et modifications apportés suite à la publication du billet sont indiqués par ce surlignage jaune.

Voilà maintenant plus de deux ans, la Revue d’Histoire Moderne et Contemporaine a consacré un dossier aux pratiques numériques des chercheurs. L’article de Nicolas Delalande et de Julien Vincent, « Portrait de l’historien-ne en cyborg », proposait un tour d’horizon utile sur le sujet. Récusant à la fois l’enthousiasme béat, le scepticisme radical ou l’indifférence polie vis-à-vis des données numériques, ils soulignaient les opportunités qu’elles fournissent aux chercheur.e.s. Les stratégies de recherche, formes de communication (entre chercheurs, ou avec d’autres publics) comme modalités de l’écriture sont selon eux radicalement modifiées par l’arrivée d’internet et de l’ordinateur.

Un aspect non évoqué par l’article – pour des raisons bien compréhensibles – concerne un aspect central du métier d’historien : les archives. Peut-on faire des archives sur internet ? Lieu et reflet de toute une partie de l’activité humaine, on trouve sur le web de très nombreuses informations (parfois même trop, comme le rappelait ce portrait d’un anonyme par la revue Le Tigre). Mais cette abondance disparaît assez rapidement. Probablement pas assez en ce qui concerne le droit à l’oubli, mais suffisamment pour qu’une enquête un peu rigoureuse soit rapidement contrariée.

C’est ce dont je me suis rendu compte récemment alors que je cherchais à faire une liste de tous les « administrateurs de science ». Dans le cadre du projet Go Science, nous cherchons à produire une liste des personnes investies dans l’administration de la science en France depuis les années 1960. Afin de rendre la tâche moins titanesque, nous avons choisi deux domaines, et fait des carrotages par périodes. Pour les collègues en charge du passé « lointain » (les années 1960), la solution est claire : il faut aller à Pierrefite-sur-Seine, fréquenter les archives du CNRS, et ouvrir des cartons. Visiblement, ils s’en sortent.

Pour les années 2010, les choses me paraissaient plus simples. Direction et commissions du CNRS, sections CNU, alliances scientifiques, organigrammes des grands EPST de recherche : tous publient une liste des membres. Sauf que… à chaque changement dans l’organigramme, à chaque nouvelle élection d’un bureau, la mémoire du passé est effacée. Je connaissais bien des manières de retrouver des documents dans le cache de Google, de faire des requêtes un peu complexes pour retrouver des fichiers pdf ou word, mais ça ne me permettait pas de reconstituer la direction du CNRS de 2008, ni ses sections.

C’est Christian Topalov qui m’a indiqué une solution. Engagé dans une entreprise assez similaire mais plus contemporaine et bien plus massive (les résultats de cette enquête collective en cours seront présentés dans le cadre du séminaire Politique des Sciences le 22 mai prochain), il m’a rappelé l’existence d’une « machine à remonter le temps ». Cette « wayback machine », c’est le site d’une association qui propose des « photos » des sites du passé (On y accède via https://archive.org/). Plusieurs fois par an, parfois plus, la machine « crawle » le site, et en conserve une photo.

La partie de l’enquêt que je mène permet de démontrer en actes de l’intérêt, et ses limites. Si vous cherchez à connaître l’organigramme du CNRS et ses sections pour les années passées, vous rentrez l’adresse internet (l’URL) sur site que vous cherchez. Attention : Wayback Machine archive en fonction de l’URL, donc si le site a changé de nom de domaine (ou changé d’extension, de .fr à .eu par exemple), il faut le retrouver tel quel.  Vous arrivez sur une page avec une frise, qui montre le nombre de photos. Pour le CNRS, on voit que la collecte commence en 1997, et qu’à partir de 2005, les copies sont multiples. On a donc de bonnes chances.

WaybackJPEG

On clique donc sur une date, et on se promène sur le site comme on le ferait à l’heure actuelle. C’est un peu plus lent puisque qu’il faut que WB aille chercher dans ses archives (mais plus rapide que d’attendre une dérogation pour consulter un carton). Et vous pouvez accéder aux informations désirées… parfois. Car malheureusement, l’ensemble du site n’est pas toujours conservé. Les deux principales difficultés sont les suivantes :
• La machine conserve assez bien tout ce qui est écrit « en dur » sur le site, c’est à dire le HTML (et son CSS), ainsi que les liens vers des fichiers (word, pdf). Mais ce n’est pas la seule manière d’écrire le web, et tout ce qui est stocké dans une base de données pour être « injecté » a peu de chances d’avoir été conservé par WB Machine.
• La machine ne se promène pas non plus sur toutes les pages, loin s’en faut. Dans plusieurs cas, comme ici dans pour le CNU Santé de 2008, il n’y a pas de photo disponible.

wayback-Hum

C’est ce qui justifiera donc que j’aille faire un tour au ministère cette semaine pour récupérer ladite liste. Car comme d’habitude avec les données numériques, elles sont potentiellement très riches, mais rarement suffisantes en elles-mêmes. Les stratégies numériques ne constituent pas des stratégies de recherches suffisantes dans la plupart des cas. Ceci dit, c’est un temps précieux gagné dans certains cas.

À noter sur le sujet :

  • La Bibliothèque Nationale de France s’est depuis longtemps engagée dans l’archivage du web et propose un service à ses usagers. Les noms de domaine en .fr sont collectés « largement », et la bibliothèque propose des archivages ciblés. Voir ici  pour une brève histoire et ici pour savoir comment y accéder.
  • L’INA s’occupe de l’archivage du web audiovisuel. Voir ici pour les détails, et là pour le blog sur le dépot légal (avec des annonces de séminaires, des réflexions). [Merci à Anne Pavis pour cette piste].
  • La BNF et d’autres sites permettent de faire de l’archivage de bases de données. Elles permettent de contourner la difficulté évoquée ci-dessus, à savoir l’archivage des pages HTML uniquement (dont l’usage en solo se raréfie). Le nombre de sites concernés est cependant plus faible.
  • Le site de l’IIPC, l’initiative des bibliothèques nationales de différents pays afin de conserver une trace du web.

La liste comme le billet sont évidemment loin d’être exhaustifs, donc n’hésitez pas à laisser des commentaires pour faire des ajouts.

étienne

Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

More Posts

Se réapproprier la bibliométrie (II) : Cite me maybe ?

Le blog reprend après quelques mois de pause, tout en continuant à travailler les questions de bibliométrie abordées précédemment. Il s’agit toujours, à partir d’une étude en cours, de questionner ce qu’une bonne connaissance des données bibliométrique peut être et peut permettre de faire, en tant qu’outil sociologique.

ERRATUM : Suite à une erreur dans les lignes de code, le graph de réseau avait des points de taille erronée (corrigé le 7 décembre 2013, merci à LW pour sa remarque).

Sous les dehors de l’objectivité des chiffres, le recours croissant à la bibliométrie comme indicateur de productivité scientifique pose plus de problèmes qu’il n’en résout. Censé déterminer de manière objective la qualité du travail (réduisant par là même la place des scientifiques dans le gouvernement de la science), les différents facteurs d’impact et autres indices mobilisés produisent des résultats difficiles à interpréter. Un article cité l’est-il pour ses qualités ou pour la polémique (parfois scientifiquement peu utile) qu’il suscite ? Un texte important est-il celui qui suscite des programmes de recherche, ou celui qu’on cite de manière routinisée ? Un auteur est-il crédité parce qu’il suscite des recherches innovantes, ou du fait qu’il occupe par exemple une position institutionnelle ou une niche scientifique qui le rendent incontournables ?

À ces remarques bien connues, il faut en ajouter autre, moins souvent évoquée mais tout aussi centrale : la très forte hétérogénéité des pratiques de citation. Que ce soit entre auteurs, dans le temps, d’une discipline ou d’un sous-champ à l’autre, elles varient sensiblement. Cette situation est bien connue des chercheurs qui travaillent sur ce matériau : pour s’en servir, il savent qu’il faut « normaliser » les résultats, par exemple en pondérant le nombre de citations (à un auteur, à un journal) par le nombre total par période et par unité. Et une telle pondération n’est pas une simple opération technique, mais suppose un choix scientifique, en l’occurrence un modèle de l’espace étudié.

Mais qui, au quotidien, prend la peine de le faire ? Les aficionados de Publish or Perish, ce petit logiciel qui permet de vérifier en deux clics si votre voisin de bureau a un meilleur impact factor que vous, ou les tableaux détaillés du Journal of Citation Report, qui offrent une batterie de résultats sur la vitesse de diffusion d’un article, ne les considèrent tout simplement pas et contribuent à les invisibiliser. Les différences sont pourtant prononcées. Et elles devraient remettent en cause les tentatives de comparaison, à moins de faire le travail de normalisation, ce qui est souvent lourd et suppose d’avoir des informations sur l’ensemble des citations.

Prenons l’exemple des revues de sociologie étasuniennes. Les données proviennent de la même source que pour le billet précédent (des données du Web of science largement retravaillées, soit 39 000 articles et 1 694 000 citations). La première remarque est que, comme on le voit sur un échantillon de 35 revues sur 40 années, le nombre moyen de citations par articles a fortement progressé, passant en moyenne de 22 à 56.

BXPLOT-Mean

Code:
Si le fichier mean est au format: year | journal | value:

p <- ggplot(mean2, aes(factor(year), value))+stat_boxplot(geom ='errorbar')
pl<-p + geom_boxplot() + theme(axis.text.x = element_text(angle = 90, hjust = 1))+ ggtitle("Nombre moyen de références bibliographiques dans les articles de sociologie aux États-Unis \n Par journal et par an (1970-2010)\n") + theme(plot.title=element_text(family="Arial", face="bold", size=14))+ labs(x = "\nAnnée", y = "Nombre moyen\n")

Une telle inflation signifie que la signification même de la citation varie au cours du temps. Si on ne prend qu’un indicateur quantitatif, la citation de 1970 « vaut » plus que celle de 2009. Et d’autres changements ont dû survenir. On retrouve ces variations à l’intérieur d’un même champ disciplinaire. Le graphique ci-dessous montre la dispersion des citations pour l’année 2009. On voit bien que si la panacée consiste à avoir de très nombreuses citations, mieux vaut être démographe (le Journal of Marriage and Family est à plus de 4000 références annuelles) que spécialiste des mathématiques (le Journal of Mathematical Sociology, qui en recense moins de 500 par an). Notons qu’on a aussi fait sortir du graphique Social Science and Medicine, qui est à plus de 16.000 citations, du fait d’une publication plus régulière (bimensuelle) mais aussi d’une proximité aux normes de publications dans les revues de médecine (qui ont la main lourde en termes de citations).

BXplot-Name2009

Si le fichier est year | journal | value | position* :
qplot(1, value, data = journals2009, geom = "boxplot", notch=T, xlim=c(0.3,1.7)) + annotate("text", x = journals2009$position, y = journals2009$value, label = journals2009$journal, cex=2.3, colour="#CC3333") + ggtitle("Nombre de références bibliographiques dans les revues de sociologie étasuniennes\n Année 2009\n") + theme(axis.line=element_blank(), axis.text.x=element_blank(), axis.ticks=element_blank()) + labs(x = "", y = "") + theme(plot.title=element_text(family="Arial", face="bold", size=14)) + labs(x = "\n", y = "\nNombre total annuel")

* Parce que certains journaux ont des valeurs proches qui rendent un graphique en ligne illisible, l’astuce consiste ici à faire attribuer une position parmi trois à chaque citation, afin qu'ils se déplacent sur l'axe horizontal.

À condition de prendre le temps et de contrôler ses données, on peut par contre obtenir des résultats intéressants à partir d’une étude des citations. On peut par exemple voir l’émergence de sous-champs, ne serait-ce qu’en regardant l’évolution de l’autocitation de la revue (ie. les articles qui citent des articles de cette revue). C’est clairement ce qui se passe pour Gender & Society et pour Criminology, dont les sujets respectivement s’institutionnalisent ou s’autonomisent au cours de la période. Ce faisant, elles deviennent plus autoréférentielles.

AutocitationSelect

Si les données sont au format : Citing | Cited | year | selfcite_ratio
p<-ggplot(TAB3, aes(x=year, y=ratio, colour=journal)) + ggtitle("L'autocitation au journal dans la sociologie étasunienne\nPar année et par journal (1970-2010)\n")+ theme(axis.text.x = element_text(angle = 90, hjust = 1))+ theme(plot.title=element_text(family="Arial", face="bold", size=14)) + labs(x = "\nAnnée", y = "Taux d'autocitation\n")

[Avec la même technique, on pourrait aussi voir si certains journaux n’essaient pas de faire augmenter artificiellement leur impact factor en rajoutant des citations à des articles qu’ils ont publié récemment]

Une analyse bibliométrique permet aussi de faire apparaître la structure des échanges entre revues. On regarde quelle revue cite quelles autres, et on tente de déterminer la structure des échanges. L’analyse des réseaux est ici plus appropriée, même si on arrive rapidement à saturation puisque le nombre de liens possibles (32*32 revues) est proche du nombre de liens effectifs (une revue cite au moins l’une des 32 autres dans l’année). Sur les conseils de B., j’ai ici fait un peu de ménage en considérant le réseau initial soustrait de sa distribution à l’indépendance. Puis j’ai fait une analyse de modularité pour tenter de détecter des classes à l’intérieur de cet ensemble.

US_Socind5NEW

Sans rentrer dans les détails, ce qu’on voit ici peut se résumer ainsi :

  • La taille du point montre que certaines revues reçoivent beaucoup plus de citations que d’autres. ASR, AJS et Organization studies ont été très citées en 2009. C’est le pendant des analyses précédentes, où on voyait les revues qui citent le plus. Evidemment, il y a une prime aux revues anciennes.
  • La structure du réseau donne à voir un cœur de la disciplines, ie. des revues qui se citent mutuellement et régulièrement (encore une fois, l’absence de lien ne veut pas dire aucune citation dans l’année, mais une citation moindre que ce que donnerait une distribution à l’indépendance). Là, et même si on sait que la preuve visuelle est relativement pauvre en sociologie des réseaux, c’est une analyse des degrés d’intégration qu’on voit ici, avec le centre et les marges d’une discipline.
  • Finalement, l’analyse de modularité (couleurs) permet de voir les revues qui ont les mêmes pratiques de citation. L’algorithme utilisé ici est walktrap (du package igraph), qui donnait les résultats les plus significatifs sociologiquement parmi la palette disponible [http://igraph.sourceforge.net/doc/R/communities.html]. Le principe de la modularité consistant à trouver les divisions optimales au sein d’un réseau, on a ici des petits groupes (pas forcément placés côte à côté, signe que la preuve graphique…). Selon cet algorithme, Social networks et le Journal of Mathematical Sociology ont donc des « pratiques » de citation relativement proches. Le fait que Social science & Medicine soit seul dans sa catégorie n’est pas étonnant : ses pratiques (citation forte, majorité de citations à l’extérieur de la discipline) en font un isolat.
  • [Je suis sûr qu’on peut faire une représentation du réseau avec ggplot aussi, mais je laisse cela à Fr. Briatte pour l’instant.]

    Ces traitements, certains très simples, montrent qu’on ne peut traiter la citation de manière agrégée et sans considération pour les variations d’usages, parfois même à l’intérieur d’un champ. Elles soulignent aussi ce qu’une bibliométrie descriptive offre comme ressources pour comprendre certaines logiques du champ scientifique, à condition qu’on cesse de l’interroger uniquement comme une métrique grossière de la qualité scientifique individuelle.

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Données numériques en histoire – Conférence le 9 décembre 2013

    En attendant la reprise de ce blog (très prochaine), voilà l’annonce d’une conférence qui s’annonce vraiment intéressante.

    Les sources nativement numériques pour la recherche en histoire et patrimoine : pratiques et méthodes. Elle se tiendra au CNAM, le 9 décembre 2013.

    Les sciences humaines et sociales ont depuis quelques années vu s’accroître le regard réflexif des chercheurs sur leurs terrains et corpus, leurs gestes, leurs outils et instruments, en particulier dans le rapport aux technologies de l’information et de la communication à l’ère numérique.

    Si les « Digital Humanities » (Humanités numériques) ont montré les apports du traitement informatique pour des fonds de documents numérisés, de nouveaux documents sont produits dans l’usage même des techniques et environnements du numérique, et ce depuis que les ordinateurs sont nés il y a plus d’un demi-siècle. En quoi ces nouveaux documents peuvent-ils constituer de nouvelles sources pour les études qui s’interrogent sur le passé ? Quelles traces, générées dans l’usage des outils numériques et transmises par la mémoire d’usage des technologies informatiques, deviennent exploitables et analysables à côté des formes et contenus ? A quel nouveau type d’archives le chercheur en histoire ou en patrimoine doit-il se confronter ?

    La suite et les détails ici

    Sinon, la jeune revue RESET (Recherches en sciences sociales sur Internet) rejoint le portail de revues.org, signe de l’intérêt pour ces recherches et du dynamisme du journal. A suivre donc…

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Se réapproprier la sociométrie

    Étrange devenir que celui de la sociométrie appliquée à l’étude des sciences. Initialement conçue comme une manière d’appréhender le travail des chercheurs et les relations qu’ils nouent, la méthode a connu un regain d’intérêt ces dernières années avec le développement d’indicateurs orientés vers l’administration de la science. Utilisées à des fins de classement et de réformes, ces techniques se sont diffusées avec une rapidité déconcertante [1]. H-index, impact factor et autres mesures de la supposée productivité des scientifiques ont depuis pris le dessus sur les autres formes d’analyses que permettaient ces techniques [2].

    Le problème est que, comme le fait justement remarquer Yves Gingras dans ses différents travaux (voir ici si vous ne connaissez pas), ces mesures sont sans intérêt tant qu’on ne s’intéresse qu’au niveau individuel (celui du chercheur). Outils de management et/ou de promotion (du) personnel, elles ne prennent pas en compte le contexte général dans lequel s’inscrivent ces mesures. Outre qu’elles ne disent rien de la qualité du travail (une citation positive vaut autant qu’une citation négative) ni de sa capacité a faire progresser le savoir dans le temps long, elles doivent être réinsérées dans une économie générale des pratiques de citations que les mesures individuelles ne peuvent saisir.

    Mais les errements actuels n’empêchent pas de mener une véritable étude quantitative des sciences sur la base des mêmes données. C’est d’ailleurs ce que fait Gingras dans un article qui revisite un moment de l’histoire des sciences. À partir d’une étude de citations, il montre alors que l’article de Watson et Crick (qui décrivait la double hélice de l’ADN) a connu des débuts bien plus rapides que ce qu’en disaient les historiens des sciences. L’étude est minutieuse et extensive, des qualités rarement combinées — permises par les données précises dont il dispose et les techniques d’analyse qu’il met en oeuvre.

    Au-delà de cette relecture, c’est un plaidoyer en actes pour une réappropriation de la scientométrie que propose Gingras. Bien utilisée, c’est-à-dire avec une connaissance du domaine et de ses pratiques de citation, la bibliométrie est un outil utile pour l’étude des sciences. Surtout, la disponibilité des données de citations depuis près d’un siècle croisée avec la capacité de traitement des ordinateurs permet d’opérationnaliser la notion de champ scientifique de Bourdieu, entendu comme espace de relation dans lequel évoluent les chercheurs.

    Ce alliage de précision et d’extension est ce qui est intéressant avec ces données bibliométriques. Il ne faut pas en être dupe, et ne jamais oublier qu’une citation a des significations bien différentes (dette intellectuelle, demandes des évaluateurs, volonté de démontrer un savoir ou l’appartenance à une communauté,…). Il convient aussi de garder à l’esprit que citation ne veut pas dire influence réelle : on peut ne pas citer et être influent, et réciproquement. Il faut enfin être conscient qu’un bon travail bibliométrique passe le plus souvent par un long moment de vérification et de recodage des données. Mais à  ces conditions, les résultats sont souvent intéressants[3].

    À une échelle moindre, j’ai récemment tenté de mener une étude de la réception des sociologues français aux États-Unis. Les premiers résulats de ce travail (mené avec A. Abbott) seront présentés ce jeudi matin, lors d’un colloque sur l’histoire de la sociologie française. On revient, statistiques à l’appui, sur quarante années de citations à des centaines d’auteurs français. Et on discutera des enjeux de ces méthodes pour l’étude des disciplines. D’ici là, voilà un premier graphique sur la présence de quelques sociologues français dans la sociologie étasunienne. Attention, il y a un détail à ne pas manquer.

     

    Figure 6 - Temps + Top - Freescale

     

    1. À ce propos, si vous n’avez pas lu Benchmarking. L’Etat sous pression statistique d’I. Bruno et E. Didier, vous devriez y jeter au moins un oeil
    2. Sur ce point, on peut relire les conseils ironiques de G. Chamayou aux enseignantes-chercheuses.
    3. Outre les citations, une autre possibilité est de travailler sur les co-occurrences de mots dans les articles. C’est ce qu’on récemment fait D. Chavalarias et J.-Ph. Cointet dans un article paru dans PlosOne J’en reparlerai bientôt

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Sciences sociales et internet : actualités

    Après une période période pionnière, les sciences sociales de l' »internet » connaissent une croissance rapide. Ce mois-ci, plusieurs publications ou événements montrent la structuration rapide de ce sous-champ émergent.

    Conférence

    La conférence Penser l’écosystème des données, sur les enjeux de la libération des données, aura lieu toute la journée du 14 février à Paris. Elle réunira de nombreux chercheurs de SHS intéressés à la production et aux usages multiple des informations numériques. Interdiscipinaire, la conférence est aussi internationale et promet d’être riche. À ne pas rater (attention, il faut s’inscrire).

    Manuel

    Ce Manuel d’analyse du web, ouvrage collectif dirigé par C. Barats (Paris-V), propose une série d’analyses sur le web pour les chercheurs en sciences sociales. Les différentes contributions, rédigées par des spécialistes français du domaine, montrent bien le double objectif de l’ouvrage. Il s’agit en effet de présenter des outils et des méthodes d’analyse du web, mais tout autant de prendre internet et ses usages comme objets.

    Une première partie présente certains enjeux théoriques, mais aussi méthodologiques. Une section méthode est elle consacrée à différentes techniques d’analyses du web (textométrie, sémiologie, et ethnographie). Les contributions de la dernière partie présentent elles des méthodes d’approche plus quantitatives des usages du web. Les contributions, courtes, rendent la lecture facile et permettent de naviguer facilement dans l’ouvrage. Par ailleurs, des encadrés complètent les textes en informant, au-delà de la réflexion méthodologique, sur les outils concrets disponibles.

    Revue

    Enfin, on peut mentionner la naissance de la revue en ligne RESET, explicitement consacrée aux Recherches en Sciences Sociales sur l’Internet. Les appels à contributions pour les numéros à venir montrent le spectre large couvert par la revue : famille, troubles mentaux et jeux en ligne, etc. Le premier numéro traite d’internet et classes sociales, avec là aussi une grande variété : pratiques numériques des adolescents, ségrégation spatiale, et même un texte sur Bourdieu et les rencontres en ligne (plutôt La distinction 2.0 que l’e-Bal des célibataires).

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Des adresses à la carte : géocoder avec R et Google Maps

    Comment faire pour représenter des données dont on connaît l’adresse ? Si on veut les cartographier, il faut géocoder ces adresses, c’est-à-dire en obtenir les latitude et longitude. De nombreux sites existent pour cela, comme GetLatLon, simple et efficace pour une utilisation ponctuelle. D’autres outils permettent d’automatiser le processus et ainsi de traiter un grand nombre d’adresses.

    Pour R, il existe la fonction geocode, du module dismo[1]. Elle permet de facilement trouver ces informations, pour peu qu’on dispose d’une adresse précise. Par exemple, si on veut connaître les coordonnées du désormais trop célèbre village de Bugarach, il suffit de rentrer la requête suivante :

    library(dismo) 
    bugarach.latlon <- geocode(“Bugarach, France”, oneRecord=TRUE)

    L’option oneRecord permet de ne retenir que le premier résultat trouvé. Si on l’omet, on peut obtenir une pluralité de résultats, à trier ensuite manuellement.

    Les deux services mentionnés ci-dessus utilisent les données de Google Maps. Ils ne sont donc qu’une manière rapide de chercher dans cette base de données – et s’ils sont gratuits et efficaces, c’est parce que l’accès à cette base de données l’est elle-même.

    Plus précisément, le travail qu’ils effectuent en coulisses consiste à se connecter à l’API de Google Maps, et d’y adresser une requête en bonne et due forme, puis en traduire la réponse sous une forme simple. Une API (Application Programming Interface, interface de programmation) est, dans ce contexte, l’équivalent informatique d’un guichet : elle a ses conditions d’ouverture et d’accès (est-ce qu’il faut s’identifier, combien de requêtes sont autorisées sur une période de temps donnée, à quels tarifs, etc.), et ses “formulaires”, c’est-à-dire la forme que doivent prendre les requêtes, et celle selon laquelle sont renvoyées les réponses. Bref, c’est la manière de communiquer avec une boîte noire[2].

    Il existe plusieurs autres bases de données cartographiques, et une multitude de services de géocodage associés ; voir ce blog pour un comparatif des différents services gratuits. On présente ici quelques lignes de code R qui permettent d’interroger directement l’API de Google Maps avec R, et d’en exploiter (un peu) plus complètement les possibilités.

    Un exemple : les lieux de culte à Paris

    Dans l’exemple qui suit, on cherche à cartographier les lieux de culte à Paris. Par souci de simplicité, on part de données disponibles sur Wikipédia : une page y recense environ 250 édifices religieux à Paris. Il y a certainement bien plus de lieux de culte ; cette liste n’est probablement pas exhaustive, ni particulièrement claire. Elle a cependant le mérite de comporter des informations sur les grandes religions monothéistes, et se prête bien à la cartographie, donc elle nous suffira pour aujourd’hui.

    Concernant l’adresse, l’information y est relativement précise, mais pas parfaite : on a un nom, parfois une rue, mais pas l’adresse exacte. Quoi qu’il en soit, la première étape est de récupérer ces données par un petit programme, et d’en faire un fichier importable sous R[3]. Ce fichier est disponible ici, mais pour plus de facilité, on l’importera directement avec R dans un instant.

    C’est de ces données imparfaites qu’on part. Mais Google Maps a l’avantage d’être assez précis, même à partir de données approximatives.

    Interroger Google Maps par son API

    On va donc demander nos informations à l’API Geocode de Google Maps, qui est gratuite jusqu’à un certain seuil, et sur laquelle on peut facilement multiplier les requêtes : jusqu’à 2500 par jour, sur un même ordinateur – la fonction geocode du package dismo, utilisant le même service, est elle aussi limitée de cette façon. Pour travailler avec plus de données, il faudrait soit payer, soit utiliser un autre moteur de recherche (Yahoo permet 50.000 requêtes gratuites par jour, Bing 10.000 ; OpenStreetMap 86.400).

    Une API, comme on l’a dit, est une sorte de guichet. Les informations échangées ont ainsi l’air barbare, mais se comprennent, comme les formulaires administratifs, en lisant patiemment les modes d’emploi. Ici, l’API s’utilise simplement en demandant l’ouverture d’une page web. “L’adresse” de cette page est en réalité le contenu de la requête, formulée selon une syntaxe spécifique. On lit dans la documentation que celle-ci est de la forme suivante :

    http://maps.googleapis.com/maps/api/geocode/xml?address=LIEU&sensor=false

    où on remplace LIEU par le lieu dont on veut déterminer les coordonnées (soit ce qui est dans la troisième colonne du tableau, dans l’image ci-dessus). Il n’y a pas besoin de beaucoup nettoyer ces noms de lieux, par exemple enlever les accents n’est pas nécessaire. Comme tout est à Paris, pour plus de précision on ajoutera également le nom de la ville à la fin de l’adresse, et celle du pays (et nous épargner ainsi le tri parmi les villes homonymes du Texas ou de l’Illinois).

    # Lecture du fichier de données
    lieux.culte <- read.csv("http://jourdan.ens.fr/~eollion/documents/culte.csv")
    
    # On crée une variable vide, qui va contenir les requêtes
    requetes <- NULL
    
    # Traitement de chacune des adresses
    for(i in 1:nrow(lieux.culte)) {
    
      # Lit l'adresse, et remplace les espaces par "+" (syntaxe de l'API)
      lieu <- lieux.culte[i, "ADRESSE"]
      lieu <- gsub("\\s+", "+", lieu)
    
      # Construction de la requête
      requetes[i] <- paste("http://maps.googleapis.com/maps/api/geocode/xml?address=",
                           lieu,
                           ",+Paris,+France",
                           "&sensor=false",
                           sep="") 
    
    }

    En deux mots, cette partie du programme: crée une variable (requetes), copie grâce une boucle (for) la variable ADRESSE de chaque ligne du tableau lieux.culte tiré de Wikipédia, en la mettant en forme pour l’API, c’est à dire en remplaçant les espaces par des +. On peut le vérifier en examinant le vecteur requetes obtenu :

    [1] "http://maps.googleapis.com/maps/api/geocode/xml?address=Pagode+de+Vincennes,+bois+de+Vincennes,+Paris,+France&sensor=false"
    [2] "http://maps.googleapis.com/maps/api/geocode/xml?address=Temple+bouddhique,+dalle+des+Olympiades,+Paris,+France&sensor=false"
    [3] "http://maps.googleapis.com/maps/api/geocode/xml?address=Temple+taoiste,+rue+du+Disque,+Paris,+France&sensor=false"

    Collecter les données géographiques pour chaque adresse

    Si on ouvre l’une de ces "adresses" dans un navigateur, le site nous renvoie une page (en réalité un fichier XML), qui contient plusieurs informations, dont les coordonnées lat/lon. Le but maintenant est de les extraire de chacune de ces pages. C’est encore une fois assez simple, puisque les données sont structurées clairement, et toujours de la même façon. C’est ce que fait le code suivant :

    # Module nécessaire à l'exploration des résultats
    library(XML)
    
    # Variable dans laquelle on va stocker les résultats
    lieux.culte.latlon <- NULL
    
    # Traitement de chacune des requêtes
    # - ATTENTION : prend environ 10 minutes ici
    for(i in 1:length(requetes)) {
    
      # Envoie la requête, reçoit la réponse, analyse sa structure
      reponse.xml <- readLines(requetes[i])
      reponse <- xmlTreeParse(reponse.xml, useInternalNodes=TRUE)
    
      # Traitement des résultats ; on ne prend que
      # la première réponse (result[1] dans ce qui suit)
    
      # On initialise comme NA
      latitude <- NA
      # Si la valeur existe, remplace NA (sinon reste NA)
      latitude <- xmlValue(reponse[["//result[1]//geometry/location/lat"]])
    
      # Longitude : idem
      longitude <- NA 
      longitude <- xmlValue(reponse[["//result[1]//geometry/location/lng"]]) 
    
      # Champ adresse de la réponse : idem
      adresse.recue <- NA 
      adresse.recue <- xmlValue(reponse[["//result[1]//formatted_address"]]) 
    
      # Mise des résultats ensemble, sous forme de dataframe
      latlon.etc <- cbind(lieux.culte[i,], requetes[i], latitude, longitude, adresse.recue)
      lieux.culte.latlon <- rbind(lieux.culte.latlon, latlon.etc)
    
      # Pause de 3 secondes - courtoisie envers le serveur 
      Sys.sleep(3)
    
    }

    Pas besoin de tout comprendre pour s’en servir, mais voici quelques explications tout de même. On crée tout d’abord un objet vide (lieux.culte.latlon), puis on traite une à une les requêtes préparées précédemment (boucle for). La réponse à chacune de ces requêtes est un fichier XML (proche cousin du HTML), dont on analyse la structure en arbre (xmlTreeParse), qui est alors stockée dans l’objet reponse.

    On navigue ensuite, pour récupérer les informations qui nous intéressent, grâce à la syntaxe XPath (un billet bientôt sur ce sujet, mais de nombreux tutoriels sont disponibles, par exemple ici). Une petite précaution (initialiser à NA les variables de résultats) assure que, dans les cas où la donnée recherchée par le chemin XPath spécifié n’existe pas, la valeur indiquée soit NA (ce qui permet de repérer les erreurs facilement).

    Enfin, on colle ces informations et d’autres dans une variable (latlon.etc) pour chaque ligne, qu’il ajoute à l’objet lieux.culte.latlon pour chaque nouvelle valeur de i. Pour terminer, Sys.sleep est une commande qui permet de faire prendre une pause au script (ici de 3 secondes). C’est très conseillé, afin de ne pas trop solliciter le serveur - par courtoisie, et parce que sinon ce dernier pourrait vous refuser l’accès.

    Le résultat est visible dans l’objet lieux.culte.latlon : à côté de l’adresse, vous avez maintenant les coordonnées. La variable adresse permet ici de vérifier que les données correspondent bien spécifiquement au lieu demandé. En effet, dans le cas inverse, ce champ indique seulement Paris (il faut alors recoder à la main, ou préciser quelque chose dans l’adresse).

    On a visualisé les données à l'aide d'une rapide carte. Le premier résultat (voir image en haut de cette page) est qu'il y a des églises un peu partout dans Paris, ce qui n'est pas révolutionnaire. Plus précisément, un zoom sur la zone de la Bastille montre l'alignement de synagogues, certaines dans le Marais, et d’autres à proximité. En revanche, le cas de l'Islam est très mal représenté ici, mais c’est dû à un effet de sources, à savoir qu'on est parti des édifices religieux, et pas des simples lieux de culte ; or la distinction est particulièrement importante dans le cas de cette religion, comme on le verra dans un prochain billet.

    Lieux de culte près de Bastille

    Pour aller plus loin

    On vient, dans cet exemple d’utilisation de l’API de Google Maps, de réinventer la fonction geocode de dismo mentionnée plus haut, tout en contrôlant mieux les résultats obtenus.

    On a ce faisant utilisé une API de type REST, qui est un standard très répandu. Or les autres services que Google, comme OpenStreetMap, MapQuest, Bing, Nokia, etc., disposent rarement d’une fonction directement disponible sous R, mais offrent tous des API, dont souvent l'une de ce type.

    La syntaxe est alors extrêmement proche de celle qu'on a employée ici. Il est alors possible d'utiliser, par exemple, le projet Nominatim de la fondation Open Street Map, dont la limite d'utilisation est d'une requête par seconde (soit 86.400 par jour - ce dernier fait par ailleurs partie d'un projet plus général de mise à disposition gratuite de données géographiques. Les requêtes se font de la même manière, comme l'explique cette page de documentation, et l'extraction des données ne suppose qu'un léger ajustement[4]. Essayez donc !


    1. Merci à Baptiste Coulmont pour l’information.  ↩
    2. Le terme d’API est en réalité utilisé, en informatique, de façon un peu plus large ; toutefois l’analogie du guichet et de la boîte noire reste globalement correcte.  ↩
    3. Voir les tutoriels efficaces de F. Guillem sur son blog
    4. Remplacer xmlValue(reponse[["//result[1]//geometry/location/lat"]]) par xmlGetAttr(reponse[["place[1]"]], "lat") pour la latitude, et un équivalent pour la longitude.

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Election 2012: beaucoup de data, pour quoi ?

    La saison 2 de l’élection présidentielle s’est achevée hier avec les résultats que l’on sait, le temps de l’analyse à froid peut commencer. Du point de vue des données produites et publiées, on peut voir quelques tendances.

    Du côté de la prédiction du vote, la vedette de l’élection, le blog FiveThirtyEight du New York Times, a finalement eu bon sur toute la ligne. Le journal a donc réussi à annoncer le résultat avec une faible marge d’erreur. Le matin de l’élection, il prévoyait 313 grands électeurs et 91% de chances de victoire à Obama.

    Les prédictions de FiveThirtyEight, le matin de l’élection

    Sa méthode ? Une compilation de sondages publiés état par État, et redressés « à la main », c’est-à-dire selon une méthode tenue secrète. D’autres faisaient cela depuis longtemps, mais ici son principal animateur, le statisticien Nate Silver qui officiait pour la deuxième fois après 2008, a gagné une visibilité internationale, notamment en devenant la cible des républicains qui l’accusaient de partialité (qu’il revendiquait d’ailleurs au plan personnel, mais pas pour ses statistiques).

    C’est d’autant plus remarquable que sa méthode pouvait paraître fragile : compilation de résultats de sondages réalisés État par État, ses mesures était sensibles à tous les biais classiques qu’on impute aux sondages (sous-déclaration de certaines opinions, partialité des redressements). Et aux corrections « à la main » (au doigt mouillé, diraient leurs détracteurs) réalisées par les sondeurs, il a ajouté sa propre formule de redressement pour pondérer les biais éventuels des différents sondages.

    Cette approche, qui ferait bondir un étudiant de statistiques de première année, a finalement été couronnée de succès. Probablement parce qu’en dépit des biais multiples et accumulés, la répétition dans le temps des mesures (par institut) comme la multiplicité des mesures (plusieurs instituts) lui donnait une bonne estimation des variations d’opinion des électeurs dans certains états. Peut-être aussi que les comportements de non-réponse, ou de sous-déclaration, sont moins difficiles à contrôler dans un système bipartisan ? Certains commentateurs soulignent par ailleurs son érudition d’électoraliste, y compris au niveau local. Finalement, en dépit de sa canonisation comme sorcier des chiffres, c’est peut-être avant tout en analyste politique minutieux qu’il devrait être regardé ?

    Résultats 2012, par comté

    Du côté de l’usage des données personnelles, la présidentielle 2012 a révélé un usage encore plus extensif de celles-ci. Les équipes de campagne des candidats ont cette fois-ci fait une orgie de données, parfois aux limites de l’intrusion dans la vie privée. En 2008, les équipes de McCain et d’Obama avaient largement eu recours aux réseaux sociaux pour faire campagne. Ils avaient aussi, plus discrètement, mis en place des bases de données pour faire inscrire puis faire voter (sur les campagnes et l’usage des bases de données en 2008, voir ici). Au porte-à-porte façon parti communiste des années 1950, ils avaient ajouté la mise en place de système de collecte et d’échange d’informations entre militants. Certains appellent, d’autres rendent visitent, et inscrivent sur les listes électorales. D’autre encore se conduisent au bureau de vote le jour de l’élection (ou durant le mois qui précède, si l’état permet le « vote early »).

    Pas de changement cette fois-ci, mais les techniques étaient encore plus précises. Des cookies (des petits programmes qui suivent vos parcours sur internet) permettaient de proposer des publicités ciblées. Inutile en effet de proposer des messages du genre « Dieu veut que vous votiez Romney » si l’usager vient de passer une heure sur des sites à caractère pornographique (quoique…). Plus précis encore : les bases de données à partir desquelles les équipes de campagne appellent les électeurs potentiels étaient en permanence complétées par des données sur leurs habitudes personnelles, voire par des informations sur leurs connaissances. Une fois leurs listes de contact (Facebook, LinkedIn, etc) minutieusement épluchées par un programme informatique, les équipes de campagne tentaient de trouver un bénévole qui les connaitrait. La collecte de ces informations reste toutefois un tabou, et les accusations d’intrusion dans la vie privée n’ont pas manqué.

    La campagne a donné lieu à de belles visualisations. Les donations ont eu droit à une carte animée très (trop ?) léchée, mais surtout les données, y compris individuelles, sont facilement accessibles sur le site de l’administration des finances de campagneThe Atlantic propose une rapide rétrospective des cartographies électorales du New York Times, dont celle de 1896, qui rappelle que les équilibres partisans étaient exactement inversés, avec un Sud démocrate – ce qui ne veut pas dire de gauche, et encore moins à l’époque.

    L’élection présidentielle de 1896, par le NY Times

    NPR a fait dans les extrêmes d’un point de vue technique. D’un côté, la radio publique a proposé un bon vieux tableau des scores digne des matches de baseball pour suivre les résultats en direct. À force de valoriser la prouesse graphiques, on oublie que ces représentations fournissent rapidement une somme d’information finalement bien plus importante. Le Big Board de NPR était un site particulièrement utile pour suivre les résultats au fur et à mesure de leur arrivée.

    NPR Big Board

    De l’autre, une série de cartes basées sur le principe d’un morphisme : la surface représentée est proportionnelle à une variable, comme le nombre de grands électeurs, ou ci-dessous l’argent dépensé. Cela permet de bien montrer qu’en dépit des déclarations des candidats prétendant parler au pays entier, certains États ont été au cœur de toutes les attentions.

    Dépenses en publicité par Etat (NPR)

    Ce genre de graphique laisse songeur. Sur le caractère démocratique de l’élection, avec une campagne qui se joue sur cinq États à coup de dépenses de campagnes inouïes. Au total, ce sont 2,6 milliards de dollars qui ont été dépensés à des fins partisanes pour cette campagne (à comparer aux quelques 60 millions d’euros pour l’élection présidentielle française de 2012, avec 10 candidats). Sur les résultats aussi, puisqu’on aboutit finalement à un statu quo ante remarquable : le Président est le même, le Sénat reste démocrate, et la Chambre des représentants est toujours entre les mains des républicains. Du point de vue républicain, le retour sur investissement est finalement assez mauvais.

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Collecte de données et débat public

    Pour la deuxième fois en moins de six mois, le débat sur les inégalités de santé fait la première page des journaux grâce… aux techniques de collecte automatique de données. En avril dernier, Le Monde avait fait sa première page sur les dépassements d’honoraires en France. Après avoir « aspiré » le site de l’Assurance Santé (www.ameli-direct.fr), les journalistes avaient publié une carte des dépassements d’honoraire à Paris. La procédure était expliquée ici par le data-journaliste du Monde, A. Léchenet.

     

    Dépassements d’honoraires à Paris

     

    Cette semaine, c’est l’UFC-Que Choisir qui recommence, en croisant cette fois dépassements d’honoraire et déserts médicaux. La technique comme la base de données sont les mêmes, les résultats encore plus complets. Véritables outils de communication politique, ils sont présentés avec un communiqué de presse, un rapport complet, une carte interactive, et une interface qui permet d’enregistrer les témoignages individuels (dans un but évident d’advocacy).

    Carte des déserts médicaux à Paris – UFC Octobre 2012

    Nul doute que ce travail a été évoqué lors des négociations entre assurance maladie, praticiens et mutuelles qui se terminent en ce moment. Depuis peu, mais de manière croissante, la collecte automatique de données s’invite donc dans certains débats politiques (pour un autre exemple récent : en période de discussion sur le cumul des mandats, l’association Regards Citoyens, avait proposé des informations sur l’activité des parlementaires).

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Vers une data-sociologie?

    Pierre Mercklé vient de publier (sur Quanti) une présentation que nous avions faite en juin sur le thème des « big data » en sciences sociales. Elle propose un premier tour d’horizon des outils de collecte automatisée de données sur internet et évoque plusieurs enjeux dont il sera question ici

    Ces vingt dernières années ont vu le développement de techniques et d’outils informatiques qui permettent d’automatiser la collecte et la mise en forme de données, en particulier celles provenant d’internet[1]. Plus puissantes et plus faciles d’accès, ils sont aussi de plus en plus utilisés dans de nombreuses professions. Leur diffusion intéresse donc les chercheurs en sciences sociales, à la fois parce qu’elles permettent de collecter rapidement des informations sur divers aspects du monde social, mais aussi parce qu’elle conteste un peu plus leur monopole dans la production de données quantitatives. On se propose ici de réaliser un rapide tour d’horizon sur cette question qui souligne le potentiel, et évoque certains enjeux, du recours croissant à ces méthodes pour nos disciplines…. Lire la suite sur Quanti

    Voir aussi les remarques et compléments apportés sur Polit’bistro

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Mesurer l’espace télévisuel accordé à un sujet

    Cet exemple condense trois des éléments qui sont développés dans ce blog : la présentation d’une base de données publique et son utilisation; des éléments de programmation, et des résultats de visualisation des données.

    Les émissions de télévision, un matériau sous-exploité

    Beaucoup de chercheurs en sciences sociales sont amenés à s’intéresser au traitement médiatique d’un sujet donné. Pour les sources, si les dépêches d’agence étaient autrefois privilégiées du fait de leur brièveté, c’est aujourd’hui vers la presse écrite qu’ils se tournent majoritairement. Il s’agit en effet d’une source commode d’accès : bien archivée, disponible de façon exhaustive en bibliothèques et de plus en plus directement sur internet et interrogeables par mots-clés (Factiva, par exemple).

    Cependant, on pourrait contester cet usage privilégié :

    • le public touché est très restreint par rapport à celui de la télévision, et cet écart ne fait que s’accroître
    • méthodologiquement, le contenu textuel brut est long et malaisé à traiter. En particulier, il ne peut — sauf à recoder intégralement — distinguer les usages propres et figurés d’un mot (et donc faire la différence entre deux occurrences aussi différentes que « le danger des sectes » et « François Bayrou, chef de secte », la première seulement étant intéressante pour nous)

    Les contenus télévisuels sont paradoxalement très peu représentés dans les études quantitatives qui prennent les médias pour objet. Pour paraphraser Solow, on pourrait presque dire que la télévision est partout, sauf dans les statistiques des chercheurs en sciences sociales. Le problème principal est d’ordre technique : comment coder et synthétiser rapidement l’information sur les programmes télévisuels ?

    Une source commode et fiable : la base de l’INA

    Complétude

    En France, l’existence et l’accessibilité des archives de l’Institut national de l’audiovisuel (INA) permettent fournir de pallier cette difficulté. Au titre du dépôt légal de l’audiovisuel français, l’INA conserve l’ensemble des programmes diffusés par les différentes chaines de télévision ou de radio. Le recensement opéré est ainsi a priori complet, et chaque document est déjà codé de manière relativement fiable, précise et complète, par mots-clefs et selon diverses informations (chaine de diffusion, durée, type d’émission…).

    Fiabilité

    Le codage est réalisé par le personnel au moment du dépôt des fichiers. Certes imparfait (les fiches sont remplies par des personnes différentes, sur une période de plus de quinze ans), il est cependant relativement efficace. Les recoupements ponctuels effectués sur la base des recensions faites par d’autres moyens montrent que le codage n’est pas arbitraire, et que la chronologie que l’on peut en tirer correspond assez bien à celle obtenue par d’autres moyens. De fait, tout sujet relativement institué, même s’il a des frontières floues, a de bonnes chances d’être bien représenté. C’est par contre moins vrai des « nouveaux » sujets : il faut sûrement attendre qu’un « problème public » soit reconnu comme tel pour qu’on puisse trouver une notice qui le mentionne). De manière générale, il est de bonne politique de chercher à « étendre » les mots clés, c’est-à-dire de faire des requêtes pour des termes proches (par exemple, pour secte : gourou, manipulation mentale, etc.), et de compiler tous les résultats obtenus.

    Accessibilité

    Si l’INA est une institution accueillante[1], il se trouve que depuis peu, une partie de sa base de données est accessible directement et gratuitement par internet. La période couverte commence au 1er janvier 1995, et la base recense les différents médias hertziens et câblés ainsi que les radios, au fur et à mesure de leur création. La recherche par mots-clefs permet donc une étude rapide et exhaustive sur un terme donné.

    Un petit obstacle technique

    Comment télécharger les résultats correspondant à une requête particulière, pour les traiter finement (nettoyages, tris croisés, représentations graphiques) ? Ceux-ci sont présentés sous la forme d’un tableau de texte, qui devrait être simple à utiliser, par un copier-coller dans un tableur par exemple.

    Malheureusement, cela se révèle impossible, pour des raisons liées au fonctionnement du site[2]. Cependant, comme le navigateur affiche une forme régulière (tableau), il doit bien y avoir un moyen de récupérer les données affichées en gardant la régularité de cette forme.

    On se propose de présenter ici une procédure simple qui permet de résoudre ce problème. Elle passe par le recours à quelques lignes de programmation, ici en R. On présente ici rapidement le code, qui est réutilisable tel quel. L’explication détaillée de tous les élélemnts de la syntaxe fera l’objet de prochains billets.

    Une procédure de collecte automatisée des données

    Faire une recherche sur le catalogue en ligne

    Dans le cadre d’une recherche sur la question des sectes en France, on a tenté de trouver une manière de faire une étude exhaustive des émissions télévisuelles sur le sujet. Une fois connecté au catalogue en ligne, on saisit alors la requête que l’on souhaite effectuer dans un formulaire simple. Ici, on veut obtenir toutes les occurrences du terme « secte » ou « sectaire » (au singulier et au pluriel), du 1er janvier 1995 au 31 décembre 2010, sur les chaines hertziennes.

    Formulaire de requête sur la base de l’Inathèque

    On obtient environ 2500 résultats, qu’on veut conserver afin de les consulter ; on clique alors sur « Afficher tous les résultats ». Le navigateur affiche lentement l’ensemble de la page (plusieurs minutes parfois), et c’est cette page que l’on va manipuler pour ensuite pouvoir l’ouvrir avec un tableur classique ou un logiciel de statistiques. Notons pour l’instant l’adresse (URL) de cette page, qui est de la forme http://inatheque.ina.fr/Ina/ws/dltv/dlweb/general avec de nombreux signes cabalistiques après (si vous regardez bien, vous verrez les mots que vous avez demandé entre deux signes %).

    Extraire les données de la page web

    On va ensuite travailler avec R, à partir de cette URL, pour la traduire en un fichier lisible par un tableur (au format .csv : simple fichier texte où les données sont séparées par des points-virgules).

    Installer R

    Pour l’installation et les premiers usages de R, on se permet de renvoyer au site du programme. On suppose aussi que vous disposez d’un tableur (de type Excel ou, mieux, Libre Office). Pour faire fonctionner le programme, il faut en plus installer deux modules[3] spécifiques de R : RCurl et XML, qui permettent de télécharger la page web et d’en extraire les informations qui nous intéressent.

    Charger la page et en extraire les informations

    Un petit programme permettant de télécharger et traiter la page dont on a noté l’URL :

    library(RCurl)
    library(XML)
    
    webpage <- getURL("http://inatheque.ina.fr/Ina/ws/dltv/dlweb/general/ResultSet?rpp=-50&upp=0&w=NATIVE%28%27ITOUSTEXT+ph+like+%27%27secte%27%27%2C%27%27sectes%27%27%2C%27%27sectaire%27%27%2C%27%27sectaires%27%27%27%29&r=1", .encoding="LATIN1")
    page <- readLines(tc <- textConnection(webpage)); close(tc)
    arbre.page <- htmlTreeParse(page, useInternalNodes = TRUE)
    
    emissions <- xpathSApply(arbre.page,
                             "//div[contains(@class, 'result_line')]",
                             xmlValue)
    
    emissions.clean <- gsub("\\t|\\n", "", emissions)
    emissions.final <- gsub(" {20,180} ", ";", emissions.clean)
    
    write.csv(emissions.final,
              file="/Users/eollion/SectesTV/INA-sectes.csv",
              fileEncoding='latin1')
    

    Les deux premières lignes chargent les modules. L’opération de téléchargement de la page s’effectue ensuite (getURL), puis on analyse la structure de la page web chargée (on parse du HTML).

    Le bloc suivant (xpathSapply) sélectionne ce qui correspond aux lignes du tableau affichées dans le navigateur. Elles sont identifiées d’une certaine manière dans le code HTML pour être affichées sous forme de lignes, et c’est ainsi qu’on peut les repérer ; ça paraît obscur, mais il y a des outils pour se repérer et écrire ce genre de commandes assez facilement. Voir chez François Guillem pour des bonnes premières explications sur ce point.

    Ce qu’on a récupéré dans emissions ressemble presque à ce qu’un navigateur afficherait, sauf qu’ici les écarts de position sur la page sont représentés par des espaces. Il suffit de les remplacer par des points-virgules, et après un peu de nettoyage d’espaces, on a le notre tableau sous format .csv. Il ne reste plus qu’à l’écrire dans un fichier en sortie.

    Voilà, normalement on peut ouvrir le fichier produit dans un tableur, et en principe tout va bien, y compris les accents (il se peut qu’Excel soit capricieux, on verra plus tard comment contourner ça). On peut alors faire un peu de nettoyage si nécessaire, et de recodage, par exemple les chaînes (rechercher « La Cinquième » et remplacer par « France 5 », etc.), ou pour mettre ensemble des « types » d’émissions proches.

    Après constitution de la base, nettoyage et recodage de celle-ci, on en a conservé 1834 entre le 1er janvier 1995 et le 31 décembre 2010. La table est donc prête, on peut procéder à des représentations graphiques, ou des statistiques, et commencer les analyses sociologiques.

    Les graphiques ci-dessous sont un exemple de visualisations possibles et rapides grâce à ggplot, moyennant quelques manipulations, que l’on abordera prochainement.

     

    Représentation par chaine
    Histogrammes

     


    Représentation par type de programme et par chaine
    Polygones de fréquence

     

    Représentation par chaine

    Nombre de programmes par jour
    (période de 2 mois)

     


    1. De nombreux chercheurs ont d’ailleurs tiré profit des opportunités offertes par l’Inathèque. Située dans les locaux de la Bibliothèque nationale de France, elle met à disposition du public un ensemble important de ressources : les enregistrements comme les notices sont librement consultables, et un service d’aide à la recherche dans la base de données de l’INA est proposé.  ↩

    2. On peut imaginer que c’est volontaire, le résultat d’une stratégie visant à éviter le pillage des données par des robots.  ↩

    3. Packages et modules sont deux mots pour la même chose. Aller dans le menu « Installateur de Package », cliquer sur « Acquérir liste », rechercher ceux que vous souhaitez (ici RCurl et XML), puis installer.  ↩

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts

    Data Sciences Sociales

    Ces dernières années ont vu la prolifération tant des « données » accessibles que des outils pour les analyser. Le développement d’internet offre une masse d’informations potentiellement infinie ; la disponibilité croissante de bases de données importantes (directement ou après un travail de compilation) ; et les différentes transformations technologique (accessibilité, capacité de traitement) font que des masses d’informations sont désormais à portée de clic. Par ailleurs, une partie des interactions sociales a désormais lieu sur internet, et leur observation exige de recourir à des outils informatiques.

    Cette profusion de données modifie non seulement les pratiques quotidiennes de tout un chacun ; elle transforme aussi en profondeur de nombreuses professions. À l’instar du journalisme — qui a récemment vu se développer une sous-branche spécialement consacrée (le « data journalisme ») — et du marketing, les sciences sociales sont elles aussi interrogées par cette profusion nouvelle. Cette « révolution des données » est en effet à la fois riche de potentiels pour nos disciplines, d’abord par le matériau qu’elle met à disposition des chercheurs. Elle est également un nouvel outillage, d’intérêt général, que tous les chercheurs en sciences sociales gagnent à connaître a minima, sinon à ajouter complètement à leur panoplie. Elle est enfin lourde d’enjeux, à la fois en interne quand il s’agira de définir ce qui fait la qualité de ces données, et en externe puisque ces techniques font que d’autres peuvent remplacer les sociologues dans la production de représentations quantifiées du monde social.

    étienne

    Chercheur CNRS (SAGE-Université de Strasbourg). Données numériques, sociologie politique, épistémologie des sciences sociales.

    More Posts