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上一篇: 有没有办法在编译时间和运行时间之间对函数进行专门化?
下一篇: 库来检测网络中的重叠社区?