Спору нет, Github — одна из лучших платформ для совместной работы над open source проектами. Но вот найти проект, который близок по духу и смыслу вашему, здесь зачастую бывает не так просто. А ведь можно было бы найти похожий проект и принять участие в его разработке. Теперь с этим вопросом, возможно, станет немного проще — после появления GitRec, который позволяет получить список рекомендаций для конкретного репозитория или юзернейма.
Общая схема работы алгоритма выглядит следующим образом:
- Строится граф, у которого ребра отображают связи между пользователями и репозиториями.
- Граф используется для поиска cходств между репозиториями.
- Вам выдаются рекомендованные репозитарии, которые похожи на те, с которыми вы взаимодействовали ранее.
На первом шаге берется лог событий из Github Archive и из него генерируется граф. Извлекают оттуда четыре типа действий: watch, fork, pull request и push. На втором — строится граф сходства для поиска схожих репозиториев — исходя из предположения, что если пользователь связан с репозиториями A и B, то существует связь между этими репозиториями. После чего по теореме Байеса вычисляется вероятность того, что любой рандомный пользователь будет взаимодействовать с репозиторием B, если до этого он работал с A. Наконец, на последнем шаге происходит ранжирование по популярности и пристрастиям конкретного пользователя.
Исходный код проекта полностью открыт здесь, и авторы проекта Mortar ждут пулл реквестов.
Попробовать
Подробности принципа работы
Автор: HotWaterMusic