Pull to refresh

GitRec: Персональные GitHub-рекомендации

Reading time 1 min
Views 6.1K
image

Спору нет, Github — одна из лучших платформ для совместной работы над open source проектами. Но вот найти проект, который близок по духу и смыслу вашему, здесь зачастую бывает не так просто. А ведь можно было бы найти похожий проект и принять участие в его разработке. Теперь с этим вопросом, возможно, станет немного проще — после появления GitRec, который позволяет получить список рекомендаций для конкретного репозитория или юзернейма.

Общая схема работы алгоритма выглядит следующим образом:

  1. Строится граф, у которого ребра отображают связи между пользователями и репозиториями.
  2. Граф используется для поиска cходств между репозиториями.
  3. Вам выдаются рекомендованные репозитарии, которые похожи на те, с которыми вы взаимодействовали ранее.

На первом шаге берется лог событий из Github Archive и из него генерируется граф. Извлекают оттуда четыре типа действий: watch, fork, pull request и push. На втором — строится граф сходства для поиска схожих репозиториев — исходя из предположения, что если пользователь связан с репозиториями A и B, то существует связь между этими репозиториями. После чего по теореме Байеса вычисляется вероятность того, что любой рандомный пользователь будет взаимодействовать с репозиторием B, если до этого он работал с A. Наконец, на последнем шаге происходит ранжирование по популярности и пристрастиям конкретного пользователя.

Исходный код проекта полностью открыт здесь, и авторы проекта Mortar ждут пулл реквестов.

Попробовать
Подробности принципа работы
Tags:
Hubs:
+26
Comments 10
Comments Comments 10

Articles