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

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

Поиск похожих репозиториев на 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 and Timofey Bryksin

Подробнее