Уже несколько лет особое внимание исследователей уделяется задаче автоматического извлечения и анализа отзывов и мнений. Зарубежные ученые публикуют труды, в которых заявляют точность классификации текстов по тональности более 82 % [1, 2]. В России в 2012 году на международной конференции по компьютерной лингвистике «Диалог» были подведены итоги двух соревнований между системами автоматического анализа текста: синтаксических анализаторов (парсеров) и систем анализа тональности текстов (sentiment analysis). Соревнование по анализу тональности было проведено совместно с Российским семинаром по оценке методов информационного поиска (РОМИП) [3].
Живой интерес к задаче автоматического извлечения и анализа отзывов связан с тем, что, с одной стороны, пользователи ежедневно публикуют сотни тысяч мнений в социальных сетях, блогах, на форумах, специализированных площадках. С другой, эти мнения необходимо обрабатывать в полном объеме. Поэтому системы, автоматически распознающие мнение в текстах, востребованы специалистами, разрабатывающими рекомендательные системы, экспертные системы, человеко-машинный интерфейс для программного обеспечения, маркетологами и аналитиками, проводящими маркетинговые исследования, а также политологами, оценивающими тональность новостей и др.
В работе описываются разработка програм- много комплекса (парсера) и реализация метода построения и первичного анализа корпуса размеченных текстов, предназначенного для тренировки классификатора по тональности, который автоматически классифицирует общетематические тексты на два и три класса: положительные и отрицательные тексты; положительные, нейтральные и отрицательные. После сбора коллекции текстов работа с корпусом включает два этапа:
– морфологическая разметка корпуса с целью выявления характерных признаков для каждого из трех классов текстов;
– составление общетематического словаря эмоциональной лексики: извлечение списков наиболее часто употребляемых слов и словосочетаний с целью выделения значимых слов для положительных и отрицательных текстов; при этом для каждого слова и словосочетания рассчитывается набор характеристик и производится взвешивание согласно статистическим мерам.
Обзор существующих корпусов и текстовых коллекций для задачи классификации текстов по тональности
Одним из средств организации текстовой информации для ее последующего автоматизированного анализа является создание корпусов текстов. Корпус текстов – это коллекция категорированных текстов, собранных по определенной мето- дике и представленных в электронном виде. Ка- тегоризация текстов может проводиться как по интегральным характеристикам каждого текста (например принадлежность текста к определенной тематике), так и по специфическим характерис- тикам отдельных терминов (например слово- формы, леммы, морфемы). Более того, эта коллекция текстов должна быть организована в виде базы данных, чтобы иметь возможность практического использования корпуса в целях научного анализа.
В последние годы проводится достаточно много исследований в области классификации текстов согласно их тоновой окрашенности. Много работ посвящено тоновой классификации отзывов на продукты и фильмы [1, 4], а также анализу блогов или новостей. Другими словами, изучались достаточно длинные тексты, принадлежащие некоторой заранее определенной предметной области. Иногда для работы использовались тексты отзывов, размеченные самим автором отзыва по пяти- или десятибалльным шкалам [2]. Таким образом, существующие в открытом доступе коллекции на русском языке, подготовленные для задачи автоматической классификации отзывов на два или три класса, объединены одной тематикой, например, коллекция отзывов о фильмах с оценками пользователей (РОМИП 2011, [3]). Для предыдущих исследований [1–4] разрабатывались тренировочные корпусы текстов, обладающие следующими параметрами:
– корпусы отзывов с оценками, вручную проставленными автором отзыва;
– узкотематические корпусы отзывов (отзывы на фильмы или на книги);
– корпусы общезначимых новостей (длинные тексты, состоящие из нескольких абзацев).
Однако интернет-пользователи не всегда пишут конструктивные и структурированные отзывы на товары или услуги, детально обдумывая плюсы и минусы, выставляя оценки. Значительно чаще пользователь оставляет спонтанный эмоциональный отзыв в социальных сетях или микроблоге. Распространение смартфонов еще больше способствует увеличению сиюминутных отзывов и эмоциональных заметок в социальных сетях. Например, человек после просмотра фильма, который ему не очень понравился, с помощью смартфона тут же, не выходя из кинотеатра, может предупредить своих друзей о том, что на этот фильм не стоит тратить время. Короткие заметки пишутся чаще и потенциально имеют большее влияние на друзей пользователя, чем развернутые рецензии незнакомых людей. Поэтому для товаров, услуг, медийных персон и значимых событий важно собирать, отслеживать и классифицировать отзывы не только со специализированных сайтов-отзывов, но и из социальных сетей.
Все доступные коллекции на русском языке являются коллекциями отзывов, принадлежащими одной определенной предметной области, но не общетематическими коллекциями коротких текстов (микроблогов) или сообщений из социальных сетей. Поэтому для задачи классификации текстов из социальных сетей по тональности был собран корпус коротких текстов на основе микроблоговой платформы twitter.
Twitter – это социальная сеть и сервис микроблогинга, который позволяет пользователям писать сообщения в реальном времени. Зачастую сообщение пишется с мобильного устройства прямо с места событий, что добавляет сообщению эмоциональности. Из-за ограничения платформы длина твиттер-сообщения не превышает 140 символов. В связи с этой особенностью сервиса (короткие сообщения публикуются в реальном времени) люди используют аббревиатуры, сокращают слова, используют смайлики, пишут с орфографическими ошибками. Так как twitter имеет особенности социальной сети, его пользователи могут активно выражать свое мнение относительно разнообразных тем: от качества мультиварок до экономических и политических событий в мире.
Классификацию на уровне коротких фраз и выражений, а не абзацев или целых документов, проводили Wilson, Wiebe и Hoffmann [5]. В своей работе авторы показали, что важно определить окраску (положительная или отрицательная) отдельно взятого предложения, а не всего текста. В длинном документе мнение автора об объекте может меняться с положительного на отрицательное и наоборот; автор может отрицательно высказываться о мелких недочетах, но в целом оставаться положительно настроенным по отношению к объекту. Другими словами, не всегда длинный документ или отзыв однозначно можно классифицировать как положительно или отрицательно окрашенный.
Метод сбора корпуса текстов для задачи тоновой классификации
Корпус собирается на основе русскоязычных постов микроблоговой платформы twitter. Корпус создается для решения задачи классификации текстов по тональности на 2 и 3 класса. Для тренировки тонового классификатора корпус должен быть размечен на положительную, нейтральную и негативную коллекции, каждая из которых содержит примерно одинаковое количество текстов. Корпус должен быть достаточно представительным, чтобы на его основе строить словарь эмоционально окрашенных терминов. «Достаточно представительный корпус» означает, что добавление новых твитов к коллекции повлечет за собой добавление очень небольшого числа новых терминов.
Метод, описанный в [6], показал эффективность использования смайликов (специальных символов-иконок, обозначающих эмоции в письменных сообщениях) для автоматической классификации текстов на положительные и отрицательные. С высокой точностью можно определить эмоцию сообщения, если автор указал символ, обозначающий эмоции. Поэтому прежде всего были составлены словари символов, обозначающих положительное и отрицательное отношение автора. Для составления словарей символов, обозначающих эмоции, использовался ресурс Wikipedia (http://en.wikipedia.org/wiki/List_of_emoticons). Но не все символы, перечисленные в статье Wikipedia, вошли в словарь символов, например, символы ;) или :-p не вошли в словарь, так как не определяют однозначно эмоцию автора. Пример иконки, означающей положительную эмоцию, – :), негативную – :(. Так как длина сообщения ограничена 140 символами, было сделано допущение, что выражение эмоции в виде смайлика относится ко всему сообщению, а не к его отдельной части.
В соответствии с письменным обозначением эмоций был произведен поиск позитивно и негативно окрашенных сообщений и сформированы две коллекции. Эти коллекции будут использованы для последующего анализа позитивно и негативно окрашенных сообщений и выявления закономерностей позитивного и негативного сообщения. Для формирования коллекции нейтральных сообщений были взяты сообщения новостных аккаунтов микроблогов.
Программная реализация. Ядро программного модуля отвечает за взаимодействие между пользовательскими БД, модулями сбора текстов и модулями их последующей обработки. API социальных систем возвращают данные через веб-интерфейс в формате JSON или XML, поэтому для реализации программного модуля нужно использовать PHP + JSON. Схематично архитектура программного модуля представлена на рисунке 1. Далее в тексте подробно описан каждый модуль системы.
Фильтрация коллекции. Для чистоты эксперимента была проведена фильтрация собранной коллекции:
– из коллекции твитов удалены тексты, содержащие одновременно и положительные, и отрицательные символы эмоций; такие тексты нельзя автоматически отнести ни к коллекции положительных сообщений, ни к коллекции негативных;
– удалены малоинформативные твиты, длина которых менее 40 символов.
Описание корпуса. Так как API twitter отдает только по 100 сообщений на запрос и допускается не более одного запроса в 7 секунд, сбор корпуса проходил на протяжении нескольких месяцев: с конца ноября 2013 года до середины февраля 2014 года. В результате была собрана коллекция текстов, включающая около 15 миллионов коротких сообщений, на основе которой с помощью метода, описанного в [6], и предложенной в [7] фильтрации был сформирован корпус, состоящий из коллекций:
– положительных сообщений (114 991 запись);
– негативных сообщений (111 923 записи);
– нейтральных сообщений (107 990 записей).
Была построена БД текстов микроблогов для последующей обработки и анализа корпуса. Каждый текст в корпусе имеет следующие атрибуты:
– дата публикации;
– имя автора;
– текст твита;
– класс, к которому принадлежит текст (положительный, отрицательный, нейтральный);
– количество добавлений сообщения в избранное;
– количество ретвитов (количество копирований этого сообщения другими пользователями);
– количество друзей пользователя;
– количество пользователей, у которых пользователь в друзьях (количество фоловеров);
– количество списков (листов), в которых состоит пользователь.
Однородность корпуса. Чтобы определить однородность исследуемых коллекций, проверим предположение, что высокая частота встречаемости слов, таких как «и», «я», «на», «что», в разных коллекциях (позитивной и негативной) должна быть сопоставимо одинаковой. В то же время редкие слова вроде «ассоциация» и «фактор» должны встречаться сопоставимо редко независимо от размера коллекции и ее принадлежности к положительному или негативному классу [8]. На рисунке 2 для каждой из коллекций (позитивной и негативной) показано распределение нормированной частоты встречаемости слов в зависимости от количества твитов, в которых это слово встречается. Количество твитов, в которых встречается слово, отложено на оси Х. Видно, что графики близки друг к другу на однородных наборах данных.
Для построения словаря эмоциональной лексики необходимо, чтобы коллекции документов содержали достаточно большое количество лемм. Несмотря на богатство и разнообразие русского языка, далеко не все слова используются для общения в социальных сетях. Одна из задач этой работы состояла в том, чтобы собрать достаточно представительный корпус для построения словаря эмоциональной лексики. Чтобы проверить, является ли корпус достаточно представительным, три коллекции объединили в одну, после чего было произведено вычисление количества уникальных терминов в зависимости от размера коллекции. Рисунок 3 показывает, что при небольшом количестве твитов добавление к коллекции новых сообщений влечет за собой увеличение числа уникальных терминов. Но после достижения цифры в 340 000 уникальных терминов добавление новых твитов к коллекции не влечет за собой значительного увеличения уникальных терминов.
Таблица 1
Соотношение коллекций по их объемам в корпусе текстов, собранных на основе русскоязычных постов социальной сети Twitter
Table 1
Correlation of collections according to their volumes in a text corpus based on Russian posts on Twitter
Тип коллекции
|
Количество словоформ в коллекции
|
Количество уникальных словоформ в коллекции
|
Положительные сообщения
|
1 559 176
|
150 720
|
Негативные сообщения
|
1 445 517
|
191 677
|
Нейтральные сообщения
|
1 852 995
|
105 239
|
Морфологическая разметка текстов. Чтобы изучить влияние лингвистических признаков текста при классификации коротких текстов по тональной окрашенности, была произведена морфологическая разметка коллекций. Цель разметки корпуса – выявить закономерности распределения частей речи между «положительной» и «отрицательной» коллекциями.
Существует несколько морфологических анализаторов для русского языка. Например, mystem – морфологический анализатор Яндекса, который угадывает нормальные формы слов, даже если этих слов нет в словаре системы [9]. Mystem не разрешает морфологической омонимии, выдавая в качестве результата все возможные парадигмы. Другой морфологический анализатор Myaso (http://nlpub.ru/Myaso) – это языконезависимый инструмент морфологической разметки текстов, построенный на основе скрытых марковских моделей с использованием удаленной интерполяции и алгоритма Витерби. К сожалению, текущая реализация Myaso имеет два серьезных недостатка:
– таггер аварийно завершает работу при обнаружении в тексте слова, отсутствующего в словаре;
– несмотря на то, что разметка текста выполняется достаточно быстро, единовременная инициализация анализатора занимает продолжительное время (около минуты).
Для разметки тренировочного корпуса был выбран TreeTagger для русского языка [10]. TreeTagger – это вероятностный инструмент для разметки текстов, разрешающий морфосинтаксические неоднозначности русского языка.
Анализ морфологической разметки показал, что в зависимости от того, выражает ли автор свой настрой или нет, он склонен использовать различные части и формы речи для построения предложений. Так, например, авторы твитов, содержащих положительные эмоции, часто используют глаголы 3-го лица единственного числа в настоящем времени в пассивном залоге совершенного вида – «Vmip3s-p-e», в свою очередь, авторы негативно окрашенных твитов чаще всего используют в своих сообщениях глаголы женского рода в единственном числе в прошедшем времени в активном залоге совершенного вида – «Vmps-sfafea» (http://www.swsys.ru/uploaded/image/2015/2015_dop/2.jpg).
Был проведен анализ биграмм частей речи. С точки зрения попарного использования частей речи авторы положительных твитов чаще всего используют связку «глагол мужского рода совершенного вида в пассивном залоге в единственном числе в прошедшем времени + количественное числительное» – «Vmps-smpsp Mc» (таблица обозначений частей речи: http://corpus.leeds.ac.uk/mocky/ru-table.tab). Авторы негативных твитов часто пользуются связкой «неодушевленное существительное женского рода множественного числа в винительном падеже + местоимение в третьем лице множественного числа в дательном падеже» – «Ncfpan P-3-pdn» (см. http://www.swsys.ru/uploaded/ image/2015/2015_dop/3.jpg).
Построение словаря эмоциональной лексики
Алгоритмы классификации текстов методами векторного анализа с применением n-граммных моделей показывают достаточно точные результаты классификации [1, 2]. Для таких алгоритмов классификации и требуется предварительно размеченный тренировочный корпус, на основе которого происходит обучение. Для построения векторной модели текста создается словарь униграмм и биграмм. В предложенном методе в качестве однословных униграмм выделялись все слова документа, за исключением предлогов, знаков препинания (таких как запятая, точка с запятой, двоеточие, тире, точка; восклицательные и вопросительные знаки были оставлены), имен собственных, значимых событий (например олимпиада).
Все ссылки на другие документы были объединены одним словом «Link», и их вес рассчитывался исходя из встречаемости «Link» во всех текстах коллекции.
Словарь униграмм. Существуют различные подходы к извлечению оценочных слов из текстов и определению их веса в коллекции. В работе [11] авторы предложили использовать тезаурус для расширения словаря оценочных слов, собранного вручную. В корпусной лингвистике широко применяются методы извлечения терминов, основанные на значимости этого термина для коллекции, например на мере TF-IDF:
, (1)
где tf – частота встречаемости термина в коллекции (положительных или отрицательных твитов); T – общее число сообщений в положительных и отрицательных коллекциях; T(ti) – число сообщений в положительной и отрицательной коллекциях, содержащих термин [12].
Однако методы извлечения терминов, основанные на мере TF-IDF, на коллекции текстов из разных классов показали результаты хуже, чем методы, основанные на мере RF (Relevance Frequency – релевантная частота) [13].
Основной смысл меры RF в том, что вес слова вычисляется на основе информации о распределении этого слова в текстах коллекции и учитывает принадлежность текстов коллекции к определенным классам (положительные, отрицательные, нейтральные) (табл. 2).
Таблица 2
15 самых значимых слов для коллекции положительных твитов и негативных твитов
Table 2
15 the most important words for a collection of positive and negative tweets
Слово
|
Вес слова в коллекции положительных твитов (RF)
|
Слово
|
Вес слова в коллекции негативных твитов (RF)
|
офигенны
|
7,348728154
|
погибших
|
6,266786541
|
ракал
|
7,303780748
|
теракт
|
6,247927513
|
позитива
|
6,64385619
|
некролог
|
6,189824559
|
поздравляем
|
5,95419631
|
Ohoo
|
5,857980995
|
разблокируют
|
5,95419631
|
скорбим
|
5,807354922
|
оглядываются
|
5,930737338
|
Пичалька
|
5,781359714
|
улыбнуло
|
5,781359714
|
supreme
|
5,781359714
|
отличного
|
5,768184325
|
oppa
|
5,672425342
|
талисман
|
5,614709844
|
Еб***т
|
5,584962501
|
gigliliput
|
5,554588852
|
коме
|
5,584962501
|
читатель
|
5,087462841
|
огорчает
|
5,321928095
|
HappyBirthdayTreCool
|
5,087462841
|
несправедливость
|
5,247927513
|
Link
|
5,076815597
|
заболеваю
|
5,209453366
|
Мур
|
5,022367813
|
хнык
|
5,139551352
|
инициатива
|
4,95419631
|
однобокость
|
5,129283017
|
В работе [13] показано, что мера RF дает лучшие результаты бинарной классификации при вычислении веса слова с учетом принадлежности слова к разным классам. Поэтому для каждого слова каждой из коллекций вычислялся вес этого слова по мере RF. Обозначим a количество твитов, содержащих слово и относящихся к определенному классу, с – количество твитов, содержащих слово и не принадлежащих к классу С. Тогда значимость слова для класса С вычисляется по формуле
. (2)
Построенный словарь состоит из 22 000 униграмм и их весов. Словарь не принадлежит к какой-либо заранее определенной предметной области и может быть использован для классификации как отзывов на товары, книги, так и новостных текстов.
Словарь биграмм. Помимо словаря употребления отдельных слов в коллекциях, был построен словарь биграмм. Веса биграмм также рассчитывались на основе меры RF (табл. 3).
Таблица 3
Пример значимых биграмм для коллекций положительных и негативных твитов
Table 3
An example of important bigrams for a collection of positive and negative tweets
Биграмма в коллекции позитивных сообщений
|
Вес положительной биграммы (RF)
|
Биграмма в коллекции негативных сообщений
|
Вес негативной биграммы (RF)
|
бегал как
|
7,303780748
|
кто ненавидит
|
6,741466986
|
день позитива
|
7,303780748
|
ненавидит пробки
|
6,741466986
|
и ракал
|
7,303780748
|
пробки ретвит
|
6,741466986
|
идиот целый
|
7,303780748
|
а внизу
|
6,189824559
|
офигенны, я
|
7,303780748
|
вокруг черная
|
6,189824559
|
ракал но
|
7,303780748
|
черная рамка
|
6,189824559
|
танцы офигенны
|
7,303780748
|
нет новогоднего
|
6,108524457
|
смотреть всем
|
6,523561956
|
ужасно болит
|
6,06608919
|
надо лучше
|
6,169925001
|
так обидно
|
6,022367813
|
чем украсить
|
6,087462841
|
а настроения
|
5,832890014
|
В результате работы был создан программный комплекс для сбора и анализа коротких сообщений на русском языке. С помощью программного комплекса построен корпус текстов, собранных на основе постов социальной сети twitter. Корпус автоматически размечен на три класса: положительные, негативные, нейтральные (коллекции содержат 114 991 положительный твит, 111 923 негативных твита и 107 990 нейтральных). Каждый текст в корпусе содержит атрибуты, позволяющие сделать выводы об актуальности высказывания и силе его воздействия на читателей, значимости сообщения (например, количество подписчиков пользователя или копирований данного сообщения пользователями площадки). Программный комплекс позволяет проводить морфологическую разметку текстов. На основе морфологической разметки были выявлены закономерности зависимости тоновой окраски сообщения от используемых в нем частей речи. На основе корпуса была проведена работа по построению словаря n-грамм, в который вошли как отдельные термины, так и биграммы. Корпус представлен в виде базы данных и доступен для публичного ознакомления по ссылке http://study.mokoron.com.
В перспективе проведение экспериментов и тренировка тонового классификатора с помощью вышеописанного корпуса, а также сбор нового корпуса коротких текстов и проверка тонового классификатора на текстах, собранных в другой временной промежуток, когда интернет-пользователей волнуют другие темы.
Литература
1. Pang B., Lee L., Shivakumar V. Thumbs up? Sentiment Classification using Machine Learning Techniques. Proc. of the Conf. on Empirical Methods in Natural Language Processing, Univ. of Pennsylvania, 2002, pp. 79–86.
2. Pang B., Lee L. Seeing stars: exploiting class relationships for sentiment categorization with respect of rating scales. Proc. of ACL, 43rd Meeting of the Association for Computational Linguistics. Ann Arbor: ACM, 2005, pp. 115–124.
3. Российский семинар по оценке методов информационного поиска (РОМИП). URL: http://romip.ru/ru/collections/ imhonet-films.html (дата обращения: 2.08.2014).
4. Chetviorkin I., Loukachevitch N. Cross-domain opinion word extraction model. Proc. 6th Russian Young Schientists Conf. in Information Retrieval. Yaroslavl, 2012, pp. 5–15.
5. Wilson T., Wiebe J. and Hoffmann P. Recognizing contextual polarity in phreselevel sentiment analysis. Proc. of Human Languages Technologies Conf. Conference on Emperical Methods in Natural Language Processing (HLT/EMNLP 2005). Vancouver, CA, 2005.
6. Read J. Using Emoticons to Reduce Dependency in Machine Learning Techniques for Sentiment Classification. In: Proc. of the Student Research Workshop at the 2005 Annual Meeting of the Association for Computational Linguistics. Ann Arbor, Michigan, 2005, pp. 43–48.
7. Рубцова Ю.В. Метод построения и анализа корпуса коротких текстов для задачи классификации отзывов // Электронные библиотеки: перспективные методы и технологии, электронные коллекции: RCDL’2013: тр. XV Всерос. науч. конф., Ярославль, 2013. С. 269–275.
8. Reed J.W., Jiao Y., Potok T.E., Klump B.A., Elmore M.T., Hurson A.R. TF-ICF: A New Term Weighting Scheme for Clustering Dynamic Data Streams. Proc. Machine Learning and Applications, (ICMLA '06). 2006, pp. 258–263.
9. Segalovich I. A Fast Morphological Algorithm with Unknown Word Guessing Induced by a Dictionary for a Web Search Engine. MLMTA, 2003, pp. 273–280.
10. Schmid H. Probabilistic part-of-speech tagging using decision trees. Proc. of the Intern. Conf. on New Methods in Language Processing. 1994, pp. 44–49.
11. Hu M., Liu B. Mining and Summarizing Customer Reviews. KDD, Seattle, 2004, pp. 168–177.
12. Salton G., Buckley C. Term-weighting approaches in automatic text retrieval. Journ. of Information Processing and management, 1988, no. 24 (5), pp. 513–523.
13. Lan M., Tan C.L., Su J., Lu Y. Supervised and Traditional Term Weighting Methods for Automatic Text Categorization. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2009, vol. 31, no. 4, pp. 721–735.