Cool site. I am working on the same thing (but for school/fun). You should look into Support Vector Machines as they are much better at text classification then kNN.
I have looked into SVMs but I don't think they would work well in this case because:
1) A separate classifier would have to trained for each user and this would take too much resources.
2) I think an SVM would require too many training cases before it becomes useful.