САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КАФЕДРА ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Кокачев Виктор Алексеевич
Выпускная квалификационная работа бакалавра
Извлечение мнений и объектов мнений из постов
социальных систем
Направление 010300
Фундаментальная информатика и информационные технологии
Научный руководитель,
cт. преподаватель
Попова С.В.
Санкт-Петербург
2016
Содержание
Введение......................................................................................................................................... 4
Постановка задачи......................................................................................................................... 7
Обзор литературы.......................................................................................................................... 8
Глава 1. Обзор предметной области.............................................................................................9
§1. Анализ тональностей...........................................................................................................9
1.1.
Сущность анализа тональностей............................................................................... 9
1.2. Виды классификации тональностей............................................................................. 9
1.3. Алгоритмы анализа тональностей.............................................................................. 10
1.4. Оценка качества анализа тональностей......................................................................12
§2. Извлечение мнений............................................................................................................13
2.1. Сущность извлечения мнений..................................................................................... 13
2.2. Общая модель объекта................................................................................................. 13
2.3. Виды мнений.................................................................................................................14
§3. Уровни, на которых проводится сентимент-анализ........................................................15
§4. Задачи сентимент-анализа................................................................................................ 15
§5. Применение........................................................................................................................ 16
§6. Обзор существующих готовых решений.........................................................................16
Глава 2. Проектирование системы, выполняющей сентимент-анализ................................... 18
§1. Конкретизация задачи....................................................................................................... 18
§2. Входная коллекция.............................................................................................................19
§3. Начальные категории.........................................................................................................20
3.1 Построение начальных категорий................................................................................20
3.2
Алгоритмы пополнения начальных категорий....................................................... 21
3.3 Пополнение начальных категорий............................................................................... 23
§4. Тональные словари............................................................................................................ 23
§5. Общий алгоритм решения задач...................................................................................... 23
Глава 3. Реализация системы, выполняющей сентимент-анализ............................................26
§1. Реализация системы.......................................................................................................... 26
§2. Оценка качества................................................................................................................. 26
§4. Выводы............................................................................................................................... 31
Заключение...................................................................................................................................33
Список литературы......................................................................................................................34
Дополнительные ссылки.....................................................................................................36
Приложение..................................................................................................................................37
2
Введение
Человек априори не может знать все на свете. Часто в жизни
проиcходят ситуации, когда необходимо получить информацию или сделать
тот или иной выбор в области знаний, о которой индивид практически ничего
не знает. Именно тогда и приходится обращаться к сторонней помощи. Если
раньше, еще несколько десятков лет назад, мы обращались за традиционным
советом к своим друзьям, близким, знакомым, то теперь все изменилось. С
бурным развитием информационно-вычислительных технологий и, в
частности, глобальной паутины Интернет, для поиска необходимой
информации и помощи в выборе чего-либо появилась достойная
альтернатива.
Казалось бы, в век современных технологий что может быть проще,
чем послать запрос поисковой машине, а она, в свою очередь, выдаст ответы
на все вопросы пользователя. Но действительно ли такие инструменты
поиска помогают в полной мере удовлетворить информационную
потребность человека? Из-за огромного количества разнообразного контента
в мировом вебе, стремительно растущего с каждым днем, очень часто
релевантная информация теряется среди мегабайт бесполезных данных. К
тому же традиционный информационный поиск и веб-поиск, в частности, не
всегда помогает в нахождении сторонних мнений для принятия собственного
решения.
Вместе с этим, последнее десятилетие характеризуется ростом
популярности различных социальных систем: блогов (пр.: Livejournal 1,
Twitter2), форумов (огромное количество тематических сообществ, пр.:
Трипадвизор3 - форум путешествинников, Киберфорум 4 - ф о р у м
1 http://www.livejournal.com/
2 https://twitter.com/
3 https://www.tripadvisor.ru/ForumHome
4 http://www.cyberforum.ru/
3
программистов), социальных сетей (пр.: ВКонтакте5, Facebook6, Instagram7),
интернет-сервисов, аккумулирующих мнения о том или ином объекте (пр.:
Яндекс.Маркет8, Кинопоиск9, Amazon10). Ежедневно пользователи подобных
ресурсов размещают множество сообщений, материалов, высказывают
мнение о том или ином объекте. На основании подобных комментариев
человек может сделать вывод о том, пользоваться или нет интересующей
услугой, покупать или нет нужный продукт. На данный момент, несмотря на
всю полезность такого подхода к мониторингу мнений, существует ряд
серьезных недостатков: сложности в ручной обработке огромных объемов
данных, нахождении мнений и их эмоциональной оценки, приведении
результата к удобной форме.
Исходя из выше сказанного, появляется необходимость в создании
системы автоматического нахождения и анализа мнений. Подобная задача
ставится в дисциплине, которая находится на стыке информационного поиска
и компьютерной лингивистики - анализ тональности текста и извлечение
мнений (англ. sentiment analysis & opinion mining, также употребим термин
сентимент-анализ). Сентимент-анализ - система автоматического получения
из текстов эмоционально окрашенной лексики и мнений по отношению к
объектам, речь о которых идет в тексте. Тональностью называется
эмоциональное отношение автора высказывания, к некоторому объекту,
выраженное в тексте. Под мнением будем понимать эмоциональную оценку
чего-либо (формальное определение вводится в главе 1, §2).
Как понятно из полного названия предмета сентимент-анализа, всю
дисциплину можно разделить на две большие части. Первая - анализ
тональности текста, которая зачастую ставит перед собой задачу
классификации корпуса документов на основе найденных в них
5 https://vk.com/
6 https://www.facebook.com/
7 https://www.instagram.com/
8 https://market.yandex.ru/
9 www.kinopoisk.ru/
10 https://www.amazon.com/
4
тональностей. Вторая часть - извлечение мнений, обычно ставит перед собой
целью выделить все мнения об интересующих нас объектах из корпуса
документов.
Задачи обоих блоков сентимент-анализа возникли сравнительно
недавно, поэтому работа над ними продолжается. Несмотря на наличие
существующих инструментов и платформ, позволяющих определять не
только тональность сообщений в социальных медиа, но и выявлять
обсуждаемые темы, проводить анализ мнений о брендах, а также
анализировать некотопые другие параметры, единого точного алгоритма
решения данной задачи не существует. Следовательно, все еще актуальна
задача построения системы извлечения мнений и анализа тональностей.
5
Постановка задачи
Целью данной дипломной работы ставится реализация системы для
извлечения мнений из корпуса документов.
Дано: корпус документов, по сути являющихся набором сообщений из
социальной системы.
Задача:
Извлечь все мнения из корпуса.
Выполнить классификацию мнений на уровне документа. Она
проводится в два этапа: на первом этапе классифицируем документы
по принадлежности к какой-либо тематической категории, на втором
- по эмоциональной окраске.
Провести анализ качества работы системы.
6
Обзор литературы
Как уже говорилось, задача анализа тональностей и извлечения мнений
довольно молодая - ей чуть более десятка лет. Бурное развитие веба и
неподдельный интерес, в частности, к этой дисциплине, и, в целом, к области
обработки естественного языка подтолкнуло научное сообщество к созданию
большого количества трудов и статей, связанных с тематикой сентиментанализа.
Термины тональность и мнение были введены в работах [11, 17].
Первые работы исследователей в данной области характеризовались узкой
направленностью и носили исключительно прикладной характер. Так в [11]
были представлены методы для получения «репутаций» - численных
значений слов, употребляемых вблизи значимого слова (упоминания
продукта в сети Интернет). В данной работе определение тональностей
происходило на основе работы со словарями.
В работе [13] осуществляется один из первых полных обзоров всей
области, связанной с исследованием мнений. Здесь затрагиваются темы
определения тональностей, выделения мнений, сложностей связанных с
анализом сравнительных предложений, поиска спама в мнениях.
В исследованиях [7, 17, 21] рассматриваются задачи классификации на
документном уровне, где рецензии на услуги разбиваются на негативные или
позитивные, отражая мнение авторов в отношении данных услуг. В работах
[8, 9] ключевое внимание уделяется выделению объектов и их характеристик
из неструктурированных документов.
В заключение, можно отметить, что подавляющее большинство книг и
статей в области сентимент-анализа выходит за рубежом. Если же говорить о
наработках российских исследователей, то стоит остановить свой взгляд на
результатах, представляемых на ежегодном Российском семинаре по оценке
методов информационного поиска (РОМИП), связанных с анализом мнений.
Здесь можно обратить внимание на работы [1, 3, 5] отечественных авторов.
7
Глава 1. Обзор предметной области
В данной главе будут рассмотрены общие теоретические аспекты
анализа тональностей и выделения мнений, задачи, которые могут решаться с
помощью данных методик; будет сделан обзор уже существующих
технологических решений.
§1. Анализ тональностей
1.1. Сущность анализа тональностей
Как уже было сказано ранее, под задачей анализа тональностей мы
будем понимать нахождение в корпусе документов лексических
тональностей
(лексических сентиментов, слова-сентименты)
-
эмоциональных составляющих, выраженных на уровне лексемы, с целью
дальнейшей классификации документов этого корпуса при помощи
найденных слов-сентиментов. Лексема определяется как экземпляр
последовательности символов в определенном документе, объединенных в
семантическую единицу для обработки. Данная задача также называется
задачей классификации полярности документов, то есть определяется,
является ли выраженное в документе мнение позитивным или негативным (в
простейшем случае).
1.2. Виды классификации тональностей
Выявленные в корпусе тональности могут классифицироваться
различными способами в зависимости от выбранной модели. Достаточно
часто используют одномерное эмотивное пространство с полярностями
“позитив” или “негатив”. Однако иногда довольно успешно применяются и
более сложные подходы.
1) Классификация по бинарной шкале [17, 21].
8
Самый распространенный подход, в котором часто используются два
класса оценок: позитивная и негативная. Несмотря на всю кажущуюся
простоту данного подхода не всегда удается однозначно определить то, к
какому классу можно отнести документ: оценочный текст может содержать
признаки как позитивной, так и негативной оценки.
2) Классификация по многополосной шкале [16, 18].
Наиболее очевидный способ усложнить предыдущий подход увеличить количество классов. Теперь градация полярностей насчитывает
более чем два пункта. Первые работы с соответствующим подходом были
направлены на классификацию отзывов/рецензий по несколькобалльной
шкале.
3) Системы шкалирования [20].
Еще одним подходом к определению тональностей является
использование систем шкалирования, посредством чего словам-сентиментам,
ставятся в соответствие числа по какой-то дискретной шкале, например, от -5
до +5 (от резко негативного до резко положительного). Далее текст
анализируется с помощью алгоритмов обработки естественного языка, а
затем выделенные из этого текста объекты исследуются с целью понимания
значения этих слов.
4) Субъективность/объективность [19].
Еще одно исследовательское направление - идентификация
субъективности/объективности. В рамках данной задачи данный текст
относится к одному из двух классов: субъективный или объективный.
Данный подход идет в сторону усложнения методики обычной
классификации полярности: субъективность слов и фраз может зависеть от
контекста, а объективный документ может содержать в себе субъективные
предложения.
1.3. Алгоритмы анализа тональностей
Анализ тональностей может быть разделен на 2 отдельные категории:
9
1) ручной (анализ тональности ассесорами);
2) автоматизированный анализ тональности.
Различия между этими двумя заключаются в точности и эффективности
анализа. Эксперт, конечно же, гораздо корректнее обрабатывает входные
данные, но при этом не может соревноваться с вычислительной машиной в
объемах и скорости обрабатываемых массивов данных.
Для автоматизированного анализа тональности часто используются
следующие алгоритмы:
1) На основе правил [14].
Подход заключается в генерации правил, на основе которых будет
определяться тональность текста. Для этого текст разбивается на слова или
последовательности слов. Затем полученные данные используются для
выделения часто использующихся шаблонов, которым присваивается
позитивная или отрицательная оценка.
2) С использованием словарей слов-сентиментов [4].
Часто вместе с предыдущим подходом используется работа со
словарями слов-сентиментов. По найденным в тексте лексическим
тональностям он может быть оценен по шкале, содержащей количество
позитивной и негативной лексики. Самая простая оценка - среднее
арифметическое всех значений полярности слов-сентиментов.
3) Машинное обучение без учителя [21].
Данный подход основан на идее, что наибольший вес в тексте имеют
термины, которые чаще встречаются в этом тексте, и в то же время
присутствуют в небольшом количестве текстов всей коллекции. Выделив эти
термины и определив их тональность, можно сделать вывод о тональности
всего текста целиком.
4) Машинное обучение с учителем [10].
В этом подходе требуется наличие обучающей коллекции размеченных
в рамках эмотивного пространства текстов, на базе которой строится
статистический или вероятностный классификатор.
10
5) На основе теоретико-графовых моделей [2].
На основе предположения, что не все слова в тексте равнозначны,
происходит построение графа. При выполнении данной процедуры мы
находим вершины, который имеют больший вес, а значит вносят наибольший
вклад в определение тональности текста. После этого классифицируем
найденные слова на основе тональных словарей.
6) Гибридный метод.
Данный метод сочетает все или несколько подходов, рассмотренных
выше, и заключается в применении классификаторов на их основе в
определенной последовательности.
1.4. Оценка качества анализа тональностей
Важно оценивать, насколько хорошо правильность и качество систем
анализа тональности текстов согласуется с мнением эксперта относительно
эмоциональной окраски представленных данных. В качестве таких оценок в
дисциплинах, тесно связанных с информационным поиском, традиционно
используются метрики полноты (англ. recall) и точности (англ. precision)
[15].
Экспертная оценка
Положительная
Оценка
системы
Отрицательная
Положительная
Отрицательная
Истинно-
Ложно-
Положительная
Отрицательная
Ложно-
Истинно-
Положительная
Отрицательная
Табл. 1. Возможные оценки со стороны системы и эксперта.
Тогда метрики будут считаться как:
11
Точность=
Истинно – Положительная
Истинно – Положительная+ Ложно – Положительная
Полнота=
Истинно – Положительная
Истинно – Положительная+ Ложно – Отрицательная
При классификации документов по полярности для каждого класса,
отвечающего за отдельную тональность можно посчитать метрики как:
Точность=
Общее количество документов , отнесенных к данному классу ,имеющих данную тональ
Общее количество документов , отнесенных к данному классу
Полнота=
Общее количество документов , отнесенных к данному классу ,имеющих данную т
Общее количество документов ,имеющих данную тональность
§2. Извлечение мнений
Данный параграф будет посвящен вопросу нахождения мнений эмоциональных суждений о какой-либо сущности или ее аспекте,
высказанных неким субъектом.
2.1. Сущность извлечения мнений
Для задачи извлечения мнений, как понятно из названия, главной целью
является нахождение в тексте всех эмоционально окрашенных мнений
относительно чего-либо. В целом, мнение может быть выражено в
отношении любого предмета: продукта, услуги, персоны, организации,
события и т.п. Для того чтобы выделить сущность, о которой идет речь в
тексте, мы будем использовать термин объект.
2.2. Общая модель объекта
У каждого объекта имеется множество компонентов (или частей) и
множество атрибутов (или свойств). Каждый компонент может содержать
свои личные подкомпоненты и свое множество атрибутов. Таким образом,
12
каждый объект предст авляет собой иерархиче скую ст руктуру,
основывающуюся на отношении «состоит из» (part-of).
Формальное определение объекта: объект o - сущность, которая может
представлять отдельный предмет, персону, организацию, событие. Объект
может быть задан парой o: (T, A), где T отвечает за иерархию компонентов, A множество атрибутов объекта o.
На практике же обычно упрощают данное определение из-за сложности
задач обработки естественного языка. Поэтому иерархию умышленно делают
плоской: как для компонентов, так и для атрибутов применяется термин
характеристика (feature).
Автором мнения (opinion holder) называется субъект, высказывающий
мнение. Учитывая специфику социальных систем, можно заключить, что
чаще всего авторами мнений выступают авторы самих постов или
сообщений.
Мнением (opinion) о характеристике f называется позитивный или
негативный взгляд, оценка или эмоция о характеристике f, высказанные
автором мнения.
Полярность мнения (opinion orientation) о характеристике f указывает
на то, позитивным, негативным или нейтральным является мнение.
Таким образом, строится модель объекта: объект o выражается
конечным множеством характеристик: F={ f 1 , f 2 ,… , f n } , которое включает и
сам объект как особую характеристику. Каждая характеристика f i
может
быть выражена с помощью конечного числа слов или фраз W i= { w 1 ,w 2 , … , w m } ,
которые являются синонимами данной характеристики.
2.3. Виды мнений
Мнение может относиться к одному из двух следующих видов [12]:
1) Непосредственное мнение: формально представляет собой кортеж из 5
элементов ( o j , f jk , ooijkl , hi , t l ) , где o j
объекта o j ,
oo ijkl
- объект, f jk
- характеристика
- полярность мнения о характеристике объекта
13
oj ,
hi
- автор мнения, t l - временная отметка, когда мнение было
выражено автором. Полярность мнения может быть не только
позитивной, негативной или нейтральной, но и может представлять из
себя более градулированную шкалу, чтобы учитывать различную
степень эмоциональности.
2) Сравнение: сравнение выражает отношение сходства или различия
между двумя или более объектами, и/или же выражением предпочтений
автора мнения на основе сравнения общих характеристик объектов.
Для данного типа мнения обычно характерно использование
сравнительной или превосходной степеней имен прилагательных.
§3. Уровни, на которых проводится сентимент-анализ
В зависимости от решаемой задачи сентимент-анализ может
проводится на разных структурных уровнях [12]:
1) На уровне документа: на этом уровне весь документ целиком
классифицируется как положительный, негативный или нейтральный
(или в соответствии с выбранной шкалой полярностей).
2) На уровне предложения: каждое предложение текста классифицируется
как положительное, негативное или нейтральное (или в соответствии с
выбранной шкалой полярностей). Решение задачи на данном уровне
характерно для сравнительных предложений.
3) На уровне характеристик: нахождение всех мнений, высказанных об
объекте или его характеристик; определение тональностей мнений. По
сути, задача тождественная задаче извлечения мнений.
§4. Задачи сентимент-анализа
Таким образом, к задачам сентимент-анализа относятся:
классификация документов на основе мнений,
классификация предложений на основе субъективности и мнений,
анализ мнений на основе аспектов,
14
реферирование мнений на основе аспектов,
создание словаря мнений,
поиск сравнений,
поиск спама в отзывах,
анализ полезности отзывов,
поиск отношений,
распознавание ссылок,
извлечение синонимов,
другие задачи извлечения информации.
§5. Применение
Анализ тональности находит свое практическое применение во
множестве областей:
продажи и маркетинг - на основе данных мониторинга социальных
систем делаются выводы о популярности того или иного продукта,
нахождение текущих трендов среди покупателей;
политика - анализ данных о политических позициях пользователей,
прогнозирование результатов выборов;
финансы - прогнозирование рынков на основе новостей, блогов и
других социальных медиа;
охрана безопасности - мониторинг настроений населения, пресечение
планируемых противоправных действий;
социология - извлечение интересующих социальных данных
пользователей: политических, религиозных взглядов;
другие сферы.
§6. Обзор существующих готовых решений
В настоящее время существует уже довольно большое число готовых
систем анализа тональностей и поиска мнений. Приведем некоторые из них.
15
1) Stanford NLP [26] - открытая демо-модель Стэнфордского
университета, позволяющая определять тональность для рецензий на
фильмы. Работа системы основана на применении рекурсивных
нейронных сетей. Поддерживает тексты исключительно на английском
языке.
2) Sentiment140 [25] - решение, разработанное выпускниками Стэнфорда.
Позиционирует себя в качестве анализатора тональностей системы
микроблогов Twitter. Позволяет получить пользователю в ответ на свой
запрос подборку позитивных, негативных или нейтральных
микросообщений. Визуализирует соответствующий результат при
помощи инфографики. Сервис работает только с английским и
испанским языками.
3) 30dB [28] - свободная платформа. Аналогично прошлому сервису
принмает на вход запрос и выдает эмоциональные мнения
относительно полученной темы. В качестве данных для анализа
использует не только Twitter, но и Facebook, Google+. В качестве
д оп ол н и тел ь н ой опции поз воля ет сравнивать эм отивную
составляющую двух введенных тем сразу. Поддерживает только
английский язык.
4) ВААЛ [23] - отечественная разработка, разрабатываемая с 1992 года.
Система позволяет прогнозировать эффект неосознаваемого
воздействия текстов на массовую аудиторию, анализировать тексты с
точки зрения такого воздействия, выявлять личностно-психологические
качества авторов текста, осуществлять эмоционально-лексический и
контент-анализ текстов, производить автоматическую категоризацию
текста.
16
Глава 2. Проектирование системы, выполняющей
сентимент-анализ
В этой главе речь пойдет об этапах создания собственной системы,
реализующей сентимент-анализ.
§1. Конкретизация задачи
В качестве предметной области, представляющей входные данные,
была выбрана тема автомобилей. А именно, имеется выборка постов,
несущих, в большинстве своем, какую-либо эмоциональную окраску, с
форума автолюбителей, где основными темами для обсуждения явлются
ремонт транспортных средств и их покупка/продажа.
Задача сентимент-анализа будет решаться с помощью словарного
подхода.
Конкретизируем задачи, поставленные в начале работы:
1) Выделить все непосредственные мнения, относительно значимых в
рамках данной тематики объектов, удовлетворяющие информационную
потребность пользователя. Другими словами, имеется запрос
пользователя, представленный текстовой строкой. Итоговым
результатом будет являться набор кортежей (объект, полярность
мнения об объекте, содержащий объект пост), релевантных запросу.
При этом упростим исходную модель: будем считать, что сам объект, а
не его отдельные характеристики, имеет некоторую тональность. Кроме
этого будем считать, что под автором мнения будем понимать
непосредственно автора сообщения на форуме, а под временной
отметкой мнения - время, когда сообщение было отправлено на форум.
2) Выполнить классификацию мнений на уровне документа. Она
проводится в два этапа: сначала устанавливается тематическая
17
категория (ремонт или продажи), к которой относится пост, затем
определяется его тональность.
§2. Входная коллекция
Как уже было сказано, в качестве корпуса входных сообщений
использовались посты с форума ffclub.ru.
Пример сообщения: приложение 1.1.
Для обеспечения удовлетворительного результата нужно провести
первоначальную подготовку корпуса документов. Для этого для каждого
документа из корпуса выполняются следующие процедуры [15]:
1) Токенизация – процесс разбиения исходного текста на лексемы. В
самом простейшем случае документ разделяется по пробелам и
отбрасываются знаки пунктуации.
2) Нормализация – процесс приведения лексем к канонической форме.
Используется для того, чтобы устранить небольшие различия между
лексемами, которые считаются эквивалентными. В качестве примеров
нормализации можно привести удаление дополнительных символов
(например, дефисов) или приведение всех лексем к единому регистру
(например, «КВН» → «квн»).
3) Стемминг
и лемматизация – приемы, целью которых является
привести производные формы слова к общему виду. Стеминнг –
эвристический прием, используемый для получения основы слова.
Обычно выражается в отбрасывании аффиксов. Лемматизация –
точный процесс с использованием лексикона и морфологического
анализа слова, в результате которого отбрасываются производные
оконочания и слову возвращается основная, словарная форма (лемма).
При использовании технологии Mystem[27] от Yandex, был произведен
морфологический разбор введенного всего корпуса, используя этапы,
приведенные выше.
18
Пример морфологического разбора: приложение 1.2
Помимо приведения лексемы к исходной форме здесь проводится и
морфологическое теггирование. Например, тэг «S» говорит о том, что под
нашей леммой скрывается существительное, а тэг «SPRO» отвечает за
местоимение-существительное.
§3. Начальные категории
При использовании словарного подхода к сентимент-анализу большую
роль имеют заранее построенные вспомогательные массивы данных. К
первому типу таких массивов относятся категории начальных объектов. Для
реализации поставленной задачи были построены два типа начальных
категорий. К первому типу относятся структуры, построенные для задачи
извлечения объектов, ко второму - использующиеся для анализа
тональностей постов.
3.1 Построение начальных категорий
Построение объектных категорий:
Просматривается выборка постов из корпуса. В процессе просмотра
выполняется поиск лексем, являющихся релевантными для удовлетворения
типичной информационной потребности пользователя в рамках данной
тематики.
Как релевантные были определены лексемы, относящиеся к тематике
автосервисов, автодилеров, обслуживающего персонала этих заведений;
покупки, продажи, ремонта автомобилей; техобслуживания и автозапчастей.
В список лексем, соответствующих данной категории, заносятся только
лексемы, помеченные тегами A, V, S.
При нахождении новой лексемы, удовлетворяющей выше сказанным
требованиям, проверяется, существует ли категория, логически правильно
описывающая данную лексему. Если да, то пополняется список слов,
характеризующих данную категорию, добавлением в него текущей лексемы.
19
Если же подходящая категория не обнаружена, то создается новая. Для
этого подбирается слово, наиболее полно описывающее ту область, к которой
относится лексема. После этого лексема добавляется в список слов данной
новой категории.
Пример объектных категорий: приложение 1.3
Для решения задачи анализа тональностей нужно было построить
тематические категории. Делается это несколько легче: здесь мы уже знаем,
что тематики всего две (ремонт
и продажи). Опять просматриваем
некоторую выборку из коллекции. При просмотре определяются лексемы,
являющиеся ключевыми в одной из тематик, но при этом эти лексемы никоим
образом не должны быть ключевой в другой. Например, лексема «сервис»
значима для темы «ремонт», но при этом не имеет отношения к теме
«продажи», поэтому мы можем занести эту лексему в первую тематическую
категорию. Обратный пример: лексема «машина» может встречаться в
постах, относящихся к обоим категориям, поэтому мы его просто
пропускаем. В список лексем, соответствующих данной категории заносятся
только лексемы, помеченные тегами A, V, S.
Пример тематических категорий: приложение 1.4
3.2Алгоритмы пополнения начальных категорий
Полученные в прошлом разделе категории достаточно скудны по
своему объему. Необходимо пополнить их, воспользовавшись алгоритмами
для получения слов-синонимов. Для того чтобы расширить начальные
категории, нужно получить список синонимов для каждого из слов-объектов,
попавших в исходные категории.
1) Использование тезаурусов.
Тезаурус – сложный компонент словарного типа, отражающий основные
соотношения понятий в описываемой области знаний. Он включает в себя
всю терминологию, специфическую для данной предметной области, а также
20
отношения между понятиями предметной области. В общем случае, тезаурус
является словарем, в котором указаны семантические отношения (синонимы,
антонимы и тд.) между лексическими единицами.
В качестве примеров тезаурусов можно привести англоязычные:
Wordnet, тематические рубрики Библиотеки конгресса США (Library of
Congress Subject Headings), использующиеся в сфере биологии и медицины
Unified Medical Language System (UMLS); русскоязычные Викисловарь и
РуТез
2) Алгоритмы статистического анализа текстов
В качестве альтернативы затратному ручному созданию тезауруса
можно создать его автоматически путем анализа коллекции документов.
Использование технологии Word2Vec [24]
Word2Vec – набирающая в последнее время технология от Google,
использующаяся для статистического анализа больших массивов текстовой
информации. Она собирает статистику по совместному появлению слов в
фразах, после этого методами нейронных сетей решает задачу уменьшения
размерности и в итоге выдает компактные векторные представления слов,
достаточно полно отражающие отношения этих слов в обрабатываемых
текстах. Таким образом, для любой пары таких векторов мы можем найти
меру схожести. В простейшем случае этой мерой будет косинусная мера
сходства (скалярное произведение векторов):
n
A∙B
similarity=cos ( α )=
=
‖ A‖‖B‖
∑ Ai × Вi
√∑
n
i=1
2
( Ai ) ×
i=1
√∑
n
(B i)2
i=1
где A и B – векторные представления слов, α – угол между ними.
3) Алгоритм, основанный на анализе ссылок
В работе [6] имеется приложение к популярному HITS-алгоритму
анализа ссылок для поиска синонимов.
HITS-алгоритм – алгоритм,
п озвол яю щ и й н аходи ть Интернет- ст раницы, удовлетворяю щие
21
информационной потребности пользователя, используя информацию,
заложенную в гиперссылки.
3.3 Пополнение начальных категорий
В качестве выбранного метода для построения списков синонимов была
выбрана технология word2vec. Этот выбор можно обосновать тем, что метод
(1) характеризуется трудозатратно стью по строения словарей и
необходимостью постоянной ручной поддержки, а метод (3) не подходит изза отсутствия ссылочных отношений в исходной выборке.
В результате построенная модель будет иметь структуру таблицы ключзначение, где в качестве ключа выступает лексема, для которой нужно найти
синонимы, а значение - массив пар лексема:значение близости между данной
лексемой и лексемой-ключом.
Пример таблицы синонимов: приложение 1.5
Пополнение начальных категорий осуществляется нехитрым образом:
выполняется обход по всем лексемам начальной категории. Для каждого
объекта ищется соответствие лексеме-ключу из таблицы. Если соответствие
найдено, то исходная категория пополняется лексемами из массива значений.
§4. Тональные словари
При использовании словарного подхода ключевую роль играет
использование тональных словарей. Для этой работы был составлен
тональный словарь, основанный на классификации сентиментов по бинарной
шкале, т.е слова-сентименты имеют значение либо 1, либо -1.
Пример записей тонального словаря: приложение 1.6
§5. Общий алгоритм решения задач
Для задачи извлечения мнений:
22
1) Построение начальных объектных категорий, их расширение с
помощью списка синонимов, создание тонального словаря,
предобработка начальной коллекции.
2) Пользователь подает на вход, интересующий его запрос. Данный запрос
разбивается на лексемы.
3) Для каждой полученной лексемы выполняется поиск по списку
расширенных объектных категорий. Если найдено соответствие
исходной лексемы и какой-либо лексемы из списка, то расширенная
объектная категория помечается как релевантная.
4) Проведение обхода по корпусу документов. Если найдена лексема из
помеченных в п.2 категорий, то осуществляется просмотр n-граммы,
относящейся к найденному объекту.
5) Если в n-грамме находится слово-сентимент из тонального словаря, то
помечаются объект, слово-сентимент и сам пост. Если слов-сентимент
найдено несколько, то берется ближайшее из них. Определяется
полярность этого сентимента. Объекты, не имеющие в своей n-грамме
слово-сентимент не попадают в итоговую выдачу.
6) Вывод полученных данных: пост, в котором обнаружено мнение, и само
мнение - кортеж (объект, полярность мнения об объекте, содержащий
объект пост).
Для задачи анализа тональностей:
1) Построение начальных тематических категорий, их расширение с
помощью списка синонимов, создание тонального словаря,
предобработка начальной коллекции.
2) Проведение обхода по корпусу документов. На первом этапе сообщения
выборки классифицируются по тематическим категориям. Для лексем
каждого поста проверяется соответствие лексемам расширенных
тематических категорий. Если такое соответствие обнаружено, то пост
отосится к данной тематике. Если пост нельзя однозначно отнести к
23
одной из тематических категорий, то такой пост не попадает в
итоговую выдачу.
3) Для постов, отобранных в предыдущем пункте, находится полярность
тональности, определяемая как знак величины, являющейся средним
арифметическим всех полярностей слов-сентиментов, найденных в
этом посте.
4) Вывод результатов в соответствии с одним из классов, построенных в
предыдущих пунктах.
24
Глава 3. Реализация системы, выполняющей сентиментанализ
§1. Реализация системы
Для реализации системы сентимент-анализа был выбран язык
программирования Java. Ее создание проходило в среде разработки IntelliJ
IDEA 15.0.4. Реализация проходила в соответствии с алгоритмами,
полученным в гл. 2 §5.
Рис. 1 Структура проекта
25
Входные данные:
posts_final – входная выборка сообщений.
object_categories – построенные начальные объектные категории, было
построено несколько подобных выборок (см. гл.3 §2). В рабочем
режиме система использует выборку, построенную на основании 150
постов. В этой выборке были выделены 27 объектных категорий.
Каждая их этих категорий до пополнения синонимами насчитвает в
среднем 5-6 объектов.
topic_categories – построенные начальные тематические категории,
было построено несколько подобных выборок (см. гл.3 §2). В рабочем
режиме система использует выборку, построенную на основании 150
постов. В этой выборке были выделено 2 тематические категории –
ремонт и продажи. Первая категория насчитывает 51 ключевую для
данной тематики лексему, вторая – 40, соответственно.
sentimentdictionary.csv – тональный словарь, было построено несколько
таких словарей (см. гл.3 §2). В рабочем режиме система использует
словарь, содержащий 200 слов-сентиментов. В нем содержится 114
слов с оценкой «1» и 86 с оценкой «-1».
w2v.gz – обученная с помощью технологии word2vec модель [29].
Список синонимов содержит более 1000000 записей, в каждой из
которых лексеме-ключу ставится в соответствие массив от 2 до 100
лексем, имеющих наибольшее значение близости с лексемой-ключом.
Основные компоненты программы:
Fullproject.java – управляющий компонент, управляет режимом работы
сервиса: анализ тональностей/выделение мнений, выбор используемых
входных категорий.
QueryParser.java – обработка входного запроса пользователя в задаче
нахождения мнений, выделение ключевых слов из запроса.
26
ExtendedCategoriesList.java – модуль, принимающий на вход начальные
объектные категории и модель, содержащую список синонимов. В
результате работы модуля строится список расширенных категорий.
Outputter.java – модуль, отвечающий за компановку и вывод
результатов.
SentimentAnalysis.java – модуль, непосредственно решающий задачи
сентимент-анализа.
Вспомогательные компоненты:
CategoriesList.java, Category.java, ExtendedCategory.java, Pair.java,
Post.java, PostList.java, SentPost.java, StemWord.java.
Выходные данные
Output.txt
– вывод результатов: один из 4 классов при анализе
тональностей или список всех мнений, удовлетворяющих запросу
пользователя (в зависимости от поставленной задачи)
Оценка качества:
Evaluation.java – модуль расчета метрик в зависимости от выбранной
задачи.
eval_cat – выделенные экспертом мнения (лексема; полярность; пост,
откуда была выделена лексема) из тестовой выборки.
eval_post – разбитая экспертом на классы тестовая выборка
§2. Оценка качества
В настоящее время не существует объективных методов оценки
качества сентимент-анализа текстов. Поэтому обычно применяется
тестирование, основанное на субъективных оценках экспертов. Вариантом
такого тестирования является получение стандартных метрик полноты и
точности.
27
Анализ тональностей:
Для оценки качества работы разработанной системы были построены
несколько тестовых коллекций. В первую очередь, была создана тестовая
выборка из 1500 оригинальных постов. Каждый из них был отнесен к одному
из четырех классов: положительные посты о продажах, отрицательные посты
о продажах, положительные посты о ремонте, отрицательные посты о
ремонте. Не учитывались посты, которые нельзя однозначно отнести к какойлибо категории, посты, не несущие в себе никакого отношения к какой-либо
из тематических категорий, а также посты, имеющие нейтральную окраску.
Затем для постов из тестовой выборки проводился анализ тональности
построенной системы. На основании размеченной выборки и полученных
результатов работы оценивалась корректность работы системы: считываются
метрики полноты и точности для каждого из четырех классов по формулам из
гл. 1. §1.4.
Извлечение мнений:
Для той же выборки из 1500 сообщений находились значимые в рамках
выбранной тематики лексемы (процесс аналогичен построению объектных
категорий). Если такая лексема была найдена, и для нее могла была
определена полярность тональности, то кортеж (лексема; полярность; пост,
откуда была выделена лексема) помещался в класс для оценки тональности.
Затем для этого класса и результатов работы программы по извлечению
мнений из тестовой выборки считались метрики, построенные аналогично
оценкам из гл. 1. §1.4.
Кроме вышесказанного, для анализа того, насколько сильно влияет на
итоговый результат построение тональных словарей, начальных категорий и
списков синонимов были созданы альтернативные начальные выборки. Так
для исследования влияния построения начальных категорий было создано 5
выборок: 3 выборки по 50 постов для оценки влияния качественного
изменения начальных категорий, выборки по 100 и 150 постов для анализа
того, что происходит при увеличении числа постов. Аналогичные структуры
28
данных были построены для словаря тональностей (словари объемом 50, 100
и 200 наименований), списка синонимов (100000, 500000 и 1000000 записей).
Стоит отметить, что за неимением авторитетных экспертов в
предметной области, разметка и построение тестовых коллекций
выполнялись мной вручную. С целью убедиться в адекватности построения
этих выборок, мною был опрошен ряд студентов факультета ПМ-ПУ, которые
недостатков в процессе построения не обнаружили.
Таким образом, для задачи анализа тональности получились
следующие оценки (пример для класса положительных постов о ремонте):
Количество записей в списке синонимов = 10000000
Количество записей в тональном словаре = 200
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
50
50
50
100
150
Количество постов для построения тематических категорий
Рис.1 Метрики качества при изменении качественного и количественного состава выборки
постов для построения тематических категорий
29
Количество записей в списке синонимов = 10000000
Количество постов для построения тематических категорий = 150
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
50
100
200
Количество записей в тональном словаре
Рис.2 Метрики качества при изменении количества записей в тональном словаре
Количество записей в тональном словаре = 200
Количество постов для построения тематических категорий = 150
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
100000
500000
1000000
Количество записей в списке синонимов
Рис.3 Метрики качества при изменении количества записей в списке синонимов
Можно сравнить результаты с [13], где полнота и точность достигает
80% и 91% соответственно. Столь высокий результат у этих авторов
обусловлен использованием, наряду с тональными словарями, подхода,
30
основанного на правилах. Из рис. 1-3 видно, что изменения количества
постов для построения тематических категорий не приводят к значительному
изменению результата. Напротив, увеличение объемов исходной выборки
повышает качество результата вплоть до 15%. Подобные графики получились
и для остальных классов полученного разбиения.
Для задачи извлечения мнений посчитаны следующие метрики:
Количество записей в списке синонимов = 10000000
Количество записей в тональном словаре = 200
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
50
50
50
100
150
Количество постов для построения объектных категорий
Рис.4 Метрики качества при изменении качественного и количественного состава выборки
постов для построения объектных категорий
31
Количество записей в списке синонимов = 10000000
Количество постов для построения объектных категорий = 150
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
50
100
200
Количество записей в тональном словаре
Рис.5 Метрики качества при изменении количества записей в тональном словаре
Количество записей в тональном словаре = 200
Количество постов для построения объектных категорий = 150
100.0%
90.0%
80.0%
70.0%
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
100000
500000
1000000
Количество записей в списке синонимов
Рис.6 Метрики качества при изменении количества записей в списке синонимов
Результаты для оценки решения подобной задачи можно сравнить с
результатами работы [22]. Аналогично можно заметить, что полученные
результаты довольно отличаются от приведенных в этой работе за счет
дополнительных правил выделения объектов и нахождения полярности.
32
§4. Выводы
Результатом, полученным в данной главе, является программный
компонент, выполняющий сентимент-анализ сообщений социальных систем.
Для построенной системы была проведена оценка качества работы
системы на основании подсчета метрик точности и полноты. Анализируя ее
результаты, можно отметить, что полученные в этой работе значения полноты
и точности для задачи анализа тональностей (56% и 52%) и извлечения
мнений (31% и 40%) являются низкими относительно работ других авторов.
Стоит заметить, что изменение качественного состава исходных
выборок не так сильно влияет на результат, как изменение их количественных
характеристик. Оценки качества показывают, что чем больше исходные
вспомогательные коллекции, тем корректнее система определяет тональность
документов и выделяет из них мнения. Следовательно, решения,
использующие словарный подход, нуждаются в постоянной поддержке
экспертами, а масштабирование вспомогательных коллекций идет на пользу
данным системам.
33
Заключение
В ходе данной работы была спроектирована и реализована система,
выполняющая анализ тональностей и извлекающая мнения из корпуса
документов, несущих эмоциональную окраску.
В качестве базового подхода к решению был выбран метод,
использующий исключительно тональные словари. Именно этим подходом и
обуславливаются относительно низкие показатели при выполнении оценки
качества работы системы.
Наиболее очевидным способом улучшения разработанного сервиса
является добавление к тональному подходу правил, основанных на
морфологическом разборе. Кроме того, можно обратить внимание и на
довольно популярные методы, основанные на машинном обучении.
34
Список литературы
1) Котельников Е.В., Клековкина М.В. Автоматический анализ
тональности текстов на основе методов машинного обучения //
РОМИП. 2011.
2) Крижановский А.А. Автоматизированное построение списков
семантически близких слов на основе рейтинга текстов в корпусе с
гиперссылками и категориями // Компьютерная лингвистика и
интеллектуальные технологии. Труды международной конференции
«Диалог 2006». Бекасово, 2006. C. 297-302.
3) Лукашевич Н.В., Четверкин И.И. Построение модели для извлечения
оценочной лексики в различных предметных областях //
Моделирование и анализ информационных систем. 2013. С. 70-79.
4) Пазельская А. Г., Соловьев А. Н. Метод определения эмоций в текстах
на русском языке // Компьютерная лингвистика и интеллектуальные
технологии. Труды международной конференции «Диалог-2011». М.:
Изд-во РГГУ, 2011. С. 510-522.
5) Худякова М.В., Давыдов С., Васильев В.Г. Классификация отзывов
пользователей с использованием фрагментных правил // РОМИП. 2011.
6) Blondel V., Senellart P. Automatic extraction of synonyms in a dictionary. //
In Proceedings of the SIAM Workshop on Text Mining. Arlington (Texas,
USA): 2002.
7) Dave D., Lawrence A., Pennock, D. Mining the Peanut Gallery: Opinion
Extraction and Semantic Classification of Product Reviews. // Proceedings
of International World Wide Web Conference (WWW‘03). 2003.
8) Hu M., Liu, B. Mining and Summarizing Customer Reviews // Proceedings
of ACM SIGKDD International Conference on Knowledge Discovery and
Data Mining (KDD‘04). 2004.
35
9) Jindal N., Liu B. Mining and Summarizing Customer Reviews //
Proceedings of National Conference on Artificial Intelligence (AAAI‘06).
2006.
10)
Joachims T. Making large-scale SVM learning practical // In B.
Schölkopf, C. J. C. Burges, & A. J. Smola (Eds.), The MIT Press, 1999.
11)
Morinaga, S., Yamanishi, K., Tateishi, K., Fukushima, T. Mining
Product Reputations on the Web // In Proceedings of the 8th ACM SIGKDD
International Conference on Knowledge Discovery and Data Mining (KDD2002). 2002. P. 341-349.
12)
Liu. B. Sentiment Analysis and Subjectivity // In N. Indurkhya & F. J.
Damerau. (Eds.). 2010.
13)
Liu, B. Web Data Mining // Springer. 2007. P. 433.
14)
Liu H. MontyLingua: An end-to-end natural language processor with
common sense. 2004.
15)
Manning C., Raghavan P., Schütze H. Introduction to Information
Retrieval. Cambridge University Press, 2008.
16)
Pang B., Lee L. Seeing stars: exploiting class relationships for
sentiment categorization with respect to rating scales // In Proceedings of the
43rd annual meeting of the Association for Computational Linguistics
(ACL). 2005. P. 115–124.
17)
Pang B., Lee L., Vaithyanathan S. Thumbs up?: sentiment
classification using machine learning techniques // In Proceedings of
Conference on Empirical Methods in Natural Language Processing
(EMNLP-2002). 2002.
18)
Snyder B., Barzilay R. Multiple Aspect Ranking using the Good Grief
Algorithm // Proceedings of the Joint Human Language Technology/North
American Chapter of the ACL Conference (HLT-NAACL). 2007. P. 300–
307.
19)
Su F., Markert K. From Words to Senses: a Case Study in Subjectivity
Recognition // Proceedings of Coling. Manchester, UK: 2008.
36
20)
Thelwall M., Buckley K., Paltoglou G., Cai D., Kappas A. Arvid
Sentiment strength detection in short informal text // Journal of the American
Society for Information Science and Technology. 2010. P. 2544-2558.
21)
Turney, P. Thumbs Up or Thumbs Down? Semantic Orientation
Applied to Unsupervised Classification of Reviews // ACL‘02. 2002.
22)
Wogenstein F., Drescher J., Reinel D., Rill S., Scheidt J. Evaluation of
an algorithm for aspect-based opinion mining using a lexicon-based
approach // Proceedings of the Second International Workshop on Issues of
Sentiment Discovery and Opinion Mining. 2013.
Дополнительные ссылки
23)
ВААЛ – система контекст-анализа текста. http://www.vaal.ru/
24)
Google Word2Vec. https://code.google.com/archive/p/word2vec/
25)
Sentiment140 – sentiment analysis platform.
http://www.sentiment140.com/
26)
Stanford Demo for predicting sentiment of movies reviews.
http://nlp.stanford.edu/sentiment/
27)
Yandex Mystem. https://tech.yandex.ru/mystem/
28)
30dp – opinion search platform. https://www.30db.com/
29)
W2V models – http://panchenko.me/rsr/
37
Приложение
1.1 Пример сообщения с автофорума:
«Очередная благодарность сервисному центру на Тульской за
качественно выполненный кузовной ремонт. Отдельно хочу поблагодарить
мастера-приемщика Любовникова Никиту за чуткое и внимательное
отношение к моим просьбам. Удачи и процветания!»
1.2 Пример морфологического разбора сообщения:
«Анна, спасибо за Ваш отзыв о работе АЦ Прагматика. Все Ваши
замечания будут переданы руководителям отдела Продаж. Мы сделаем всё
для улучшения качества работы с клиентами. Служба качества автоцентра
«ПРАГМАТИКА» (группа компаний «Терравто»)»
После морфологического анализа:
«анн__T:S спасибо__T:S за__T:PR ваш__T:APRO отзыв__T:S
о _ _ T: I N T J + S + P R р а б о т а _ _ T: S а ц а _ _ T: S п р а г м а т и к _ _ T: S
все__T:SPRO+APRO+ADV+PART ваш__T:APRO замечание__T:S быть__T:V
передавать__T:V руководитель__T:S отдел__T:S продажа__T:S мы__T:SPRO
сделать__T:V все__T:SPRO+APRO+ADV+PART для__T:PR улучшение__T:S
качество__T:S работа__T:S с__T:S+PR клиент__T:S служба__T:S
качество__T:S автоцентр__T:S прагматик__T:S группа__T:S компания__T:S
терравто__T:S»
1.3 Примеры объектных категорий:
(замена)
поменять, замена, менять
(подарок)
подарок, розыгрыш, приз, бонус, скидка
38
1.4 Примеры тематических категорий:
(продажи)
покупке, покупка, продал, продавать, купить, Купил, дилерами, дилер,
официалы, неофициалы, официал, неофициал, неофцициалам, официал,
салонах, зарезервировал, зарезервировать, дилеров, оплатил, дилеры
(ремонт)
ТО-1, то, мойку, мойка, помыли, помыть, сервиса, сервис,
отремонтироваться, ТО, диагностики, диагностик, ремонт, СЕРВИС, ТО1,
сервисы, ремонтитесь, ремонтиться, заменить, заменят, заменять, красил,
красить, менял, менять, покраска, замену, замена, Ремонт, меняли
1.5 Пример таблицы синонимов:
Злости
ярости:0.830500 досады:0.766622 злобы:0.760467
гнева:0.726416 негодования:0.693300
Рассвета
восхода:0.788480 рассветом:0.763409
рассвете:0.746620 заката:0.746332 полуночи:0.729912
Акции
акций:0.847871 акциями:0.785646 акциям:0.720247
акциях:0.701508 облигации:0.675198
1.6 Пример записей тонального словаря:
агрессивный -1
адекватный 1
аккуратный 1
афера -1
39
Отзывы:
Авторизуйтесь, чтобы оставить отзыв