Признаки похожести

123 4
Artisan
На сайте с 04.03.2005
Offline
378
#11
Как писал InSAn
Представьте себе ситуацию, когда рейтинг, раздающий кнопочки, "дает" код, котором ссылка вида .../?id=123
Около 10 тыс. ресурсов данный код поставили.

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

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
InSAn
На сайте с 13.01.2003
Offline
60
#12

Artisan, причем здесь письма?

речь идет о похожести страниц, а не о регистрации ресурсов и доставке почты.

ADPRO - Мы знаем, что Вам нужно! (http://adpro.ua)
[Удален]
#13
Как писал InSAn

А подробнее можно?
Представьте себе ситуацию, когда рейтинг, раздающий кнопочки, "дает" код, котором ссылка вида .../?id=123

Около 10 тыс. ресурсов данный код поставили.
Согласно вашему совету, "Если какая-то страница признана дублем" - для начала нужно эти страницы "отловить".

Ну да. Запросили страницу - если дубль - запомнили, что по такому-то адресу дубль. 10 тыс. страниц не так много же, их даже в индекс заносить не надо.

InSAn
На сайте с 13.01.2003
Offline
60
#14
Как писал Interitus

Ну да. Запросили страницу - если дубль - запомнили, что по такому-то адресу дубль. 10 тыс. страниц не так много же, их даже в индекс заносить не надо.

Т.е. алгоритм следующий:

1. запросили страницу

2. сравнили со всеми страницами в базе...

дальше продолжать? ;)

прошу еще учесть, что есть ряд сайтов, которые доступны как ...com, так и ...net

а еще есть сайты, которые имеют различные домены (и даже зеркала в разных уровнях - типа tra-la-la.com и tra.123456.net)

Возвращаясь к началу - по каким признакам производить выборку страниц из базы для последующего сравнения на похожесть?

Хотя, для себя я уже вроде решил...

При индексировании страниц берется сугубо контент (удаляются все теги) и вычисляется его контрольная сумма.

При индексации следующей страницы - сверяется контрольная сумма текущей страницы и производится проверка наличия такой суммы среди проиндексированных страниц.

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

Критика будет? ;)

Artisan
На сайте с 04.03.2005
Offline
378
#15

Зачем так сложно? Сделайте массив в котором на местах зависящих от хэша будут номера счетчиков и сравнивайте страницы в этих корзинах.

[Удален]
#16

InSAn, я просто подумал, что механизм определения нечеткого дубля у вас уже есть, но вы хотите обойтись без его использования. :)

Возвращаясь к началу - по каким признакам производить выборку страниц из базы для последующего сравнения на похожесть?

Можно хранить для всех имеющихся в базе страниц хеши 10-словных последовательностей. Таблицу хеш/документ или хеш/список документов. И когда вы получаете новый текст - считать для него эти хеши, и выборочно проверять - нет ли уже таких. Если есть - брать те документы, в которых они есть, и сравнивать с текущим.

Хотя, для себя я уже вроде решил...
При индексировании страниц берется сугубо контент (удаляются все теги) и вычисляется его контрольная сумма.
При индексации следующей страницы - сверяется контрольная сумма текущей страницы и производится проверка наличия такой суммы среди проиндексированных страниц.
Страницы с одинаковой контрольной суммой проверяются методом шинглов на похожесть.

Критика будет?

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

euhenio
На сайте с 21.09.2001
Offline
357
#17

Надо было сразу сказать в постановке задачи - четкие дубли вы хотите найти или нечеткие. Если четкие - то хэша всего текста должно хватить... Если нечеткие - то шинглы надо использовать.

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )
Artisan
На сайте с 04.03.2005
Offline
378
#18

Как правильно отметил Interitus лучше брать частичные хэши а так как их много то для скорости проверять только счетчики тех страниц которые попадают в корзину одинаковых хэшей.

InSAn
На сайте с 13.01.2003
Offline
60
#19
Как писал Artisan
Зачем так сложно? Сделайте массив в котором на местах зависящих от хэша будут номера счетчиков и сравнивайте страницы в этих корзинах.

Потому, что робот не знает, какой параметр будет - на то он и робот.

И к счетчикам это никакого отношения не имеет (я их привел только в качестве примера)

E
На сайте с 12.01.2004
Offline
17
#20
Как писал InSAn

Хотя, для себя я уже вроде решил...
При индексировании страниц берется сугубо контент (удаляются все теги) и вычисляется его контрольная сумма.
При индексации следующей страницы - сверяется контрольная сумма текущей страницы и производится проверка наличия такой суммы среди проиндексированных страниц.
Страницы с одинаковой контрольной суммой проверяются методом шинглов на похожесть.
Критика будет? ;)

Мне это представляется примерно так:

1) Берется контент страницы освобожденный от тегов

2) Если размер страницы меньше некого значения, контент страницы циклически размножается до достижения нужного размера

3) Для страницы вычисляются набор шинглов

4) Из набора шинглов отбираются только кратные некому числу, т.е. их будет не больше чем это число

5) Для каждого полученого шингла ищем дубликат среди хранилища шинглов уже ВСЕХ ранее добавленных страниц

6) Ищем документы у которых совпадает один или несколько шинглов с искомым (необходимое количество совпадений шинглов можно выяснить эксперементально на реальных данных).

7) Для надежности сравниваем полученный список документов с искомым при помощи методов нечеткого сравнения.

8) Если решили что дубликатов документа ранее несуществовало - ДОБАВЛЯЕМ его шинглы в некое хранилище по которому мы ищем в п. 5.

п. 3 - какую хеш функцию подобрать?

п. 4 - неясно какое это должно быть число?

п. 5 - мне кажется что такой поиск не займет много времени, на небольших объемах подойдет даже sql база.

п. 6 - сколько должно быть совпадений шинглов чтобы документы считать идентичными?

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий