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