Принцип роботи методу шинглів - наукові статті. Шингл - таємничий та незрозумілий

Алгоритм шинглів (shingles – англ. черепиця, луска) призначений для нечіткого пошуку дублікатів тексту. Слово "нечіткий" означає, що входження дублів шукається не точно, а розмито. Наприклад, можливий дублікат не лише рядка, а й окремих словосполучень. Здебільшого модифікація алгоритму шинглів використовується системами антиплагіату, пошуковими системами боротьби з пошуковим спамом, копіпастом, і навіть визначення унікальності рерайту.
Шингли – виділені порівняння з тіла тексту окремі частини (підрядки), з певною кількістю слів у його послідовності перевірки на унікальність. Шингли можуть бути на будь-яку кількість слів, чим коротший шингл, тим точніше буде результат перевірки.
Існують різні методи розбиття тексту на шингли:
- один за одним, шингли не перетинаються

Внахлест, коли підрядки включають частину попередньої підрядки;

Спосіб формування шинглів і кількість слів або символів в шингл, а також зсув шингла (на скільки слів або знаків зрушується наступний підряд) сильно впливає на точність результату. При визначенні розмірності підрядка вибір залежить від обчислювальної потужності, обсягів пам'яті та необхідної точності результатів.
За допомогою нашого онлайн-сервісу seo-tank можна гнучко налаштовувати параметри алгоритму. Ви можете змінювати текст прямо на нашому ресурсі, порівнювати його з оригіналом, і якщо потрібно, відкотиться назад і внести нові виправлення.

Після поділу на шингли (підрядки) різні підходидо обчислення контрольних сум та подальшого їх порівняння для оцінки подібності тексту. Контрольні суми можна отримати за допомогою хешування за різними алгоритмами (SHA1, SHA3, CRC32, MD5). Далі потрібно оцінити збіг отриманих контрольних сум для двох порівнюваних текстів. Наш сервіс дозволяє визначити плагіат чи унікальність тексту онлайн за допомогою алгоритму шинглів. Він розраховує відсоток запозичення тексту. В даному випадку йдеться виключно про дублікат, повний або, у разі рерайтингу, частковий, тому що неможливо незалежно написати повністю ідентичні шматки тексту. Цей алгоритм використовують пошукові системи та системи антиплагіату. Визначте якість рерайту та ступінь запозичення тексту онлайн

Для ефективного порівняння необхідно задати правильні параметри алгоритму. Що менше шингл, то більш точно будуть виявлені збігаються слова. Також і зі зрушенням -менше ймовірності "перестрибнути" словесні обороти, що повторюються. Однак чим більше текст, тим простіше знайти в ньому збіги (якщо вони є), і немає потреби вибирати мінімальне значення шингла. Важливо! Точніша обробка на великому тексті може бути повільнішою!

Нерідко пишуть, що алгоритм шинглів не здатний визначити ідентичність таких фраз, як "Викладач дає студенту матеріал/Викладачі дають студентам матеріали". Багато сервісів перевірки унікальності, засновані на алгоритмі шинглів, покажуть, що фрази унікальні, хоча для пошукових систем вони ідентичні. Справа тут не в недоліках алгоритму шинглів, а в методах канонізації тексту (очищення). Якщо в канонізації використовується морфологія, тобто всі слова приводяться до своєї нормальної форми, алгоритм легко розпізнає фрази як однакові, незалежно від їх закінчень. Нормальна форма слова - для іменника іменник, однина, для дієслова -невизначена форма і т.д.

Реалізація алгоритму шинглів дає змогу визначати рівень ідентичності двох документів. Зеленков Ю. Г. та Сегалович І.В. у своїй роботі " Порівняльний аналізметодів визначення нечітких дублікатів для Web-документів» докладно описали принцип алгоритмів шинглів різної величини для порівняння веб-документів.

Автори публікації докладно аналізують техніку визначення ідентичності документів. Вони пропонують версію алгоритму шинглів, яка використовує випадкову вибірку з аналізованого тексту 84 випадкових шинглів.

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

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

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

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

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

Після проведення всіх зазначених операцій виходить "чистий" текст, придатний для порівняння.


2. Розбиття тексту на шингли.

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

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

Порівнювані тексти потрібно розділити на підпослідовності (що йдуть один за одним) слів і визначити довжину шингла в 10 слів. Така вибірка відбувається не встик, а внахлест – це гарантує, що Пошукова системане пропустить жодного рядка підрядка.

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




3. Обчислення хешів шинглів.

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

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

Для полегшення текст представляється як таблиць з набором контрольних сум, розрахованих кожному за шингла по 84-м статичним хеш-функциям. Усі 84 ​​рядки (для кожного з документів) охарактеризовані відповідною контрольною сумою.

З обох наборів випадково відбираються 84 значення – для кожного з документів – і порівнюються відповідно до функцій своєї контрольної суми. Іншими словами, потрібно 84 операції, щоб порівняти тексти.




4. Випадкова вибірка 84 значень контрольних сум.

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




5. Отримання результату.

Порівняння кожного з 84 елементів обох документів виявляє співвідношення однакових значень, що дозволяє визначити рівень ідентичності або унікальності кожного з текстів.


Унікальність контенту

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

Шингл використовується для розмноження статей

Усім, хто хоч раз виконував розмноження статей, довелося зіткнутися з таким поняттям, як шингл. Багато хто і не намагається зрозуміти суть даного терміна. Це можна помітити на прикладі спілкування з оптимізаторами-початківцями.

Типовий приклад діалогу при замовленні на розмноження статей:

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

Ось такі приблизно діалоги іноді трапляються під час обговорення технічного завданняна. Ця проблема підштовхнула мене зробити спробу розібратися: що таке алгоритм шинглівта «з чим його їдять» оптимізатори. Ця стаття не претендує на повноту розгляду питання чи класичне визначення терміна. Наше завдання – зрозуміти, яким чином використовується цей незрозумілий метод щодо унікальності, коли ми намагаємося розмножити статтю.

Це частина вихідного тексту

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

Вихідний текст - "Перше друге третє четверте п'яте шосте слово".
Отриманий масив:

  • Перше друге третє
  • друге третє четверте
  • третє четверте п'яте
  • четверте п'яте шосте
  • п'яте шосте слово

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

Який розмір шингла використовувати під час перевірки

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

Відсоток унікальності тексту та його розмір

І ще одне зауваження. Чим коротша вихідна стаття, тим важче досягти високого відсотка унікальності розмножених текстів. І це зрозуміло, оскільки відсоток унікальності текстудорівнює відношенню кількості ланцюжків шингла, що збіглися, до загальної кількості ланцюжків шингла в статті. У короткому тексті загальна кількість ланцюжків шингла невелика. Відповідно, ставлення буде в гірший бік. Крім того, при написанні seo текстівпід ключові запити в коротких статтях щільність ключових слівбуде неминуче вище. Практика розмноження статей показує, що наявність 1-3 ключових виразів довжиною більше трьох слів дуже ускладнює отримати добрий відсоток унікальності тексту. Це особливо актуально для статей розміром менше 2К символів.

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

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

Чекаємо на ваші замовлення з розмноження статей та копірайтингу на нашому ресурсі http://www.сайт

Шингл тексту - частини, куди ділиться текст, якими перевіряється унікальність.

Більше відео на нашому каналі - вивчайте інтернет-маркетинг із SEMANTICA

Такий метод перевірки є найнадійнішим. Він з'явився у 1997 році і досі залишається найпопулярнішим. Алгоритм розбиття на шингли для подальшої перевірки є простим, не вимагає багато часу.

Метод шинглів є затребуваним при створенні всіляких. Він дозволяє розпізнати унікальні статті від синонімайзингу.

Як працюють шингли тексту

Підсумковий показник текстового контексту, що перевіряється, залежатиме від виставленої довжини шингла. Якщо розмір шингла задали в одне слово, то в інтернеті обов'язково знайдеться кілька текстів, які вже міститимуть аналогічне слово. У результаті відсоток унікальності контексту, що перевіряється, буде нульовим.

Якщо задати перевірку, яка буде здійснюватися на основі заданих десяти слів, унікальність документа, що перевіряється, буде на висоті. Найчастіше десять слів поспіль не повторюватимуться у кількох текстах.

Коли ми зрозуміли, як працює алгоритм пошуку фраз, давайте докладніше розглянемо приклад, як здійснюється пошук унікальних та неунікальних фрагментів. текстового документа.

  • Шингл 1: прибирання квартири після;
  • Шингл 2: квартири після ремонту;
  • Шингл 3: після ремонту.

У прикладі ми розглянули, як відбувається нарізування фраз внахлест.

Серед різноманітних програм, які в автоматизованому режимі перевіряють тексти на унікальність є досить складні алгоритми нарізування.

  • Без очищення від стоп-слів та непотрібних слів.
  • З очищенням всього текстового документа від стоп-слів та непотрібних слів.

Перший алгоритм працює принципом, що перевірка не змінює вихідний текст. Документ перевіряється на унікальність у тому вигляді, який був.

Другий алгоритм виконує більш складний процес. При перевірці вихідного текстового контенту видаляються всі слова або словосполучення, в яких немає корисної інформаціїта сенсу (в оптимізації текстів, дані слова відносяться до води)

Прибирання квартири після ремонту в будь-якому приміщенні проводиться в максимально стислий термін: якісно та акуратно.

У процесі перевірки очищається текст і виходить наступне:

Прибирання квартири ремонту приміщення проводиться максимально стислий термін: якісно акуратно.

Який розмір шингла ставити в Advego Plagiatus

Чим коротше ви виставляєте на Адвего шингл, тим якіснішим і точнішим буде перевірка текстового документа. За популярною програмі Advego Plagiatus середнім показником є ​​4-5 слів. Цієї кількості вистачає, щоб переконатися в справжній унікальності тексту. Якщо ви встановите розмір шингла 3, то перевірка на унікальність обов'язково знайде збіги з безліччю контенту в інтернеті.

Наприклад, фраза "Я тебе люблю", що складається з 3 слів, знайдеться обов'язково ще в тисячі статтях.

Алгоритм шинглів (Шінгл) з англійської це черепичка, луска) призначений для нечіткого пошуку дублікатів тексту. Слово "нечіткий" означає, що входження дублів шукається не точно, а розмито. Наприклад, можливий дублікат не лише рядка, а й окремих словосполучень. Здебільшого модифікація алгоритму шинглів використовується пошуковими системами боротьби з пошуковим спамом. Це дозволяє з пошукової видачі виключати тексти, схожі один на одного або повністю ідентичні. Проте залишається проблема першоджерела, тобто. джерела на якому дана інформаціяз'явилася перші. Хоча вважається, що пошукові системи чітко фіксують цей факт, але у будь-якій системі трапляються збої. Розглянемо детальніше питання щодо цього, подивимося з чим їдять цей шингл!

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

Для кожної частини тексту (підрядки) розраховується певна контрольна сума, завдання якої якось ідентифікувати цей текст, це шингл. Ці символьні шматочки тексту повинні йти в нахлест, один за одним, щоб жоден символ чи слово не пропало. Далі з безлічі цих контрольних сум відбираються ті, які відповідають якомусь критерію - парні, діляться якесь число тощо. Через війну вибірка має рівномірний закон розподілу, не робиться акцент будь-якої частини тексту. У результаті, якщо між двома кодованими текстами збігатимуться контрольні суми, то схожість текстів очевидна. І що більше збігів, то більше схожості текстів.

Вибирати одиницю кодування - підрядок можна по-різному. Можна використовувати крок розміром з символ або кілька символів, а можна брати слово або кілька слів. Далі потрібно визначитися, чи повинні підрядки "заїжджати" (включати частину попередньої) у свій код - це впливає на точність результату. Визначити розмірність підстроки в десять слів або десять символів, вибір залежить від обчислювальної потужності, обсягів пам'яті та точності результатів. До того ж бажано вихідний текст очистити від повторюваних прогалин, розділових знаків і навіть прийменників, т.к. вони не несуть особливого інформаційного навантаження.

Приклад використання алгоритму методу шинглів

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

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

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

Трохи підправлений текст:

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

Як крок виберемо слово. Довжину підрядка візьмемо рівну 5 слів. Складатимемо рядки в стик (один за одним). Оскільки текст маленький, то виключати слова
У результаті отримаємо кодований текст довжиною 5 чисел.

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

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

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

В результаті, у нас вийшло одне збіг - третє число (c0c522529b0e810f73b210cc972e9966). Цей збіг показує, що між двома текстами схожість становить не менше 25%. Звичайно для такого маленького тексту, можна було зменшити крок, але і за таких початкових параметрів це хороший приклад.

Супершингл

Якщо для кожного тексту складати навіть зменшений будь-яким критерієм набір шинглів, то все одно для великого обсягу документів обчислювальні потужності, які необхідно буде задіяти, все одно залишаться колосальними. Тому практично часто над набором шинглів документа вважають ще одну контрольну суму, так званий «супершингл». Отже, збіглими тоді будуть вважатися документи з наборами шинглів, що повністю збіглися.

Зауваження алгоритму методу шинглів

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

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

Наведемо нижче опис та вихідний код для демонстрації алгоритму шинглів мовою php. Імітуватимемо пошукову систему

Спочатку необхідно завантажити файл через мережу. Це можна зробити за допомогою простої функції на php:

// отримати файл за посиланням $url ?> // видалимо теги за допомогою функції php ?>

Визначимо необхідні змінні

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

Створимо масив із слів. Як критерій поділу використовуємо пробіл.

// Знову стандартна функція php ?>

Сформуємо масив підрядків. У цій функції ми складаємо слова по п'ять штук разом.

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

Як функцію порівняння скористаємося простим перебором В результаті роботи функції виводиться відсоток збігів.

"Відсоток збігу:". $similar_counter * 100/size ($hesh_mass1); ?>
Поділіться з друзями або збережіть для себе:

Завантаження...