Maybe a simple typo in tweets here score = analyzer.analyze(tweets), since you want to send one tweet at a time.
Also, beware here: token.lower(). The lower method returns the string in lower case, it does not change the string to lower case. You might try ./smile LOVE or ./smile HATE to see what result you get.
The [expression_using_X for X in Y] is evaluating expression_using_X for every X being an element of Y, and the  make that list of expression values a Python list.
squares = [x**2 for x in range(11)]
would for example create a list of square numbers, from 0 to 100.
tweet["text"] indicates that tweet (an element of tweets) is a dict, and has a property "...
This line token.lower() does not change token to lower case, it returns a copy of token in lower case. You can either set something to that return value (as with word = token.lower()) and then test for word in the arrays, or change the test(s) from if token in self.positives: to if token.lower() in self.positives:
The most serious error I see in the first view is on the next line:
file = open(positives, "r")
keep in mind that both positives and negatives are variables that are meant to be a (disordered) set of lines that will later be analyzed for positive or negative words, but still contains nothing, what we have to do is open the actual file on disk (like fopen ...
This syntax if word.lower() in self.positives == True: is the problem. Use if word.lower() in self.positives (without the equality). I don't remember the exact evaluation/operator precedence rules that apply.
TweetTokenizer is a class in the nltk.tokenize.casual module.
When you use the name of the class as a function, like:
tokenizer = TweetTokenizer()
that function, in Object Oriented Languages, is called the "constructor" of the class, because it "constructs" an object of that class.
Classes can have static functions, which are functions you can call, ...