Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.8390
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 13.04.2008, 23:52   #1
sx000
Юниор
 
Регистрация: 02.01.2008
Сообщений: 13
Бабло: $500
По умолчанию генерация уникального контента

Хотелось бы побеседовать и обсудить, хотелось бы написать генератор уникального контента, вразумительного качества, переводчики понятно, но там оно как переведет так переведет хоть стой хоть падай... техника не стоит на месте давайте поделимся мыслями
sx000 вне форума  
Старый 14.04.2008, 00:20   #2
Dem0kratizat0r
Senior Member
 
Аватар для Dem0kratizat0r
 
Регистрация: 27.04.2007
Сообщений: 1,685
Бабло: $163746
По умолчанию

Ты полагаешь, что генератор сделает контент лучше переводчика ?
Было бы интересно нечто типа синонимайзера с элементами искусственного интеллекта, чтобы синонимы нормально вписывались в тематику текста.
__________________
Mini Bluetooth Speaker
Dem0kratizat0r вне форума  
Старый 14.04.2008, 00:20   #3
spomoni
royalads.net
 
Аватар для spomoni
 
Регистрация: 06.04.2008
Сообщений: 12,643
Бабло: $1438655
По умолчанию

Лови

------------------------

Сначала парсит и скачивает первую десятку гугла,
потом на ее основе генерит
нужное кол-во страниц цепями Маркова.

Error_Reporting(E_ALL & ~E_NOTICE);
class textGenerator
{

/************************************************** ****************************************



Эта функция отвечает за закачку заданного списка
URL с веба. Можете ее править по своим нуждам
(делать через неблокирующие сокеты, если cURL на сервере нет, например)
************************************************** ****************************************
/
function download($urllist)
{
$mh = curl_multi_init();

foreach ($urllist as $i => $url)
{
$conn[$i]=curl_init($url);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn[$i],CURLOPT_FOLLOWLOCATION,1);
curl_setopt($conn[$i],CURLOPT_MAXREDIRS,2);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($conn[$i],CURLOPT_HEADER,0);
curl_multi_add_handle ($mh,$conn[$i]);
}

do
{
$n = curl_multi_exec($mh,$active);
}
while ($active);

foreach ($urllist as $i => $url)
{
$con = curl_multi_getcontent($conn[$i]);
$res[$i]= $con;
// file_put_contents("debug/$i.html",$con);
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
return $res;
}

/************************************************** ****************************************



Эта функция парсит URL с первой страницы гугла по данном запросу.
И качает их функцией download.
************************************************** ****************************************
/
function parse_texts($q)
{
$q = urlencode($q);
$q = 'http://www.google.com/search?q='.$q;
$goo = file_get_contents($q);
$regexp = '/<a href=\"?([^\s\"]+)\"? class=l>/';
preg_match_all($regexp,$goo,$res);
$urllist = array();
for ($i = 0; $i<count($res[1]); $i++)
{
$urllist[] = $res[1][$i];
}

$ar = $this->download($urllist);
// var_dump($urllist);
return $this->clear_up_texts($ar);
}


/************************************************** ****************************************



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

function clear_up_texts($texts)
{
$tags = array('A', 'ABBR', 'ACRONYM', 'ADDRESS', 'AREA', 'B', 'BDO', 'BIG', 'BLOCKQUOTE', 'BR', 'CITE', 'CODE', 'DEL', 'DFN', 'EM', 'EMBED', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'IMG', 'INS', 'LI', 'MAP', 'MARQUEE', 'OL', 'P', 'PRE', 'Q', 'SAMP', 'SMALL', 'SPAN', 'STRONG', 'FONT', 'SUB', 'SUP', 'UL', 'VAR', 'TT');

$res = array();
foreach ($texts as $con)
{
$con = html_entity_decode($con);
foreach ($tags as $tag)
{
$regexp = "/<\/?".$tag."[^>]*>/i";
$con = preg_replace($regexp,"",$con);
}
$regexp = "/<head.+<\/head>/i";
$con = preg_replace($regexp,"",$con);
$regexp = &quot;/<script[^&lt;]+&lt;\/script&gt;/i&quot;;
$con = preg_replace($regexp,&quot;&quot;,$con);
$regexp = &quot;/&lt;style[^&lt;]+&lt;\/style&gt;/i&quot;;
$con = preg_replace($regexp,&quot;&quot;,$con);
$regexp = &quot;/\s+/&quot;;
$con = preg_replace($regexp,&quot; &quot;,$con);
$con = strtolower($con);
$res[] = $con;
}
return $res;
}

/************************************************** ****************************************



Эта функция собственно генерить тексты из массива исходных текстов.
************************************************** ****************************************
/

function generate($data, $words_co,$pages_co)
{
$result = array();
$content = &quot;&quot;;

foreach ($data as $con)
{
$regexp = &quot;/&lt;[^&gt;]+&gt;/&quot;;
$res = preg_split($regexp,$con);
$m = 0;
foreach ($res as $kusok)
{
if (strlen($kusok)&gt;$m)
{
$m = strlen($kusok);
$ms1 = $kusok;
}
}
$m = 0;
foreach ($res as $kusok)
{
if ((strlen($kusok)&gt;$m)&amp;&amp;($kusok!=$ms1))
{
$m = strlen($kusok);
$ms2 = $kusok;
}
}
$itog = strtolower(&quot;$ms1 $ms2&quot;
$content.=&quot;$itog &quot;;
}
$regexp = &quot;/[^a-z0-9]+/&quot;;
$content = preg_replace($regexp,&quot; &quot;,$content);
$regexp = &quot;/\s+/&quot;;
$temp = preg_split($regexp,$content);
$words = array();
for ($i = 0; $i&lt;count($temp)-1; $i++)
{
if (!$words[$temp[$i]]) $words[$temp[$i]] = array();
$words[$temp[$i]][] = $temp[$i+1];
}

for ($i = 0; $i&lt;$pages_co; $i++)
{
$r = rand(0,count($temp));
$w = $temp[$r];
$con = &quot;&quot;;
for ($j = 0; $j&lt;$words_co; $j++)
{
$r = rand(0,count($words[$w])-1);
$word = $words[$w][$r];
$w = $word;
$capit = false;
$r = rand(0,1000);
if (($r&gt;100)&amp;&amp;($r&lt;180)) $capit = true;
if ($capit)
{
$con.=&quot;.&quot;;
$word[0] = strtoupper($word[0]);
}
$con.=&quot; $word&quot;;
}
$result[] = $con;
}
return $result;
}

}

?&gt;


&lt;?

/************************************************** ***************************************

Файл - пример использования.
Использование: вызываете из своего скрипта функцию
$gen-&gt;generate(запрос_в_гугл,количество_слов_на_с тра ницу,количество_страниц_необходимых);
Например:
$gen-&gt;generate(&quot;windows articles&quot;,300,5);
И эта функция возвращается массив с текстами нужной длины.
Предварительно надо создать, естественно, объект $gen:
$gen = new textGenerator();

Т.о. пример вернет массив из 5-ти элементов по 300 слов в каждом элементе.
************************************************** ****************************************
/

//include('textgenerator.class.php');
$gen = new textGenerator();
$data = $gen-&gt;parse_texts(&quot;windows article&quot;
$texts = $gen-&gt;generate($data,500,5);

foreach ($texts as $text)
{
echo $text;
echo &quot;&lt;br&gt;&lt;hr&gt;&lt;br&gt;&quot;;
}
?&gt;
spomoni вне форума  
Старый 14.04.2008, 02:18   #4
div72™
Патологоанатом
 
Аватар для div72™
 
Регистрация: 03.04.2007
Сообщений: 253
Бабло: $525
Отправить сообщение для div72™ с помощью ICQ
По умолчанию

Цитата:
потом на ее основе генерит
нужное кол-во страниц цепями Маркова.
И это нормальный читаемый контент?
div72™ вне форума  
Старый 14.04.2008, 02:23   #5
inferno[DGT]
Аццкий хостер
 
Аватар для inferno[DGT]
 
Регистрация: 02.05.2007
Адрес: Таиланд, Пхукет
Сообщений: 3,597
Бабло: $1733893508
Отправить сообщение для inferno[DGT] с помощью ICQ Отправить сообщение для inferno[DGT] с помощью AIM Отправить сообщение для inferno[DGT] с помощью Skype™
По умолчанию

spomoni, самоубейся
__________________
Inferno Solutions: Выделенные серверы и VPS с абсолютно бесплатным администрированием. Более 10 лет с вами. Любые конфигурации под заказ.
inferno[DGT] вне форума  
Старый 14.04.2008, 02:36   #6
miller
Member
 
Регистрация: 30.01.2008
Сообщений: 56
Бабло: $500
По умолчанию

Цитата:
Сообщение от sx000 Посмотреть сообщение
Хотелось бы побеседовать и обсудить, хотелось бы написать генератор уникального контента, вразумительного качества, переводчики понятно, но там оно как переведет так переведет хоть стой хоть падай... техника не стоит на месте давайте поделимся мыслями
это фантастика
miller вне форума  
Старый 14.04.2008, 06:42   #7
banzai
Senior Member
 
Аватар для banzai
 
Регистрация: 28.04.2007
Сообщений: 1,568
Бабло: $190592
Отправить сообщение для banzai с помощью ICQ
По умолчанию

Цитата:
Сообщение от sx000 Посмотреть сообщение
Хотелось бы побеседовать и обсудить, хотелось бы написать генератор уникального контента, вразумительного качества, переводчики понятно, но там оно как переведет так переведет хоть стой хоть падай... техника не стоит на месте давайте поделимся мыслями
на Армаде Вацлав давно уже написал статью на этот счет, вот от нее и отталкивайся, ну а дальше .. каждый сам за себя.
__________________
Заспамит все, что шевелится, что не шевелится сначала разговорит Гугла бояться - в интернет не ходить.
banzai вне форума  
Старый 14.04.2008, 10:43   #8
pina
хде мой компот?!
 
Регистрация: 07.01.2008
Сообщений: 327
Бабло: $31276
Отправить сообщение для pina с помощью ICQ
По умолчанию

Ни когода не понимал смысла использования цепей Маркова в генерации контента. Сгенерить контент вразумительного качества машиной на мой взгляд практически не возможно... пусть хоть у нее n процов и n гигов оперативы.

Как вариант генерации это разбиение текста на предложения.
1. Мешанина простых предложений внтри одного сложного предложения и мешанина самих исходных предложений...
2. Ну или просто перемешать все предложения без всяких предварительных действий...

И вуаля - уникальный контент. А поисковик сам решит что показывать в сниппете

PS : Это далеко не идеал, но в данный момент я двигуюсь именно в этом направлении
PPS : spomoni, функцию clear_up_texts, точнее тот момент где убираются теги, можно упростить хотя бы так
Цитата:
<?php
strip_tags($str);
?>
pina вне форума  
Старый 14.04.2008, 12:01   #9
banzai
Senior Member
 
Аватар для banzai
 
Регистрация: 28.04.2007
Сообщений: 1,568
Бабло: $190592
Отправить сообщение для banzai с помощью ICQ
По умолчанию

Цитата:
Сообщение от pina Посмотреть сообщение
Ни когода не понимал смысла использования цепей Маркова в генерации контента. Сгенерить контент вразумительного качества машиной на мой взгляд практически не возможно... пусть хоть у нее n процов и n гигов оперативы.
Напиши свой генератор текстов!
__________________
Заспамит все, что шевелится, что не шевелится сначала разговорит Гугла бояться - в интернет не ходить.
banzai вне форума  
Старый 14.04.2008, 14:45   #10
sx000
Юниор
 
Регистрация: 02.01.2008
Сообщений: 13
Бабло: $500
ТС -->
автор темы ТС По умолчанию

цепи тут как бы не канают вообще оно не читаемо в принцыпе. Переводчик это тот же марков, замена синонимов, ну тут как бы есть над чем поработать, но там куча НО на самом деле. Просто на многих блогах я видел что пишут мол мы генерируем читаемый контент. Тот же киви писал где то, что у них генерируется контент хороший.
sx000 вне форума  
Закрытая тема



Опции темы
Опции просмотра