Как из файла с 10000 слов выдернуть 200 случайных?

tygrytsa
На сайте с 23.04.2010
Offline
61
819

Понадобилась такая вот штука на php:

Есть файл с огромным количеством бредотекста.

Тянем оттуда рандомно, скажем, слов 200 и смешиваем шаффлом с моим набором ключей.

На выходе текст для дора а-ля 2000.

Помогите, кто чем может. Весь вечер убила на поиски. Даже наполовину решений не нашла.

F3
На сайте с 09.08.2010
Offline
99
#1

к примеру делаете из строки массив по пробелам, далее отсекаете в цикле или еще как то предлоги, лишние слова, дальше функцией rand получаете случайное число и вытаскиваете значение массива, у которого этот ключ == случайному числу, вот и 200 случайных слов.

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

iworkshop
На сайте с 22.12.2008
Offline
195
#2

Читаете бредофайл file_get_contents

Потом explode на строку по разделителю пробел.

Потом через цикл или array_map чистите слова от мусора.

Дальше array_randом выдираете нужное количество фраз. Делаете из этого новый массив.

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

Сливаете массивы array_merge и shuffle на итоговый массив.

Профит ;)

З.Ы. Возможно не самое красивое решение но навскидку - должно работать)

XMLRiver - прямая выдача Google и Яндекс через API
tygrytsa
На сайте с 23.04.2010
Offline
61
#3

спасибо большое

nezabor
На сайте с 19.07.2010
Offline
152
#4

и еще в тему

генератор бредатекста для блога.

берем горку статей на интересующую тему и генерим по 3 случайных предложения из статьи)))

$article_arr = array('массив_статей_из_базы_например');
$new_text = array();
foreach ($article_arr as $key => $article) {
$temp_text = explode('.', $article);
shuffle($temp_text);
$i = 0;
while ($i++ <= 3) {
$new_text[] = $temp_text[$i];
}
unset($temp_text);
}
$result_str = implode('.', $new_text;)

а иначе ваша задача звучит как бред

Чудес не бывает...
tygrytsa
На сайте с 23.04.2010
Offline
61
#5

Меня не интересует читабельность текста. Там где он будет размещаться поиск видит только уникальность.

nezabor, работает! Спасибо Вам огромное

<?php $arr_1 = explode(' ', file_get_contents('big-file.txt'));
$arr_2 = explode(' ', file_get_contents('file.txt'));
shuffle($arr_1);
$i = 0;
while ($i++ <= 200) {
$arr_2[] = $arr_1[$i];

}
shuffle($arr_2);
$result_str = implode(' ', $arr_2);?>

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