Here's my corpus

    0: "dogs are nice",       # canines are friendly
    1: "mutts are kind",      # canines are friendly
    2: "pooches are lovely",  # canines are friendly
    3: "cats are mean",         # felines are unfriendly
    4: "moggies are nasty",     # felines are unfriendly
    5: "pussycats are unkind",  # felines are unfriendly

As a human, the general topics I get from these documents are that:

  • canines are friendly (0, 1, 2)
  • felines are not friendly (3, 4, 5)

But how can a machine find the same conclusion?

If I were to do a Latent Dirichlet Allocation approach, I feel like it would struggle to find topics because the synonyms are 'diluting' the underlying meaning. For example:

  • "dogs", "pooches", and "mutts" could all fall under "canines"
  • "nice", "kind", and "lovely" could all fall under "friendly personality trait"

Is there a way where I can use an already-trained set of latent vectors (e.g., Google News-vectors-negative300.bin.gz) to represent each document in these broader entities, and then find the topics? (i.e., instead of using the 'raw' words)

Does that even make sense?

EDIT: Come to think of it, I think my question essentially boils down to: is it possible to replace/redefine a set of similar-meaning words with a single all-encompassing word?

  • 1
    $\begingroup$ You could try to learn an embedding such that similar words are close together or just use a pretrained model. $\endgroup$ – bonfab Feb 4 at 11:50
  • $\begingroup$ I agree with what the user @bonfab said above. You can use a pre-trained model (say word2vec on a large corpus) such that the embeddings of such words are nearly similar and build topic modelling on top of that (essentially clustering). $\endgroup$ – hssay Feb 5 at 9:18

Your Answer

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

Browse other questions tagged or ask your own question.