Honestly, it's a huge problem you are tackling.
A very basic method to start (it is doing to yield poor results but it's better than nothing), classify manually 1000 tweets. It will help you get a feel of what you are going to classify.
Then, make a database of the 1000 most popular words in your 2 million tweets. Edit manually this database (remove useless words for your problem such as the word "the" or "is"). Try to make a database of "good" words (like, love, amazing), a database of "bad" words (bad, sucks,...) and a database of "suggestion" (suggest, errr I don't have anything else). The goal is to reduce your database to the most useful words for your problem (like, use only 100 words in the end)
Each tweet becomes a vector of size 100. Do whatever techniques you want with this (naive bayes, SVM, etc...)
This whole process is the outline of what I did for a course a while ago for spam classification. It worked super well (98% recognition rate?). Then, our real project was to classify hate mail on forums (messages such as "go die"). I think we got a 80% recognition rate, which was pretty poor. But better than nothing.
Because your 2 million tweets are not classified, you will be hard pressed to check your results with this method. You will only be able to do cross validation with your 1000 samples. Just a warning