Всё про шинглы и «уникальный» копипаст.

копипаст

Когда меня спрашивают: «Банят ли копипаст?»  Я отвечаю банят, но не все копии. В статье я аргументирую свой ответ и докажу, что это именно так. Начнем с алгоритма определения уникальных и уникальных документов. Как известно, уникальность текста определяется по шинглам. А что такое шингл кто-нибудь знает?

Для каждого десятисловия текста рассчитывается контрольная сумма (шингл). Десятисловия идут внахлест, с перекрытием, так, чтобы ни одно не пропало. А затем из всего множества контрольных сумм (очевидно, что их столько же, сколько слов в документе минус 9) отбираются только те, которые делятся на, скажем, 25. Поскольку значения контрольных сумм распределены равномерно, критерий выборки никак не привязан к особенностям текста. Ясно, что повтор даже одного десятисловия – весомый признак дублирования, если же их много, скажем, больше половины, то с определенной (несложно оценить вероятность) уверенностью можно утверждать: копия найдена! Ведь один совпавший шингл в выборке соответствует примерно 25 совпавшим десятисловиям в полном тексте!

При подсчете контрольной суммы с помощью шинглов проходит 5 этапов.

1) Канонизация текста  (чистка текста).

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

2) Разбивание текста на шинглы.

Шинглы идут внахлест. Каждый последующий шингл отличается от предыдущего включением следующего слова и исключением первого слова в тексте:

шинглы

3)Хэширование шинглов

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

4) Выборка шинглов

Два документа считаются похожими, если их множества шинглов  пересекаются. Поскольку число шинглов примерно равно длине документа в словах, т.е. является достаточно большим, авторами алгоритма были предложены два метода сэмплирования для получения репрезентативных подмножеств. Первый метод оставлял только те шинглы , чьи дактилограммы, вычисляемые по алгоритму Карпа-Рабина, делились без остатка на некоторое число m. Основной недостаток —
зависимость выборки от длины документа и поэтому документы небольшого размера (в словах) представлялись или очень короткими выборками, или вообще не имели таковых. Второй метод
отбирал только фиксированное число S шинглов с наименьшими
значениями дактилограмм или оставлял все шинглы , если их общее число не превышало S.

5) Сравнение контрольных сумм и вывод результата.

Для этого сравниваем 84 контрольные суммы первого текста со вторым. Если они где-то одинаковы, то текст менее уникален.

Почему копипаст не банят?

Теперь перейдём к копипасту, и на основе алгоритма объясню, почему его не обязательно должны банить. Как известо, то поисковые используют алгоритм на соснове 4 шинглов, т.е. в шингл берут 4 слова. Кроме самой статьи на сайте есть другой контент: рубрики, календари, архивы, счетчики, меню и слова из них включаются при подсчете шинглов, т.е. если бы на сайтах не было этих побочных слов, то копипаст  определялся со 100% вероятностью. Например мы взяли статью с чужого сайта, где нет никакого контента кроме статьи, тогда размещая статью на своём сайте может быть 2 варианта:

  1. Контрольная сумма шинглов будет одинаковой, если перед статьей (4n) и слов (n=0,1,2….∞) => копипаст
  2. Контрольная сумма будет отлична от источника, если будет сдвиг шингла на 1,2,3 слова => уникальная статья

Конечно, можно переработать алгоритм, и узнавать на 100% уникальный ли текст, но  зачем? Дело в том, что поисковые системы пытаются дать ответы на запросы пользователей. Допустим есть сайт с актуальной информацией, полезной для пользователя, а что будет с ней, когда сайта не станет? Поэтому поисковые системы допускают 4 копии одного документа, с которыми ничего не произойдёт, если их не станет больше. У меня в запасе еще много того, что в блоге я пока не написал. Так, что подписывайтесь, чтобы быть в курсе актуальных SEO новостей.