Рандомайзер текста он-лине (создаёт варианты текста на основе чегонадо)

1 234 5
[Удален]
#21

To: DrJeans
А кто Вам сказал, что я уже 5 лет не использую написанный собственноручно метаморфозатор текста, который работает со словарём синонимов (30 тыс основ слов и 10 тыс основ фраз) и ещё много чего умеет, без предварительной разметки текста.
Правда код не на perl да и не выложу я его ;)

Сейчас я сяду (пока у меня свободная минута) и накатаю perl код, который поистине генерирует все варианты а не по rand :)

Думаю, для Kolyaj который судя по всему хорошо знает и perl и php, не составит труда помочь людям с php кодом.

P.S. Приветствую Kolyaj :)

DrJeans
На сайте с 06.07.2006
Offline
231
#22
Vladimir_Rublin:
To: DrJeans
А кто Вам сказал, что я уже 5 лет не использую написанный собственноручно метаморфозатор текста, который работает со словарём синонимов (30 тыс основ слов и 10 тыс основ фраз) и ещё много чего умеет, без предварительной разметки текста.
Правда код не на perl да и не выложу я его ;)

Да? 🚬 Может я что-то напутал?

Vladimir_Rublin:
Да речь к тому была, что я не специально писал, а так, с просони, что бы мозг очнулся.
Спроси на Boosty: https://boosty.to/smorovoz SEO на Ютубе: https://www.youtube.com/@youtube-seo/
Kolyaj
На сайте с 28.03.2006
Offline
69
#23
Vladimir_Rublin:
Сейчас я сяду (пока у меня свободная минута) и накатаю perl код, который поистине генерирует все варианты а не по rand
Думаю, для Kolyaj который судя по всему хорошо знает и perl и php, не составит труда помочь людям с php кодом.

Вот этого как раз я думаю не стоит. Абсолютно все варианты и не нужны на самом деле. Взять все тот же ваш пример в начале. Там как уже говорилось 10240 вариантов (а это 2 строчки текста всего), все они никому не нужны, а вот получить 1000 случайных из них это уже близко к реальности.

Хотя как вариант конечно можно.

З.Ы. Перл к сожалению не знаю совсем, разве что на уровне интуиции.

[Удален]
#24

To: DrJeans

Когда я говорил про проснулся, то речь шла об этой концепции:

{вариант1|вариант2}

А когда вы заговорили о глобальном, то и я заговорил о глобальном :)

Вы почитайте всю ветку диалога, в одном из сообщения даю ссылку на сообщение в этом форуме откуда выросли ноги ЭТОЙ КОНЦЕПЦИИ, а ещё в одном пишу откуда взята идея.

[Удален]
#25

To: Kolyaj

Да я уже пишу код.

Народ просит, так почему бы не дать.

Естественно на сервер я это не выложу для использования он-лайн, а в виде кода выдам.

Что бы было понятно где что происходит расставлю комментарии на русском.

Deni
На сайте с 15.04.2006
Offline
355
#26

Vladimir_Rublin,

Очень все будем благодарны :)

По возможности только предусмотрите получать результат с простым переносом строки. Без разделяющих символов и пустых строк

Так проще все будет интегрировать полученный текст в Allsubmitter

[Удален]
#27

Собственно готово.

Код жирный, по этому приаттачил архив.

Как и обещался комментарии к коду на русском языке.

Но коротко поясню суть работы здесь.

Суть проста - аналогична инкременту числа, где каждый разряд имеет систему исчисления равную ко-ву замен в блоке соответствующему разряду.

О сказал... Сейчас поясню на примере и станет понятно :)

Поясню на примере:

есть исходный текст:

"{11|12|13} {21|22} {31|32|33}"

На выходе будем иметь такое:

11 21 31

12 21 31

13 21 31

11 22 31

12 22 31

13 22 31

11 21 32

12 21 32

13 21 32

11 22 32

12 22 32

... ... ...

думаю все всё поняли :)

То есть последовательно переберём варианты.

Если это вам не нужно тысячи вариантов, а нужен случайный закон, то сервис он лайн: http://add.7do.ru/cgi-bin/text_randomizator.cgi от меня, и код господина Kolyaj рулят.

Если вам нужно что бы тексты на выходе были разделены другими делителями, скажем просто двойным переносом строк, то не мучайте ни себя ни кодеров, идите и качайте текстовый/html редактор:

HTML редактор - HOD Html Editor (71 kb)

и просто заменяйте в готовом тексте не_нужный_делитель на нужный_делитель. Одним движением руки :)

Редакто позволяет заменять паттерны с переносом строки на другие паттерны хоть с переносом строки, хоть без такового.

P.S. А как удобнее вгонять в АллСубмиттер, я не знаю, так как у меня его нет, и денег на него у меня нет (амфибиофобная асфиксия).

zip text_randomizator.zip
Artlight
На сайте с 15.09.2003
Offline
123
#28
Vladimir_Rublin:
А как удобнее вгонять в АллСубмиттер, я не знаю

У ВАс получается так:


Это входной текст для примера системы.

----------

Это входящий текст для примера системы.

----------

Это начальный текст для пробы системы.

----------

Это начальный текст для примера системы.

----------

Это начальный текст для испытания системы.

----------

Это исходный текст для испытания системы.

----------

Это входящий текст для пробы системы.

----------

Это входной текст для пробы системы.

----------

Это входящий текст для испытания системы.

А для субмиттера лучше так:


Это входной текст для примера системы.
Это входящий текст для примера системы.
Это начальный текст для пробы системы.
Это начальный текст для примера системы.
Это начальный текст для испытания системы.
Это исходный текст для испытания системы.
Это входящий текст для пробы системы.
Это входной текст для пробы системы.
Это входящий текст для испытания системы.
Обменяю свой вмр на ваш яд курс 1-1
[Удален]
#29

To: Artlight

1. Беру редактор HHE;

2. Запускаю его;

3. Вставляю текст в окно редактора;

4. Нажимаю F8;

5. В появившееся окошко, в верхнее поле вставляю текст:

"

----------

"

В нижнее поле вставляю:

"

"

т.е. просто перенос строки (жму CTRL-Enter)

естественно всё без кавычек

6. Нажимаю Enter (можно мышкой OK);

7. Вижу 8 замен ОК.

Готово.

Вариант 2:

Открываю исходник, читаю комментарии, вижу комментарий:

# чем разделяются тексты

в строке:

$ou=$ou."\n----------\n".$tmp1; # чем разделяются тексты

редактирую строку, что бы было:

$ou=$ou."\n".$tmp1; # чем разделяются тексты

всегда получаю то, что надо.

P.S. Просто я всегда в качестве описания использую тексты в несколько строк, и только если каталог больной, и не позволяет добавлять описание в несколько строк, то тогда в одну строку. Вот и делал под свои описания. А править под свои - каждый волен. На то и код даю, и комментарии не ленюсь писать.

Kolyaj
На сайте с 28.03.2006
Offline
69
#30

А вот и наш ответ, как всегда без комментариев :)


<?php
$replace_blocks = array();
$parsed_str = preg_replace_callback("/\{([^{}]*?)\}/", "callback", $_POST['text']);
$choices = create_choices($parsed_str);
echo implode("<br>", $choices);

function callback($matches) {
global $replace_blocks;
$v = preg_split("/(?<!\|)\|(?!\|)/", $matches[1]);
if (count($v) == 1)
return str_replace("||", "|", "{" . $v[0] . "}");
$replace_blocks[] = array_map(create_function('$v', 'return str_replace("||", "|", $v);'), $v);
return "[__REPLACE_BLOCK_" . (count($replace_blocks) - 1) . "__]";
}

function create_choices($cur_text, $cur_block = 0) {
global $replace_blocks;
if ($cur_block >= count($replace_blocks))
return array($cur_text);
$choices = array();
for ($i = 0; $i < count($replace_blocks[$cur_block]); $i++)
$choices = array_merge($choices, create_choices(str_replace("[__REPLACE_BLOCK_{$cur_block}__]", $replace_blocks[$cur_block][$i], $cur_text), $cur_block + 1));
return $choices;
}
?>

Копируем в файл, файл кидаем на сервак, создаем простенькую формочку, которая будет методом POST передавать переменную text и получаем в браузере все варианты разделенные <br>.

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий