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
Catégorie: Génération de contenu, Scraping
- Ajouter cet article à :
- Del.icio.us -
- Digg
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 ![]()
Commentaire par BlackMelvyn
Vendredi, 11 juillet , 2008 à 20:49
Ravi que ça vous plaise ![]()
@RiPSO : pour les autres langues, c’est plus cher ![]()
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 ![]()
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 ![]()
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 ![]()
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 ! ![]()
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















