You might try looking into sentiment analysis. There was a kaggle competition on it, and you might find insight there.
Treating this as either a regression or a classification problem is fair. Also, it's important to judge your performance against the proper baselines.
Your feature space might not be rich enough for the classes to be linearly separable. You might do better using an SVM with a non-linear kernel.
It also appears you haven't scaled the counts of the bigrams, which is generally helpful for SVMs.
Another thought for an approach would be to apply LDA to the set of documents (reviews) and use the topics as your feature space (you'll have a topic vector per document).
Some places to get python LDA implementations: