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}'));

Tags : , , ,