[Snippet] Content Spinning en Javascript

Le Content Spinning est une technique consistant à écrire des textes contenant des synonymes pour la plupart de ses mots / expressions, afin de pouvoir générer des phrases aléatoires, mais d’un sens similaire, ce qui peut être intéressant pour éviter le duplicate content dans certains cas.

Exemple : « {Bonjour|Salut}, je m’appelle {Kevin|Darklg} » pourra produire « Bonjour, je m’appelle Kevin », « Salut, je m’appelle Darklg », « Salut, je m’appelle Kevin », …

Pour les besoins de mon dernier projet rigolo (PhilMyFields, un bookmarklet qui remplit automatiquement les formulaires d’une page), j’ai eu besoin de creer un script permettant du Content Spinning en JS.

C’est pour vous, pas besoin de librairie JS, ça peut s’optimiser, mais c’est cadeau :

// Retourne un élément au hasard dans un tableau
function phil_rand_arr(tableau){
	return tableau[Math.floor(Math.random() * tableau.length)];
}

// Retourne un texte "spinné"
function phil_content_spinning(txt){
	var matches = txt.match(/{[^{]+}/g);
	if(matches[0]){
		for (i in matches) {
			spin = matches[i]+'';
			ori_spin = spin;
			spin = spin.replace("{", "").replace("}", "");
			spin_strs = spin.split('|');
			txt = txt.replace(ori_spin,phil_rand_arr(spin_strs));
		}
	}
	return txt;
}

// La démo, la démo, la démo !
console.log(phil_content_spinning('{Bonjour|Salut}, je m’appelle {Kevin|Darklg}'));

Partager cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • @thesorrow J’ai toujours peur que mon mauvais accent anglais ressorte dans mon code :’)

  • Hello,
    Sinon il existe désormais un très bon outil de content spinning en francais… Payant certe mais vraiment très bien ficelé. Il supporte l’orthographe la grammaire et sort des textes très propre.
    Lisez mon article pour plus d’infos 🙂 http//waxoo.fr/logiciels/revolusyn-du-content-spinning-propre-et-en-francais/

    @+

  • Hello les amis il y à aussi http//www.content-spinning.com/ qui proposera bientot une api 😉

    JohnDoe je t’ai reconnu ! 😀