1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chenyanlong-antiplag

Клонировать/Скачать
README.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 05.06.2025 22:14 628f5c5

Программа для проверки схожести кода, документов и изображений antiplag

Программа предназначена для проверки и сравнения схожести домашних заданий, представленных студентами в электронном виде. Она способна анализировать схожесть кода на различных языках программирования (например, Java, C/C++, Python и т.д.), а также документов на разных форматах (например, txt, doc, docx, pdf и т.д.) и на разных языках (китайский, английский, традиционный и упрощённый китайский). Кроме того, программа сравнивает схожесть изображений на различных форматах (например, png, jpg, gif, bmp и т.д.).

Требования

jdk11

Установка

Программу можно скачать или клонировать исходный код проекта, либо скачать версию для разработки releases. Исходный код можно импортировать напрямую в Eclipse, основной точкой входа является класс PlagGUI в пакете gui.plag.edu. Программа разработана и работает на Windows 10, с использованием jdk11 64-битной версии.## Использование Для запуска программы в версии для разработки, дважды щелкните по файлу run.bat. Инструкции по использованию программы можно найти в документации, расположенной в соответствующей папке. Основное окно программы представлено на следующем изображении: Основное окно программы

Принцип работы

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

  • Первая система основана на сетевых сервисах MOSS (открытая система Стэнфордского университета для сравнения схожести кода на различных языках программирования);
  • Вторая система sim выполняется локально и поддерживает сравнение схожести текста на языках Java и C;
  • Третья система jplag выполняется локально и поддерживает сравнение схожести текста на языках Java, C/C++ и Python.

В данной системе были выполнены дополнительные разработки и интеграции этих систем. Для системы MOSS был разработан клиентский модуль для доступа к системе, который позволяет отправлять файлы кода, получать и анализировать результаты, а также сортировать результаты. Для систем sim и jplag были выполнены интеграции, которые могут использоваться в качестве альтернативных продуктов при недоступности MOSS из-за сетевых проблем и т. д.Для сравнения схожести китайских и английских текстовых документов были разработаны два алгоритма:

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

  1. Использование Tika для чтения текста из файлов различных форматов (txt, doc, docx, pdf, html и т.д.) с различными кодировками и преобразование его в унифицированный формат для дальнейшей обработки;
  2. Использование HanLP для предварительной обработки и токенизации текста;
  3. Использование алгоритма shinglecloud для вычисления схожести между текстами;
  4. Сортировка по схожести и вывод результатов сравнения.

Второй метод основан на алгоритме GST, использующем jplag, с расширенными функциями, включая новый тип языка "doc", который позволяет вычислять степень схожести различных документов и предоставляет веб-визуализацию для сравнения.Сравнение схожести изображений основано на проекте JImageHash:

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

Ссылки:

  1. Техники обнаружения плагиата программного обеспечения: сравнительное исследование
  2. JPlag: Поиск плагиата среди набора программ
  3. Winnowing: Локальные алгоритмы для создания отпечатков документов - основной алгоритм системы moss
  4. Обзор исследований по обнаружению плагиата программного обеспечения

TODO

  1. Интеграция jplag в систему. Выполнено.
  2. Поддержка сравнения схожести кода HTML и JSP файлов.
  3. Поддержка сравнения схожести изображений. Выполнено.
  4. Разработка веб-версии программы для сравнения схожести заданий. Выполнено, см. mooyyu.
  5. Поддержка хранения предыдущих заданий и сравнения схожести заданий на основе базы данных.

Открытый исходный код, открытые достижения, открытость — это добродетель, а звезды на GitHub — тоже.## Обновления

  1. 2019.12.1 Использование HanLP в качестве компонента для токенизации, поддержка сравнения схожести текста PDF и HTML файлов, исправление нескольких ошибок, выпуск версии v2.8.6.
  2. 2019.12.3 Расширение функций jplag, добавление типа языка "doc", реализация вычисления схожести текста различных форматов документов и визуализации для сравнения. Обновление справки, тестовых данных, выпуск версии v2.8.8.
  3. 2019.12.25 Реализация функции сравнения схожести изображений, использование PHASH, реализация сравнения схожести различных форматов изображений. Обновление тестовых данных, документации, выпуск версии v3.0.0.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/chenyanlong-antiplag.git
git@api.gitlife.ru:oschina-mirror/chenyanlong-antiplag.git
oschina-mirror
chenyanlong-antiplag
chenyanlong-antiplag
master