library to detect overlapping communities in a network?

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


Responding to a comment asking for details, here is a simple example:

DEF
|
G
|
ABC

There are many algorithms that are able to detect (D,E,F,G) and (A,B,C) as 2 distinct (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 would be able to detect (D,E,F,G) and (A,B,C,G) as the two overlapping (because they overlap on G) communities in this network.


Try, SNAP Tool from Stanford University. They have this use case in the examples folder already implemented.

http://snap.stanford.edu/


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. The java Graph API description is here.

Also you might want to review this article


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) are:

MOSES: cliquecluster.org/moses

OSLOM: oslom.org/

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

Stochastic Block Model: github.com/premgopalan/svinet

链接地址: http://www.djcxy.com/p/11722.html

上一篇: 有没有办法在编译时间和运行时间之间对函数进行专门化?

下一篇: 库来检测网络中的重叠社区?