8 octobre 2013

Hommage en nuage


Nuage arboré du blog de Jean Véronis


C'est sur son blog qu'étaient apparus pour la première fois ces nuages de mots organisés autour d'un arbre. Et tant d'autres choses qui m'avaient épaté, inspiré, motivé. Attiré vers le TAL pendant mon master (les excursions à Orsay, les samedis de l'ATALA), mon doctorat (les collaborations à l'interface avec les sciences humaines), et aujourd'hui encore dans mon activité de recherche et d'enseignement. Poussé à récolter des données, expérimenter, programmer, puis diffuser codes sources, outils, et résultats préliminaires, sur un mode plus souple, plus réactif, que celui de la publication scientifique.

Dans les hommages que j'ai pu lire après cette triste journée de rentrée, j'ai constaté à quel point les personnes qui ont croisé la route de Jean dans diverses occasions ont été marquées et inspirées, pour des raisons variées. Cet arbre des thématiques du blog Aixtal peine à représenter la diversité de ses travaux, et ne dit rien de son enthousiasme communicatif. Il lui manque probablement quelques rayons de soleil provençal... et le bruit des cigales !

27 mars 2013

Pour alimenter le débat sur les blagues Carambar

Quelques liens pour ceux qui auraient lu cet article du Monde :
Ma madeleine personnelle, en ce moment, c'est de retrouver du temps pour bloguer... A bientôt sur ces pages ?




12 juin 2011

Le vocabulaire des entreprises pour booster son CV

Utiliser le vocabulaire de l'entreprise est un conseil donné aux jeunes diplômés de l'université en recherche de leur premier emploi, ou aux jeunes docteurs qui veulent s'orienter dans le privé après la thèse. CV, lettre de motivation, entretien, pour tout cela il faut s'adapter au langage de son interlocuteur. Sans pour autant parler uniquement en jargon d'entreprise, mots moches compris.

C'est suite à une sensibilisation à cette problématique par Naïma Maybel lors d'un P'tit Déj' d'information de Contact, l'association des doctorants et docteurs de l'Académie de Montpellier, que nous nous sommes lancés avec Paola Salle, la présidente de l'asso, dans la conception d'un site web qui aide à connaître ce vocabulaire spécifique en l'extrayant des offres d'emploi du site de l'APEC.

En fait, boosterCV.fr va plus loin, en offrant des outils d'exploration des offres d'emploi (par région, par entreprise, par métier) qui manquent un peu au site de l'APEC, conçus par Paola. Ce n'est qu'un début, n'hésitez pas à nous signaler des fonctionnalités que vous aimeriez voir sur le site, ou à laisser vos coordonnées pour recevoir des informations sur les prochaines mises à jour. On envisage aussi de faire le même travail avec les offres d'emploi de ProfilCulture, à destination des étudiants, doctorants et docteurs en sciences humaines et sociales, pour qui les offres de l'APEC peuvent sembler inadaptées.

Bien sûr, ce site web n'est pas la solution miracle, et les doctorants les mieux préparés pour poursuivre leur carrière en entreprise sont ceux qui s'y sont intéressés dès le début de leur thèse. Formations doctorales pour être en contact avec des professionnels du secteur privé, échanges avec des chefs d'entreprise ou des responsables de ressources humaines dans les rencontres docteurs/entreprises (le mois dernier à Montpellier, bientôt à Bordeaux et Paris), valorisation des travaux de thèse sur les pages web des doctorants ou sur HAL (utilisé par les structures de transfert technologique pour répondre à des besoins des entreprises)... Tout cela permet de mettre un pied dans l'entreprise, et peut déboucher sur un emploi pour un docteur, ou une mission d'expertise pour un doctorant.

Participer, à distance, à la compilation des CV des participants à la Rencontre Docteurs Entreprises de Montpellier m'a permis de constater, cette année, à quel point les doctorants et docteurs savent mettre en valeur leurs compétences en utilisant le vocabulaire de l'entreprise. Evidemment, il faut qu'ils y aient été sensibilisés (ce qui était le cas pour la plupart des participants à cette rencontre), et qu'ils aient un petit coup de pouce : contrairement à l'an dernier nous avons imposé cette année des CV d'une page, en fournissant un exemple (version OpenOffice). Cela a conduit à une grosse majorité de documents très professionnels, dont voici le nuage arboré :

Notez les compétences transversales dans le sous-arbre en haut à gauche (qui correspondent assez bien à la demande) et les compétences linguistiques et bureautiques dans celui en haut à droite. En bas à droite, les compétences techniques, bien marquées par le grand nombre de jeunes chercheurs en chimie ou biologie-santé parmi les participants de cette année.

Pour compléter sur ce sujet, pour les spécialistes, j'ajouterai que la classification arborée de la centaine de CV reçus, selon une distance intertextuelle, a également très bien fonctionné pour faire apparaître quatre sous-arbres : sciences du vivant, sciences chimiques, sciences de l'ingénieur, et sciences humaines et sociales... en utilisant un anti-dictionnaire approprié ! En effet, les participants ayant utilisé le CV fourni en exemple se retrouvaient initialement dans un même sous-arbre à cause des mots "loisirs", "intérêts" ou encore "sports" qui causaient ce rapprochement. En fait, la classification thématique était améliorée en enlevant l'ensemble des mots attendus dans ces CV de doctorants et docteurs montpelliérains, je vous dévoile ici l'anti-dictionnaire utilisé.

Je termine ce billet par un dernier outil à destination des doctorants et docteurs attirés par une poursuite de carrière dans le secteur privé, un répertoire des compétences généralement acquises au cours du doctorat, sous les deux formes les plus intéressantes que j'ai pu trouver à ce jour (en espérant que l'enquête d'ADOC Talent Management débouchera sur un document qui les complétera utilement) :

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.

23 janvier 2011

Mème : Scrabble international

Nouvelle chaîne dans ma boîte mail, nouvelle analyse de mème sur ce blog (après la F-list, et fait-ou-pas) : le "Scrabble International".

Il s'agit d'une liste de mots de 6 lettres, à laquelle on doit ajouter un mot français :
- de 6 lettres pas encore présent dans la liste
- ayant exactement une lettre de différence avec le mot précédent (dont les lettres sont éventuellement réordonnées).

Sont ajoutés le prénom et la ville du participant, ainsi que sa date de participation. Voilà l'exemple de la liste que j'ai reçue (209 mots). J'en ai trouvé quatre autres sur le net, de 124, 85, 216 et 89 mots, qui montre que la liste a voyagé (par mail, pas sur la blogosphère apparemment) en Belgique d'où elle est partie, en France, en Algérie, en Suisse, au Canada, au Maroc... L'arbre de diffusion à gauche résume l'historique de ces listes.

Je me suis demandé quelle taille pourrait atteindre cette liste, en théorie. Eh oui, car en pratique, comme pour tous les mèmes, les participants ne suivent pas toujours les règles, éviter et tourbe sont deux fois dans la première liste, piéger et pingre dans la cinquième, et je ne parle pas de ceux qui oublient d'inscrire la date, ou prennent un malin plaisir à changer le format pour que je ne puisse pas récupérer toutes les infos facilement avec un script.

Bref, supposons que tout le monde suive les règles, le jeu correspond à construire un chemin qui ne repasse jamais pas le même sommet (en bleu dans l'illustration ci-dessous) dans un graphe :
- dont les sommets sont les mots français de 6 lettres
- dont les arêtes rejoignent deux mots qui ont une lettre de différence.
Quelles sont les propriétés de ce graphe ? Quelle est la taille du plus long chemin qu'il contient ? Est-ce que 6 lettres est la taille de mots la plus adaptée pour assurer le succès de ce mème ? Voici les quelques questions auxquelles je vais tenter de répondre dans ce billet, avant une suite éventuelle qui sera dédiée à une analyse des données des les 5 listes récoltées.

Première chose à faire, construire ce graphe à partir d'une liste de tous les mots français. Je récupère ça chez un collègue marseillais, regroupe les mots par taille en passant tout en minuscules et en enlevant les lettres accentuées : 2 mots de taille 1, 81 de taille 2, 427 de taille 3, 1799 de taille 4, 5897 de taille 5, 13931 de taille 6... Tiens tiens, ça augmente comme ça jusqu'à 50097 (taille 10) avant de redescendre. Mais la longueur du plus long chemin n'est pas directement reliée à la taille du graphe : certes, celui des mots de 10 lettres a plus de sommets, mais il est moins dense (moins d'arêtes), et contient donc probablement moins de longs chemins. Grâce à quelques scripts en Python, voici les réseaux obtenus pour les mots de taille 3, 4, 5, 6, 7, 8 (18 Mo pour le dernier...).

Première chose à faire, calculer les composantes connexes, les parties du graphes où toute paire de sommets est reliée par un chemin. Pour cela (merci Anaïs !) la bibliothèque iGraph en R fait tout le boulot. Téléchargez-la, installez-la (install.packages("igraph")), puis lancez le code suivant :
library(igraph)
g<-read.graph("http://philippe.gambette.free.fr/Blog/2011Scrabble/Mots6.graph.txt",format="ncol")
cc<-clusters(g)
cc$csize

On obtient une composante connexe de taille 13865, et 5 de taille 2. Pour avoir la composition des cinq paires :
V(g)[which(cc$membership==1)-1]
V(g)[which(cc$membership==2)-1]
...
Les 5 paires sont donc : {rococo, corozo}, {hiboux, bijoux}, {puffin, muffin}, {okoume, loukoum}, {zozota, zozote}.


dd <- degree.distribution(g)
plot(dd)
On obtient l'image ci-contre, qui sent le Poisson...

Quelle est la taille du plus long chemin dans ces graphes ? Eh bien ce problème est NP-complet (difficile à résoudre pour un ordinateur), et je n'ai pas encore essayé de le soumettre (pour les mots de taille 3, car je doute qu'il arrive à traiter un graphe à 10000 sommets et 400000 arêtes) au programme linéaire en nombres entiers récemment ajouté par Nathann dans Sage (au moins j'ai - enfin - installé le logiciel). En revanche j'ai programmé un script qui lance un millier de chemins au hasard, en partant d'un sommet également choisi au hasard, et enregistre la taille de chacun des chemins obtenus.

J'obtiens les valeurs moyennes suivantes : la longueur maximale parmi tous les chemins trouvés augmente jusqu'à 8 lettres inclus (je n'ai pas testé les graphes pour les mots de taille supérieure), en revanche la longueur moyenne des chemins atteint un maximum pour le graphe des mots de sept lettres (cliquez sur le graphique pour voir la distribution des longueurs de chemins obtenue) :
Vous me direz qu'en calculant simplement le degré moyen des sommets du graphe, on obtenait justement un maximum pour une taille de mots de 6, avec un nombre moyen de voisins de 28,7 qui correspond à peu près à la valeur où le pic de la loi de Poisson est atteint ci-dessus... J'aimerais bien savoir comment Eliane de Bruxelles a choisi la taille de 6 quand elle a conçu ce jeu. En tout cas c'était bien trouvé, et il ne reste plus qu'à trouver quelques milliers de participants pour commencer à rendre le jeu difficile... A moins que vous ne vouliez vous lancer dans une stratégie de blocage du jeu, en l'orientant vers un "cul-de-sac", soit en faisant revenir le chemin vers des sommets déjà visités, soit vers des sommets de faible degré...

Si vous avez participé au mème, et que vous avez une liste différente de celles montrées ci-dessus, ça m'intéresse, dans la perspective d'un prochain billet sur le sujet : indiquez en commentaire une adresse de page web où vous l'avez placée, ou envoyez-la moi par courriel en indiquant dans le sujet "Scrabble International". Et si vous voulez lancer le mème sur la blogosphère, faites-vous plaisir, en citant des blogs pour les inciter à propager la chose ! Plutôt des blogs féminins, au vu des prénoms dans mes listes...

3 décembre 2010

Classement Wikio Sciences Humaines

En ce début décembre, de nouveaux classements thématiques de blogs fleurissent sur Wikio. Claire, qui travaille dans leur département marketing, m'a proposé de diffuser celui des blogs en les sciences humaines. Alors ça y est, les informaticiens ont encore frappé, et leurs évaluations à la sauce bibliométrique touchent désormais la blogosphère française de la recherche en SHS ? Allez, pour se faire pardonner, on va organiser à Montpellier en juillet 2011 en satellite de TALN, un colloque (Doctorants, Informatique et Sciences Humaines) où les doctorants en informatique se mettront au service des doctorants en sciences humaines qui leur soumettront des problématiques traitables par l'outil informatique (plus de nouvelles bientôt sur ce blog et sur les canaux habituels de diffusion...).


Sans plus attendre, voilà ce Top 20 :
1Scriptopolis
2Baptiste Coulmont
3Ecrans de veille en éducation
4Évaluation de la recherche en SHS
5Mapping Expert
6Socio-informatique et argumentation
7Les émotions au Moyen Âge
8AGORA / sciences sociales
9Mexique ancien
10Je véronise...
11Mame & fils
12Archéologie poitevine
13Les découvertes archéologiques
14Le blog archeomellois
15DemoSocio
16Femmes au travail
17Paris Design Lab - ENSCI Les Ateliers
18Making Science Public*
19Bafouillages
20Amades

Classement réalisé par Wikio

Comme tout classement, ce qui importe est ce qu'on en fait ! Alors évidemment, le jour où l'ANR commencera à l'utiliser pour attribuer ses financements on pourra se faire du souci. Je le vois plutôt comme une façon de mettre en avant une communauté de blogueurs, et faire découvrir quelques carnets de notes virtuels qui méritent le détour (il est possible de consulter la suite du classement sur Wikio), de manière plus pertinente que la F-list et ses déclinaisons thématiques par exemple. On pourra s'étonner de l'absence de certains grands blogs français de SHS, ils sont peut-être à chercher du côté de la section Sciences de l'information. Si vous repérez d'autres grands absents, vérifiez si Wikio les connaît, signalez-les si non, et citez-les dans vos blogs si oui !

Une autre remarque : dans ce Top 20, on trouve pas moins de 8 carnets de recherche hébergés chez Hypotheses.org. Cela souligne un beau succès de cette plateforme, et je souhaite à Plume! la même réussite avec la plateforme-réseau de blogs de vulgarisation scientifique qu'ils viennent de lancer ("scientifique" inclut bien évidemment les sciences humaines !).

Et comme je n'aime pas faire uniquement du relai d'informations, j'en profite pour diffuser un autre classement polémique, fait maison : celui des villes universitaires françaises, en fonction des demandes de mutation des professeurs d'université et maîtres de conférences. Eh oui, les mathématiciens, dans leur grande bonté, ont dédié une Machine Ouverte aux Universitaires qui Veulent Echanger, qui mentionne les souhaits de mutation. On récupère tout dans un fichier tableur OpenOffice, on fait la différence pour chaque ville des demandes d'arrivée moins les demandes de départ, et on obtient, tada, un Top 15 des villes attractives pour les enseignants-chercheurs :

Pour dissuader ceux qui seraient tentés de l'utiliser de manière sérieuse, je précise que MOUVE propose aussi d'indiquer des régions souhaitées, que je n'ai pas prises en compte ici (pour une raison autre que vouloir faire figurer en tête la ville où j'ai obtenu mon doctorat : ceux qui indiquent vouloir déménager en "région parisienne" sont-ils vraiment prêts à prendre un poste indifféremment au centre de Paris, ou dans les diverses banlieues ?), et que je n'ai même pas pris le temps de refaire l'expérience sur des données à jour (celles-ci datent de mai 2010).

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 !