27 July 2024


formation avancée au référencement

Posts Tagged ‘Markov’

Générer du contenu avec les chaînes de Markov

Mardi, novembre 25th, 2008

Toujours en quête de contenu unique et ciblé, le webmaster est.
De nombreux moyens pour en trouver, développer il doit.
Maître Yoda, codez-moi un script de chaines de Markov !

Yoda, code moi une solution de génération de contenu

Alors comment ça se passe ?
Je ne vais pas entrer dans les explications mathématiques qui me dépassent, mais plutôt tenter d'expliquer comment cela fonctionne et quels en sont les intérêts.

En gros, et pour les nuls comme moi, les textes qu'on passe à la moulinette [inline] [/inline] sont rendus uniques car on modifie l'ordre des mots en tentant de conserver certaines suites. En fait, c'est un peu comme mettre le contenu dans un panier à salade, essorer avec plus ou moins de violence (ça c'est ce que certains appellent la granulométrie), et tout ressortir d'un coup en sachant déjà quel serait l'ordre des mots. Les chaînes de Markov, c'est la prédiction du futur sans connaître le passé :)
Voilà pour l'explication, vous l'aurez compris, je suis incapable de vous expliquer correctement comment cela fonctionne.... mais j'aime bien le résultat !

Alors, si on passait à l'action....
Pas mal de gens recherchent ce genre de scripts sur Internet, et il en existe des plus ou moins bons, et des plus ou moins paramétrables.
A mes débuts, j'ai utilisé le code ci-dessous pour réécrire mes contenus, avec succès...

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
<?php
/*
------------------
Ecrit par Levi Thornton @ Boogybonbon.com, Tous droits réservés, alors n'espérez même pas supprimer cette ligne ou faire croire que c'est vous qui l'avez écrit !
Note de BlackMelvyn: c'est une traduction, je respecte son copyright, et c'est pas moi qui l'ai codé ;)
 
Si vous aimez ce script faites un BL vers http://www.boogybonbon.com/ (Note: mais le domaine est mort...)
------------------
*/
class clsMarkov {
  var $wordList= array();
  var $termTree = array();
 
  function makeList($string) {
    $string = strtolower($string);
    $string =  preg_replace("/[^A-z0-9\s]/i", "", $string);
     preg_match_all("/[A-z0-9]+\S/", $string, $op);
     $this->wordList = $op[0];
     return $this->wordList;
  }
 
  function buildTree() {
    // $searchList = $this->wordList;
    $arraySize = count($this->wordList);
    while ($ns!=$arraySize) {
      $termRoot = current($this->wordList);
      $termKeys = array_keys($this->wordList,$termRoot);
      foreach ($termKeys as $key=>$num) {
        $this->termTree[$termRoot][] = $this->wordList[($num+1)];
      }
      $this->termTree[$termRoot] = array_unique($this->termTree[$termRoot]);
      next($this->wordList);
      $ns++;
    }
 
  }
 
  function phraseWriter($seed, $words) {
    $results = $seed = strtolower($seed);
    if($this->termTree[$seed]) {
    while($nn<=$words) {
      $rndseed = rand(0,count($this->termTree[$seed]));
      if($this->termTree[$seed][$rndseed]) {
        $results .= ' '.$this->termTree[$seed][$rndseed];
        $seed = $this->termTree[$seed][$rndseed];
        $nn++;
      }
    }
    return $results;
    } else return 'No seed match';
  }
}
?>

Voic comment ce script s'utilise

1
2
3
4
5
6
7
8
<?php
$string = "Plus vous avez de mots et meilleur sera le résultat de votre opération sur le texte d'origine
Si vous n'y arrivez pas, il faut persister";
$tmp = new clsMarkov();
$tmp->makeList($string);
$tmp->buildTree();
print $tmp->phraseWriter('vous', 10); // phraseWriter(mot de base, nombre de mots dans le résultat)
?>

Bon voilà, vous avez maintenant le pouvoir de générer un nouveau contenu unique, facilement...
Alors il ne vous reste plus qu'à coder votre meilleur script de scraping et de commencer à vous faire des ronds avec la longue traine ;)
Pour être utile à l'internaute, il est indispensable de faire un bon cloaking afin que le contenu généré ne soit destiné qu'aux moteurs, et le contenu clair et lisible aux internautes recherchant de bonnes informations.

Chapitre suivant dans la série génération de contenu : le scraping, comment ça marche ;)