Точность анализа настроений на основе лексики
Я выполняю различные методы анализа настроений для набора данных Twitter, которые я приобрел. Они основаны на лексиконе (Vader Sentiment и SentiWordNet) и поэтому не требуют предварительно помеченных данных.
Мне было интересно, если есть метод (например, F-Score, ROC/AUC) для расчета точности классификатора. Большинство методов, которые я знаю, требуют цели для сравнения результата.
2 ответа
Что я сделал для своего исследования, так это взял небольшую случайную выборку этих твитов и вручную пометил их как положительные или отрицательные. Затем вы можете рассчитать нормализованные оценки, используя VADER или SentiWordNet, и вычислить матрицу путаницы для каждой, которая даст вам ваш F-счет и т. Д.
Хотя это может быть не очень хорошим тестом, так как это зависит от того, какой образец твитов вы используете. Например, вы можете обнаружить, что SentiWordNet классифицирует больше вещей как отрицательные, чем VADER, и, следовательно, имеет более высокую точность, если ваша случайная выборка в основном отрицательная.
Короткий ответ - нет, я так не думаю. (Итак, мне было бы очень интересно, если бы кто-то еще опубликовал метод.)
С некоторыми неконтролируемыми методами машинного обучения вы можете получить некоторую оценку ошибки. Например, автоэнкодер дает вам MSE (представляющий, насколько точно представление более низкого измерения может быть восстановлено обратно в исходную форму более высокого измерения).
Но для анализа настроений все, что я могу придумать, это использовать несколько алгоритмов и измерить согласие между ними на одних и тех же данных. Если все они согласны с определенным мнением, вы отмечаете его как более надежный прогноз, тогда как все они не соглашаются с ним, как с ненадежным прогнозом. (Это полагается на то, что ни один из алгоритмов не имеет одинаковых смещений, что, вероятно, маловероятно.)
Обычный подход - маркировать некоторый процент ваших данных и предполагать / надеяться, что он представляет целые данные.