syp
Billets : 76

Ce blog est propulsé par
une technologie
Krinein + blog = kriblog

Analyse anti spam « in-text »

syp - 02/05/2008 à 22:58

Dans le folklore SEO, il y a de nombreux serpents de mer de la catégorisation de pages web en page spammy ou légitimes. On peut mentionner le Trustrank (théorisé par Gyongyi, Garcia-Molina et Pedersen [2] en 2004, personne ne sait si il est implanté dans un moteur), l'analyse des liens et l'utilisation de classifiers (par Becchetti, Castillo, Donato, Baeza-yates et Leonardi [1]) et aussi, et c'est le sujet de ce billet, le classifier basé sur des critères in text de Ntoulas, Najork, Manasse et Fetterly [3]. Et c'est amusant, chacun des articles dont je viens de parler est relié à certains des grands moteurs de recherche ([1] et [2] c'est Yahoo ! même si Gyongyi bosse maintenant chez Google et [3] c'est Microsoft).


Passons sur la définition donnée par Ntoulas et ses collègues de ce qu'est le spam sur le web («Web spam, you know it when you see it ») puisque de toute façon ils ont utilisé une base de spam classifié à la main par des volontaires, puis ont confronté les résultats de leur méthode avec le classement fait par ces volontaires.
Passons également sur les résultats surprenants de la classification humaine concernant leur échantillon de test. On y apprend que 70% des sites en .biz sont des sites spammy tandis que a peine 5% des sites en .org en sont et 0% des sites en .edu. On y voit également que les rois du spam sont les français et les allemands (où sont les polonais, pourtant jamais les derniers lorsque l'on parle de BH SEO ?).

 

Le cœur de leur article est sur les critères in text qui permettent de classifier efficacement des pages web selon leur « spamicity ». Quelle est la méthodologie ? Elle est très simple. Imaginons que je pense que le nombre de mots dans le <title> est discriminant pour le spam. Ce que je dois faire (et qu’ils on fait, la figure provient de leurs slides de présentation) est de tracer la courbe suivante, qui donne la proportion de pages qui contient un certain nombre de mots dans le titre, corrélé (courbe violette) par la proportion de spam qui correspond.

 

 

bouououh du spam!

Avec cette courbe, on voit alors que les pages qui ont un grand nombre de mots dans le titre ont une forte probabilité d'être du spam (par exemple probabilité 83% avec un titre de 45 mots, alors que la probabilité d'être du spam est de 1% pour 5 mots dans le titre).
Les auteurs de l'article ont ainsi passés de nombreux critères possibles en revue pour en retenir de nombreux dont :

  • Taille de la page : une grande page c'est toujours un drapeau rouge a soulever.
  • Nombre de points, tirets et autres séparateurs dans l'URL : l'idée est que une page de spam a une URL généré automatiquement et qui contient les mots clés séparés brutalement.
  • Longueur du nom de domaine : un long domaine c'est forcément louche car généralement on choisit un acronyme ou une courte suite de mots.
  • Nombre de mots dans la page : une page vide ou trop pleine ? Bizarre, non ?
  • Nombre de mots dans le titre : comme son nom l'indique
  • Fraction du texte qui est du texte d'ancre de lien : si tous les mots de la page sont des liens, on a sans doute une page de spam qui fait abusivement des liens.
  • Longueur moyenne des mots : dans un texte standard, les mots apparaissent avec certaines probabilités, par conséquent les mots ont une longueur moyenne particulière. Un texte artificiellement généré est souvent déviant car la présence de certains mots est renforcée.
  • Rapport de compression, rapport contenu/contenant : quelle est la taille de la page compressée par rapport à sa version normale ? Quelle est la proportion de code par rapport au réel contenu ?

Il y a bien d'autres critères, mais je ne vais pas tous les lister ici, je vous renvoie à la lecture de l'article pour en savoir plus. Une fois ces critères mis au point, la suite du processus consiste à faire un arbre de décision qui va permettre de décider si une page est du spam ou non. J'ai dessiné dans la figure suivante un exemple bidon qui montre l'idée d'un tel arbre de décision. Il suffit ensuite d'appliquer les crtères qu'on trouve dans l'arbre jusqu'a une feuille spam ou non-spam.

arbre de decision

Avec cette approche, les auteurs annoncent qu'ils identifient correctement 86% du spam de leur échantillon comme tel, et 99% du non-spam comme étant légitime. Les chiffres paraissent plutôt flatteurs pour une méthode très simple, mais qui nécessite un tuning très fin à la main. Par ailleurs leur méthodologie de test de la méthode n'est pas satisfaisante puisqu'ils testent la méthode sur l'échantillon qui a servis à la mettre au point, ce qui rend bien sur très bon les résultats numériques finaux. Enfin, on notera que la plupart des critères in text ne détectent pas une page générée avec un générateur Markovien, alors qu'on voit facilement qu'un tel texte n'à aucun sens. Au final la méthode est utile en première étape de filtrage, mais pas plus probablement. Par ailleurs elle est couteuse en temps de calcul, donc pas forcément applicable à des gros index comme ceux manipulés par les moteurs de recherche.


[1] Becchetti, L., Castillo, C., Donato, D., Baeza-YATES, R., and Leonardi, S. 2008. Link analysis for Web spam detection. ACM Trans. Web 2, 1 (Feb. 2008 ), 1-42.
[2] Zoltán Gyöngyi, Hector Garcia-Molina, Jan Pedersen. Combating Web Spam with TrustRank. 30th International Conference on Very Large Data Bases (VLDB), Toronto, Ontario, Canada, 2004.
[3] Alexandros Ntoulas, Marc Najork, Mark Manasse, and Dennis Fetterly. Detecting Spam Web Pages Through Content Analysis. 15th International World Wide Web Conference (May 2006), pages 83-92.

Tags : seo spam
Catégories : SEO

Réactions

Réagissez à ce billet !

Le critère sur la longueur des mots paraît assez ardu à appliquer, vu que la longueur moyenne des mots dépend essentiellement de la langue : les Allemands sont adeptes des mots à rallonge, les Anglais des mots courts, nous autres Français utilisons des tonnes d'articles et de pronoms, et je ne parle pas des langues qui n'utilisent pas l'alphabet latin.

Du coup, si on peut adapter sur les sites en .fr ou équivalents des diverses nationalités, ces sites étant probablement rédigés dans la langue de leur pays (une langue différente de la nationalité d'affiliation ne peut-elle d'ailleurspas constituer un critère ?, je suppose qu'il en va tout autrement sur les sites en .com, .biz et consorts.

L'élite de ce pays permet de faire et défaire les modes, suivant la maxime qui proclame : "Je pense, donc tu suis." [Pierre Desproges]
syp
Membre

Bien evidemment, il faut avoir determiné la langue du texte au préalable (ce n'est pas une tache très difficile a priori).

Et pourquoi ne pas ajouter une signature ?
nazgul666
Membre

Encore un article très intéressant. Par contre, sur la longueur moyenne des mots, une page comme Krinein (ou Wikipedia) et une page comme un Skyblog auront forcément des longueurs moyennes de mots différents. Pourtant ni l'un, ni l'autre en sont des spams dont cette méthode a des limites (forcément me direz-vous). Enfin bon si on classe les Skyblogs comme du spam , personne ne s'en plaindra :p

 

Le Bouc est Comique : http://comiquebouc.free.fr

Le kikoo-lol-mdr pose déjà des problèmes quant à l'identification du langage...

Par contre, qu'on laisse les skyblogs tranquilles sinon les kikoo-lolleurs vont envahir les kriblogs et on l'aura dans l'os... Pour un aperçu du massacre, voir les nombreux posts sur yu-gi-oh dans la section jeux vidéo.

L'élite de ce pays permet de faire et défaire les modes, suivant la maxime qui proclame : "Je pense, donc tu suis." [Pierre Desproges]
Rédigez votre commentaire

Code antispam

(recopiez les caractères)