С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 29/11/14 в 08:28 |
Народ если у кого есть нечто подобное поделитесь за пыво )
|
|
|
|
С нами с 12.10.04
Сообщения: 67
Рейтинг: 107
|
Добавлено: 29/11/14 в 10:32 |
гугл в лихую отдал
Код: [развернуть] |
//В этот файл записываем исходный текст
$source_text = 'text.txt';
//Словарь, в который записываются слова, идущей после слов
$dictionary = array();
function load()
{
global $dictionary,$source_text;
//Читаем исходный файл
$str = file_get_contents($source_text);
//Превращаем текст в одну строку
$str = preg_replace("#[\r\n]#","",$str);
//Выделяем все слова из строки (выражение в кавычках или в скобках считается одним словом)
preg_match_all("#((\"[^\"]+\")|(\([^\)]+\))|([^\(\)\"'\s]+))(\s+|\z)#",$str,$parts);
$words = $parts[1];
$count = count($words);
//Заполняем словарь
for( $i = 0; $i < $count; $i++ )
{
if( $i > 0 )
{
if( !in_array($words[$i],$dictionary[$prev_word]) )
$dictionary[$prev_word][] = $words[$i];
}
$prev_word = $words[$i];
if( empty($dictionary[$prev_word]) )
$dictionary[$prev_word] = array();
}
}
//Функция для генерации текста. $count – количество слов, которое будем генерировать
function genText($count)
{
global $dictionary;
$words = array_keys($dictionary);
$word = $words[0];
$text ='';
for( $i = 0; $i < $count; $i++ )
{
$text .= ' '.$word;
//Следующее слово - случайное слово из тех, что идут в исходном тексте за текущим словом
$word = $dictionary[$word][rand(0,count($dictionary[$word])-1)];
}
return $text;
}
load();
echo genText(100);
|
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 30/11/14 в 00:07 |
HeavyHell: а тексты исходные (словарь) мы откуда лучше всего берем?
Алго прост и гениален
|
|
|
|
Кладовщик
С нами с 04.03.09
Сообщения: 4495
Рейтинг: 1163
|
Добавлено: 02/12/14 в 17:29 |
JM писал: | откуда лучше всего берем? |
при любом раскладе лучше всего собираем свои, и как то алго на Лема оч похож
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |