Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Софт для оптимизаторов и вебмастеров (http://forum.sape.ru/forumdisplay.php?f=36)
-   -   Ищу скрипт для синонимайзера (http://forum.sape.ru/showthread.php?t=48292)

Zakat70 10.03.2010 00:58

Ищу скрипт для синонимайзера
 
Короче есть база, миллионов на 10 словосочетаний. Ищу скрипт для синонимайзера, может где скачать бесплатно мона.
Если на форуме есть программеры, то согласен поменяться-вы мне скрипт, я вам базу.

Nazar 10.03.2010 01:00

а вот так сложно http://www.google.com/search?query=%...%80&from=opera

Anadonam 10.03.2010 01:01

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

но если честно небольшой интерес есть и идейки.. стану в очередь, типа согласно репутации )..

Zakat70 10.03.2010 11:29

Товарищ Назар, то что вы мне привели ссылку, это хорошо, но там предлагают купить скрипт, а покупать шило в мешке, как то не очень хоч-ся.
По идее тот скрипт сам по себе прост, я чтото похождее в С делал.
Анадонам
Хорошо, а в каком виде вы хотите получить базу?

Oleg_Ci 12.03.2010 10:24

Наипростейший скрипт, собственного изобретения, работает быстро:
Цитата:

<?php
class sinonim{

var $sin; // массив синонимов

// конструктор читаем файл синонимов
function sinonim($filename=""){

if($filename=="") $filename = $_SERVER['DOCUMENT_ROOT']."/data/sinonim.txt";
$file = file($filename);
$this->sin = array();


for ($i=0; $i<count($file); $i++) {
$tt = $file[$i];
list($word,$value) = explode(":",trim($tt));
$this->sin[$word][] = $value; // массив синонимов
} // end for

} // end fun get_sin

// вернуть синоним слова
function get($str){

// если слово есть возвращаем синоним
if(array_key_exists($str, $this->sin)){
$rand = rand(0,count($this->sin[$str])-1);
return $this->sin[$str][$rand];
}
// если такого слова нет
else{
return false;
}
} // end fun get_sin
}
?>
пример файла синонимов
Цитата:

АБЗАЦ:ОТСТУП
АБЗАЦА:ОТСТУПА
АБЗАЦАМ:ОТСТУПАМ
А если программа (.exe) нужна, то смотри smartrewriterpro, он бесплатным с недавнего времени стал.

Добавлено через 31 минуту
подкрутил функции :)
Цитата:


class sinonim{

var $sin; // массив синонимов

// конструктор читаем файл синонимов
function sinonim($filename=""){

if($filename=="") $filename = $_SERVER['DOCUMENT_ROOT']."/sinonim.txt";
$file = file($filename);
$this->sin = array();


for ($i=0; $i<count($file); $i++) {
$tt = $file[$i];
list($word,$value) = explode(":",trim($tt));
$this->sin[$word][] = $value; // массив синонимов
} // end for

} // end fun get_sin

// вернуть синоним слова
function get($str){

// если слово есть возвращаем синоним
if(array_key_exists($str, $this->sin)){
$rand = rand(0,count($this->sin[$str])-1);
return $this->sin[$str][$rand];
}
// если такого слова нет
else{
return false;
}
} // end fun get_sin

// синонимизируем текст
function sin($str){
$str = strtoupper($str);
$ar = explode(" ", $str);
$res = "";
for($i=0; $i<count($ar); $i++){
$len = strlen($ar[$i]);
$word = "";
$raz = "";
$flag = true;

for($a=0; $a<$len; $a++)
if($this->find_ch($ar[$i][$a]) && $flag){
$word .= $ar[$i][$a];
}
else{
$flag = false;
$raz .= $ar[$i][$a];
}

$r = $this->get($word);
if($r) $res .= $r.$raz." ";
else $res .= $word.$raz." ";
}
return $res;
} // end fun sin

// $c - это символ русский или нет
function find_ch($c, $ch="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁйцукенгшщзхъ фывапролджэячсмитьбюё"){
//$ch = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁйцукенгшщзхъфыва пролджэячсмитьбюё";
$i;
$len = 67;
for($i=0; $i<$len && $ch[$i] != $c; $i++);
if($i<$len){
//print $c;
return true; // символ русский
}
else{
//print "<span style='color:red;'>$c</span>";
return false;
}
}// end fun find_ch

}




$str = "Короче есть база, миллионов на 10 словосочетаний. Ищу скрипт для синонимайзера, может где скачать бесплатно мона. Если на форуме есть программеры, то согласен поменяться-вы мне скрипт, я вам базу.";

$sin = new sinonim();
$text = $sin->sin($str);
print "Было:<br>$str<br>Стало:<br>$text<br><br>";


V I P 12.03.2010 10:47

мозг)
зачетно, хоть и на работоспособность не проверял

Добавлено через 11 минут
Oleg_Ci,

Цитата:

Было:
Короче есть база, миллионов на 10 словосочетаний. Ищу скрипт для синонимайзера, может где скачать бесплатно мона. Если на форуме есть программеры, то согласен поменяться-вы мне скрипт, я вам базу.
Стало:
КОРОЧЕ ЕСТЬ БАЗА, МИЛЛИОНОВ НА 10 СЛОВОСОЧЕТАНИЙ. ИЩУ СКРИПТ ДЛЯ СИНОНИМАЙЗЕРА, МОЖЕТ ГДЕ СКАЧАТЬ БЕСПЛАТНО МОНА. ЕСЛИ НА ФОРУМЕ ЕСТЬ ПРОГРАММЕРЫ, ТО СОГЛАСЕН ПОМЕНЯТЬСЯ-ВЫ МНЕ СКРИПТ, Я ВАМ БАЗУ.

Oleg_Ci 12.03.2010 11:31

V I P, у тебя че-то замен на синонимы нет.
С моей базой синонимов :)
Цитата:

Было:
Короче есть база, миллионов на 10 словосочетаний. Ищу скрипт для синонимайзера, может где скачать бесплатно мона. Если на форуме есть программеры, то согласен поменяться-вы мне скрипт, я вам базу.
Стало:
КРАТКОВРЕМЕННЕЕ ЕСТЬ БАЗА, МИЛЛИОНОВ НА 10 СЛОВОСОЧЕТАНИЙ. ШАРЮ СКРИПТ ДЛЯ СИНОНИМАЙЗЕРА, МОЖЕТ ГДЕ СКАЧАТЬ ДАРОМ МОНА. ЕСЛИ НА ФОРУМЕ ЕСТЬ ПРОГРАММЕРЫ, ТО СОГЛАСЕН ОБМЕНЯТЬСЯ-ВЫ МНЕ СКРИПТ, Я ВАМ БАЗУ.

V I P 12.03.2010 11:35

Oleg_Ci, заработало, только если в базе синонимов регистр - верхний
КОРОЧЕ:КРАТКОВРЕМЕННЕЕ

Вариант: "Короче" - уже не катит

Oleg_Ci 12.03.2010 11:53

Вполне возможно в конструкторе класса надо заменить
Цитата:

$tt = $file[$i];
На:
$tt = strtoupper($file[$i]);
Добавлено через 53 секунды
а ты уже нашел ошибку :)

Добавлено через 1 минуту
Да класс примитивный, и не запоминает в каком регистре были буквы в перевоночальном тексте, надо его дорабатывать :)

MonAmur 12.03.2010 11:55

Oleg_Ci, а если в базе так:
являться:проявляться,показываться,обнаруживаться,о ткрываться,быть


Часовой пояс GMT +3, время: 08:01.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.