Исследовательская группа

Методы машинного обучения в области программной инженерии

Поиск похожих репозиториев на GitHub

Брыксин ТимофейАктивный

Мы разработали инструмент для поиска похожих репозиториев на GitHub. Мы обучили эмбеддинги сабтокенов с помощью fastText на датасете, состоящем из 120,000 проектов на GitHub и использовали другой датасет из 9 миллионов проектов в качестве опорной поисковой базы. Инструмент работает в два шага. На первом шаге пользователь вводит интересующие его проекты (либо в виде локальных директорий, либо в виде ссылок на GitHub), и инструмент распознаёт наиболее популярные языки программирования среди файлов, парсит их, извлекает идентификаторы и разбивает их на сабтокены. Данная часть инструмента доступна отдельно для использования в любых других целях.

На втором шаге инструмент считает эмбеддинги извлечённых сабтокенов и обращается к поисковой базе для поиска наиболее похожих репозиториев. Важно отметить, что результаты работы инструмента хорошо интерпретируемы, так как мы вручную разметили кластеры сабтокенов, используемые для группировки похожих репозиториев.

Разработанный инструмент на GitHub.

Используемый в проекте инструмент для извлечения имён из кода на GitHub.

Участники

Брыксин Тимофей
Брыксин Тимофей
Лобанов Артём
Лобанов Артём
Богомолов Егор
Богомолов Егор
Коваленко Владимир
Коваленко Владимир
Голубев Ярослав
Голубев Ярослав

Публикации

Sosed: a tool for finding similar software projects

September 2020

Egor Bogomolov, Yaroslav Golubev, Artyom Lobanov, Vladimir Kovalenko, Timofey Bryksin

Подробнее