|
Информация о статье
2026 г., Том 31, № 4, с.123-131
Шипицын М.Н., Фёдоров Р.К.
Векторное представление исходного кода на основе хеширования абстрактного синтаксического дерева
Разработано представление исходного кода в виде бинарных векторов на основе хеширования поддеревьев абстрактного синтаксического дерева (AST). Предлагаемый подход позволяет выявлять структурные сходства и различия между фрагментами программ за счет перехода к количественным метрикам, что упрощает решение задач сравнения версий, поиска дубликатов и обнаружения плагиата. В рамках исследования создано расширенное представление AST с возможностью аннотирования узлов метаданными и реализован рекурсивный алгоритм хеширования с фильтрацией полей, не влияющих на структуру управления. На основе полученных хеш-значений сформированы бинарные векторы фиксированной размерности, которые после исключения редких признаков и преобразования в разреженный формат использованы в качестве входных данных для классификатора Random Forest. Экспериментальная валидация проведена на наборе данных Python75 с решениями 75 задач. Точность классификации типа решаемой задачи по исходному коду достигла 89.8 %, что подтверждает практическую пригодность разработанного метода для задач анализа программного кода с применением методов машинного обучения.
Ключевые слова: абстрактное синтаксическое дерево, хеш-функция, мешок слов, вектор признаков, классификация
Библиографическая ссылка: Шипицын М.Н., Фёдоров Р.К. Векторное представление исходного кода на основе хеширования абстрактного синтаксического дерева // Вычислительные технологии. 2026. Т. 31. № 4. С. 123-131
|
|
|
|