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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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


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


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

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


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

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


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


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

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


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

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


<?
$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


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

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

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


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


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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Скрипт поисковика видео StrongTube
3 3josoft 1574 14.8.2023, 14:45
автор: 3josoft
Открытая тема (нет новых ответов) Скрипт приема платежей p2p с карты на карту card2card
Скрипт приема платежей p2p с карты на карту card2card
15 zladey1986 7832 26.3.2023, 8:54
автор: Palundra
Открытая тема (нет новых ответов) Продам скрипт перевода постов и комментариев
4 Tutich 787 19.1.2023, 17:23
автор: Tutich
Открытая тема (нет новых ответов) Битрикс скрипт нативной установки
3 Nemo 2451 20.11.2022, 10:09
автор: Webmaster24
Открытая тема (нет новых ответов) Посоветуйте скрипт интернет-магазина
(партнерская программа - критична!)
9 Aloof 7363 2.12.2021, 15:03
автор: Ilonek


 



RSS Текстовая версия Сейчас: 19.4.2024, 12:54
Дизайн