Определение текстовых заимствований и нечетких дубликатов на основе алгоритма шинглов
Поиск дубликатов и плагиата среди веб-страниц, как одно из главных направлений сравнения текстов. Алгоритм шинглов, как один из эффективных алгоритмов определения сходства документов на предмет заимствования. Удаление частично измененного копипаста.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 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.2015Internet - основные функции. Поиск нужной информации. Быстрое открытие любимых страниц (папка Избранное). Добавление к списку избранного. Поиск посещенных 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