Library for detecting overlapping communities on the network?

Looking for a lib that detects overlapping communities on a fairly large network (up to 10,000 nodes) in seconds, not minutes? [note: by "network" I mean the graph]


Answering a comment asking for details, here is a simple example:

Def
|
G
|
Abc

There are many algorithms that can detect (D, E, F, G) and (A, B, C) as two different (non-overlapping) communities in this network - or, of course, (D, E, F) and (A , B, C, G).

I am looking for an algorithm implemented in Java that can detect (D, E, F, G) and (A, B, C, G) as two overlapping (because they overlap on G) communities on this network.

+7
source share
3 answers

Try the SNAP tool from Stanford University. They have this use case in an existing examples folder.

http://snap.stanford.edu/

+2
source

Try gephi . I believe that what you plan to do is already implemented there. However, it is open source (3 GPL), and you can get some ideas from the code. Description of the java API here .

You can also view this article.

+1
source

COPRA is an algorithm for overlapping communities implemented in JAVA, and it is very fast.

http://www.cs.bris.ac.uk/~steve/networks/software/copra.html

Other useful links for overlapping clusters (not necessarily written in java):

MY: cliquecluster.org/moses

OSLOM: oslom.org/

OVERMAP: bitbucket.org/dsign/grbracket/wiki/Home

Stochastic block model: github.com/premgopalan/svinet

0
source

All Articles