СКРИПТ: Генерация уникального текста для объявлений

Подача, публикация, рассылка объявлений на доски. Удаление и редактирование старых объявлений. Нюансы работы с различными досками объявлений.
Ответить
Аватара пользователя
XwebDeveloper
Сообщения: 37
Зарегистрирован: 13 ноя 2017, 12:53

СКРИПТ: Генерация уникального текста для объявлений

Сообщение XwebDeveloper » 04 мар 2020, 15:11

Простой пример как получить уникальное описание для объявлений. На входе имеем 4 файла с содержимым:

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

Имеем файлы c таким содержимым:
1.txt

Код: Выделить всё

Сдаю отличную квартиру. 
Сдаю хорошую уютную квартиру.
Сдаю отличную квартиру в новом жилом комплексе.
2.txt

Код: Выделить всё

Очень качественный ремонт. 
В квартире сделан ремонт.
Очень дорогой и качественный ремонт.
3.txt

Код: Выделить всё

Вся бытовая техника а именно, стиральная машинка, холодильник, телевизор, микроволновая печь и прочее. 
Есть вся бытовая техника. К квартире подведено кабельное телевидение и интернет.
Есть, стиральная машинка, холодильник, 2 жк. телевизора, микроволновая печь и прочее.
4.txt

Код: Выделить всё

1 минута пешком до остановки, рядом торговый центр и много магазинов. Окна во двор, есть парковочное место.  
В 2 минутах от остановки.
5 минут пешком до магазинов и торгового центра.
Очень хороший район. Рядом школа, детский садик, магазины. 
3 минуты пешком до остановки.

Пример:
// получаем все варианты из каждого файла в свой массив
$arr1 = file("data/1.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$arr2 = file("data/2.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$arr3 = file("data/3.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$arr4 = file("data/4.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// получить случайную строку из каждого массива
$str1 = $arr1[array_rand($arr1)];
$str2 = $arr2[array_rand($arr2)];
$str3 = $arr3[array_rand($arr3)];
$str4 = $arr4[array_rand($arr4)];

// получим случайный вариант описания
echo $str_res = $str1 ." ".$str2 ." ".$str3 ." ".$str4;

На выходе получаем что то типа:

Код: Выделить всё

Сдаю отличную квартиру в новом жилом комплексе. В квартире сделан ремонт. Есть, стиральная машинка, холодильник, 2 жк. телевизора, микроволновая печь и прочее. В 2 минутах от остановки.

Аватара пользователя
spaiker
Сообщения: 31
Зарегистрирован: 14 сен 2017, 02:01

Re: СКРИПТ: Генерация уникального описания для объявлений

Сообщение spaiker » 05 мар 2020, 21:40

Можно это сделать и без файлов. Есть скрипты, которые делают подобную подмену вариантов текста. К примеру вот тут есть скрипт на php: http://xbb.uz/randomizator/text.bb

С этим скриптом ваш пример будет таким:
require_once "Natty/TextRandomizer.php";

$text="{Сдаю отличную квартиру.|Сдаю хорошую уютную квартиру.|Сдаю отличную квартиру в новом жилом комплексе.}{ Очень качественный ремонт.|В квартире сделан ремонт.|Очень дорогой и качественный ремонт.}{ Вся бытовая техника а именно, стиральная машинка, холодильник, телевизор, микроволновая печь и прочее.| Есть вся бытовая техника. К квартире подведено кабельное телевидение и интернет.|Есть, стиральная машинка, холодильник, 2 жк. телевизора, микроволновая печь и прочее.}{ 1 минута пешком до остановки, рядом торговый центр и много магазинов. Окна во двор, есть парковочное место.|В 2 минутах от остановки.|5 минут пешком до магазинов и торгового центра.|Очень хороший район. Рядом школа, детский садик, магазины.|3 минуты пешком до остановки.}";

$tRand = new Natty_TextRandomizer($text);

echo 'Число всех возможных вариантов: ' . $tRand->numVariant(). ' Из них случайные 5:<br>';
    
for ($i=0; $i<5; ++$i) 
{
        echo $tRand->getText() . '<br />'; 
}
Что бы работало не забываем добавить папку со скриптом рандомайзером Natty/TextRandomizer.php в папку с нашим скриптом.

Аватара пользователя
XwebDeveloper
Сообщения: 37
Зарегистрирован: 13 ноя 2017, 12:53

Re: СКРИПТ: Генерация уникального текста для объявлений

Сообщение XwebDeveloper » 06 мар 2020, 12:27

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

Аватара пользователя
spaiker
Сообщения: 31
Зарегистрирован: 14 сен 2017, 02:01

Re: СКРИПТ: Генерация уникального текста для объявлений

Сообщение spaiker » 06 мар 2020, 14:58

Можно содержимое фигурных скобок, также задавать через файл.
$arr1 = file("data/1.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$arr_str="";
foreach($arr1 as $str)
{
  $arr_str.="$str|";
}
$arr_str=trim($arr_str,"|");

$text="{$arr_str}{ и т.д.}";

$tRand = new Natty_TextRandomizer($text);

Аватара пользователя
XwebDeveloper
Сообщения: 37
Зарегистрирован: 13 ноя 2017, 12:53

Re: СКРИПТ: Генерация уникального текста для объявлений

Сообщение XwebDeveloper » 06 мар 2020, 17:29

spaiker писал(а):
06 мар 2020, 14:58
Можно содержимое фигурных скобок, также задавать через файл.
А смысл?

Аватара пользователя
spaiker
Сообщения: 31
Зарегистрирован: 14 сен 2017, 02:01

Re: СКРИПТ: Генерация уникального текста для объявлений

Сообщение spaiker » 06 мар 2020, 19:39

XwebDeveloper писал(а):
06 мар 2020, 17:29
А смысл?
В скрипте есть возможность использовать не только подмену текста одного другим, а также компановка его через разделители и перемешивание последовательности расположения текста.

Ответить