Dictionnaire des synonymes, des mots à la pelle

Ecrit par BlackMelvyn le Vendredi 11 juillet 2008 à 13:17 - Catégorie Génération de contenu, Scraping

Créer du contenu… le sujet a déjà été abordé maintes fois et la problématique reste bien présente….
Il y a toujours la possibilité d’utiliser des techniques de copieurs ou de faire du typosquatting etc…
Pas mal de solutions en réalité, plus ou moins belles, plus ou moins rapides et plus ou moins détectables.

Si l’on pense un peu au typosquatting, on en arrive rapidement à trouver une alternative à la génération de fautes d’orthographe : les synonymes.
En effet, il suffit de remplacer certains mots par leur synonyme et ainsi passer à travers le filtre anti duplicate content de nos amis les moteurs ;)
Le contenu, si vous travaillez bien, peut être très agréable pour vos visiteurs et ne perdra aucune pertinence quant à l’information que vous éditez…
La question principale est “Où trouver suffisamment de synonymes pour ça ?”

Passons à l’action : récupérer les synonymes

Je pense ne pas me tromper en disant que personne n’a envie de recopier à la main le dictionnaire des synonymes…., non ?
Pour ça, nous avons trouvé une solution simple, pas chère et efficace : les fichiers de dictionnaire de OpenOffice :)

Il suffit de récupérer un des dictionnaires des synonymes dans la langue voulue pour pouvoir en extraire proprement les synonymes grâce à PHP et aux expressions régulières.

Voici un exemple de code utilisé pour générer la table des synonymes en français :

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
ini_set('max_execution_time', 60);
// Variables à éditer
$host = "serveur_mysql"; 
$user = "login"; 
$pass = "pass"; 
$bdd = "base";
@mysql_connect($host,$user,$pass) 
or die("Impossible de se connecter à au serveur MySQL");
@mysql_select_db($bdd) 
or die("Impossible de se connecter à la base de données");
// Fichier et table que l'on va exploiter
$file = 'nom_du_fichier.dat';
$table = 'thesaurus_fr';
 
// Fonction d'insertion des synonymes
function fill_syn(){
 global $out, $table;
 foreach($out as $word){
  $mot = $word[2];
  // Nettoyage de la chaîne des synonymes
  $liste = array_slice(explode('|', $word[3]), 1);
  // Mise sous forme de chaîne séparée par des virgules
  $synonymes = implode(',', $liste);
  // Insertion des synonymes dans la base
  mysql_query("INSERT INTO ".$table." VALUES('', '$mot', '$synonymes')");
 }
}
 
// Préparation de la table
$tables = array();
$q = mysql_query('SHOW TABLES FROM '.$bdd);
while($r = mysql_fetch_row($q)){
 $tables[] = $r[0];
}
if(in_array($table, $tables)){
 $sql = 'TRUNCATE TABLE `'.$table.'`';
}
else{
 $sql = 'CREATE TABLE IF NOT EXISTS `'.$bdd.'`.`'.$table
    .'` (`synonymes_id` INT NOT NULL AUTO_INCREMENT, `synonymes_racine`'
    .' VARCHAR(60) NOT NULL, `synonymes_mots` TINYTEXT NOT NULL, '
    .'PRIMARY KEY (`synonymes_id`)) ENGINE = MyISAM';
}
// Utilisation
if(mysql_query($sql)){
 $str = file_get_contents($file);
 $regexp = '#(([\wazéêèëîïöôùàáâãäåòóôõöøçùúûüÿñß\s ]+)\|1)+[\r\n\s]+\(.*\)((\|.+)+)#xi';
 if(preg_match_all($regexp, $str, $out, PREG_SET_ORDER)){
  fill_syn();
  echo 'Fichier traité, table complétée, synonymes insérés';
 }
 else{
  echo 'Erreur de traitement des synonymes';
 }
}
else{
 echo 'Erreur, la table n\'a pas pu être créée : '.mysql_error();
}
?>

Cette petite expression régulière est bien entendu à adapter aux autres langues si besoin, mais le noyau est là :) . Il peut y avoir des variantes plus ou moins simples pour arriver au même résultat.
Comme aujourd’hui il fait beau, les tables des synonymes en français et en anglais sont disponibles au téléchargement juste en dessous….
Happy scraping :) but don’t be evil !

Cliquez ces liens pour télécharger la table des synonymes :
» Liste des synonymes en anglais
» Liste des synonymes en français

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Catégorie: Génération de contenu, Scraping


21 Commentaires

Commentaire par Stoff (2 commentaires)

Vendredi, 11 juillet , 2008 à 14:07

Du grand art, merci les chefs!

Commentaire par Morgan (12 commentaires)

Vendredi, 11 juillet , 2008 à 14:46

Du bon boulot, merci les gars :)

Commentaire par RiPSO

Vendredi, 11 juillet , 2008 à 15:39

si si je fais parti de ceux qui avaient prévu de recopier le dictionnaire… 800 à compter de 10 pages par jour tu m’as fais gagner 2 mois et demie :)

Merci beaucoup!!

PS : si d’autres s’occupent des autres langues ça m’interesse aussi :)

Commentaire par ludomovies

Vendredi, 11 juillet , 2008 à 17:12

Wahou, c’est mortel

Je viens de passer l’après-midi a chercher un dico des synonymes a exporter en CSV et comme j’étais bredouille, je m’étais rabattu sur mon bloglines pour lire des news en attendant la fin de journée (de taff)

Et j’ai failli m’étouffer en lisant le titre du post.

formidable, encore MERCI

Ludo

Edit Admin: je viens de supprimer ton lien, pas de liens vers sites de Q ici ;)

Commentaire par admin

Vendredi, 11 juillet , 2008 à 17:19

C’est clair que cet article va faire des heureux ;)

D’ailleurs n’hésitez pas à scooper l’article et pourquoi pas le linker :lol:

Commentaire par BlackMelvyn

Vendredi, 11 juillet , 2008 à 20:49

Ravi que ça vous plaise :)
@RiPSO : pour les autres langues, c’est plus cher :lol:

Commentaire par kinder (1 commentaire)

Samedi, 12 juillet , 2008 à 21:21

j’aimerais bien voir un exemple ?

Commentaire par admin

Lundi, 14 juillet , 2008 à 14:47

@Kinder, tu veux voir un exemple de quoi ?

Commentaire par RiPSO

Lundi, 14 juillet , 2008 à 21:35

@BlackMelvyn: Je suis prêt à payer 1000% de + que la gratuité de la version Fr et En :lol:

Commentaire par BlackMelvyn

Jeudi, 17 juillet , 2008 à 8:49

Pas assez cher mon fils ! :)

Commentaire par RiPSO

Vendredi, 18 juillet , 2008 à 8:36

Je n’ai pas trouvé le chemin vers les dicos de synonymes, je n’ai trouvé que le dictionnaire orthographique.

Tu peux me dire où il se trouve please?

Commentaire par BlackMelvyn

Samedi, 19 juillet , 2008 à 19:26

Ben je crois que c’est dans le même dossier F.T.P…
Regarde à la fin du listing, il me semble que c’est dans ce coin là…

Commentaire par Julien (11 commentaires)

Dimanche, 20 juillet , 2008 à 12:04

En cours de traitement…
Vous aurez en privé mon retour si on arrive à en faire quelque chose.

Merci à vous 2 la dream team :-D

Commentaire par admin

Dimanche, 20 juillet , 2008 à 12:36

Hello Julien, j’ai essayé de faire un outil d’aide à la génération de texte, j’en suis là pour le moment : http://www.seoblackout.com/scripts/synonymes/synonymes.php , il me reste à traiter les verbes conjugés (en cours), à traiter les singuliers et pluriels, le féminin et masculin. Si tu veux le source actuel, fait-moi signe par MP ;) idem pour blackMelvyn, je vais te transférer le source si tu veux jeter un oeil ;)

Edit : si vous avez des idées niveau présentation et lisibilité, je suis preneur ;)

Commentaire par BlackMelvyn

Dimanche, 20 juillet , 2008 à 20:55

Merci Tiger ;)
je regarde tout ça :P

Commentaire par Jice (1 commentaire)

Jeudi, 24 juillet , 2008 à 17:17

Ca me fait aussi penser qu’on peut générer du contenu pour Djeunz’ … voir l’outil :

http://kikoolol.memepasmal.net

C’est une idée non? Plutôt que de générer des synonyme ou des fautes d’orthographe, on simule un skybloger!

Allez, pour la route : lol

Commentaire par Rocca (nouveau commentaire)

Samedi, 26 juillet , 2008 à 12:42

Super Script! je vais l’utiliser sur un de mes sites pour voir si la sanction qu’il a recu du 26 juin (pour duplicate je pense, comme beaucoup …) s’annulera plus tard grace au contenu qui ne sera plus similaire.

Julien

Commentaire par Julien (nouveau commentaire)

Samedi, 26 juillet , 2008 à 16:41

Apparement l’expression régulière ne fonctionne pas chez moi, j’obtiens une erreur : Erreur de traitement des synonymes
J’utilise php5 pourtant…
Si quelqu’un a reussi a surmonter ce problème je suis preneur.

Julien

Commentaire par BlackMelvyn (nouveau commentaire)

Dimanche, 27 juillet , 2008 à 13:34

@jice : why not mais faut prévoir la boîte d’aspirine une fois que t’as fini de lire la page ! :lol:

Commentaire par BlackMelvyn (nouveau commentaire)

Lundi, 28 juillet , 2008 à 8:34

@Julien : quel fichier utilises-tu ? peux-tu me donner son nom exact ?

Commentaire par Julien (nouveau commentaire)

Lundi, 28 juillet , 2008 à 11:47

BlackMelvyn, merci en fait j’ai reussi a me débrouiller il n’y avait pas de soucis avec la regex.

Julien

Laisser un commentaire

XHTML: Vous pouvez utiliser les tags suivants: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web.
Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !