I am looking to employ Word2Vec to cluster documents and classify them by topic. However, it seems I need a significant data set [1,2] to achieve such a task.

I have a data set of thousands (not millions) of documents where my total word count is somewhere in the tens of thousands or maybe low hundreds of thousands.

Is there another ML methodology that allows me to attain my goal?

I see how to use TF/IDF to generate words and phrases from a corpus but output as expected is a list of common words and phrases along a flat dimension: enter image description here

What I am looking for is something more along the lines of a high level cluster of vectors in space:enter image description here [source]

  • $\begingroup$ Use a pre-trained word embedding then calculate the document embeddings using this simple algorithm. $\endgroup$ – Emre Jun 2 '17 at 18:09
  • $\begingroup$ @Emre thank you! Do u have time to submit an answer with a bit more detail for an imbecile like my self? This sounds perfect but confusing :) $\endgroup$ – Chris Jun 2 '17 at 18:13

You can side step the paucity of training data, and indeed training altogether, by using pre-trained embeddings in numerous languages. After that you can calculate your document embeddings using one of these simple algorithms, which basically amount to running dimensionality reduction on the matrix of stacked word embeddings for each sentence using PCA/SVD:

Note that word embeddings themselves emerge from similar calculations:


Doc2vec (aka paragraph2vec, aka sentence embeddings) modifies the word2vec algorithm to unsupervised learning of continuous representations for larger blocks of text, such as sentences, paragraphs or entire documents.

It will going to cluster each documents topics in vector space , learn it's semantic meaning. It will perform good with your given size dataset size.check this too Doc2Vec - How to label the paragraphs (gensim)


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.