X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Написать скрипт
schokk
schokk
Topic Starter сообщение 10.3.2011, 19:49; Ответить: schokk
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 254
Регистрация: 3.1.2011
Из: Беларусь/Могилёв
Поблагодарили: 39 раз
Репутация:   16  


Сабж,надо написать скриптец на php,который будет сравнивать два текстовых файла,выдавая в процентах их схожесть.интересует ценаsmile.gif
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 10.3.2011, 19:53; Ответить: webpavilion
Сообщение #2


сеошник на пенсии
*******

Группа: Active User
Сообщений: 2726
Регистрация: 28.4.2009
Из: МО
Поблагодарили: 1659 раз
Репутация:   171  


бинарное сравнение или более интеллектуальное нужно?


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
schokk
schokk
Topic Starter сообщение 10.3.2011, 19:59; Ответить: schokk
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 254
Регистрация: 3.1.2011
Из: Беларусь/Могилёв
Поблагодарили: 39 раз
Репутация:   16  


Более интеллектуальное

Сообщение отредактировал schokk - 10.3.2011, 19:59
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 10.3.2011, 20:08; Ответить: webpavilion
Сообщение #4


сеошник на пенсии
*******

Группа: Active User
Сообщений: 2726
Регистрация: 28.4.2009
Из: МО
Поблагодарили: 1659 раз
Репутация:   171  


schokk, с морфологией или банальный метод шинглов?


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
schokk
schokk
Topic Starter сообщение 10.3.2011, 20:11; Ответить: schokk
Сообщение #5


Бывалый
****

Группа: User
Сообщений: 254
Регистрация: 3.1.2011
Из: Беларусь/Могилёв
Поблагодарили: 39 раз
Репутация:   16  


Честно,впервые слышу о "методе шинглов")
Собственно скрипт должен сравнивать код,html,css,php.Поэтому скорее всего морфология не нужна wink.gif

Сообщение отредактировал schokk - 10.3.2011, 20:13
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
proXBOCT
proXBOCT
сообщение 10.3.2011, 20:25; Ответить: proXBOCT
Сообщение #6


PHP-писака
*****

Группа: Active User
Сообщений: 867
Регистрация: 20.4.2008
Из: Тольятти
Поблагодарили: 297 раз
Репутация:   47  


<?
$fn1="1.txt";
$fn2="2.txt";

$txt1=strtolower(file_get_contents($fn1));
$txt2=strtolower(file_get_contents($fn2));

$sim=array(".","?","!",";",",",":","/","<",">","(",")"); //Символы, которые могут помешать синонимизации, массив можно расширить
$c_sim=count($sim);
for($i=0;$i<$c_sim;$i++){
    $txt1=str_replace($sim[$i], " ", $txt1); //Отделили каждый символ от слов, которые к ниму прилегают
    $txt2=str_replace($sim[$i], " ", $txt2); //Отделили каждый символ от слов, которые к ниму прилегают
}
$txt1=preg_replace('/(\s)\s+/',' ',$txt1);
$txt2=preg_replace('/(\s)\s+/',' ',$txt2);

$words1=explode(" ", $txt1);
$cw1=count($words1);
$words2=explode(" ", $txt2);

for($i=0;$i<$cw1;$i++){
    $n=$i-5;
    $k=$i+5;
    for($j=$n;$j<$k;$j++){
        if($words1[$i]==$words2[$j]){
            $entry[]=$words1[$i];
            break;
        }
    }
}

$entr=implode(" ", $entry);
$le=strlen($entr);
$lt1=strlen($txt1);
$lt2=strlen($txt2);
if($lt1>$lt2){
    $result=$le/$lt1*100;
}else{
    $result=$le/$lt2*100;
}

echo 'Совпало '.$result.'%';
?>


Возможно коряво, но вот такое набросал...


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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
schokk
schokk
Topic Starter сообщение 10.3.2011, 20:33; Ответить: schokk
Сообщение #7


Бывалый
****

Группа: User
Сообщений: 254
Регистрация: 3.1.2011
Из: Беларусь/Могилёв
Поблагодарили: 39 раз
Репутация:   16  


(proXBOCT @ 10.3.2011, 20:25) *
Возможно коряво, но вот такое набросал...

А за сколько напишете полноценный скрипт?
Допустим файлы будут заливаться пользователями.

Сообщение отредактировал schokk - 10.3.2011, 20:35
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
proXBOCT
proXBOCT
сообщение 10.3.2011, 20:43; Ответить: proXBOCT
Сообщение #8


PHP-писака
*****

Группа: Active User
Сообщений: 867
Регистрация: 20.4.2008
Из: Тольятти
Поблагодарили: 297 раз
Репутация:   47  


for free =)
Главное, что бы алгоритм устраивал
<HTML>
<HEAD>
    <title>Сравнение файлов</title>
</head>
<BODY>
    <?
    if(!empty($_FILES['file1']['tmp_name'])&&!empty($_FILES['file2']['tmp_name'])){
        $rnd=rand(0,99999);
        $fn1='1-'.$rnd.'.txt';
        $fn2='2-'.$rnd.'.txt';
        copy($_FILES['file1']['tmp_name'], $fn1);
        copy($_FILES['file2']['tmp_name'], $fn2);

        $txt1=strtolower(file_get_contents($fn1));
        $txt2=strtolower(file_get_contents($fn2));

        $sim=array('.','?','!',';',',',':','/','<','>','(',')'); //Символы, которые могут помешать синонимизации, массив можно расширить
        $c_sim=count($sim);
        for($i=0;$i<$c_sim;$i++){
            $txt1=str_replace($sim[$i], ' ', $txt1); //Отделили каждый символ от слов, которые к ниму прилегают
            $txt2=str_replace($sim[$i], ' ', $txt2); //Отделили каждый символ от слов, которые к ниму прилегают
        }
        $txt1=preg_replace('/(\s)\s+/',' ',$txt1);
        $txt2=preg_replace('/(\s)\s+/',' ',$txt2);

        $words1=explode(' ', $txt1);
        $cw1=count($words1);
        $words2=explode(' ', $txt2);

        for($i=0;$i<$cw1;$i++){
            $n=$i-5;
            $k=$i+5;
            for($j=$n;$j<$k;$j++){
                if($words1[$i]==$words2[$j]){
                    $entry[]=$words1[$i];
                    break;
                }
            }
        }

        $entr=implode(' ', $entry);
        $le=strlen($entr);
        $lt1=strlen($txt1);
        $lt2=strlen($txt2);
        if($lt1>$lt2){
            $result=$le/$lt1*100;
        }else{
            $result=$le/$lt2*100;
        }
        unlink($fn1);
        unlink($fn2);

        echo '<div id="result">Совпало '.$result.'%</div>';
    }
    ?>
    <form action="#" method="post" enctype="multipart/form-data">
        Файл 1: <input type='file' name='file1'><br />
        Файл 2: <input type='file' name='file2'><br />
        <input type="submit" value="Send">
    </form>
</body>
</html>


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
schokk
schokk
Topic Starter сообщение 10.3.2011, 20:46; Ответить: schokk
Сообщение #9


Бывалый
****

Группа: User
Сообщений: 254
Регистрация: 3.1.2011
Из: Беларусь/Могилёв
Поблагодарили: 39 раз
Репутация:   16  


(proXBOCT @ 10.3.2011, 19:43) *
for free =)
Главное, что бы алгоритм устраивал

Огромное спасибо!)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ищу скрипт новостного агрегатора
0 Cunningfox 469 27.11.2017, 21:17
автор: Cunningfox
Открытая тема (нет новых ответов) Поиск. Скрипт а-ля pikabu.
1 Упс 742 20.11.2017, 8:19
автор: codename65
Открытая тема (нет новых ответов) Посоветуйте скрипт доски объявлений
4 bbkd 832 11.11.2017, 11:59
автор: bbkd
Открытая тема (нет новых ответов) ищу скрипт для сайта досуга
8 carloswm 1387 21.10.2017, 21:54
автор: Seodjo
Открытая тема (нет новых ответов) AVP - Автоматический скрипт парсера и граббера видеороликов по запросам
СЕО оптимизированный постинг контента, собираем траф из видео выдачи &
12 hitnet 3648 20.10.2017, 19:54
автор: AVPmaster


 



RSS Текстовая версия Сейчас: 12.12.2017, 10:43
Дизайн