Affichage des articles dont le libellé est science. Afficher tous les articles
Affichage des articles dont le libellé est science. Afficher tous les articles

28 février 2011

Compléter sa CD-thèque : Set Cover pour une intégrale Dvorak ?

Un peu de programmation linéaire en nombres entiers aujourd'hui, appliquée à la constitution d'une collection de CD. Depuis son édition intégrale des oeuvres de Mozart en 2005, Brilliant Classics a récidivé avec Bach en 2006, Chopin et Beethoven en 2007, Brahms et Haydn et Rachmaninov en 2008. A chaque fois avec des prix canons. Pour Schubert et Dvorak, en revanche, il faut être patient, et ça m'embête bien...

Alors comment réunir une intégrale d'un compositeur en achetant le minimum de CD (sans pirater bien sûr !) ? Cela correspond précisément au problème SetCover. Les données : des éléments (les oeuvres), et des ensembles de ces éléments (les CD qui réunissent une ou plusieurs oeuvres). Le problème : sélectionner un minimum de ces ensembles pour couvrir tous les éléments. Si vous voulez optimiser non pas le nombre de CD mais le prix total, il faut considérer la version pondérée du problème, en attribuant à chaque CD un poids qui correspond à son prix, et en cherchant à couvrir tous les éléments par des ensembles dont la somme des poids est minimale.

Illustrons cela sur les 9 symphonies de Dvorak. Le graphe biparti ci-dessous représente les CD sur la ligne du haut, les symphonies sur la ligne du bas, et chaque CD est relié aux symphonies qu'il contient.

La solution est montrée en rouge. Comment l'ai-je trouvée ? Le problème est NP-complet, il n'existe donc probablement pas d'algorithme rapide (qui s'exécutera en temps polynomial par rapport à la taille de l'entrée du problème) pour le résoudre. Cependant, il existe un moyen rapide en pratique pour de petites instances du problème : le coder par un programme linéaire en nombres entiers (cette expression barbare est déjà apparue dans le billet précédent). Vulgarisons un peu pour montrer comment ça fonctionne, en utilisant les mêmes notations que l'article Wikipedia sur SetCover : il s'agit d'associer à chaque CD appelé S une variable binaire c(S) qui prend la valeur 1 si le CD fait partie de la solution, 0 sinon. En appelant x(S) le coût du CD S, pour calculer le coût total de la solution, que l'on cherche à minimiser, il faut faire la somme (pour tout S) des x(S)*c(S). On ajoute des contraintes pour assurer que chaque symphonie est bien présente dans un des CD de la solution : pour toute symphonie e, la somme des c(S), pour l'ensemble des CD S qui contiennent la symphonie e, est supérieure ou égale à 1.

Et maintenant que le problème est ainsi formulé de manière mathématique, comment trouver les valeurs solutions pour les variables c(S) ? En théorie, on résout rapidement une relaxation du problème (c'est-à-dire la version du problème où on laisse prendre à c(S) n'importe quelle valeur entre 0 et 1, comme si on avait le droit d'acheter des portions de CD...), puis une fois cette solution trouvée, on va essayer d'en déduire (et c'est cette étape qui risque de prendre du temps) une solution où les c(S) prennent soit la valeur 0, soit la valeur 1. En pratique, on utilise par exemple le programme GLPK qui est gratuit, et s'installe aussi sous Windows. On commence par s'inspirer du fichier exemple (ou on lit la doc') pour formuler le problème dans le langage voulu, et on obtient le fichier de paramètres dvorak.mod. On exécute alors GLPK avec la ligne de commande :
"C:\Program Files\GnuWin32\bin\glpsol.exe" -m "C:\Program Files\GnuWin32\bin\examples\dvorak.mod"
La réponse s'affiche : "Optimal set cover has cost 4460 with 3 elements with sets: 3 8 16", ce qui correspond à ma solution en rouge qui coûte donc 44 euros 60.

Vous allez me dire que dans une bonne intégrale de musique classique, le prix n'est pas votre critère de sélection. Vous voulez assurer une certaine cohérence dans votre collection, en achetant toutes les symphonies enregistrées par le même orchestre ? Dans ce cas regroupez en un seul tous les ensembles qui correspondent à ces enregistrements. Vous voulez ajouter un critère de qualité ? N'utilisez pas le simple prix comme pondération, mais, par exemple, divisez-le par votre score de qualité pour chaque CD, score d'autant plus élevé que vous appréciez le CD.

Pour Dvorak, malheureusement, cette modélisation n'a pas suffi à résoudre ma quête d'une intégrale en CD, tout simplement parce que certaines oeuvres ne sont à ma connaissance pas enregistrées. En voici la liste, au cas où vous voudriez vous lancer dans des "world premiere recordings", les numéros de référence correspondent au catalogue Burghauser :

  • B11 intégrale des chants du cycle Cyprès,
  • B13 22 Songs,
  • B16 Alfred,
  • B22/B43 Potpourri on King and Charcoal Burner,
  • B48b Nocturne in B major (piano 4 mains),
  • B113 Festival Song,
  • B119 Gallop in E major,
  • B125 Josef Kajetán Tyl,
  • B143 Hymn of the Czech Peasants,
  • B204 Song of the Smith of Lešetín.
A défaut des enregistrements, je suis preneur d'infos sur les partitions ! Et je vous laisse découvrir le reste de son oeuvre sur le site francophone de référence sur Antonin Dvorak.

22 octobre 2010

1000 chercheurs parlent d'avenir

La Fête de la Science a commencé, elle est marquée cette année par la projection sur les murs du Panthéon de 1000 portraits de chercheurs accompagnés d'une phrase sur leur vision de l'avenir (et de vidéos sur le site du CNRS). Pierre Maraval, le photographe à l'origine de ce projet, dévoile les 1000 phrases sur son site web. Voici une visualisation des mots les plus fréquents construite avec le logiciel NuageArboré sur treecloud.org, glissez la souris sur chaque mot pour voir son nombre d'occurrences :


Image SVG

Les distances entre mots calculées ci-dessus le sont d'après les cooccurrences dans des fenêtres glissantes de 10 mots. Mais ces fenêtres peuvent concerner la fin de la phrase d'un chercheur, et le début de la phrase du suivant. Pour éviter cela, il faut télécharger TreeCloud et utiliser la fonction "séparateur" afin que la distance entre mots dans l'arbre reflète le nombre de chercheurs qui les utilisent ensemble dans leur phrase. Si l'on classe chaque chercheur en "sciences exactes", "sciences de la vie" et sciences humaines" (comme dans ce fichier tableur OpenOffice), voici les nuages obtenus par TreeCloud et SplitsTree :

Le voisin du mot "recherche" dans chacun des nuages arborés (respectivement "liberté", "passion", "sauvons") me semble intéressant (même s'il n'est pas nécessairement celui qui est le plus cité conjointement avec "recherche"). Les mots des sous-arbres autour d'"avenir" d'une part et "recherche" d'autre part, me semblent intéressants pour esquisser des visions contrastées de ces domaines. On peut aller plus loin en cherchant le vocabulaire statistiquement sur-représenté dans un domaine par rapport aux deux autres. D'après les calculs de spécificité de Lexico 3, les mots (non vides) sur-représentés sont les suivants :
  • sciences exactes (total de 501 phrases) : univers, Terre, énergie, demain, futur
  • sciences de la vie (total de 379 phrases) : recherche, espoir, mieux, chercher
  • sciences humaines (total de 120 phrases) : pas, passé
A partir du prénom, j'ai également tenté de repérer les mots sur-représentés dans les phrases de 331 chercheuses par rapport à celles de 599 chercheurs. Pas de grosses différences : seuls service (systématiquement dans l'expression "au service de" chez les femmes), recherche et pour, sont sur-représentés chez les femmes alors que plus est sous-représenté par rapport aux hommes.

N'hésitez pas à commenter ces résultats, et proposer d'autres méthodes d'analyse de ce corpus !

14 septembre 2010

Mathématiques des papillotes (2/2) Carambars

La question du nombre de blagues Carambar était restée sans réponse à la fin de l'épisode 1 de mon étude du nombre de citations de papillotes. El Jj s'y est collé sur son blog Choux romanesco, vache qui rit et intégrales curvilignes. De mon côté j'ai également fini de recueillir les blagues (séquences reconstituées ci-contre) de 3 paquets de Carambar qui traînaient depuis un an (j'en suis visiblement moins friand que des papillotes...), qui me permettent d'apporter quelques nouvelles précisions sur les obstacles à l'application de la "méthodologie-papillotes" à l'estimation du nombre de blagues Carambars, et de proposer des méthodes alternatives. J'avais évoqué ces deux problèmes, et El Jj mentionne également dans son billet, en les négligeant toutefois pour le calcul :
  • certaines blagues sont plus longues que d'autres
  • certaines blagues sont présentes avec des doublons, c'est-à-dire qu'elles apparaissent à plusieurs endroits dans la "chaîne de blagues" (entourées de blagues voisines différentes)
A cause de ces deux phénomènes, toutes les blagues ne sont pas équiprobables. Une remarque sur les données permet de se débarrasser du second problème : en regardant attentivement les emballages, on se rend compte que le recto coïncide toujours avec le verso. Je m'explique : si l'on tombe deux fois sur la même blague au recto, le verso, visible par transparence, est toujours calé au même niveau vertical... sauf quand la blague apparaît en doublon (avec un voisinage différent) ! Ainsi, si l'on trouve une blague en double avec un calage vertical différent pour les motifs au verso, on peut les considérer comme des blagues différentes lors du calcul. Ces doublons sont indiqués par les cadres de couleur dans le scan des séquences de blagues.

Quant aux autres méthodes d'estimation de tailles d'une population (de blagues), je les dois à Cécile qui m'a indiqué celle de la capture-recapture, aussi appelée mark-recapture en anglais (comme quoi une mi-temps d'Uruguay-Allemagne peut aussi être scientifiquement enrichissante). Elle est basée sur l'indice de Lincoln-Petersen, le second l'ayant utilisée en 1894 sur des poissons, et le premier en 1930 sur des oiseaux. Elle consiste à capturer M animaux, à les marquer puis à les relâcher. S'il y a un total de N animaux dans le périmètre choisi, et que chaque animal a la même probabilité d'être capturé, on a une probabilité de M/N de recapturer un animal marqué. Ainsi, si l'on effectue une seconde capture de n animaux, on s'attend à en obtenir nM/N marqués. En appelant m le nombre d'animaux marqués effectivement recapturés, on s'attend donc à avoir m=nM/N, et donc on estime le nombre total d'animaux à nM/m (indice de Lincoln-Petersen).

Appliquons la méthode sur les blagues Carambar, en prenant par exemple M=10. Mangez assez de Carambar pour trouver 10 blagues différentes. Mangez alors n Carambars et comptez ceux dont la blague associée faisait partie des 10 choisies au départ. Vous vous attendez à obtenir m=nx10/N, et donc le nombre estimé de blagues différentes est 10n/m.

Ce cours sur la biodiversité évoque également, page 6, une estimation du nombre d'espèces par une détermination graphique de l'asymptote de la courbe qui indique le nombre total d'espèces observées en fonction du temps d'observation. L'avantage est que pour cette méthode il n'y a pas besoin de faire d'hypothèse sur l'équiprobabilité d'observer chaque espèce, contrairement à celles présentées précédemment. Toutefois elle semble peu précise, et très dépendante du modèle de régression choisi. Quant à l'application aux Carambars, il suffit de l'utiliser sur la courbe du nombre total de blagues trouvées en fonction du nombre de Carambars mangés (en rouge sur la diapo 17 ici).

Vous voilà prêts à faire vos estimations avec ces méthodes, en évaluer la fiabilité (m'indiquer de la littérature sur le sujet ?), ou en proposer d'autres... A vous de jouer !


Le billet d'El Jj : ¡ Ay, Carambar !
Le premier billet de la série : Mathématiques des papillotes (1/2)
Un article du Monde suite à la blague du retrait des blagues Carambar : Nos petites madeleines

29 novembre 2009

Mathématiques des papillotes (1/2)

A l'approche des fêtes de fin d'année, c'est l'occasion pour moi de vous parler d'un problème qui m'obsède depuis le collège, et que j'ai enfin résolu, celui de l'estimation du nombre de citations de papillotes (oui, oui, trois compléments du nom successifs, c'est moche).

Alors je ne parle pas des papillotes en tissu de Linette ou de celles brodées par Brodstitch pour les fêtes, encore moins de la meilleure façon de préparer le poisson, mais de cette délicieuse friandise en chocolat enrobée d'un petit papier contenant blague ou citation, le tout dans un papier extérieur brillant. Ce concept (associé en plus à la charmante légende du sieur Papillot et de son apprenti chocolatier) m'a toujours passionné, et je lis toujours la citation avec autant d'attention que je mastique le chocolat (je ne suis visiblement pas le seul dans ce cas). Et c'est assez frustrant de retomber sur une citation déjà lue quelques papillotes plus tôt. Voilà pourquoi j'ai commencé à enquêter sur le nombre total de citations de papillotes différentes, pour celles de la marque Révillon (traditionnelle dans ma famille au moment des fêtes, vous comprendrez pourquoi en comparant avec d'autres... et non, ce billet n'est pas sponsorisé :p).

C'est comme ça que depuis le collège, chaque année, j'essaie plus ou moins de garder les citations de papillotes au moment des fêtes, pour résoudre ce problème, avec les moyens du bord. Alors comme sur un papier, on arrive à lire deux citations (au moins partiellement), après avoir remarqué que deux citations qui se suivaient dans un papier étaient systématiquement consécutives, j'ai commencé par les scotcher pour espérer reconstruire un jour la séquence intégrale des citations. Au gré des déménagements, ces données ont été perdues, retrouvées, et une année j'ai constaté avec horreur que la consécutivité d'une année précédente n'était plus respectée : la liste de citations avait changé et tout le travail était à refaire !

En licence, devant quelques éléments de proba, je me suis dit qu'il serait certainement possible d'estimer mathématiquement la probabilité de trouver plusieurs fois une même citation en tirant un certain nombre de papillotes, et que ceci me permettrait certainement d'évaluer le nombre total de papillotes en comparant la probabilité théorique et celle trouvée en pratique. C'est seulement l'an dernier que j'ai trouvé une meilleure façon de formuler le problème en terme de probabilités, et j'ai pu finir les calculs cette année. C'est cette approche que je vais maintenant présenter (qui pourrait donner un sympathique exo de khôlle de math sup), j'évoquerai aussi une approche statistique qui donne les mêmes résultats. Pour mes lecteurs qui veulent éviter l'indigestion mais sont intéressés par le résultat de cette enquête mathématique, n'hésitez pas à sauter les paragraphes plus formels pour aller à la réponse en fin de billet, juste après l'image de la courbe.

L'idée consiste à évaluer la probabilité Pd,k(n) de tirer d citations différentes, parmi un total de n citations, au bout de k tirages de citations (en supposant que le tirage de chaque citation a la même probabilité). Par la dégustation de papillotes, on obtient un échantillon de citations où on connaît d et k, et la stratégie va consister à trouver la valeur de n qui maximise Pd,k(n) . Il faut donc calculer trouver une expression de cette valeur, que l'on peut exprimer en terme de mots dans un alphabet. En considérant chaque papillote comme une lettre, et chaque tirage de k papillotes comme un mot de k lettres, la probabilité Pd,k(n) est égale au nombre ad,k(n) de mots de k lettres contenant d lettres différentes divisé par le nombre de mots de k lettres (les lettres étant choisies dans un alphabet de n lettres), c'est à dire nk.

J'ai un peu bloqué sur le calcul de ad,k(n) : on peut le définir de manière récursive, ce qui permet de faire les calculs pour des valeurs assez petites de n, je le détaille dans ce document, mais une remarque de Gergely m'a permis de faire les calculs de manière plus élégante. Ce nombre ad,k(n) peut en effet s'exprimer uniquement en fonction de ad,k(d) : puisque le mot a d lettres différentes, on peut en effet se restreindre à un alphabet de d lettres, en multipliant le résultat par le nombre de projections possibles de ces d lettres sur les n lettres de l'alphabet original (un exemple pour comprendre ça est donné en slide 9 de ce diaporama). Ainsi :
ad,k(k)=ad,k(d).Cnd

Et là, magie, comme on cherche uniquement à trouver le maximum par rapport à n et que ad,k(d) ne dépend pas de n (si vous voulez savoir comment calculer ad,k(d), allez voir par là) :
maxn (Pd,k(n)) = maxn (ad,k(n) / nk) = maxn (Cnd / nk)

Gilles m'a expliqué comment modéliser le problème par une approche statistique, en considérant que le tirage suit une loi multinomiale, et en considérant comme statistique de l'échantillon le n-uplet donnant pour chaque citation son nombre de tirages. Le calcul d'un estimateur de maximum de vraisemblance pour la valeur de n fournit le même résultat, mais cette approche permettrait d'aller plus loin en calculant non seulement une valeur ponctuelle du maximum de vraisemblance mais également un intervalle de confiance. Je ne me suis toutefois pas encore plongé assez longtemps dans le Fourgeaud & Fuchs pour comprendre comment procéder.

Cette formule permet d'effectuer facilement les calculs (même si je bloque encore pour trouver une expression directe de ce maximum) pour localiser le maximum de vraisemblance, en traçant par exemple dans un tableur la courbe de Cnd / nk en fonction de n. L'an dernier, après dégustation de 52 papillotes, j'avais trouvé 40 citations différentes. J'ai voulu compléter mes données, mais les papillotes Révillon ne sont pas vendues au printemps et en été (ils arrêtent apparemment la production à cette période) et j'ai dû patienter jusqu'à cet hiver pour acheter et engloutir deux paquets (ma ligne aura un peu pâti de cette expérience, mais bon... je sers la science et c'est ma joie) : le premier m'a fourni 33 citations différentes sur 42, le second 33 différentes sur 41, l'union des deux 58 citations différentes sur 83. Ceci me donne les quatre courbes suivantes pour P40,52, P33,42, P33,41 et P58,83 en fonction de n :


Le maximum de la courbe est atteint respectivement à 93, 81, 89 et 107. Remarquez que plus l'échantillon est grand, plus le pic est fin : la précision de la méthode s'améliore...

Après avoir obtenu mes premières données, j'avais contacté Révillon pour demander confirmation de l'ordre de grandeur de 93. Ils m'ont répondu qu'il y a en fait 108 citations différentes pour les paquets de la collection "Festive" que j'avais testés. Mes collages font apparaître des cycles de 18 citations, j'ai pu en reconstituer 3 sur 6 :
Bien sûr, j'aimerais appliquer cette méthode d'estimation à d'autres données, par exemple les billets en euros (le site EuroBillTracker permet de récupérer le nombre total, et le nombre de billets différents, de l'échantillon constitué par les billets relevés par les participants au site) ou les blagues Carambar que j'évoque dans cette présentation :


Toutefois, pour ces deux estimations, outre le problème technique de calcul de très grands coefficients binomiaux pour le premier (je cherche un document de référence sur la méthode qui consiste à utiliser des logs pour ce type de calculs sur des grands nombres !), une hypothèse raisonnable (si si, Guyslain !) pour les papillotes ne fonctionne plus : le tirage de chaque billet, ou blague Carambar, n'est pas équiprobable. En effet, pour les billets, je pense que les visiteurs d'EuroBillTracker notent sur le site une plus grosse proportion de la totalité des billets de 5 euros, que de la totalité des billets de 500 euros imprimés. Pour les Carambars, le problème est que les blagues n'ont pas le même nombre de lignes. Ainsi, les blagues les plus longues ont une plus forte probabilité d'apparaître, et donc créent plus de paires que prévu dans un modèle équiprobable...



27 octobre 2009

L'informatique de mêche avec les sciences humaines

Mes véronisations donnent généralement un aperçu de l'utilisation possible d'outils informatiques en sciences humaines, et j'ai essayé d'en savoir plus sur les liens réels entre ces deux domaines en participant vendredi dernier à la journée OSIDMESH (Outils Statistiques et Informatiques pour Doctorants Montpelliérains En Sciences Humaines) organisée par le LIRMM et l'Association Contact. Le bilan en est plutôt positif : un intérêt est sensible de la part des doctorants en sciences humaines, même si tous ne le ressentent pas au même niveau (problèmes techniques liés à la rédaction de la thèse, maîtrise d'outils généraux de traitement des données ou bien prise en main de logiciels spécialisés). La rencontre a en tout cas permis de présenter quelques possibilités permises par des logiciels existants ou des projets en cours, et de se mettre en contact pour un travail en commun plus poussé.


De mon côté j'ai fait des présentations sur deux sujets déjà apparus sur ce blog, qui me donnent l'occasion de mentionner quelques nouveautés à leur propos.


Si TreeCloud (cité dans l'article sur Wordle de chercheurs du formidable Visual Communication Lab d'IBM, mazette !) a déjà fait son apparition dans le coin, je n'ai pas encore dédié de billet à la version Python disponible depuis mars. Ce ne sera pas encore le cas, même si cette présentation montre quelques nouvelles fonctionnalités (sur le corpus Pantel), en particulier l'interface graphique (pour les allergiques à la ligne de commande) et la coloration ciblée en fonction de la cooccurrence autour d'un mot (une belle idée que j'ai récupérée dans AstarTex de Jean-Marie Viprey). Attendez encore une petite semaine si vous voulez télécharger une belle version : dans la prochaine, plus besoin de s'embêter avec les espaces dans les noms de fichiers, et quelques autres fonctions supplémentaires (coloration personnalisée, liste de mots du nuage personnalisée). Il sera alors temps de préciser quelques problématiques d'analyse textuelle (voire littéraires !) pour lesquelles la visualisation en nuage arboré montre son intérêt.


Je conclus cette seconde présentation avec l'exemple de la carte interactive de Lisbonne par Pessoa pour illustrer une utilisation possible de l'API Google Maps (attention, pour la France, on pourra lui préférer l'API Geoportail qui a l'air drôlement chouette). C'est l'occasion de citer un autre projet que j'ai dérivé de celui de Lisbonne, le recensement de tous les lieux barcelonais cités dans l'oeuvre d'Eduardo Mendoza (aussi réalisé en préparation d'un charmant voyage). Pas de dialogue direct entre la carte et le texte intégral, cette fois (je laisse le facétieux Eduardo encaisser ses droits d'auteur), mais j'ai pu réutiliser directement mes petits scripts permettant de créer automatiquement une carte imprimable (avec numéros) à partir de données d'une carte personnalisée Google Maps.

Je dois avouer que cette journée m'a permis, à ma grande honte, de découvrir moi aussi des outils informatiques qui me faciliteraient la vie. Zotero (merci Isabelle !) a l'air d'être ce dont j'ai toujours rêvé pour gérer mes favoris web, ma biblio et mes pdf d'articles... Une vidéo pour saliver en page d'accueil de leur site ici.

Et une question pour finir : vous connaissez un outil pour créer, à partir d'une thèse, ou d'un article, un index des auteurs cités avec, pour chacun, des mots-clés qui le caractérisent ? J'ai en tête une petite application du nuage arboré pour faire ça de façon semi-automatisée, mais peut-être qu'une solution (entièrement automatique ?) existe déjà...

8 décembre 2008

Les sections d'un article scientifique (1/2)

J'utilise fréquemment le nombre de réponses Google : le plus souvent pour l'orthographe, mais aussi pour diverses expérimentations en soumettant un nombre massif de requêtes, comme dans mon billet précédent (ou tous ceux tagués par mon utilitaire qui permet de le faire, FuryPopularity). Même s'ils ne sont pas toujours fiables - j'y reviendrai au prochain billet de la série - ils sont le plus souvent assez parlants, comme peuvent l'illustrer ces dessins de XKCD.

Aujourd'hui, ils vont nous servir à visualiser le découpage traditionnel d'un article scientifique en sections. Le point clé est que l'on y annonce généralement son plan en introduction, en utilisant, de façon parfois un peu pesante, la formulation "In Section [X], we [VERB]", comme dans ce fameux article qui promettait : "In Section 7, we discuss how to draw a rooted split network" (comment ça j'ai pas le droit de faire ma pub sur mon blog ?).

Alors que fait-on quand on a une liste d'un peu plus de 3000 verbes anglais depuis cette expérience, et un Fury Popularity fonctionnel ? Eh bien on profite de ses nuits pour envoyer tout ça automatiquement à Google, en faisant varier le numéro de section X de 1 à 10... Par manque de temps, je repousse au prochain billet sur le sujet mes arguments sur le fait que ça a du sens, bien que tous les articles n'utilisent pas cette formulation en introduction, et je passe directement à la méthodologie. Tout d'abord, récupération des nombres Google :

  • pour 3656 verbes anglais (cette liste de verbes était donnée à la fin de ce billet) pour X variant de 1 à 3.
  • pour "seulement" les 940 verbes qui ont eu des résultats à cette étape précédente, pour X variant de 4 à 10.
Les données sont alors stockées dans ce fichier tableur, et normalisées :
  • en colonne tout d'abord, divisées par le nombre total de résultats à X fixé, ce qui fournit pour chaque verbe un pourcentage d'apparition,
  • en ligne ensuite : pour chaque verbe, soustraction de la moyenne de ses pourcentages d'apparition, puis division par l'écart type.
Avec les données ainsi obtenues, en gardant uniquement les verbes donnant plus de 5000 résultats au total, et en retirant les auxiliaires are, have et will, on obtient ce résultat :

Héhé, surpris, hein ? Pas de diagramme, pas d'arbre, pas du nuage ! Eh oui, après un module de biostats qui m'a initié à R, et avant de plonger dans les subtilités de l'utilisation de l'analyse factorielle en lexicométrie, cet essai de visualisation de données par analyse en composantes principales donne un résultat tout à fait convenable. Il permet en effet de représenter les données en deux dimensions, au lieu des 6 initiales (1 par section), de la meilleure façon possible.

Le code R (le logiciel est téléchargeable gratuitement ici) est le suivant :
donneesSections <- read.csv ("http://philippe.gambette.free.fr/Blog/200812Publis/ResultsR.csv", dec=",", sep=";",row.names=1)
mesures<-donneesSections[, c("Section1","Section2","Section3","Section4","Section5","Section6")]
acp<-princomp(mesures)
biplot(acp,cex=0.5)
acp<-princomp(mesures,cor=TRUE)
biplot(acp,cex=0.5)


Alors n'étant encore pas très familier avec la technique, j'ai quelques questions théoriques et pratiques, que j'espère bien résoudre bientôt (avec l'aide de mes lecteurs ?) :
  • quelles sont les différences, fondamentales et pratiques, entre l'ACP qui fonctionne sur la matrice de corrélation (qui correspond à l'option cor=TRUE) et la matrice de covariance ?
  • existe-t-il des options dans R pour choisir les dimensions du dessin ?
  • existe-t-il des logiciels ou applications web qui fournissent les résultats d'une ACP dans un format plus pratique, permettant de choisir la taille des étiquettes, ou bien de visualiser deux étiquettes superposées
En ce qui concerne l'analyse de cette image, je détaillerai certainement plus les conclusions au prochain billet (en vérifiant notamment si les règles théoriques de rédaction d'un article scientifique trouvables ici ou semblent vérifiées), mais voici quelques premières remarques :
  • les sections 5 et 6, et surtout 1 et 2 semblent avoir des rôles très proches. Ceci peut s'expliquer pour 1 et 2 par le fait que le plan peut se trouver soit dans le résumé, hors section, soit dans la section 1 : ainsi, la partie introductive, à laquelle les verbes begin, introduce, start, recall, formulate sont associés, se trouve en section 1 ou 2, tout comme la partie d'état de l'art : review, survey, collect.
  • Pour les sections 5 et 6, c'est la longueur variable des articles qui fait que les verbes indiquant la validation finale avec compare, evaluate, perform, explore, ou le bilan, summarize, conclude, ont des profils différenciant peu les sections 5 et 6.
  • Les sections 3 et 4 sont visiblement dédiées aux gros morceaux : assume, investigate, describe, construct, calculate, determine, demonstrate ; discuss, analyze et extend, apparaissent alors qu'on se rapproche des sections finales.
A bientôt pour la fin de cette discussion, et le retour de quelques nuages ! Il y aura certainement un billet spécial XKCD entre les deux pour patienter.