For this supervised classification task I would use the Stanford Classifier. It embeds everything from features extraction (much, much more sophisticated than bag of words) to top-notch machine learning (max entropy model). It works pretty well if you have enough training data (i.e. articles labelled manually).
The only thing is, it will just assign one class per article. But since your two "dimensions" (the topic of the article, and the kind of the article) seem to be reasonably orthogonal, nothing prevents you from treating the two dimensions as two separate classification problems.