Publicité

Catégories

Images Aléatoires

  • Vilma-couleur.jpg
  • Drow.jpg
  • test-1.jpg
  • Linea.jpg
  • Travers--e-du-Rhone.jpg

Calendrier

Novembre 2009
L M M J V S D
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
<< < > >>

Syndication

  • Flux RSS des articles

Recherche

Recommander

Vendredi 7 août 2009
Toujours dans le cadre des recherches sur la similarité d'articles d'overblog, j'ai expérimenté un logiciel d'extraction de mots-clef : KEA (acronyme pour keyphrase extraction algorythm). Il s'agit d'un algorithme capable d'extraire des mots-clef ou des phrases-clef, de façon libre, on en privilégiant un vocabulaire controllé. il est implémenté en Java, et distribué sous licence GNU.

Cette article décrit la procédure suivie et les premiers résutats sur des articles du présent blog. J'ai fais les tests sur une machine basée sur un système Ubuntu 9.04, mais je pense que les commandes seront les mêmes sur n'importe quel système UNIX. Avant toute chose, il est nécessaire que le paquet Java-SUN version 6 soit présent sur le système.

  • On commence par télécharger l'archive : KEA-5.0_full (22Mo, ZIP) et on extrait le contenu de l'archive dans un répertoire (/home/kea dans notre cas).
  • Après s'être placé dans le répertoire kea, on met à jour l'environnement :

  • # Mise en place des PATH

    export KEAHOME=/home/kea
    export CLASSPATH=$CLASSPATH:$KEAHOME
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/commons-logging.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/icu4j_3_4.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/iri.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/jena.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/snowball.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/weka.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/xercesImpl.jar
    export CLASSPATH=$CLASSPATH:$KEAHOME/lib/kea-5.0.jar

  • Comme indiqué dans la documentation d'usage, afin d'être sûr que tout va bien, on lance la compilation d'un test inclus dans l'archive :

  • # Mise en place du test

    javac TestKea.java
    java -Xmx526M TestKea
  • Puisque tout va bien, on va créer un modèle d'extraction français que l'on va tester sur des articles overblog. Pour l'apprentissage, dans  un premier temps, j'ai utilisé les textes fournis dans l'arrchive dans le répertoire testdocs/fr/train/. On prépare tout d'abord les fichiers en question :

  • # Mise en place du modèle OB

    mkdir OB
    mkdir OB/train
    mkdir OB/test
    cp testdocs/fr/train/* OB/train/

  • Tout étant prêt, on commence par créer le modèle. C'est la procédure la plus longue, prenant près d'une minute sur un P4. La commande précise les stop-words (mots interdits) et le stemmer français, eux aussi inclus (en plus des version anglaise et espagnoles). Pour notre test, on ne précise pas de vocabulaire particulier, les textes issus des blogs pouvant être multiples.

  • java kea.main.KEAModelBuilder -l OB/train/ -m OBModel -i fr -s StopwordsFrench -t FrenchStemmer -v none

  • Et enfin, on applique le modèle sur le texte de certains articles, cde la manière suivante :

  • java kea.main.KEAKeyphraseExtractor -l OB/test/ -m OBModel -i fr -s StopwordsFrench -v none

Tout ça au final est relativement simple à mettre en oeuvre. Mais quels sont les résultats ? Voici un échantillon lors de ces premiers tests :

Article Mot-clefs
Top des articles les plus vus
  • d'Overblog
  • Blog
  • L'idée
  • s'ouvre la possibilité
  • capable de détecter
La similarité d'articles (plan B1)
  • méthode
  • Cauet
  • résultats
  • Cauet retourne
  • Cauet retourne la Méthode
[Illustration] Vilma 2 + colorisation
  • tutorial
  • dessins
  • colorisation
  • colorisent
  • crayon
[Battlelore] Traversée du Rhône
  • bataille
  • Arnaud
  • Rhône
  • Battlelore
  • Traversée du Rhône

Je dois avouer que j'ai été assez surpris par les résultats qui sont loin d'être rédicules pour un tout premier tests. En particulier, les articles [Illustration] Vilma 2 + colorisation et [Battlelore] Traversée du Rhône donnent vraiment des résultats excellents. Pour le Top des articles les plus vus, c'est clairement moins concluant. Quand à l'article La similarité d'articles (plan B1), je conçois qu'il soit difficile d'extraire quelque chose de cohérent d'un article qui affiche des liens vers un semble d'articles similaires.

Au final, une assez bonne surprise, susceptible de servir de base à une génération automatiques de mots clefs pour renforcer la couverture d'articiles similaires (cf. le Plan B - La similarité d'articles chez OB ).

Par Torgan - Publié dans : Overblog
Ecrire un commentaire - Voir les 7 commentaires - Recommander
Jeudi 6 août 2009
Eh non, pas de plan C pour le moment. Pour ceux qui ont un peu suivi l'article précédent (La similarité d'articles chez OB), la méthode explorée dans le cadre de la recherche d'articles similaires à un article données était limitée en portée, car on ne disposait de données que pour à peine 10% des articles d'OB. Par contre, les rares résultats étaient excellents pour les 3% d'articles concernés.

Du coup, plutôt que d'envisager un Plan C basé sur une méthode différente, la première idée était plutot d'enrichir la méthode actuelle. D'emblée, deux axes s'offrent à nous, l'un  réalisable immédiatement, l'autre nécessitant du temps pour collecter les données :

  • La première méthode consiste à trouver des résultats par un autre moyen moins précis lorsque la recherche par similarité ne donne rien.
  • La seconde consiste à enrichir la base de similarité en utilisant par exemple les résultats de chaque recherche effectuée sur le portail overblog, afin de créer des relations de similarités entre tous les articles. Cette méthode a le mérite de renforcer la méthode actuelle avec des données sures. Par contre elle nécessite un déploiement important, aussi en parlerais-je plus en détail si le déploiement en question voit le jour. 
Mais revenons à la première méthode : le plus simple consiste à tenter de découvrir de nouveaux résultats lorsque la recherche par similarité n'a rien donné. Pour celà, utiliser la recherche OB parait le plus rapide. Nous voici donc partis pour de premiers tests, toujours en nous basant sur le Top des articles les plus vus durant la semaine écoulée. On fait une recherche globale sur le titre de l'article étudié, en considérant que ce titre est représentatif de l'article.

Quel verdict ? On passe d'un taux d'articles couverts de 3% à 55%. Dans la plupart des cas, les résultats sont cohérents, comme par exemple :

[Photos] Cécile de Ménibus se met à nu pour "TV Magazine" (1038444021)

 
id Titre
1109386720 [Vidéo] Cauet retourne la Méthode (Jeudi 23 juillet 2009 à 23 heures 35)
1108169208 [Vidéo] Cauet retourne la Méthode (Jeudi 16 juillet 2009 à 23 heures 25)
1106352995 [Vidéo] "Cauet retourne la Méthode" : Interview de Cécile de Ménibus
1106350126 [Vidéo] "Cauet retourne la Méthode" : Interview de Sébastien Cauet et Cécile de Ménibus
1107289333 [Vidéo] Cauet retourne la Méthode (Jeudi 09 juillet 2009 à 23 heures 30)
1106468036 [Vidéo] "Cauet retourne la Méthode" : Interview de Sébastien Cauet
1106349031 [Vidéo] "Cauet retourne la Méthode" : Sylvester Stallone
1106348782 [Vidéo] "Cauet retourne la Méthode" : Céline Dion
1105844716 Cauet retourne la Méthode

Par contre la méthode se trouve en difficulté dans deux cas :
  • Lorsque le titre de l'article contient trop de mots, le moteur de recherche de postgresql (tsearch2) recherche tous les mots dans les articles d'OB et se retrouve bredouille. C'est des là que viennent les 45% d'échec. par exemple, rechercher 'insolite Mordu par une araignée violoniste en France !' ne donne aucun autre résultat que l'article lui même, ce qui reste assez logique.
  • Lorsque les titres sont courts ou comporte uniquement des mots très communs, on a totues les chances d'avoir des résultats qui ne présentent pas la moindre similarité avec l'article étudié. Dans l'exemple suivant, seuls 2 des articles sont pertinents, la présence des autres étant liée à la fréquence du terme 'index' et au sens multiples du mot 'anime' :

Index Animes (1043471690)


id Titre
1102535191 candidature fansub
1110037595 Sondage : l'avis du Dr. Albissaty Saleh Allazam (867 voix, 35%)
1110007614 L'ATTAQUE DU METRO 123 de Tony Scott (USA-2009): D'abord on prend la berline, après on prend Manhattan !
1109244728 Les patronages laïques toujours engagés
1105904929 Suisse (1999-...)
1108831521 Les journalistes, nouveaux acteurs des relations internationales
1090350310 Nouveautés sur bankai-anime

 

En conclusion, je ne suis pas sur qu'il s'agisse de la bonne piste, car contrairement à la recherche par similarité de mots clefs, les résultats sont plus aléatoires. Nous suivrons donc dans un épisode futur l'enrichissement de la base de similarité et les moyen d'y parvenir.

 

Par Torgan - Publié dans : Overblog
Ecrire un commentaire - Voir les 3 commentaires - Recommander
Mercredi 5 août 2009
Chez OB, on aime bien aggréger des données. Un blog qui parle tout seul d'un sujet dans son coin est toujours beaucoup moins séduisant qu'un blog qui échange et fait partie d'une communautés de blogs paralant de sujets connexes ou similaires. Pour ça, on retrouve le système de tags, les communautés OB avec leurs forums. Il y eut également les thématiques portail dans la version précédente du portail, ou les magazines et les dossiers dans le portail actuel. Tous ces concepts permettent de mettre en lumière un blog au sein de microcommunautés de la blogosphère.

Pour aller plus loin dans ce sens, nous menons actuellement des recherches afin d'être en mesure de pouvoir fournir, pour un article donné, une liste d'articles connexes, se rapportant au sujet traité.

Etant donné la quantité de données de texte, il est impossible de faire des recherches brutes dans le texte des articles de l'ensemble de la base de données. Alors comme souvent dans ce cas là, il faut tenter d'être plus malin que la machine, il faut sortir le PLAN B.

L'idée directrice de se plan B, c'est de considérer qu'un article est connexe à un autre si une recherche issue d'un moteur de recherche (google donc pour 95% des cas) a mené vers les deux articles. Alors bien sur, c'est très limitatif, mais après tout c'est un plan B. 

Ainsi, en traitant les logs de connexion aux blogs d'OB, on peut avoir chaque jour une liste des recherches ayant mené à un article d'OB. Si pour chaque article, on constitue un tableau des mots-clefs qui y ont conduit les internautes, on a une espèce de signature de l'article. En faisant des recherches de similarité entre les tableaux de mots clefs on devrait pouvoir obtenir les articles qui sont connexe.

Voici donc le plan B. Après avoir collecté les données pendant un peu plus d'un mois, il est donc temps de lancer quelques tests. Et quoi de mieux que le Top des articles les plus vus sur la dernière semaine pour tester la méthode ? On est certains d'avoir des articles souvent visités, et donc vraisemblablement recherchés. Allons-y !

Verdict : la méthode ne permet de découvrir des articles connexes que pour seuls 3 articles du Top 100 de la semaine. Pas vraiment glorieux, et bien en dessous du résultat escompté... Par contre, pour les 3 articles ayant donné des résultats, ces derniers semblent tout à fait pertinents. Par exemple :

Les aventures d'Harry Potter (1110364822)

id Titre
6021435 Critique Ciné : HARRY POTTER ET LA COUPE DE FEU de Mike Newell
1107447859 Evanna et Matthew, ensemble en Europe pour la promo d'Harry Potter 6
1092460414 Harry Potter and the Half-Blood Prince
1078565561 THE LIVING AND THE DEAD
1110519734 Cinéma : HARRY POTTER + fichiers patchwork, et oui...
1101706949 Prison break: The Final Break , le film
1101137616 [MU] [DVDRiP] L'Oeil du mal
1108003697 "Harry Potter" a explosé le box-office français...et américain
172012 Le dernier Harry Potter !
1080489350 Actus Ciné du 29 Janvier 2009

Conclusion : la méthode offre un taux de couverture trop réduit pour être réellement efficace. Et pour cause : en un mois, moins de 10% des articles d'overblog se sont vus attribué un tableau de mots-clef. Du coup avant même de faire un test de similarité, on a 9 chances sur 10 de tomber sur un article qui ne donnera aucun résultat. A l'évidence, les moteurs de recherche ne sont pas ce qui fait venir sur les blogs. Les internautes sont à mon avis plus guidés par les flux RSS des sites auxquels ils sont abonnés, et surtout maintenant, les réseaux sociaux, Facebook et Twitter en tête.

Un plan C s'impose donc ! 
Par Torgan - Publié dans : Overblog
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Mardi 4 août 2009
Vous êtes sûrement coutumier du Top Blog d'Overblog, un classement des blogs de notre plateforme allant au delà du Blog Rank. Le Calcul a lieu tous les 15 jours et donne une assez bonne vision de notre blogosphère.

Mais les gens adorent les stats, alors après le classement des blogs, on m'a demandé de plancher sur une manière de calculer un classement des articles les plus lus. L'idée est d'avoir des statistiques fréquentes, sans avoir besoin de conserver l'information longtemps. En basant nos calculs sur une période d'une heure, s'ouvre la possibilité d'être capable de détecter assez rapidement des articles qui buzzent en cas de grandes différences sur le nombre de visites. En conservant les données de visites sur une semaine, on reste capable de suivre les articles ayant une définition plus encyclopédique, dont la durée de vie se prolonge dans le temps.

Les données sont prêtes à peu de choses près. Reste l'intégration sur le portail. A titre d'exemple, les 10 articles les plus visités lors de la dernière heure :

Titre Visiteurs uniques
Index des résumés 298
EN: Lamyaghri et Fegrouch dans la liste finale 239
'Cause I'm just a girl 234
Nick est mort 232
Lebhij: « Je n’ai pas quitté le MCO pour rien » 172
Pascal Angan et Lys Mouithys appelés en selection 166
Femme actuelle 117
Solitude 102
Vous avez un avis sur la fin du monde de 2012, exprimez-vous à la suite de ce message. 97
Mes vacances 1 94


Normalement bientôt sur le portail overblog !

Par Torgan - Publié dans : Overblog
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Mardi 4 août 2009
Donc ce matin, dans le cadre des contrôles faits sur la base de données d'Overblog, je me trouve confronté au problème suivant : comment lister les tables héritant d'une table donnée, et ce quel que soit le niveau d'héritage.De petites recherches sur google et les archives PostgreSQL ne m'ayant pas offert de réponse satisfaisante, je me risque à aller faire un tour sur les channel IRC de freenode : #postgresql et #postgresqlfr. C'est souvent la meilleure source d'information, avec le plus souvent des réponses extrèmement rapides et précises. Entre temps j'ai quand même découvert que l'option -E de psql permetait d'afficher les requètes exécutées pour les commandes internes. Ca peut s'avérer fort utile en cas de fouilles archéologique au sein d'une base. 

Mais passons là dessus... Donc au final, j'obtiens quelques requềtes, et surtout la confirmation qu'il n'est pas possible d'obternir l'ensemble des tables héritées d'une table donnée, quel que soit le niveau, avec PostgreSQL 8.3, qui ne gère pas la récursivité dans une requête. une procédure stockée est donc nécessaire. Par contre, c'est possible avec la version 8.4 récemment sortié.

Dans le cas qui m'intéresse, à part l'aspect fun d'avoir une solution marchant à tous niveaux, je sais pertnament que je n'ai que deux niveaux d'héritage. Je ferai donc deux requêtes similaires pour disposer de l'ensemble de mes tables héritées :

# SELECT inhrelid::regclass FROM pg_inherits WHERE inhparent='foo'::regclass;

Ce donne le résultat escompté et tout va bien. Toutefois, d'autres solutions ont été évoquées. Avec  PG 8.4, la requête devrait ressembler à ça :

# WITH RECURSIVE t(relid) AS (SELECT inhrelid FROM pg_inherits WHERE inhparent='foo'::regclass UNION ALL SELECT inhrelid FROM pg_inherits JOIN t ON (inhparent = t.relid)) SELECT relid::regclass FROM t;

Il me tarde d'essayer cette nouvelle version.

Pour ce qui est d'avoir l'ensemble des tables héritées quelle que soit la profondeur de l'héritage avec PG 8.3, je n'ai pas poussé les recherches, mais les pistes évoquées faisaient état de procédures stockées, d'utilisation de la contrib contrib tablefunc pour gérer la récursivité, ou encore d'user de jointures dans le cas où l'on connait le niveau maximum de récursion. 
Par Torgan - Publié dans : PostgreSQL
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Dimanche 4 novembre 2007
Bon alors cette fois c'est le grand pas en avant.  toujours dans le trip Gunnm (j'adore toujours ces dessins super fins et précis), je refais un dessin de Vilma plutôt pas trop raté. Réalisé au simple crayon de papier puis au crayon de couleur noir aquarellable. En fait à la base je comptais tenter de le coloriser avec les crayons aquarellables, mais comme il était assez réussi, je n'avais aucune envie de le gacher bêtement. Je le scanne donc tel quel :

test-1.jpg

Bon, c'est déjà pas mal comme ça, mais un pote des beaux arts me fait remarquer que c'est typiquement le genre de dessins qu'il se colorisent plutôt simplement (même si lui ne sait pas le faire...Ah ! ces artistes !). C'est dimanche aprem', alors je me dis "pourquoi pas perdre du temps pour voir ce que ça donne ?"). Me voilà parti sur google, à la recherche de "photoshop coloring tutorial".Pleins de réponses, chouette, je prend comme tout bon mouton, la première, qui m'envoit là : Steel Dolphin Creative. Bien allons-y

Tout d'abord un tutorial pour faire bien ressortir les traits, puis deux tutorial pour coloriser tout ça. C'est finalement assez bien foutu, et pas trop compliqué. Après 2 petites heures de rigolade avec mon ami photoshop, j'arrive à ça :

Vilma-couleur.jpg

Bon pour une première, c'est pas si pire, mais c'est pas encore ça. Ca fait encore un peu coloriage, mais il y a des bons trucs à creuser. Je vais voir sur d'autres dessins ce qu'on peut y gagner.

A suivre...
Par Torgan - Publié dans : Illustrations - Communauté : peintres et tout les artistes
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Lundi 1 octobre 2007
Nous voici de retour avec cette fois, non une illustration d'un personnage de jeu de rôle, mais une reproduction de Vilma Fachiri, personnage issu de l'excellent manga Gunnm (http://fr.wikipedia.org/wiki/Gunnm).

Vilma.jpg

Par Torgan - Publié dans : Illustrations - Communauté : peintres et tout les artistes
Ecrire un commentaire - Voir les commentaires - Recommander
Mercredi 6 juin 2007
Cette illustration là est récente, mais le personnage lui date d'il y a bien longtemps. Eleanore O'Ryan est une Changellin, un être féérique vivant à notre époque. Inutile de dire que la vie n'est pas rose tous les jours pour ces êtres, la banalité émanant de notre quotidien frappant de plein fouet la part de rève dont ils se nourrissent...

elea.jpg
Par Torgan - Publié dans : Illustrations - Communauté : peintres et tout les artistes
Ecrire un commentaire - Voir les commentaires - Recommander
Lundi 4 juin 2007
J'avoue que je n'ai jamais dessiné celui là en pensant à un personnage particulier, mais je suis particulièrement satisfait du résultat. Il rendrait particulièrement je pense pour une elfe noire. certes les cheveux sont plutôt sombre mais bon, on parle d'imaginaire, là.

Drow.jpg
Par Torgan - Publié dans : Illustrations - Communauté : peintres et tout les artistes
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Vendredi 1 juin 2007

Une petite illustration supplémentaire avant le week-end : Linéa d'Astria, aventurière et exploratrice, occasionnellement sauveuse de monde.
Linea.jpg
Ses aventures sont décrite sur le site Torgan.net
Par Torgan - Publié dans : Illustrations - Communauté : peintres et tout les artistes
Ecrire un commentaire - Voir les 3 commentaires - Recommander
 
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus