Выражения типа «Awesome bastards!» такой метод оценки может оценивать некорректно (скорее всего около нуля, так как присутствует одно сильно негативное и одно сильно положительное слово), хотя стоит заметить, что и человек испытывает сложности в оценки подобных выражений вырванных из контекста.
В любом случае данный метод предназначен для оценки в среднем большого количества информации, а не единичных твитов. Например, если в данном месяце вместе со словом «Obama» стали чаще встречаться позитивные/негативные слова, (в сравнении с предыдущем месяцем), то можно сделать вывод об положительном/отрицательном изменении рейтинга. Главное, что бы реальное изменение настроений было больше чем погрешность измерений.
Конечно дополнение данного метода возможностью распознавать словосочетания, а также отрицательные и вопросительные предложения, позволит повысить его точность и осмысленность.
Word Cosine distance
— хоршо 0.748067
хорощо 0.713937
прекрасно 0.682211
отлично 0.679190
плохо 0.675239
неплохо 0.641755
интересно 0.638518
просто 0.636137
спокойно 0.634527
всегда 0.620789
даже 0.620331
замечательно 0.617962
так 0.616831
зорошо 0.615472
только 0.612478
вообще 0.610174
очень 0.608186
хоошо 0.608186
то 0.607600
хрошо 0.603901
ужасно 0.599045
страшно 0.598783
но 0.590102
легко 0.588955
круто 0.586992
хуже 0.586305
хороо 0.585358
наоборот 0.585256
понятно 0.584545
весело 0.583578
совсем 0.581358
наверное 0.575665
шорошо 0.575417
потому 0.572287
странно 0.569226
она 0.568151
харошо 0.567638
хлрошо 0.567548
еще 0.565177
приятно 0.563256
Enter word or sentence (EXIT to break): плохо
Word: плохо Position in vocabulary: 1465
Word Cosine distance
— полохо 0.755004
плозо 0.743426
плоха 0.740933
сильно 0.695998
плохл 0.687667
слабо 0.678554
нормально 0.678436
хорошо 0.675239
туго 0.657558
не 0.657456
рлохо 0.644137
поохо 0.642739
тяжело 0.642100
постоянно 0.639980
долго 0.636029
пдохо 0.634517
медленно 0.626684
плхо 0.620504
плохр 0.610601
хуже 0.591879
постояно 0.591841
плоо 0.588206
часто 0.585112
плрхо 0.585109
иплохо 0.580389
медлено 0.579150
тежело 0.578908
неприятно 0.578856
нармально 0.571858
плоъо 0.568687
плочо 0.567627
плоховато 0.560026
что 0.558980
ужасно 0.558124
иногда 0.553562
резко 0.552327
хреново 0.551475
почемуто 0.549690
почему 0.548091
похо 0.547614
Можно пропускать твит через корректор и только потом добавлять его в обучающую выборку/классификатор. Но время на освоение PyEnchant или yandex speller (если проходите по лимитам) будет потрачено. А количество ошибок может остаться прежним. Когда я, например, твиты пишу, мне телефон/браузер явные опечатки исправляет.
С точки зрения последовательности действий подход мне кажется верным. Сначала получаем приемлемый результат, убеждаемся в перспективности подхода, а потом занимаемся тонкой настройкой.
Но сам подход с присвоением баллов словам мне перспективным не кажется. Сейчас я бы попробовал bag of words + svm. Но, уверен, что для данной задачи на текстах есть более хитрые подходы с лучшим качеством.
Данный метод как раз позволяет добавлять слова с ошибками и сленг в словарь (главное, чтобы такие слова встречались вместе с другими корректными, уже оцененными словами в одном твите).
ex: bro=-0.29
Если это действительно ошибка (совершается случайно), то вероятность употребления такого слова в правильном и искаженном написании рядом с положительными/отрицательными уже оцененными словами одинакова, следовательно при достаточно большом объеме твитов у слова и его искаженной версии будут одинаковые «числа».
Если же слово намеренно коверкается, скорее всего у него другое значение, следовательно вероятность встретиться с положительно/отрицательно оцененными словами разная для вариантов написания, таким образом и их оценка будет разная.
О расширении словаря эмоционально окрашенных слов на базе сообщений Твиттера