Radim Řehůřek, creator of the Gensim library, writes about topic modeling, word2vec, and practical data science in Python.
Commenters call Gensim the golden standard for word2vec and topic modeling, a mature Python library that handles a good amount of data.
This tutorial is excellent, and Richard Socher has been doing some really fascinating (though complicated) work with deep learning for NLP. I also have a few other good references for people who want to investigate this area.
One of the most insightful comments I have seen about deep learning for NLP is a reddit r/machinelearning comment seen in this post [1]. As the poster in that thread mentioned, much of the theory about using neural networks for NLP tasks was laid out pretty clearly in a paper by Yoshua Bengio from 2003 [2]. At a high level, the basic learner is very similar to many of the other deep architectures for images and audio.
There is also a pretty great blog post [3] by Radim Rehurek (author of gensim) about how he implemented word2vec (a "deep learning"-style model for text) in Python, while also getting a performance improvement over the C version!
[1] http://www.reddit.com/r/MachineLearning/comments/2doi7e/what_should_i_know_before_taking_on_word2vec/
[2] http://jmlr.org/papers/v3/bengio03a.html
[3] http://radimrehurek.com/2014/02/word2vec-tutorial/
As with almost all things machine learning, python libraries are where you will find most of the action.
I can recommend https://spacy.io for a low fuss solution to get you up and running quickly.
Oversimplifying quite a bit, if spacy focuses on syntax, then gensim focuses on semantics (https://en.wikipedia.org/wiki/Distributional_semantics). Gensim has an active community and is well documented.
https://radimrehurek.com/gensim/
If you have the data, can spend a few days experimenting and if you want something that can be orders of magnitude faster than deep learning to train, there's vowpal wabbit. Prediction speed is blazing. Results can be nearly state of the art but with a cost that's a great deal less. It's C++ but with bindings for many languages. It's very poorly documented.
https://github.com/JohnLangford/vowpal_wabbit/wiki/Learning%20to%20Search%20Sub-System
I've never taken a gander at Facebook's fastText.
Don't forget that the higher level functionality (e.g. the scikit-learn routines Radim uses) are typically wrappers for underlying C/Fortran routines and they're the real bottleneck. The relatively few lines of VM'd Python are 'slow' compared to e.g. C but aren't the bottleneck.
The win with Python (and other dynamic languages) is that you can experiment quickly with ideas when you're formulating a solution, that's a big part of exploratory data science.
If you're curious about high-speed work in Python - Radim did a blog series on how he sped up word2vec to be faster than Google's original C code: http://radimrehurek.com/2013/09/deep-learning-with-word2vec-and-gensim/
I'll also note [self promo!] that I wrote on book on High Performance Python, if that's your cup of tea (and Radim wrote a section in it): http://shop.oreilly.com/product/0636920028963.do
For fast and larger scale near-duplicate detection see Google All-Pairs Similarity Search: https://code.google.com/p/google-all-pairs-similarity-search/ . The SimHash algo: http://matpalm.com/resemblance/simhash/ and Gensim's Similarities Class: http://radimrehurek.com/gensim/similarities/docsim.html
For blogspam detection can't PG whip up a nice Bayesian model for that ;) ? Again if you want fast and large scale spam filters see Vowpal Wabbit: http://hunch.net/~vw/ . For something more advanced see scikit-learn: http://scikit-learn.org/ which has many algo's up for this task.
A new option you may not have considered yet, is to crowdsource this task. Just offer a labelled dataset and let the HN and ML community have a go at it. I'd love to do content and URL-based spam modelling.
Nice read. I did something sort of similar with the same dataset about a year ago. I compared LDA (Latent Dirichlet Allocation) to TF-IDF as tools to find similar beers based on their review text. Lots of intuitive and funny topics discovered.
I suggest you play with LDA, it seemed to work really well at generating topics. There is also a lot of fascinating, very readable research using it. Check out SNAPs work on the same dataset [1] and some of the Yelp Dataset challenge winners [2]. If you end up interested in doing so, Gensim [3] was pleasant enough to work with.
[1] http://snap.stanford.edu/data/web-BeerAdvocate.html
[2] http://www.yelp.com/dataset_challenge
[3] https://radimrehurek.com/gensim/wiki.html#latent-dirichlet-allocation
Word2Vec and bag-of-words/tf-idf are somewhat obsolete in 2018 for modeling. For classification tasks, fasttext (https://github.com/facebookresearch/fastText) performs better and faster.
Fasttext is also available in the popular NLP Python library gensim, with a good demo notebook: https://radimrehurek.com/gensim/models/fasttext.html
And of course, if you have a GPU, recurrent neural networks (or other deep learning architectures) are the endgame for the remaining 10% of problems (a good example is SpaCy's DL implementation: https://spacy.io/). Or use those libraries to incorporate fasttext for text encoding, which has worked well in my use cases.