Méthodes pour générer un nuage de tags à partir des dépêches de presse (comme sur Y!MobActus avec Yahoo! Actualités)
Il y a presque un an, j’avais trouvé audacieux l’expérience non-officielle Yahoo! News Tag Soup de John Herren qui propose un nuage de tags associés aux actualités en anglais de Yahoo! News (aux USA).
Toutefois, je suis un peu déçu du résultat obtenu, notamment de sa pertinence. D’où l’expérience menée avec le service pour les navigateurs mobiles de Y! MobActus…
Je lui reproche que le nuage de tags est pollué par le nom des agences de presse, et que en conséquence, les tags pertinents liés aux évènements récents apparaisse en trés petit. Et, il y a beaucoup trop de tags pour que l’on puisse d’un seul coup d’oeil repérer les nouveaux mots-clés. Enfin, son système a, au moins, besoin d’une bonne heure pour générer le nuage de tags.
Par contre, John explique généreusement (en anglais) comment Yahoo! News Tag Soup fonctionne, et çà permet de comprendre les causes des défauts de son service ;
- Il utilise une base de donnée via la “grosse” application MagpieRSS pour stocker les actualités puis pour filtrer les doublons* alors que les flux RSS de Yahoo! News comporte le paramètre GUID qui permet de les identifier.
(*) à causes des nombreuses agences de presse qui alimentent Yahoo! News. - Son service utilise les API de Yahoo! Search pour récupérer une suggestion de mots-clés associés à la page de l’actualité. D’une part çà doit demander des centaines de requêtes vers Yahoo! qui explique le gros délais de mise-à -jour. Et, c’est la raison pour laquelle les noms des agences de presse apparaissent si souvent et si gros.
- Enfin, il n’y a aucune disposition pour normaliser les mots-clés similaires, les filtrer, et ainsi réduire la taille du nuage à l’essentiel.
En définitive, John a été obligé de créer son propre moteur de recherche pour afficher la liste des actualités liées à un tag, alors que le panneau latéral de Y!MobActus pour Firefox peut se permettre de proposer les résultats de recherche de Yahoo! Actualités.
Parfois, il est plus facile de faire mieux que de critiquer !
Mis à part de gros efforts pour améliorer la pertinence des tags, je pense avoir eu moins de mal que John pour créer le même service sur Y!MobActus ; la partie la plus pénible pour récupérer les actualités en gérant les doublons est assurée par mYLastRSS qui sert déjà à alimenter le contenu des pages. Puis, je n’utilise pas une lourde plateforme de dialogue pour interroger et traiter les API de Yahoo! Search. Et détails non négligeables, le nuage est généré quasiment* en temps-réel à la demande des internautes.
(*) Y!MobActus utilise un cache avec un délais maximum de 20mn de mise-à -jour pour ne pas consommer toute la bande-passante du serveur.
Les spécificités de Yahoo! Actualités facilitent l’extraction de tags.
Ma méthode se base d’abord sur le fait que Yahoo! Actualités publie les dépêches de plusieurs agences de presse et qu’il est fréquent de voir plusieurs dépêches liées au même évènement. Et, que les mots-clés les plus importants, et donc pertinents, d’une actualité figurent à la fois dans le titre et le résumé de la dépêche. Ce qui est certainement une démarche intentionnelle des rédacteurs.
La démarche technique consiste à parcourir le tableau fourni par mYLastRSS pour étudier les actualités une-par-une ; la première étape remplit un premier tableau avec les mots du titre de la dépêche en le débarrassant des ponctuations, expressions de coordination, adjectifs, superlatifs, et divers mots fréquents sans intérêt tout en normalisant les mots sans majuscules ou accents*. Et, on applique le même traitement en créant un autre tableau des mots du résumé.
(*) pour contourner les erreurs d’orthographe des rédacteurs.
Enfin, on calcule l’intersection* des deux tableaux de mots-clés, du titre et du résumé d’une actualité, et on insère le résultat dans un tableau global tout en comptant les redondances des mots insérés par les actualités précédentes.
(*) révisez vos cours d’algèbre vus en mathématique.
Il suffit ensuite de classer le tableau global par ordre alphabétique, supprimer les tags rarement cités, et afficher ceux qui restent en adaptant leur taille à la valeur du compteur de redondance. Je vous conseille de fixer une taille maximum qui évitera qu’un seul mot-clé monopolise le nuage de tags.
Je complète l’analyse en repérant les mots qui sont écrit sous différentes formes, - au pluriel ou au féminin -, pour les normaliser au singulier et améliorer les calculs de redondance. Et, quand le nuage comporte des tags composés de plusieurs mots, j’applique un filtre* pour supprimer les tags d’un seul mot qui s’y référent.
(*) le filtre est appliqué avant l’insertion des tags d’une actualité dans le tableau global.
Enfin, - pour le fun -, il y a quelques dispositions pour mettre en avant la compétition médiatique des candidats aux élections présidentielles :op
4 commentaires à “Méthodes pour générer un nuage de tags à partir des dépêches de presse (comme sur Y!MobActus avec Yahoo! Actualités)”
Laisser un commentaire
Vous devez être connecté pour laisser un commentaire.
Le Vendredi 10 octobre 2008 à 21:49
L’algo a beaucoup changé en 1 an. Pour les curieux, regardez le Labo
http://ymobactus.miaouw.net/labo-tags.php
Et, le filtre principal (y’en a 3 autres) des tags à ignorer et j’essaye de lui apprendre les règles de conjugaison :o))
http://ymobactus.miaouw.net/labo-lowtags.php
Dommage que Yahoo! News Tag Soup a fermé, et j’ai pas vraiment le temps d’adapter Y! MobActus à l’anglais (ni à d’autres pays comme le Québec) :o((
Le Mercredi 14 janvier 2009 à 12:24
Bonjour,
“Et détails non négligeables, le nuage est généré quasiment* en temps-réel à la demande des internautes”
Il serait intéressant d’avoir des données précises sur la consommation du serveur a ce niveau
Cordialement.
Le Mercredi 14 janvier 2009 à 16:11
Elle est élevée, mais gérable pour un serveur d’entrée de gamme. Les problèmes d’erreurs Internal Server sont dus au temps d’execution (limité par sécurité).
Mais en y consacrant le temps nécessaire pour multiplier les niveaux de mise en cache (efficace quand l’audience est élévée), les temps d’accés pourraient s’améliorer…
Malgré la taille des filtres, dont le deuxieme ci-dessous, la consommation de mémoire est largement en dessous de 8 Mo.
http://ymobactus.miaouw.net/labo-lowsimpletags.php
A noter que l’appli n’utilise pas de base de donnée (cf MySQL) trés consommatrice en mémoire et ressource d’execution.
Enfin MyLastRSS, au coeur de YMobActus, tire avantage des performances du système iSCSI de stockage de fichiers de OVH pour les hébergement mutualisés et les serveurs RPS. Un serveur dédié n’aurait pas forcément de meilleurs temps d’accés aux nombreux fichiers utilisés…
Le Mercredi 14 janvier 2009 à 16:21
Et le nouveau système ci-dessous qui sélectionne - en temps réel - les 10 meilleures actualités (sans redondance) vaut son pesant de cacahouettes. La mise en production étant conditionnée par l’amélioration des performances, arf :o(
http://ymobactus.miaouw.net/labo-selection.php