Принцип работы метода шинглов научные статьи. Шингл — таинственный и непонятный

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

Суть метода

Шингл — это канонизированный кусок текста длиной от 3 до 10 слов.

Канонизация — это приведение текста в нужный для работы вид. Она может проводится следующим образом: из куска текста убираются все предлоги, союзы, стоп слова и знаки препинания, а сами слова переводятся к именительному падежу. Например возьмем фразу: «Киевское лето в этом году было очень солнечным» и ее канонический вид будет иметь следующий вид: «киев лето год солнечно». Канонизация осушает весь текст оставляя только основные смысловые слова.

Уникальность шингла — шингл считается уникальным, если в поисковой базе не встречается ни одного упоминания данной фразы.

Уникальность текста — высчитывается по процентному показателю уникальных шинглов. Например, если текст состоит из 100 шинглов и 95 из них уникальны, то уникальность текста 95%.

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

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

Применение в SEO

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

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

Алгоритм шинглов (шингл (shingles) с английского это черепичка, чешуйка) предназначен для нечеткого поиска дубликатов текста. Слово "нечеткий" означает, то что вхождения дублей ищется не точно, а размыто. К примеру, возможен дубликат не только строки, но и отдельных словосочетаний. В основном модификация алгоритма шинглов используется поисковыми системами для борьбы с поисковым спамом. Это позволяет из поисковой выдачи исключать тексты похожие друг на друга или полностью идентичные. Однако остается проблема первоисточника, т.е. источника на котором данная информация появилась в первые. Хотя считается, что поисковые системы четко фиксируют этот факт, но в любой системе случаются сбои. Рассмотрим более детально вопрос относительно этого метода, посмотрим с чем едят этот шингл!

Алгоритм метода шинглов

Для каждой части текста (подстроки) рассчитывается некая контрольная сумма, задача которой как-то идентифицировать данный текст, это шингл. Эти символьные кусочки текста должны идти в нахлест, друг за другом, чтобы ни один символ или слово не пропало. Далее из всего множества этих контрольных сумм отбираются те, которые отвечают какому либо критерию - четные, делятся на какое-нибудь число и т.д. В результате выборка имеет равномерный закон распределения, не делается акцент на какой либо части текста. В итоге, если между двумя кодированными текстами совпадут контрольные суммы, то схожесть текстов очевидна. И чем больше совпадений, тем больше схожести текстов.

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

Пример использования алгоритма метода шинглов

Рассмотрим в качестве примера две слегка измененные выдержки из стихотворения А.С. Пушкина

Оригинальный текст:

"
Буря мглою небо кроет,
Вихри снежные кружа,
То как зверь она завоет,
То заплачет как дитя
- Алгоритм метода шинглов в работе
"

Чуть подправленный текст:

"
Буря белым землю кроет,
Вихри снежные кружа,
То как лев она завоет,
То заплачет как дитя
- Алгоритм метода шинглов на старт
"

В качестве шага выберем слово. Длину подстроки возьмем равную 5 словам. Составлять строки будем в стык (друг за другом). Так как текст маленький, то исключать слова
В итоге получим кодированный текст длиной в 5 чисел.

Рис. 1 Пример компоновки текста методом шинглов

Вот у нас получился набор слов для первого случая:
БурямглоюнебокроетВихри | снежныекружаТокакзверь | оназавоетТозаплачеткак | дитяАлгоритмметодашингловв | работе
хеш:
| | | |

и второго:
БурябелымземлюкроетВихри | снежныекружаТокаклев | оназавоетТозаплачеткак | дитяАлгоритмметодашингловна | старт
хеш:
| | | |

В результате, у нас получилось одно совпадение - третье число (c0c522529b0e810f73b210cc972e9966). Это совпадение показывает то, что между двумя текстами схожесть составляет не менее 25%. Конечно для такого маленького текста, можно было уменьшить шаг, но и при таких начальных параметрах это является хорошим примером.

Супершингл

Если для каждого текста составлять даже уменьшенное каким-либо критерием набор шинглов, то все равно для большого объема документов вычислительные мощности, которые необходимо будет задействовать все равно останутся колоссальными. Поэтому на практике часто над набором шинглов документа считают еще одну контрольную сумму, так называемый «супершингл». Следовательно, совпавшими тогда будут считаться документы с полностью совпавшими наборами шинглов.

Замечания алгоритма метода шинглов

Однако, необходимо отметить, что на текущий момент применяются усовершенствованные алгоритмы определения дубликатов. К примеру, альтернативный алгоритм определения нечетких дубликатов, был создан и придуман в Яндексе. Модифицированный алгоритм тот факт, что поисковая система обладают индексным документом в виде инвертированного файла (или инвертированным индексом) и эту ситуацию можно с пользой использовать в процедуре нахождения почти-дубликатов.

Простое приближение метода шинглов на php

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

Первоначально необходимо скачать файл по сети. Это можно сделать с помощью простой функции на php:

// получить файл по ссылке $url ?> // удалим теги с помощью функции php ?>

Определим необходимые переменные

// массив подстрок $hesh_mass = array () ; // массив значений хеш подстрок $tmp = » ; ?>

Создадим массив из слов. В качестве критерия разделения используем пробел.

// опять стандартная функция php ?>

Сформируем массив подстрок. В этой функции мы просто складываем слова по пять штук вместе.

Сформируем массив хеш значений:

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

"Процент совпадения: " . $similar_counter * 100 / size ($hesh_mass1 ) ; ?>

Уникальность контента

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

Шингл используется при размножении статей

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

Типичный пример диалога при заказе на размножение статей:

  • 1 — Ожидаю уникальность не ниже 95%!
  • 2 — При каком шаге шингла проверять тексты?
  • 1 — А что такое шингл ?
  • 2 — Это параметр, который используется для сравнения, когда выполняют размножение статьи.
  • 1 — Вот я сделаю размещение статей. После их индексации какая уникальность будет? Только скажите без шинглов, не пишите мне про них.

Вот такие примерно диалоги иногда случаются при обсуждении технического задания на . Эта проблема подтолкнула меня сделать попытку разобраться: что же такое алгоритм шинглов и «с чем его едят» оптимизаторы. Данная статья не претендует на полноту рассмотрения вопроса или на классическое определение термина. Наша задача – понять, каким образом используется этот непонятный метод при определении уникальности, когда мы пытаемся размножить статью.

Это часть исходного текста

Шингл — цепочка, состоящая из нескольких, подряд идущих слов. На практике используется размер шингла от 3 до 10 слов. Перед сравнением текстов формируют массив. Формируются цепочки массива не последовательно, а внахлест. Приведу пример такого массива при шаге 3 слова.

Исходный текст – «Первое второе третье четвертое пятое шестое слово».
Полученный массив :

  • Первое второе третье
  • второе третье четвертое
  • третье четвертое пятое
  • четвертое пятое шестое
  • пятое шестое слово

Длина массива равна количеству слов минус длина шага шингла плюс один. В нашем примере 7-3+1=5. Более того, перед получением массива текст нормализуется. Процесс нормализации заключается в отбрасывании стоп-слов, предлогов, союзов, символов, цифр и т.д. После того, как мы получили массив для каждого текста, несложно рассчитать процент уникальности между статьями. Расчет уникальности статей — процент неодинаковых шинглов от общего их количества в статьях. Для расчета уникальности статьи в некотором наборе текстов мы должны сравнить эту статью с остальными и взять минимальный результат.

Какой размер шингла использовать при проверке

Тут же напрашивается встречный вопрос: для какой цели сравниваем тексты? Если нам необходимо просто узнать уникальность статей между собой, то и ответ прост — чем короче шингл , тем более уникальны тексты. Поясню: уникальность, например, 95% при шаге 5 слов, «более уникальна» чем те же 95% при шаге 10 слов. Можно сказать по-другому: уникальность 97% при длине 10 слов примерно равна уникальности 90% при длине 5 слов. А если нам необходимо прогнозировать уникальность этих же текстов с точки зрения поисковых систем (после их размещения и индексации), то тут нет точного ответа. Однозначно можно утверждать только одно: чем меньше размер шингла и выше процент уникальности, тем более лояльны будут к вашим статьям поисковые системы. Этот момент особенно необходимо учитывать тем, кто решил впервые создать свой сайт и наполнить его уникальным контентом.

Процент уникальности текста и его размер

И еще одно замечание. Чем короче исходная статья, тем труднее добиться высокого процента уникальности размноженных текстов. И это понятно, так как процент уникальности текста равен отношению количества совпавших цепочек шингла к общему количеству цепочек шингла в статье. В коротком тексте общее число цепочек шингла невелико. Соответственно отношение будет в худшую сторону. Кроме того, при написании seo текстов под ключевые запросы в коротких статьях плотность ключевых слов будет неизбежно выше. Практика размножения статей показывает, что наличие 1-3 ключевых выражений длиной более 3-х слов очень сильно затрудняет получить хороший процент уникальности текста. Это правило особенно актуально для статей размером менее 2К символов.

Метод шинглов применяется во всех программах для размножения статей

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

Ждем ваших заказов по размножению статей и копирайтингу на нашем ресурсе http://www.сайт

Реализация алгоритма шинглов позволяет определять уровень идентичности двух документов. Зеленков Ю. Г. и Сегалович И.В. в своей работе «Сравнительный анализ методов определения нечетких дубликатов для Web-документов» подробно описали принцип алгоритмов шинглов разной величины для сравнения веб-документов.

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

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

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

  • канонизации текста;
  • разбиения его на шинглы;
  • вычисления, через статические функции, 84-х хэшей шинглов;
  • случайной выборки значений 84 контрольных сумм;
  • сравнения и определения результата.

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

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

После проведения всех указанных операций получается «чистый» текст, пригодный для сравнения.


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

Шинглы (от англ. – чешуйки) - выделенные для сравнения из тела статьи отдельные части текста, с определенным количеством слов в его последовательности для проверки на уникальность.

Шинглы могут быть на любое количество слов – от 3 до 10. Чем шингл короче, тем точнее будет результат проверки. При назначении размера шингла в 3 слова проверка, давшая 100% уникальности, является свидетельством оригинальности текста, поскольку совпадения словосочетаний встречаются практически в любом тексте.

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

Полученные наборы шинглов, после того как каждый из текстов разбит на подпоследовательности, равны количеству слов в документе минус длина шингла (-10) плюс один (+1).




3. Вычисление хэшей шинглов.

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

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

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

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




4. Случайная выборка 84 значений контрольных сумм.

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




5. Получение результата.

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


gastroguru © 2017