Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Site Web] Auto Content Spinning en PHP

    22 avril 2016 à 4:01:58

    Bonjour,

    Présentation

    Je suis Sylvain j'ai 29 ans et je suis passionné d'informatique.

    Mon projet

    J'ai l'intention de créer un outil en ligne pour faire de l'auto content spinning en PHP. J'ai un dictionnaire SQL de synonymes mais je pense que ça suffit pas. Et c'est pour ça que j'ai besoin de vous.

    J'ai commencé un site ici : http://www.content-spinning-en-ligne.com/

    Le problème déjà c'est la syntaxe et le fait que les mots ne soient pas vraiment appropriés les uns à la suite des autres. Après je pense que c'est outil, une fois bien travaillé peut s'avérer être utile et être rémunérateur avec les publicités du site. Évidemment s'il est bien réalisé. Sinon les gens vont tester une fois puis laisser tomber.

    Je recrute

    Plusieurs codeurs PHP/MySQL pour ce projet afin de réaliser ce script. Je partage le code.

    Voici d'ailleurs mon code que j'ai fait rapidement ce soir :

    $texte = $_POST['texte'];
    				$phrases = explode('.',$texte);
    				$content = '';
    				$percent = 20;
    				foreach($phrases as $val) {
    					$mots = explode(' ',$val);
    					$count = count($mots);
    					$actual_percent = 0;
    					for($i=0;$i<$count;$i++) {
    						$iteration = round(100 / $percent);
    						if($i % $iteration == 1 and strlen($mots[$i]) > 1) {
    							$search = str_replace(Array(',',':','!','?',';','%','$','*','"','\''),'',$mots[$i]);
    							$sql = "SELECT `synonymes_mots` FROM `thesaurus_fr` WHERE LOWER(`synonymes_racine`)='".$search."'";
    							$rq = $db->query($sql);
    							if($db->affected_rows) {
    								$synonymes = $db->result($rq);
    								//echo '<p>'.$synonymes.'</p>';
    								$expl = explode(',',$synonymes);
    								$c = count($expl);
    								$rand = rand(0,$c-1);
    								$content .= $expl[$rand].' ';
    							}
    							else
    								$content .= $mots[$i].' ';
    						}
    						else
    							$content .= $mots[$i].' ';
    					}
    				}

    Et voici le fichier SQL des synonymes ici :  http://www.content-spinning-en-ligne.com/thesaurus-fr.sql

    Je souhaite donc recruter des gens qui m'aideraient à faire ce projet pour pouvoir plus tard peut être commercialiser une version payante.

    J'attends vos avis et critiques. Je précise que rien est finit.

    Merci

    Sylvain

    • Partager sur Facebook
    • Partager sur Twitter
    Necatis.com - Développeur Web passionné
      25 avril 2016 à 17:04:39

      Il faudrait revoir les choses de la base, probablement ne pas le faire en PHP d'ailleurs, et beaucoup beaucoup de boulot. Un content spinner c'est pas juste changer les mots par des synonymes, c'est beaucoup plus que ça, sinon n'importe quel gugus pourrait en faire un. Ce n'est pas pour rien que ces services coûtent un bras.

      • Partager sur Facebook
      • Partager sur Twitter

      Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.

        13 avril 2017 à 14:05:39

        Bonjour Sylvain,

        Je confirme ce qu'a écrit Sakuto : le content spinning, comme le TAL (Traitement Automatique du Langage), ne consiste pas uniquement à trouver des synonymes. Ce serait trop simple et le résultat serait très mauvais. Tout le challenge consiste à produire des textes qui vont avoir le même sens général mais en utilisant d'autres mots et d'autres tournures. Entre le content spinning pratiqué dans les années 2008~2012 et celui qui se pratique aujourd'hui, il y a un monde ! Beaucoup de R&D a été investie sur le sujet et on en arrive à des niveaux de diversité et de qualité absolument fascinants, avec notamment des remplacements de variables, des variables conditionnelles qui vont permettre de mettre en œuvre des spins polymorphes, et j'en passe...

        Amicalement,
        Sophie.
        • Partager sur Facebook
        • Partager sur Twitter
        Linguiste, chef de projet en NLP (Natural Language Processing) et content spinning.
          13 avril 2017 à 19:35:02

          Très mauvaise idée de nommer ses variables en français !
          • Partager sur Facebook
          • Partager sur Twitter
            14 avril 2017 à 17:06:44

            Super Akrone de l'Internet a écrit:

            Très mauvaise idée de nommer ses variables en français !


            Bonjour.

            Dans la mesure où il est Français, qu'il code tout seul pour l'instant, qu'il recrute des dev' Français et qu'il n'a jamais parlé de partager son code sur github, je ne vois pas l’intérêt de ta remarque :/

            PS : ta citation c'est plutôt : J'ai demauvaises intentions, mais des bonnes raisons (si tu veux rester fidèle à l'originale :p )

            -
            Edité par arno21 14 avril 2017 à 17:10:16

            • Partager sur Facebook
            • Partager sur Twitter

            Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

              30 avril 2017 à 18:14:16

              arno21 a écrit:

              Super Akrone de l'Internet a écrit:

              Très mauvaise idée de nommer ses variables en français !


              Bonjour.

              Dans la mesure où il est Français, qu'il code tout seul pour l'instant, qu'il recrute des dev' Français et qu'il n'a jamais parlé de partager son code sur github, je ne vois pas l’intérêt de ta remarque :/

              PS : ta citation c'est plutôt : J'ai demauvaises intentions, mais des bonnes raisons (si tu veux rester fidèle à l'originale :p )

              -
              Edité par arno21 14 avril 2017 à 17:10:16


              Ca devient hors sujet mais on te diras toujours (surtout en entreprise) d'appliquer les bonnes pratiques dans n'importe quels contextes
              • Partager sur Facebook
              • Partager sur Twitter
                2 mai 2017 à 22:01:53

                Il est pas en entreprise, il appel ses variables comme il veux. C'est lui le chef de projet c'est lui qui défini les bonnes pratiques. Tu verra ça en entreprise.
                • Partager sur Facebook
                • Partager sur Twitter

                Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

                  8 mai 2017 à 22:22:27

                  sylvain.php a écrit:

                  J'ai commencé un site ici : http://www.content-spinning-en-ligne.com/



                  Le site n'existe plus ! (?)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 octobre 2017 à 8:40:53

                    SophieMorin1 a écrit:

                    Bonjour Sylvain, 

                    Je confirme ce qu'a écrit Sakuto : le content spinning, comme le TAL (Traitement Automatique du Langage), ne consiste pas uniquement à trouver des synonymes. Ce serait trop simple et le résultat serait très mauvais. Tout le challenge consiste à produire des textes qui vont avoir le même sens général mais en utilisant d'autres mots et d'autres tournures. Entre le content spinning pratiqué dans les années 2008~2012 et celui qui se pratique aujourd'hui, il y a un monde ! Beaucoup de R&D a été investie sur le sujet et on en arrive à des niveaux de diversité et de qualité absolument fascinants, avec notamment des remplacements de variables, des variables conditionnelles qui vont permettre de mettre en œuvre des spins polymorphes, et j'en passe...

                    Amicalement, 
                    Sophie

                    Merci Sophie pour ces explications. J'ai sorti une nouvelle version, en effet ça remplace par des synonymes et en français c'est catastrophique. En anglais ça l'est moins.

                    Demo ici : https://www.necatis.com/scripts/site_spinning/

                    La fonction spin :

                    <?php
                    function spin($text,$langue) {
                    
                    	$article = stripslashes($text);
                    	
                    	preg_match_all('/<img[^>]+>/i',$article, $images); 
                    	preg_match_all("/<[^<>]+>/is",$article,$matches);
                    	
                    	$htmlfounds=$matches[0];
                    	$exword_founds=array(); 
                    
                    	switch($langue) {
                    		case 'fr' :
                    			$file=file(dirname(__FILE__)  .'/fr.dat');
                    		break;
                    		case 'en' :
                    			$file=file(dirname(__FILE__)  .'/en.dat');
                    		break;
                    	}
                    	
                    
                    	//recherche de tous les mots
                    	foreach($file as $line){
                    		
                    		//pour chaque mot synonyme
                    		$synonyms=explode('|',$line);
                    		$synonyms=array_map('trim',$synonyms);
                    		$synonyms2=$synonyms;
                    		
                    		foreach($synonyms2 as $word)
                    		{	 
                    			$word=str_replace('/','\/',$word);
                    			if(trim($word) != ''){
                    				//On vérifie l'existance du mot
                    				
                    				//On remplace les mots en mininuscules
                    				if(preg_match('/\b'. $word .'\b/u', $article)) {
                    				 
                    				  //On remplace le mot avec un hash and et on ajoute chaque mot dans le tableau for éviter les doublons
                    				   
                    					//Restructuration de la ligne pour rendre le mot originel au premier mot
                    					$restruct=array($word);
                    					$restruct=array_merge($restruct,$synonyms);
                    					$restruct=array_unique($restruct);
                    					//Et voici un array reverse
                    					$restruct=implode('|',$restruct);
                    					
                    					$founds[md5($word)]= str_replace(array("\n", "\r"), '',$restruct) ;
                    					
                    					$article=preg_replace('/\b'.$word.'\b/u',md5($word),$article);
                    				}
                    				
                    				//Remplacement des mots en MAJUSCULE
                    				$uword = ucfirst($word);
                    				
                    				if(preg_match('/\b'. $uword .'\b/u', $article)) {
                    
                    					$restruct=array($word);
                    					$restruct=array_merge($restruct,$synonyms);
                    					$restruct=array_unique($restruct);
                    					$restruct=implode('|',$restruct);
                    					
                    					$founds[md5( $uword )]=  str_replace(array("\n", "\r"), '',$restruct);
                    					$article=preg_replace('/\b'.$uword.'\b/u',md5($uword),$article);
                    						
                    				}
                    				
                    			}
                    		}
                    
                    	//Resturation des tags HTML
                    	$i=1;
                    	foreach($htmlfounds as $htmlfound){
                    		$article=str_replace( '('.str_repeat('*', $i).')',$htmlfound,$article);
                    		$i++;
                    	}
                    	
                    	//remplacement des mots exclus
                    	foreach($exword_founds as $exword){
                    		if(trim($exword) != ''){
                    			$article=str_replace( '('.str_repeat('*', $i).')',$exword,$article);
                    			$i++;
                    		}
                    		
                    	}
                    	
                    	//Remplacement des hashes par des synonymes
                    	if(count($founds) !=0){
                    		foreach ($founds as $key=>$val){
                    			$article=str_replace($key,'{'.$val.'}',$article);
                    		}
                    	}
                    	
                    	$article = inspin($article);
                    	
                    	//suppression des tags HTML
                    	$article = preg_replace('/style=".*?"/i', '', $article);
                    	$article = preg_replace('/id=".*?"/i', '', $article);
                    	$article = preg_replace('/class=".*?"/i', '', $article);
                    	$article = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $article); 
                    	$article = preg_replace('#<a.*?>(.*?)</a>#i', '\1', $article); 
                    	
                    	
                    
                    	//On récupèrez tous les tags d'images	
                    	$img = Array();
                    	foreach($images[0] as $val) {
                    		preg_match('#alt="([^"]*)"#i',$val,$alt);
                    		preg_match('#src="([^"]*)"#i',$val,$src);
                    		if($alt[1] != 'Grey line')
                    			$img[] = '<img src="'.$src[1].'" alt="'.spin_alt($alt[1],'en').'"';
                    	}
                    	
                    	preg_match_all('#<h2 elegance="tale-body__crosshead">([^"]*)</h2>#i',$article,$matches);
                    	
                    	$i = 0;
                    	foreach($matches[1] as $key => $val) {
                    		if($i % 2 == 0)
                    			$style = ' style="float:left;margin-right:15px;">';
                    		else
                    			$style = ' style="float:right;margin-left:15px;">';
                    		$article = str_replace('<h2 elegance="tale-body__crosshead">'.$val.'</h2>',$img[$i].$style.'<div style="clear:both;"></div><h2 elegance="tale-body__crosshead">'.$val.'</h2><hr>',$article);
                    		$i++;
                    	}
                    	return $article;	 
                    }


                    Merci pour vos commentaires

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Sylvain GARCIA - Necatis.com - https://www.necatis.com/

                      30 octobre 2017 à 14:16:27

                      Original :

                      Résultat : Il est vrai , à bien y penser , que le mal , aussi bien que le bien , se trouve en nous.

                      Résultat :

                      Il est indéniable , à occupé y agioter , que le mal , vers entreprenant que le actif , se trouve en maints.
                      Tu y est presque ! ^^

                      -
                      Edité par CrevetteMagique 30 octobre 2017 à 14:16:52

                      • Partager sur Facebook
                      • Partager sur Twitter

                      [Site Web] Auto Content Spinning en PHP

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown