Методы поиска плагиата в кодах программ

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

Авторы: И. А. Посов, В. Е. Допира

Направление: Информатика, вычислительная техника и управление

Ключевые слова: Плагиат, метрики для обнаружения плагиата, токен


Открыть полный текст статьи