"WhoseCppCode"

Данное программное обепечение предназначено для классификации авторов исходного кода программ на языке С/С++.

WhoseCppCode» предоставляет следующие возможности:

  • обработка файлов исходного кода на языке С/С++;
  • сбор данных с ресурса GitHub;
  • построение модели классификации авторов программного обеспечения;
  • формирование отчетности в форматах .json и .csv;
  • визуализация результатов классификации.

Сбор и обработка данных с ресурса GitHib

Введите список пользователей через запятую.

Удаление пустых файлов и изменение кодировки.


In [1]:
from scrap_widget import display_scrapping_form

display_scrapping_form()


Матрица объектов-признаков

Формирование матрицы объектов-признаков для дальнейшей классификации. Объектами в данном случае являются авторы исходного кода, признаками - вычисленный для каждого автора на основе набора файлов исходного кода вектор значений признаков, характеризующих индивидуальный стиль разработчика.

Матрица объектов-признаков вычисляется отдельно во избежание повторения вычислений, а также сокращения времени, затрачиваемого на обучение и тестирование классификатора.


In [2]:
from sample_matrix_widget import display_matrix_widget

# Путь к данным
path = './data/'
outpath = './data/matricies/'

display_matrix_widget(path, outpath)


Классификация

Построение модели классификации, ее обучение на выбранном наборе данных, визуализация результатов.

Отчеты по результатам работы программы в форматах .json и .csv располагаются в директории results в корне проекта.

Ввод:

  • Циклов - количество итераций эксперимента
  • Данные - данные для классификации:
    • students - лабораторные работы студентов каф. КИБЭВС по дисциплине "Основы программирования"
    • Google Code Jam 2016 - работы участников ежегодной олимпиады по программированию от компании Google
    • GitHub - данные с веб-хостинга GitHub
  • Алгоритм - алгоритм классификации

In [3]:
from main_widget import display_main_form

display_main_form()