Sentiment analysis using Machine Learning is a hot topic. Which is the best classifier to use based on the amount of training data available?
If you have no data, you can use hand-written rules targeting certain words. However, this requires careful tuning, and is time-consuming. Naïve Bayes using a bag of words representation is fairly simple, and works well if you have very little data. If you have a modest amount of data, MaxEnt and SVM tend to do better than Naïve Bayes in terms of accuracy. If you have a huge amount of data SVM or kNN can become too slow, so Naïve Bayes again is preferable. Reference: https://web.stanford.edu/~jurafsky/slp3/7.pdf.
If I was starting from scratch, I would use TextBlob: http://textblob.readthedocs.io/en/dev/classifiers.html