I'm new to Topic Models, Classification, etc… now I'm already a while doing a project and read a lot of research papers. My dataset consists out of short messages that are human-labeled. This is what I have come up with so far:

  • Since my data is short, I read about Latent Dirichlet Allocation (and all it's variants) that is useful to detect latent words in a document.
  • Based on this I found a Java implementation of JGibbLDA but since my data is labeled, there is an improvement of this called JGibbLabeledLDA
  • In most of the research papers, I read good reviews about Weka so I messed around with this on my dataset
  • However, again, my dataset is labeled and therefore I found an extension of Weka called Meka that had implementations for Multi-labeled data
  • Reading about multi-labeled data, I know most used approaches such as one-vs-all and chain classifiers...

Now the reason me being here is because I hope to have an answer to following questions:

  1. Is LDA a good approach for my problem?
  2. Should LDA be used together with a classifier (NB, SVM, Binary Relevance, Logistic Regression, …) or is LDA 'enough' to function as a classifier/estimator for new, unseen data?
  3. How do I need to interpret the output coming from JGibbLDA / JGibbLabeledLDA. How do I get from these files to something which tells me what words/labels are assigned to the WHOLE message (not just to each word)
  4. How can I use Weka/Meka do get to what I want in previous question (in case LDA is not what I'm looking for)

I hope someone, or more than one person, can help me figure out how I need to do this. The general idea of all is not the issue here, I just don't know how to go from literature to practice. Most of the papers don't give enough description of how they perform their experiments OR are too technical for my background about the topics.


If you are new to classification or machine learning in general, reading books, research papers and etc. is hard, because it requires some background (probability, calculus and linear algebra).

If you have some background in probability you will understand the folowing:

  1. LDA is a generative model.
  2. Generative model - It specifies a joint probability distribution over observation and label sequences

In this paper Latent Dirichlet Allocation is described in details how to use LDA and in which cases.

  • $\begingroup$ I have some background in calculus and linear algebra and I understand the essence of probability and distributions over words etc… The hardest part is to really understand how I can use this in practice with the tools mentioned (JGibbLDA, WEKA/MEKA, etc…) $\endgroup$
    – GreatEyes
    Mar 2 '14 at 21:32
  • $\begingroup$ Well for the programming part i can't help you (since i have never used the frameworks). But if you are using a framework for data mining there must be some code examples on the net. $\endgroup$
    – badc0re
    Mar 2 '14 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.