How to chose a Machine Learning algorithm? I was wondering, are their any guidelines or any rules of the thumb as to which algorithms perform best for each task?

What I'm looking for is something along the lines of:


  NLP tasks are usually accompanied highly-dimensional and sparse data. Algorithm X performs well under these circumstances.


etc.
I would totally start here. You're going to want to tweak things when they don't perform as well as you want, but it gives you a great starting point.