Определение текстовых заимствований и нечетких дубликатов на основе алгоритма шинглов

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 19.02.2019
Размер файла 21,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ОПРЕДЕЛЕНИЕ ТЕКСТОВЫХ ЗАИМСТВОВАНИЙ И НЕЧЕТКИХ ДУБЛИКАТОВ НА ОСНОВЕ АЛГОРИТМА ШИНГЛОВ

Мешков В.Е.,

Царев А.П.

Огромное количество текстов, обмен контентом и копирование, в том числе и без указания первоисточника, сделали выявление нечетких дубликатов, определение копирайта и плагиата важными задачами для современной глобальной сети. Существует огромное количество достаточно эффективных алгоритмов сравнения текстовых документов. Правильное применение нужного алгоритма зависит от конкретной задачи, стоящей перед исполнителем, характера и объёма данных, других особенностей предметной области.[2]

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

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

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

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

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

Алгоритм шинглов является одним из алгоритмов определения близости текстов. Определение близости текстов, выявление нечетких дубликатов, определение копирайта - важные задачи для современной глобальной сети. Алгоритмов сравнения текстов существует огромное количество, многие из них достаточно эффективны в своем диапазоне решаемых задач. Правильное применение нужного алгоритма зависит от конкретной задачи, стоящей перед исполнителем. На самом деле, именно характер данных, их объём и другие особенности предметной области диктуют алгоритм обработки.

Алгоритм шинглов используется для решения:

1. Задачи сравнения текстов для определения тематической близости;

2. Задачи сравнения текстов для определения нечетких дубликатов;

3. Задачи автоклассификации текстовой информации.

Общий алгоритм шинглов очень распространен в сети, особенно на сайтах по СЕО и рерайтингу [1]. Задача определения заимствований и дубликатов является сложной и сильно зависит от типа заимствования: плагиат, использование идеи, копипаст, рерайтинг и т.д. При этом существуют множество ее разновидностей:

Установление приоритета в сетевых публикациях;

Удаление частично измененного копипаста;

Сравнение документа по контенту;

Установление смысловой близости документа.

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

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

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

1. Канонизация текста;

2. Разбиение его на шинглы;

3. Вычисление, через выбранные функции, хэш значений шинглов;

4. Сравнение и определение результата.

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

К таким составляющим относят:

стоп-слова;

предлоги;

союзы;

знаки препинания;

HTML теги (для гипертекста).

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

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

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

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

Следующим этапом является разбиение текста на шинглы. В нашей работе выбран наиболее популярный вариант - шингл из 10 слов, внахлёст.

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

Существуют различные подходы к вычислению контрольных сумм [3], которые получают с помощью хэширования по различным алгоритмам (SHA1, SHA3, CRC32, MD5 и т.д). Можно взять сразу несколько хэшей, полученных по различным алгоритмам, и выборочно сравнить их. Однако, в нашей работе мы выбрали популярный метод MD5.

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

1) Нахождение пересечения (общих элементов) двух множеств хэшей, и, в зависимости от результата, оценка сходства. Это вариант для использования одного алгоритма хэширования.

2) Поэлементное сравнение полученных строк с хэш-суммами из обеих текстов, в случае использования нескольких алгоритмов хэширования.

Мы в данной работе выбрали первый вариант.

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

В заключение отметим, что в рассматриваемой работе описан процесс анализа и выбора алгоритмов сравнения близости текстов, на основе которых реализована программа для определения схожести текстов и поиска нечетких дубликатов на основе алгоритма шинглов. Программа реализована на языке высого уровня C# в виде проекта в VisualStudio 2010.

шингл заимствование дубликат плагиат

Библиографический список

1. Проверка текста на уникальность. Алгоритм ШИНГЛОВ онлайн. [Электронный ресурс]: 2017. URL: http://seo-tank.ru/shingle.php

2. Мешков В.Е., Мешкова Е.В. Определение авторского стиля на основе статистическо-морфологического анализа произведения. Теория операторов, комплексный анализ и математическое моделирование: Тезисы докладов XIII Международной научной конференции (пос. Дивноморское, 7-14 сентября 2016г.). - Владикавказ: ЮМИ ВНЦ РАН, 2016. - 257с.

3. Мешков В.Е., Дьячкин Е.А.. Задача определения близости документов. Материалы Всероссийской нучно- практической конференции «Научный потенциал высшей школы - будущему России», Волгодонск, 2017 (РИНЦ)

Размещено на Allbest.ru

...

Подобные документы

  • Семантические сети как модели представления знаний. Основные методы определения сходства графовых моделей систем. Метод решения задач определения сходства семантических сетей на основе их сложности. Разработка алгоритмов и их программная реализация.

    дипломная работа [1,3 M], добавлен 17.12.2011

  • Разработка системы по поиску плагиата среди работ студентов. Получение оценочной информации о работе и коэффициенте плагиата. Повышение эффективности оценивания работы студента. Информационное обеспечение системы. Выбор устройства управления данными.

    курсовая работа [893,9 K], добавлен 23.04.2014

  • Специфика понятия "плагиат" в программировании. Схема работы модулей инструментальной системы поиска плагиата. Основы поиска в исходных кодах программ, в произвольных текстах. Обзор инструментальных средств. Программная реализация модуля PlagiatSearch.

    магистерская работа [4,9 M], добавлен 27.06.2014

  • Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Анализ алгоритмов, оценка параметров алгоритма (эффективности, сложности, правильности). Комплексный анализ эффективности алгоритма на основе комплексной оценки ресурсов формальной системы. Верификация при коллективной разработке программных систем.

    презентация [234,9 K], добавлен 22.10.2013

  • Примеры построения тестов и технологии исследования алгоритмов на их основе. Построение тестов на основе метода покрытия решений и проведение исследования соответствующего исходного алгоритма и алгоритма с ошибками в операторах проверки условий.

    контрольная работа [224,8 K], добавлен 24.05.2016

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

    курсовая работа [35,0 K], добавлен 25.06.2013

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

    презентация [361,6 K], добавлен 14.08.2013

  • Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.

    реферат [242,9 K], добавлен 24.04.2015

  • Процесс и результаты заимствования терминов из английского языка в русский в сфере компьютерной деятельности. Рассмотрение основных типов заимствований; термины hardware, software, команды и web-термины. Дискурсивный анализ обоснованности заимствований.

    дипломная работа [101,9 K], добавлен 09.10.2013

  • Создание нового документа. Редактирование текстовых файлов типа TXT и RTF. Сохранение измененного документа. Изменение шрифта, начертания и размера символов. Отмена последнего действия. Оформление нового текста, форматирование абзаца, удаление текста.

    реферат [158,6 K], добавлен 25.10.2013

  • Понятие алгоритма как набора инструкций, описывающего порядок действий. Поиск в ширину - метод обхода графа и поиска пути в нем. Пример работы алгоритма поиска в ширину, его неформальное и формальное описание. Реализация с помощью структуры "очередь".

    курсовая работа [684,8 K], добавлен 05.04.2015

  • Internet - основные функции. Поиск нужной информации. Быстрое открытие любимых страниц (папка Избранное). Добавление к списку избранного. Поиск посещенных Web-узлов. Электронная почта. Сохранение Web-страниц.

    реферат [25,7 K], добавлен 12.06.2007

  • Формулировка задачи и методика ее решения. Удаление заданной цифры из данного натурального числа. Структурная схема алгоритма и его описание. Особенности разработки программы и процедур и их описание. Удаление максимальных элементов из заданного массива.

    курсовая работа [1,7 M], добавлен 08.02.2013

  • Алгоритм как четкая последовательность действий, направленная на решение задачи. Свойства алгоритмов и их характеристика. Способы описания алгоритма. Понятия алгебры логики. Логические переменные, их замена конкретными по содержанию высказываниями.

    презентация [337,7 K], добавлен 18.11.2012

  • Средства формализации процесса определения спецификаций. Назначение языка (PSL) и анализатора определения задач (PSA). Разработка алгоритма решения задачи, критерии оценки его сложности. Локальный и глобальный уровни повышения эффективности алгоритмов.

    контрольная работа [144,9 K], добавлен 26.10.2010

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

    курсовая работа [205,0 K], добавлен 24.06.2013

  • Общие сведения о системах управления базами данных MS Access. Использование языка QBE для создания запросов на выборку данных. Параметрические и перекрестные запросы. Запросы с автоподстановкой, на выборку дубликатов и записей, не имеющих соответствия.

    курсовая работа [32,8 K], добавлен 03.06.2015

  • Классификация программ обработки текстовых документов. Общие принципы оформления издания. Правила набора текста. Системы распознавания текста (OCR). Комплекс программного обеспечения для настольных издательских систем. Примеры текстовых редакторов.

    презентация [75,0 K], добавлен 13.08.2013

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

    курсовая работа [1,1 M], добавлен 10.11.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.