Hi, Amir,
I have some experience on topic modeling but these may not be a direct answer.
The most adopted techniques to model topics of documents is LDA[1] or LSI[2].
Under these techniques, document is viewed as a mixture of topics, while topic is a mixture of words.
Both methods are well implemented in different language, for example, gensim[3] in python.
But these methods are relatively expensive.
Last year a word vector model - word2vec[4] - was introduced by Google.
By combining a topic catalog, we can easily decide which topic an article belongs to.
The topic catalog is just a list of topics and each topic is a list of related words.
We released one open-sourced project on this direction:
And another planned project on the topic catalog
We will update the catalog in the coming weeks and give more details.