Dostoevsky: библиотека анализа настроений для русского языка
Анализ настроений (Sentiment analysis) — это распространенная задача NLP, которая направлена на то, чтобы определить настроение по тексту. Для английского языка существует множество готовых моделей, которые обучены по Твиттеру и КиноПоиску. Однако, для русского языка всё сложнее, так как данных не так много. Сегодня расскажем как определить настроение в тексте?
Для русского языка есть очень удобная библиотека на языке Python — Dostoevsky, которая показывает достаточно хорошие результаты (модель была обучена на наборе данных RuSentiment).
Библиотека классифицирует текст на 5 категорий:
- Негативное настроение;
- Позитивное настроение;
- Нейтральное поведение;
- речевой акт (формальные поздравления, благодарственные и поздравительные посты);
- Класс «пропустить» для неясных случаев.
Хэштеги и смайлики не считаются ярлыками настроения.
Пример использования библиотеки Dostoevsky показан ниже.
В результате выполнения кода получаем следующий результат:
Из рисунка результатов видно, что сообщения «Титаник – отличный фильм» и «я люблю тебя!» библиотека определила, как позитивные. Сообщение «Титаник – это фильм» как нейтральное и «какой ужас, мне страшно», как негативное.
Для классификации текстов мы просто передаём список с нашими фразами в метод predict.
Таким образом, буквально в несколько строчек мы смогли правильно определить настроение.
"Однако, для русского языка всё сложнее, так как данных не так много."
- нет, данных как раз более, чем достаточно. А вот четкой семантической методики нет, несмотря на то, что уже 20 лет крупнейшие отечественные игроки на этом рынке пытаются ее изобрести. В русском языке слишком много подтекстов, интонирования и пр. + строение языка и его грамматика сильно отличаются от "логического" инглиша с его короткими словами и предложениями, понятной ИИ логикой построения и считывания смыслов.