Как улучшить анализ тональности текста на русском языке?
Занимался этим по работе. Попробуйте:
 — svm с линейным ядром
 — (1,2,3)-граммы как фичи
 — нормализуйте текст, но попробуйте оставить некоторые знаки препинания — !?
 — работал с английским, там стеммер не улучшал качество. На русском нужно пробовать, но не удивлюсь, если не сработает.

Кроме этого можете поиграться с различными преобразованиями на векторах. Мне не помогло, хотя теоретически должно было бы. Может, что-то неверно сделал. Попробуйте LSA (pLSA если словарь большой). 

Замечания:
 — хороший корпус очень важен
 — выбор фич важен
 — орфография не имеет сильного эффекта
 — исключение стоп-слов также не улучшало качества
 — действительно, иронию, двусмысленность выловить таким методом очень тяжело; при попытки поймать длинные связи снижается качество

Если захотите экстрима — можно попробовать какой-нибудь классификатор со строковым ядром. Я пробовал, не пошло. Но теоретически может получится.
Предупреждаю: опыта практического у меня тут нет.

Можно лекции посмотреть вот тут: class.coursera.org/nlp/lecture/preview (Sentiment Analyzis). Критичной штукой во всем этом деле, насколько понимаю, является определение отрицания (нравится vs не нравится), что с подходом «bag of words» сделать нельзя. Для английского языка работают достаточно простые подходы («ко всем словам, стоящим после отрицательного слова ('не', например), приписывать „-“, пока не встретится знак препинания — и уже к обработанным таким образом словам применить классификацию через bag of words»).

Наибольшее влияние на результат должен оказывать выбор фич для классификации (классификатор SVM vs что-то другое — +- несколько процентов максимум будет).

Вот еще бумага по теме, может быть полезной: www.dialog-21.ru/digests/dialog2011/materials/ru/pdf/50.pdf