Composite similarity of GitHub projects

As a hobby, I'm building recommendation system which finds related projects on GitHub.

I'm computing Jaccard index for each repository, based on users who gave stars:

$$J(A, B) = \frac{ \left\vert S(A)\cap S(B) \right\vert}{\left\vert S(A)\cup S(B)\right\vert}$$

Where $S(A)$ is set of users who gave stars to repository $A$. This works fairly well (you can play with it here), however I think it could be improved if we look at more attributes than just repository followers.

For example:

• users who forked this repository also forked...
• users who pushed code to this repository also pushed to...
• users who opened issues to this repository also opened issues...
• jaccard similarity of repository description shingles (n-grams)

What are the best practices of combining these disjoint measures into single similarity coefficient? I assume, they provide different weight towards the final coefficient. E.g. pushing code shows stronger attachment to a project than giving a star.

• I used your recommendation system a bit and in the project I seen, the most related project, was the project itself. That is indeed true, but quite bad for the user experience. You might consider filtering out the project for the list of projects related to it. – DaL Aug 27 '15 at 6:20