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

[Удален]
12860

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

Теперь достаточно написать 1 раз текст вида:

Это {простой|не сложный} но {сильный|нужный} {сервис|интернет сервис|утиль|веб-сустем}, который {несомненно|определённо|стопудово|полюбому} будет полезен {веб|web}-мастерам и {SE оптимизаторам|труженикам в сфере оптимизации веб для поисковых систем}.

{Сервис|Интернет сервис} помогает {избавить себя от|избежать} пустой траты времени, и высвободить {это|освободившееся} время для {куража с девками|поездки в Венецию|трёхмесячного отдыха на Сейшельских островах|полёта в качестве космического туриста на околоземную орбиту}.

А потом, просто жмём кнопку "Проверить" и CTRL-C/CTRL-V.

Думаю, всём ясно что это.

Это здесь:

http://add.7do.ru/cgi-bin/text_randomizator.cgi

Код (perl):
#!/usr/bin/perl

$inp="Это {исходный||входной|начальный|входящий} текст для {примера|пробы|испытания}, если вам {нужны|требуются}\n{функции|возможности}, которые {предоставляет|может выполнять|выполняет|исполняет} этот скрипт,\nто {используйте|применяйте} его бесплатно.";

$tmp1=&TextWordRandomizator($inp);

print "$tmp1\n\n";
exit;

#--- функция ---

sub TextWordRandomizator(){
my $tmp=$_[0];
$tmp=~s/(\x7B)([\S\s]+?)(\x7D)/&SubTextWordRandomizator();/sge;
$tmp=~tr/ / /s;
return $tmp;
}
sub SubTextWordRandomizator(){
my @tmpm=split(/\x7C/, $2);
my $tmp=@tmpm;
if ($tmp<2){return "$1$2$3";}
$tmp=$tmpm[int(rand($tmp))];
return $tmp;
}

Ginnig
На сайте с 08.08.2006
Offline
17
#1

Элементарное, и даже може тпримитивное, но вещь помогающая сэкономить нам кучу времени! Спасибо Vladimir_Rublin, большое человеческое спасибо!

[Удален]
#2

To: Ginnig

Пожалуйста.

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

To: *ВСЕ*, в смысле вообще все.

Вы если что не стесняйтесь, пишите в личку, что нужно.

А то обычно просыпаюсь с утрека и что бы привести мозг в норму, кодю... Обычно ересь. А так бы прочёл личку, может что выбрал не сложное и закодил.

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

Очень полезно и интересно.

Дополнение, думаю нужное многим - выдавать все возможные варианты в столбце

[Удален]
#4

To: Deni

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

Я конечно не математик, но формула примерно такая:

КОЛ-ВО_ВАРИАНТОВ = N ^ M

где N=число мест замены, M=количество вариантов замен в самом объёмном блоке.

То есть для того текста, что я привёл в пример, у нас получается 10 тыс. вариантов.

А может быть я ошибся, уж простите, голова сейчас не тем забита, и числа N и M нужно поменять местами, тогда получиться для текста примера:
4 в 10-й степени = 1048576 вариантов.
Да не суть важно. Ясно что оно не нужно. ;)
Обычно требуется то не более 10-20 вариантов. На крайний случай, есть же perl под винду.

Kolyaj
На сайте с 28.03.2006
Offline
69
#5
Vladimir_Rublin:
Я конечно не математик, но формула примерно такая:
КОЛ-ВО_ВАРИАНТОВ = N ^ M
где N=число мест замены, M=количество вариантов замен в самом объёмном блоке.
То есть для того текста, что я привёл в пример, у нас получается 10 тыс. вариантов.

Решение не верное, а ответ почти верный 😆 . Надо перемножить количество вариантов в каждом блоке, т.е. в вашем примере будет 10240 вариантов.

pro-maker
На сайте с 08.12.2003
Offline
281
#6

Vladimir_Rublin, на PHP было бы гораздо удобнее.

Phillzz
На сайте с 28.07.2006
Offline
67
#7

огромное человеческое спасибо.

Вкусный пост метал от Syndromes (https://vk.com/syndromesband)
Deni
На сайте с 15.04.2006
Offline
355
#8
Vladimir_Rublin:
To: Deni
Обычно требуется то не более 10-20 вариантов. На крайний случай, есть же perl под винду.

Ну почему же?

Я например при регистрации сайта в каталоге использую 190 текстов

На большее просто сил не хватило :)

Ваш скрипт как раз бы очень сильно и помог писать осмысленные описания но иметь их много

[Удален]
#9

To: Deni

Хорошо. Дописал.

От 1 до 999 можно задать.

По факту, для текста примера получите меньше, примерно 200...300, потому что процесс не перебирает все возможные комбинации, а управляется генератором случайных чисел, одинаковые варианты исключаются из результата.

Что бы получать больше, используйте больше мест замены и больше вариантов замены.

Всётаки я не могу использововать ресурсы рабочего сервера для _разного_, нужно помнить, что на сайте это идёт лишь как пример возможностей add.7do.ru

To: pro-maker

Извините, но могу только на:

Assembler (80x86, PIC 16xxxx, Z80); C; perl; JavaScript; BASIC; HTP.

На php могу только за 5 литров молока (за вредность) + WMZ за работу, кроме того, php слишком медленный и корявый для такой работы с текстом.

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

pro-maker,


<?php
function callback($matches) {
$v = explode("|", $matches[1]);
return $v[array_rand($v)];
}
$str = "Это {простой|не сложный} но {сильный|нужный} {сервис|интернет сервис|утиль|веб-сустем}, который {несомненно|определённо|стопудово|полюбому} будет полезен {веб|web}-мастерам и {SE оптимизаторам|труженикам в сфере оптимизации веб для поисковых систем}.
{Сервис|Интернет сервис} помогает {избавить себя от|избежать} пустой траты времени, и высвободить {это|освободившееся} время для {куража с девками|поездки в Венецию|трёхмесячного отдыха на Сейшельских островах|полёта в качестве космического туриста на околоземную орбиту}.";
echo preg_replace_callback("/\{(.*?)\}/", "callback", $str);
?>

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