-
Notifications
You must be signed in to change notification settings - Fork 0
SerBorka/Antiplagiat
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Данная реализация алгоритма сравнения py - файлов основана на парсинге AST кода файлов и сравнении файлов построчно. Строки сравниваются по расстоянию левинштейна, к которому применено некоторое нормализующее преобразование. При помощи AST каждая строчка кода размечена теми языковыми конструкциями питона, которые в ней встречаются. Каждой строчке находится ближайшая по данному модифицированному расстоянию левинштейна, и для тех конструкций, которые встречаются в данной строчке, добавляется это расстояние в виде признака. Для каждой конструкции питона найденные расстояния усредняются и в итоге формируется вектор признаков для пары файлов. В данной версии удалось сформировать вектор признаков пары файлов. Текущая оценка близости считается наивно - как средняя из квадратов текущих оценок (эвристика), однако в будущих версиях программы планируется составить обучающий набор из векторов пар файлов с метками 0 и 1 - разные файлы или одинаковые - и обучить модель ML (в качестве модели выбран случайный лес) на данном наборе. Алгоритмическая сложность сравнения двух файлов квадратичная O(N*M), где N и M - размер файлов. К сожалению составить обучающую выборку и обучить модель немного не успел( Запуск файла - стандартно как в примере задания: python compare.py input.txt scores.txt
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published