обнаружение копий текстов - метод шинглов

обнаружение копий текстов - метод шинглов

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

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

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

Для решения этой задачи Udi Manber в 1994 году предложил идею, а Andrei Broder в 1997 придумал название и довел до ума алгоритм шинглов.

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

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

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

автор Илья Сегалович (отрывок из статьи)

261
Комментарии (0)