Machine learning algorithm to classify blog posts So I have a large collection of blog posts containing title, content, category, tags and geo-location fields and I'm looking to achieve three things:


Assign a category (or multiple categories) to all the posts and any new ones. I have a strict vocabulary of categories.
Add new tags to the posts that might be relevant to the post.
Mark the post if it contains information about a place. For example: Lorem ipsum dolor sit amet San Francisco, consectetur adipiscing elit.


I've been looking into different machine learning algorithms, most recently decision trees, but I don't feel that is the best algorithm to work out the problems above (or that I haven't understood them enough).

Many of these posts already contain categories, tags and geo-location data. Some do not contain any information and some have only a few details.

What would be the best machine learning algorithm to look into to solve each of the three areas?
Question 1: Category prediction

To predict the category of a new blog post, you could do the following:


Build a MLP (multilayer Perceptron, a very simple neural network). Each category gets an output node, each tag is a binary input node. However, this will only work if the number of tags is very little. As soon as you add new tags, you will have to retrain the network.
Build a MLP with "important words" as features.
If you have internal links, you might want to have a look at "On Node Classification in Dynamic Content-based Networks". In case you're German, you might also like Über die Klassifizierung von Knoten in dynamischen Netzwerken mit Inhalt
You could take all words you currently have, see those as a vector space. Fix that vocabulary (and probably remove some meaningless words like "with", "a", "an" - this is commonly called a "stopword"). For each text, you count the different words you have in your vocabulary. A new blog post is point in this space. Use $k$ nearest neighbor for classification.
Use combinations of different predictiors by letting each predictor give a vote for a classification.


See also


Yiming Yang, Jan O. Pedersen: A Comparative Study on Feature Selection in Text Categorization, 1997.
Scikit-learn: Working With Text Data


Question 2: Tagging texts

This can be treated the same way like question 1.

Question 3: Finding locations

Download a database of countries / cities (e.g. maxmind) and just search for a match.