raw reviews "loved this movie" "not worth your time" "terrible acting" "beautiful story" labels: + / - / - / + tokenize + negate features [loved, movie] [not, NOT_worth, NOT_your] [terrible, acting] [beautiful, story] + bigrams: "not_worth", ... + tf-idf weight fit classifier Naive Bayes or Logistic Reg learns: w[terrible] < 0 w[loved] > 0 w[NOT_worth] < 0 + − keep stopwords. handle negation. bigrams catch what unigrams miss.