В настоящее время я пытаюсь классифицировать твиты, используя наивный байесовский классификатор в NLTK.Я классифицирую твиты, связанные с конкретными биржевыми символами, используя префикс '$' (например, $ AAPL).Я основывал свой скрипт на Python на этом посте в блоге: Анализ настроений в Twitter с использованием Python и NLTK .До сих пор я получаю достаточно хорошие результаты.Тем не менее, я чувствую, что есть много, много возможностей для улучшения.
В моем методе выбора слова-функции я решил реализовать алгоритм tf-idf для выбора наиболее информативных слов.Сделав это, я почувствовал, что результаты не такие впечатляющие.
Затем я применил эту технику в следующем блоге: Анализ настроений в текстовой классификации. Устранение недостатка информационных функций .Результаты были очень похожи на результаты, полученные с помощью алгоритма tf-idf, что побудило меня более тщательно изучить список «Наиболее информативных функций» моего классификатора.Именно тогда я понял, что у меня есть большая проблема:
Твиты и реальный язык не используют одну и ту же грамматику и формулировку.В обычном тексте многие статьи и глаголы можно выделить, используя tf-idf или stopwords.Однако в корпусе твитов некоторые крайне неинформативные слова, такие как «,» и «есть» и т. Д., Встречаются так же, как и слова, которые имеют решающее значение для правильной категоризации текста.Я не могу просто удалить все слова, которые имеют менее 3 букв, потому что некоторые неинформативные функции больше, а некоторые информативные меньше.
Если бы я мог, я бы не хотел использовать стоп-слова, из-за необходимости часто обновлять список.Однако, если это мой единственный вариант, я думаю, мне придется пойти с ним.
Итак, если подвести итог моего вопроса, кто-нибудь знает, как действительно получить наиболее информативные слова вконкретный источник, который является твит?
РЕДАКТИРОВАТЬ: я пытаюсь классифицировать на три группы: положительные, отрицательные и нейтральные.Кроме того, мне было интересно, для TF-IDF, я должен обрезать слова только с низкими баллами, или же некоторые с более высокими баллами?В каждом случае, какой процент словарного запаса источника текста вы бы исключили из процесса выбора функции?