Ilekor

Ilekor
Рейтинг
138
Регистрация
22.04.2009
iqmaker:
сортировать он будет расстояния между элементами, тут возможность сортировки определяется каким именно образом определяется расстояние между элементами. Сравнение с 10 это как пример выделения элементов в группы, т.к. подробностей сравнения не было, вместо сравнения с 10 нужно использовать функцию определения расстояния между элементами, но делать это нужно на упорядоченном множестве.

Ilekor, почему вы не отвечаете на вопросы?

Я не могу понять Ваш вопрос!

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

Mad_Man:
По таймауту вылетает? Если поставить таймаут в 5 минут выполнения, то сколько элементов из ваших 100000 успевает перебрать цикл?

Сервер после нескольких секунд (примерно 5-6 сек) отвечает 502 Bad Gateway

Mad_Man:
И к чему вы это написали?

К тому, Вы выше написали, что я храню в базе изображения.

Вот как делаю я! Но проц не выдерживает, вот я и ищу способ это оптимизировать.


$sql_select = "SELECT signature FROM images WHERE signature != ''";

$sql_result = $db->query( $sql_select );
while ( $row = $db->get_row( $sql_result ) ) {
$sig[] = $row;
}

$sig2 = $sig; // скопируем массив

Я собрал массив, дальше я прохожу массив сраниваю значения


foreach($sig as $value1) {
unset($$sig2[$value1['signature']]);

foreach($sig2 as $value2) {
# вычисление разности изображения по сигнатурам
$r_sig = puzzle_vector_normalized_distance($value1['sig'], $value2['sig']);
# округлим разность в проценты
$diff = round($r_sig * 100);
# Определим похожесть изображений
$img_true = ($r_sig <= 0.20) ? "Похожа" : "Не похожа";
echo $img_true;
}
}

Mad_Man, в базе хранится буквеный код изображения, состоящий из 150 символов, который вычисляет библиотека libpuzzle, чем к примеру эти 150 символов отличаются от к примеру 150 символов описания товара?

Друзья, в значении хранится текстовый код изображения, вот эти коды и сравниваются на похожесть кодов, вот так

сначала получаем и сравниваем sig1 и sig2, mysql такого сравнения не сделает, это функция библиотеки php


$r_sig = puzzle_vector_normalized_distance($value1['sig'], $value2['sig']);
echo $r_sig

и так до тех пор пока sig1 не пройдет все значения

после чего sig2 начинает также проходить по все проверкам и так пока не закончится

vandamme:
Ilekor, и как часто надо это выполнять?

подобный механизм выполняется 1-2 раза в месяц

totamon:
в чем смысл этого сравнивания, что в итоге это должно давать?

Это сравнивание проверяет схожесть значения в %, тоесть какой процент схожести значения с значением если значение превышает 10% значит дубль

Зарегился, провожу тест, обязательно отпишусь.

Яндекс раздает подарки к Новому Году :)

Добавил сайты, начал парсить данные, спарсило все, кроме количества страниц по яндексу + показывает, что все сайты в яндекс каталоге, думаю может ограничения какие, иду на сайт продлеваю подписку, оплачиваю деньги, жму снова проверить а результат тот же, и как быть?

Всего: 1064