Sentiment analysis (по-русски, анализ тональности) — это область компьютерной лингвистики, которая занимается изучением эмоциональной окраски текстов, подробнее см. в статье Irokez’а. Это очень важное направление машинного обучения: анализ тональности нужен для лучшего «понимания» текстов, перевода с одного языка на другой.
Сложность задачи заключается в непростых лингвистических конструкциях, которые часто используют люди. Даже человек иногда не сразу определит тональность (положительную или отрицательную) фраз вроде «В книге хороша только обложка». Как обучить этой задаче компьютер?
Точность определения эмоций у лучших компьютерных программ до сегодняшнего дня составляла не более 80%. Группе учёных из Стэнфорда при участии небезызвестного Эндрю Нг удалось довести её до 85%, а при дальнейшем обучении рекуррентной нейросети точность вполне может повыситься до 95%, говорит один из авторов исследования. Заметим, что 95% — это будет абсолютно феноменальный результат, не все люди способы распознавать сарказм и определять тональность слов с такой точностью.
Для первоначального обучения нейросети учёные использовали набор данных из 12 000 кинорецензий, которые разбили на отдельные фразы с помощью автоматического парсера. В результате получилось 215 тыс. фраз. Каждая из них была прочитана тремя людьми с проставлением оценки по степени положительной или отрицательной тональности. На скриншоте показан интерфейс, который предлагался пользователям Amazon Mechanical Turk.
Авторы создали модель NaSent (Neural Analysis of Sentiment), которую называют рекуррентной тензорной нейросетью (Recursive Neural Tensor Network) для обработки отдельных слов в каждой фразе, построения дерева взаимосвязей и анализа, какую эмоциональную окраску несёт каждое слово и как слова влияют друг на друга.
В онлайновом демо можно изучить, как работает программа. Она строит дерево с оценкой каждого слова, каждой фразы и всего текста целиком. Уникальность программы можно оценить на следующих двух примерах, которые состоят из одних и тех же слов, но в разном порядке, что меняет эмоциональную окраску текста — и программа это понимает.
Анализ фразы "Unlike the surreal Leon, this movie is weird but likeable" выдаёт общий положительный результат (синий), сочетание «странный, но приятный» правильно распознаётся как положительная
Фраза из тех же слов, но в другом порядке "Unlike the surreal but likeable Leon, this movie is weird" корректно распознаётся как отрицательный отзыв (красный цвет в общей оценке)
Кстати, онлайновое демо одновременно является инструментом для обучения нейросети. Каждый пользователь может предложить программе произвольный текст для анализа — и скорректировать результат, исправив ошибки (просто щёлкнув по кружку с неправильной оценкой).
Онлайновая демонстрация программы на произвольном тексте
Научная работа (pdf)
Набор данных для обучения нейросети (6 МБ)
Код программы (будет опубликован перед конференцией EMNLP, которая начинается 18 октября)
Автор: alizar