перемешать текст с кеями

Тема в разделе "Вопросы новичков", создана пользователем lena berkova, 25 янв 2009.

Статус темы:
Закрыта.
  1. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    есть ли тулза, чтобы взять явно 1 текст и кеи и перемешать их как делают доргены, но чтобы без шаблонов и кучи страниц? желательно онлайн
     
  2. Ragger

    Ragger

    Регистр.:
    14 июн 2008
    Сообщения:
    167
    Симпатии:
    183
    http://noulake.com/tools/markov.php
     
    lena berkova нравится это.
  3. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    Можно сделать намного проще. Если нужен текст, например как в баттоне, то просто берем пустую html страницу, там вписываем макрос [text-1000-1500], ставим генерировать 1 кей, т.е. будет одна страница и запускать - получая фактически один нужный нам текст с выделенными кеями разным образом, можно убрать при настройках все выделения. Удобнее так, наверное.
     
  4. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    498
    Симпатии:
    144
    + 1 за Ред Баттон, относительно текста с ним можно это проделать, берете текст + 1 кей можете указать на выходе файл с расширением .txt вот и все... Зачем еще онлайн такие заморочки, был тут на форуме еще
    парсер текста by Kot
    вот в нем тоже были фишки для перемешки текста с кеями, правдо я этим не пользовался сказать относительно работоспособности ничего не могу...
     
  5. FormTask

    FormTask Создатель

    Регистр.:
    17 ноя 2008
    Сообщения:
    18
    Симпатии:
    1
    Тогда уж не батон брать, а что-нибудь более интересное проде того же ДМИ для буржуя.
     
  6. ko-yg

    ko-yg

    Регистр.:
    12 ноя 2008
    Сообщения:
    519
    Симпатии:
    161
    почему сразу дми?) если уж для буржуя (и то смотря под какую пс), джон22 генерит тексты поудачнее дми по крайней мере для гугля.
     
  7. Nike59

    Nike59

    Регистр.:
    13 ноя 2006
    Сообщения:
    459
    Симпатии:
    100
    Имею и jonn22 и DMI, так вот, при прочих равных условиях доры, сгенеренные DMI гораздо лучше вылазят в Гугле. Суть в алгоритме генерации контента. У DMI текст грамматически точен, поскольку построен на грамматически верных шаблонах.
     
  8. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    За какую версию DMI идет речь?
     
  9. ko-yg

    ko-yg

    Регистр.:
    12 ноя 2008
    Сообщения:
    519
    Симпатии:
    161
    тоже интересуют версии скриптов? Лицензии или нули?
     
  10. qwyjibo

    qwyjibo Постоялец

    Регистр.:
    27 янв 2009
    Сообщения:
    64
    Симпатии:
    12
    Наткнулся недавно на такой класс, сам пока не тестил, но вроде все хорошо задокументировано.
    PHP:
    <?php
    class keywordInjector
    {

    /*
       Instantiate the class with the word salad, or install the salad later as a property.
       Density and Weight are passed as integers and I decimalize them at injection time.
       Density is the percentage of words that will be inserted
       Weight is where the insertions are placed - 10% = front 10% of the text,
       100 would be the whole document, -99 would be the bottom 99%. 0 (zero) is invalid.
       Delim is the character used to explode the word salad.
       insertMarker is a string that I use for identifying insert positions. You should not
       have to worry about this one unless you use '#!#' in your input buffers.

       The injector will correctly avoid HTML tags, style and JS blocks.
       The injector will not insert keyword phrases into inerted keyword phrases,
       however, based on how many HTML tags there are to avoid you may still get some
       doubling up ie., phrase phrase phrase based on the weight and density of the injection.
       It will also notice if there is a <body> tag and only insert past there.
       The style created has a random name to help reduce footprinting.

       Note that you could use a keyword list like 'online casino,online gambling' by simply
       changing the delimiter of the salad to ',' rather than the default ' '.

       There is a potential problem of finding script and style blocks if the HTML was coded
       like this: < script or < /style - the spaces before the node name will give me trouble.

    Example:
    $injector = new keywordInjector();
    $injector->salad = file_get_contents('/wordSalad.txt');
    $output = $injector->inject($inputBuff);

    */

            
    var $density;
            var 
    $weight;
            var 
    $salad;
            var 
    $delim;
            var 
    $insertMarker;

            function 
    keywordInjector($theSalad '')
            {
                    
    $this->density 10;
                    
    $this->weight 100;
                    
    $this->salad $theSalad;
                    
    $this->delim ' ';
                    
    $this->insertMarker '#!#';
            }

            function 
    inject($inBuff)
            {
                    if ((
    $this->density <= 0) || ($this->density 100)) {
                            die(
    'Class keywordInjector requires a density of 1..100.'); }
                    if ((
    $this->weight == 0) || ($this->weight 100) || ($this->weight < -99)) {
                            die(
    'Class keywordInjector requires a weight of -99 to +100 but NOT zero.'); }
                    if ((
    strlen($this->salad) == 0) || (strpos($this->salad$this->delim) === false)) {
                            die(
    'Class keywordInjector requires a salad string with at least 2 words.'); }
                    if ((
    strlen($inBuff) == 0) || (strpos($inBuff' ') === false)) {
                            die(
    'Class keywordInjector->inject requires an input string with at least 2 words.'); }

                    
    $saladArr explode($this->delim$this->salad);
                    
    $saladLen count($saladArr);
                    
    $workBuff $inBuff;
                    
    $styleName $this->_randomStyleName();
                    
    $styleDecl "<style>.$styleName { display: none; }</style>\n";

                    
    // Deal with the potential of a <body> tag...
                    
    $headBuff '';
                    
    $ptr strpos($checkBuff'<body');
                    if (!
    $ptr === false)
                    {
                            
    // There is a body tag - hold on to the portion of the buffer BEFORE
                            // the body for later, but deal with the buffer from here forward with out.
                            
    $headBuff substr($inBuff0$ptr);
                            
    $workBuff substr($inBuff$ptrstrlen($inBuff));

                            
    // Need to reset the checkBuff...
                            
    $checkBuff strtolower($workBuff);
                    }

                    
    // Calculate the weight and density parameters...
                    
    $actualDensity $this->density 100;
                    
    $tempBuff explode(' 'strip_tags($workBuff));
                    
    $insertCount count($tempBuff) * $actualDensity;
                    
    $actualWeight abs($this->weight 100);
                    if (
    $this->weight 0)
                    {
                            
    // Weighted towards the front
                            
    $rangeTop 0;
                            
    $rangeBottom strlen($inBuff) * $actualWeight;
                    } else {
                            
    // Weighted towards the end
                            
    $rangeTop strlen($inBuff) - (strlen($inBuff) * $actualWeight);
                            
    $rangeBottom strlen($inBuff);
                    }

                    
    // First pass - find valid spaces in the content that I can insert
                    // a phrase, and replace it with an insert marker...
                    
    for ($i=0$i<$insertCount$i++)
                    {
                            
    $checkBuff strtolower($workBuff);
                            
    $maxLen strlen($workBuff);

                            
    $ptr rand($rangeTop$rangeBottom);

                            
    // Loop until I am at a space that is NOT inside something bad...
                            
    $keepGoing true;
                            
    $failSafe 0;
                            while(
    $keepGoing)
                            {
                                    if (
    $failSafe++ >= 50)
                                    {
                                            
    // OK: I have looped around 50 times trying to insert the current keyword -
                                            // I think it is clear that the caller is trying to put too much density of injection
                                            // into the article and I have run out of space to insert.
                                            
    $i $insertCount 1;
                                            
    $keepGoing false;
                                            continue;
                                    }

                                    
    // Go forward to the next space character...
                                    
    $ptr strpos($workBuff' '$ptr);
                                    if (
    $ptr === false)
                                    {
                                            
    // I have randomed too far out... rerandom and start again.
                                            
    $ptr rand($rangeTop$rangeBottom);
                                            continue;
                                    }

                                    
    // First - make sure that I am not in a script block.
                                    // All I do is see that the next <script> is [left in the block] of </script>
                                    
    $lPtr strpos($checkBuff'</script'$ptr);
                                    
    $rPtr strpos($checkBuff'<script'$ptr);
                                    if (
    $lPtr $rPtr)
                                    {
                                            
    // I landed in a script... find the end of it and position myself there.
                                            
    $ptr strpos($workBuff'>'$lPtr) + 1;
                                            continue;
                                    }

                                    
    // Same drill for styles...
                                    
    $lPtr strpos($checkBuff'</style'$ptr);
                                    
    $rPtr strpos($checkBuff'<style'$ptr);
                                    if (
    $lPtr $rPtr)
                                    {
                                            
    // I landed in a style...
                                            
    $ptr strpos($workBuff'>'$lPtr) + 1;
                                            continue;
                                    }

                                    
    // Now make sure that I am not inside of a tag...
                                    
    $lPtr strpos($workBuff'>'$ptr);
                                    
    $rPtr strpos($workBuff'<'$ptr);
                                    if (
    $lPtr $rPtr)
                                    {
                                            
    // I'm inside a tag...
                                            
    $ptr strpos($workBuff'>'$lPtr) + 1;
                                            continue;
                                    }

                                    
    $keepGoing false;
                            }

                            
    // Good to go! drop the marker and move on...
                            // (Note that space is actually removed)
                            
    if ($failSafe 50)
                            {
                                    
    $left substr($workBuff0$ptr);
                                    
    $right substr($workBuff$ptr 1$maxLen);
                                    
    $workBuff $left $this->insertMarker $right;
                            }
                    }

                    
    // OK: I now have <n> insert markers in the text. Replace them with
                    // words/phrases from the salad...
                    
    $ptr strpos($workBuff$this->insertMarker);
                    
    $imLen strlen($this->insertMarker);
                    while (!
    $ptr === false)
                    {
                            
    $maxLen strlen($workBuff);
                            
    $left substr($workBuff0$ptr);
                            
    $right substr($workBuff$ptr $imLenstrlen($workBuff));
                            
    $saladPtr rand(0$saladLen);
                            
    $saladWord $saladArr[$saladPtr];
                            
    $workBuff "$left <span class=\"$styleName\">$saladWord</span> $right";
                            
    $ptr strpos($workBuff$this->insertMarker);
                    }

                    
    // Here it comes...
                    
    return $headBuff $styleDecl $workBuff;
            }

            function 
    _randomStyleName($nameLen 10)
            {
                    
    $proto 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
                    
    $max strlen($proto);
                    
    $out '';
                    for (
    $i=0$i<$nameLen$i++) { $out .= substr($protorand(0$max), 1); }
                    return 
    $out;
            }
    }
    ?>
     
Статус темы:
Закрыта.