К текстам, размещаемым на сайтах (информационных или интернет магазинах), всегда предъявляется одно из важных требований: уникальность. Чем выше уникальность у размещаемого текста, тем лучше для сайта. Если вы занимаетесь написанием, рерайтом статей или просто размещением текстов, то вам обязательно нужно разобраться в том, что такое шинглы и как работает алгоритм поиска дублей. Понимание того, как программы и сервисы определяют уникальность, позволит вам проще увеличивать оригинальность текста и проходить проверки на определение дубликатов текстов.
В 1994 году израильский ученый компьютерщик Уди Манбер впервые сформировал и озвучил идею поиска и проверки дубликатов текста. В 1997 году один из выдающихся ученых Google Андрей Зари Бродер довел предложенную коллегой идею проверки уникальности текста до логического завершения и придумал название — «алгоритм шинглов» (от англ. Shingles — чешуйки).
В чем же состоит идея шинглов? Приведем пример работы алгоритма для поиска дублей (на основе сравнения двух похожих текстов). Каждый проверяемый текст проходящий проверку подвергается следующим операциям:
- Канонизация текста. Перед проверкой любой текст приводится к так называемой «единой нормальной форме». Из проверяемого текста удаляются союзы, предлоги, различные html теги или любая другая разметка, знаки препинания. В некоторых случаях удаляются прилагательные. При определении оригинальности прилагательные не дают смысловой нагрузки. Все существительные приводятся к единственному числу и именительному падежу. Некоторые программы от существительных оставляют только корни. После канонизации получается текст без мусора, готовый к поиску дублей.
- Разбиение текста на последовательности. В подготовленном тексте выделяются последовательности слов следующих последовательно друг за другом. Последовательности в тексте выделяются не последовательно, а внахлест. Нарезав весь подготовленный текст, получим определенное количество последовательностей равное количеству слов в подготовленном тексте минус длина шингла + один.
- Выборка значений для сравнения. Алгоритм определения уникальности текста выбирает случайным образом некоторое количество шинглов. При случайной выборке шинглов возникает техническая проблема. Для более качественного сравнения текстов необходимо увеличивать количество последовательностей для сравнения. Это в свою очередь экспоненциально увеличивает количество операций и отражается на производительности.
- Сравнение шинглов и определение результата. Отобранные случайным образом последовательности подвергаются сравнению и считаются все совпадения. Соотношение всех совпадений и является результатом проверки.
Системы определения уникальности (текст ру, адвего, антиплагиат) используют несколько упрощенный вариант алгоритма. Алгоритм поиска дублей основан на определенной длине шингла.
Шаг или длина шингла – это количество или порядок слов которые используют алгоритмы для определения уникальности. Количество слов может находиться в диапазоне от 2 до 10. Чем меньше количество слов в шингле, тем более точно определяется оригинальность текста.
Например, если сервис определения уникальности текстов использует длину шингла равную 3, то это означает, что будет проверяться каждое третье слово в тексте.
Разобрав логику алгоритма ее нужно как-то применить на практике. При рерайте/уникализации текста необходимо просто сбить шаг шингла. Например, если вы знаете, что алгоритм использует длину шингла 3, то необходимо в тексте изменить каждое третье слово. Сервис проверки найдет новые элемнты в тексте и повысит процент оригинальности.
Для написания текста на сайт необходимо полноценное техническое задание, которое включает сбор ключевых фраз, слов определяющих тематику текста, определение длины текста и т.д.