I have a graph which was already separated into clusters. Each node in the graph has a label (typically, it's a function's name like org.java.somepackage.validateLogin
). What I want to do is to give a representative label for each cluster.
For the sake of simplicity, let's assume I'm able to clean the data (i.e. break 'validateLogin' to 'validate' and 'login')
I've done a little research on the subjects of topics modeling and cluster labeling and encountered a few algorithms, such as: LDA, NMF and TF-IDF (not quite an algorithm on itself)
Basically, many algorithms are documents oriented which are reach of words and not short-text/labels oriented.
It is worth mentioning:
We can use the fact that different clusters might have different labels, so maybe a proper label for a cluster could be unique words in the overall bag of words (that can be done with TF-IDF I guess)
Labels can be one word but can also imply a hierarchy (i.e.
packageA.packageB.packageC.funcName
)
I'd be glad if you could give me your insights on this problem and what approach could fit here.