Skip to content

Промежуточные результаты

Egor Bogomolov edited this page Nov 28, 2018 · 2 revisions

Что у нас есть

  1. Инструмент для процессинга репозиториев, позволяющий доставать историю изменений на уровне методов и деревьев
  2. У нас есть модель, предсказывающая по пачке изменений методов их автора. Работает на данный момент с высокой точностью (внутри одного проекта Intellij, 16 авторов)
  3. Модель позволяет достать веса для каждого метода в пачке и посмотреть, какие изменения важнее для итогового предсказания (не реализовано)

Возможные направления развития

  1. Развить задачу определения авторства

    a. Кросс-проектное определение авторов

    b. Научиться переходить к нашему формату с батчами из произвольного куска кода / файла / что там еще общепринято

    c. Реализовать подходы других людей, чтобы иметь возможность сравниваться

    d. Кому это нужно?

  2. Предложить способ векторизации программистов

    a. Как оценивать адекватность? Например, спросить у людей и проанализировать, имеет ли близость векторов какой-то смысл.

  3. В обоих случаях мы можем попытаться сделать результат независящим от области

    a. Собрать несколько проектов с пересекающимися авторами

    b. Обучаясь на всех проектах кроме одного, различать авторов в последнем / для последнего обучать только решающую функцию

    c. Для реализации добавить дискриминатор

  4. Интерпретация векторизации: спроецировать какие-нибудь свойства на векторизацию

    a. Свойствами могут быть явные фичи из статьи про деанонимизацию (усредненные по всем изменениям человека?)

    b. Опыт в команде, опыт в общем, использование библиотек, идиом языка

  5. Интерпретация важности методов

    a. Помогает интерпретировать близость векторов