Таким образом мы реализовали простой классификатор тональности отзывов о фильмах на питоне. Данные были собраны с Кинопоиска. Было отобрано 500 положительных и 500 отрицательных отзывов. В качестве алгоритма классификации я использовалнаивный байесовский классификатор (NB) и метод опорных векторов (SVM). В качестве признаков я протестировал униграммы, биграммы и их комбинацию, а в качестве функции взвешивания: бинарная функция для байеса и SVM, и дельта TF-IDF для SVM. Для оценки работы классификатора я провел перекрестную проверку: для каждого набора параметров было запущено подряд 5 тестов, в каждом из которых использовалось 800 отзывов для обучения и 200 для тестирования. Ниже представлены результаты (точность в процентах) для всех 9-ти наборов параметров.
Признаки | NB | SVM | SVM+delta |
Униграммы | 85.5 | 82.5 | 86.2 |
Биграммы | 84.9 | 86.5 | 87.8 |
Комбинация | 86.5 | 88.4 | 90.8 |
Из результатов видно, что для данной коллекции лучшие результаты показывает метод опорных векторов с функцией взвешивания дельта TF-IDF. Если же использовать обычную бинарную функцию, то оба классификатора (NB и SVM) показывают примерно одинаковые результаты. Комбинация униграммов и биграммов дает лучше результаты во всех тестах.
|
|
Посмотрим, почему же дельта TF-IDF дает такой отрыв (2.4 — 4.3%) в результатах. Выберем N-граммы с максимальными по модулю значениями дельта TF-IDF:
Потрясающий | 5.20 | ведут себя | -5.02 |
Зависит | 5.08 | зачем-то | -4.80 |
Принимает | 4.95 | не смогли | -4.80 |
Создают | 4.80 | ни о | -4.71 |
Работами | 4.80 | не впечатлил | -4.71 |
Тщательно | 4.71 | сексом | -4.71 |
самого себя | 4.71 | хуже чем | -4.71 |
Ким | 4.62 | но этого | -4.71 |
Триллеров | 4.62 | был снят | -4.62 |
для нее | 4.51 | не смотрите | -4.62 |
На примере негативных N-граммов особо заметно, что их вес отражает негативную тональность.