Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
So the network is predicting the most frequent classes, that is 6-7, given the skewness. It also looks like your data is ~6000 samples, and you are using 10000 features. If this is the case, you're most likely also overfitting on the training data, since it is too wide (the model has way to many parameters w.r.t. the number of samples). You can try either reducing the number of lemmas you use, or gathering more data (but you'd need quite some more). Personally, I would start with a small set (say 50 reviews x rating) and ~100 lemmas and see how that goes.
What is the frequency of labels in your data? If this is really skewed this might be the problem. Another think you can try is to make the problem easier, i.e. try to predict 4 classes -- for example, rating 1-3, 4-5, 6-7, 8-10 (very bad, bad, ok, good) and see if this gives good result. In that case, you just might need more data for extending to the 10 classes.