САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Магистерская программа
«Прикладная и экспериментальная лингвистика»
АВТОМАТИЧЕСКОЕ ПОПОЛНЕНИЕ
ПРЕДМЕТНО-ОРИЕНТИРОВАННЫХ ТОНАЛЬНЫХ СЛОВАРЕЙ
(НА МАТЕРИАЛЕ ОТЗЫВОВ О БАНКОВСКИХ ОРГАНИЗАЦИЯХ)
Диссертация
на соискание степени магистра
по направлению 45.04.02 «Лингвистика»
Юшиной Татьяны Андреевны
Научный руководитель –
кандидат филологических наук
доцент О.В. Митренина
Санкт-Петербург
2017
Оглавление
Введение ............................................................................................................... 3
Глава I. Автоматический анализ тональности как область прикладной
лингвистики ........................................................................................................ 5
1.1. Автоматический анализ тональности в современном мире .................. 5
1.2. Задачи анализа тональности ..................................................................... 6
1.3. Виды классификации тональности .......................................................... 8
1.4. Проблемы автоматического определения тональности......................... 9
1.5. Методы определения тональности текстов........................................... 11
1.6. Обзор работ по автоматическому составлению тональных словарей 16
1.7. Выводы к главе I ...................................................................................... 21
Глава II. Разработка системы автоматического пополнения тональных
словарей для банковской сферы ................................................................... 23
2.1. Постановка задачи и описание алгоритма ............................................. 23
2.2. Инструменты и технологии ..................................................................... 26
2.3. Реализация алгоритма ............................................................................. 32
2.4. Оценка работы алгоритма ....................................................................... 40
2.5. Выводы к главе II ................................................................................... 44
Заключение ........................................................................................................ 46
Список использованной литературы ................................................................ 49
Приложение 1. Словарь положительно окрашенных слов, выделенных с
помощью алгоритма, со значениями «Хи-квадрат» ........................................ 54
Приложение 2. Словарь отрицательно окрашенных слов, выделенных с
помощью алгоритма, со значениями «Хи-квадрат» ........................................ 61
Приложение 3. Словарь отрицательно окрашенных словосочетаний,
выделенных с помощью алгоритма, со значениями «Хи-квадрат» ............... 72
Приложение 4. Словарь положительно окрашенных словосочетаний,
выделенных с помощью алгоритма, со значениями «Хи-квадрат» ............... 76
2
Введение
С
развитием
интернета
и
появлением
социальных
сетей
пользователи получили возможность выражать свое мнение. Это мнение
может быть относительно услуги или товара, фильма или книги, компании
или политического деятеля. Возникла потребность обрабатывать огромные
объемы информации для определения отношения пользователей к тому
или иному объекту. Однако, количество отзывов достигает десятков тысяч,
и обработка отзывов вручную оказывается невозможной. В связи с этим
широкое распространение получили автоматизированные подходы к
анализу тональности (sentiment analysis).
Цель работы – разработка и реализация алгоритма автоматического
пополнения предметно-ориентированных тональных словарей.
В соответствии с поставленной целью решаются следующие задачи:
– изучить литературу, посвященную анализу тональности;
– рассмотреть существующие методы анализа тональности;
– рассмотреть методы пополнения тональных словарей;
– разработать алгоритм автоматического пополнения тональных
словарей для банковской сферы;
– применить полученный алгоритм и оценить качество работы
алгоритма.
Актуальность работы. В последнее время большое внимание
направлено на решение задачи анализа тональности в различных
предметных
областях.
Автоматизированные
подходы
к
анализу
тональности могут быть полезны как для государственных органов и
политиков, так и для компаний и простых пользователей. Одной из
важнейших задач для анализа тональности является создание словарей
оценочных слов.
Многие исследователи создают словари общеупотребительных
оценочных слов. Однако известно, что в разных предметных областях
3
могут применяться достаточно разные наборы оценочных выражений. Так,
например, одно и то же слово может выражать противоположные
тональности: «The battery life is long» (Батарея работает долго –
положительная тональность) и «The time taken to focus is long» (Долго
фокусируется – отрицательная тональность). Необходимость разработки
алгоритма
автоматического
пополнения
предметно-ориентированных
тональных словарей обусловливает актуальность данной работы.
Научная новизна работы заключается в обращении к ранее мало
изученной предметной области – тональным словарям банковской сферы.
Методы исследования. В качестве основных методов исследования
следует назвать описательный метод, статистический метод и метод
машинного обучения.
Практическая значимость данной работы состоит в том, что
разработанный алгоритм можно применять для извлечения тональных
словарей для других предметных областей, а также использовать его для
маркетинговых исследований.
Материалом для исследования стали отзывы пользователей о
банковских организациях, собранные на сайте banki.ru. Объем корпуса –
2500 отзывов.
4
Глава I. Автоматический анализ тональности как область прикладной
лингвистики
1.1. Автоматический анализ тональности в современном мире
В настоящее время основным средством связи является глобальная
сеть
Интернет.
Ежедневно
миллионы
терабайтов
информации
распространяются по всему миру, при этом текст является основным
посредником социального воздействия и коммуникации. Изучение и
анализ таких текстов дают возможность узнать о тенденциях в мире
виртуального общения и об актуальных проблемах современного
общества.
Одним из таких анализов является автоматизированный анализ
эмоциональной
окраски
текстов
(сентимент-анализ
или
анализ
тональности). Сентимент-анализ – это извлечение положительных или
негативных эмоций из текста [Pang, Lee 2008]. Анализ тональности – одна
из задач компьютерной лингвистики, однако области его применения
могут находиться за пределами самой лингвистики.
Системы
автоматического
анализа
тональности
могут
использоваться как части других систем, например, рекомендательных
(recommendation systems). Сентимент-анализ позволяет выявить объекты с
негативными отзывами и в дальнейшем не рекомендовать их.
Диалоговые системы (question answering) – еще одна область
применения сентимент-анализа, поскольку для свободного диалога
человека и компьютера необходимо, чтобы компьютер мог оценивать
эмоциональную окраску.
Классической областью применения автоматического анализа
тональности является маркетинг, а именно, анализ оценки продукта на
основании отзывов потребителей. Людям всегда требовались советы, если
они стояли перед выбором. С появлением блогов и социальных сетей стало
гораздо проще делиться рекомендациями и мнениями по товарам и
услугам. В связи с этим крупные компании стали понимать, что отзывы
5
одних покупателей могут оказывать огромное влияние на формирование
мнений других покупателей, поэтому компании исследуют интернетинформацию относительно своих брендов и товаров. Сентимент-анализ в
свою очередь помогает анализировать данные отзывы, что значительно
экономит время на просмотре сотен рецензий. Также сентимент-анализ
может использоваться для оценки ситуации на рынке в целом.
Другая область применения – социальные и политические науки. В
данной области анализ тональности может применяться для оценки
отношения к деятельности политиков на основе текстов СМИ или для
оценки политиков во время предвыборной кампании, что помогает
определить исход выборов.
1.2. Задачи анализа тональности
Основная цель анализа тональности – нахождение мнений в тексте и
выявление их свойств. Какие именно свойства будут рассматриваться
зависит от решаемой задачи. Например, целью анализа может быть
извлечение объекта, о котором написан отзыв, или автора, которому
принадлежит мнение.
Задачи
анализа
тональности
можно
условно
разделить
на
следующие группы:
1.
Классификация документов на основе мнений.
В самом простом случае данный тип задач сводится к определению,
является ли текст положительно или отрицательно окрашенным.
2.
Анализ мнений на основе аспектов объекта.
Данная задача ссылается на определение мнений, выраженных
различными аспектами объектов. Аспект — это атрибут или компонент
сущности, исследуемой на тональность, например, у мобильного телефона
(экран, камера, громкость) или банка (расположение, обслуживание,
интернет-банк).
6
Это более сложная задача с увеличенной трудоемкостью, поскольку
проблема требует решения таких задач, как идентификация сущностей и
извлечение их аспектов. Таким образом, на основе отзыва о банке
необходимо понять, какие черты понравились («кредитоустойчивость»,
«получение средств с минимальным пакетом необходимых документов»),
а какие нет («затянутое обслуживание клиентов», «грубый сотрудник»)
[Popescu 2005].
3.
Составление словарей оценочной лексики.
В данном случае, словарь – это список слов и приписанных им
тональностей, в том числе с указанием частоты нахождения слова в тексте.
Иногда данная группа задач является отдельным этапом при разработке
автоматической системы.
4.
Поиск сравнений в отзывах.
В текстах отзывов может производиться сравнение одного товара с
другими по различным аспектам. В рамках данной задачи осуществляется
поиск данных сравнений.
Ниже представлен пример отзыва с сайта otzovik.com о «Почта
банк», пунктуация и орфография автора сохранены:
«Сегодня обратилась в отделение Почты банка с целью оформить
кредит на 400 тыс. руб. Даже не то, чтобы оформить, а сравнить с
другим банком, который мне уже одобрил эту сумму (Сбербанк). При
такой активной рекламе и явное расхваливание этого банка захотелось
сравнить проценты ... А может и вправду, если у Почта банк настолько
выгодные условия, то почему бы не взять кредит у него? С такими
размышлениями я пришла на почту. Оформление заявки заняло не много
времени, из документов у меня попросили только паспорт и СНИЛС.
Оставила
хорошие
впечатления
кредитный
специалист:
доброжелательная и располагающаяся к себе женщина. Оформили, ждём
ответ. Первое, что удивило - сумма ежемесячного платежа - она
оказалась больше чем в Сбере (13400 тыс. против 11250тыс.) За счет
чего такая сумма???? Ведь процент у Почты ниже... Покаия думала,
пришел ответ... Ответ пришёл быстро, минут 5, даже меньше. Он меня
шокировал... В кредите мне отказали, якобы потому, что у меня "плохая
кредитная история". Я была в шоке. Как так??!! Да у меня ОТЛИЧНАЯ
КРЕДИТНАЯ ИСТОРИЯ, ни одной просрочки платежа. Некоторые
кредиты закрывала даже досрочно Откуда же тогда она у меня плохая?!
7
Очень странная система проверки у этого банка. Для Сбера, значит, я надёжный клиент, и они мне одобрили сумму больше, чем 400 тыс., а у
Почта-банк я вдруг странным образом оказалась "неплатильщиком"».
Объектом отзыва является банк «Почта банк». К аспектам относятся:
условия
выдачи
кредита,
специалист
банка,
оформление
заявки,
ежемесячный платеж, процент, кредитная история и др. Оценочная
лексика (тональность): «хороший», «доброжелательная и располагающаяся
к себе», «плохой», «больше», «отличный» и др. Также в данном отзыве
проводится сравнение с другим банком «Сбербанк».
5. Идентификация субъективности/объективности.
Данная задача обычно определяется как отнесение данного текста в
один из двух классов: субъективный или объективный. Однако данная
задача может быть трудно решаема, поскольку субъективность зависит
от контекста,
а
объективный
документ
может
содержать
в
себе
субъективные предложения (например, новостная статья, цитирующая
мнения людей) [Tong 2001].
1.3. Виды классификации тональности
В современных системах автоматического анализа тональности
текста
чаще
всего
положительная/позитивная
используются
тональность,
следующие
оценки:
негативная/отрицательная
тональность и нейтральная тональность. Под нейтральной тональностью
имеется в виду, что текст не содержит эмоциональной окраски. Также
известны и успешные случаи использования и многомерных пространств
[Pang, Lee 2008: 16-17]. Рассмотрим более подробно существующие виды
классификации.
Классификация по бинарной шкале.
Полярность документа можно определять по бинарной шкале. В
этом случае для определения полярности документа используется два
класса оценок: позитивная или негативная. Одним из минусов данного
подхода является то, что эмоциональную составляющую документа не
8
всегда можно однозначно определить, т.е. документ может содержать как
признаки позитивной оценки, так и признаки негативной. Одной из систем,
которая решает эту проблему, является программа SentiStrength [Thelwall
2010]. Данный алгоритм использует словарь эмотивной лексики и
дополнительную лингвистическую информацию для автоматического
распознавания эмоциональной окраски в коротких текстах на английском
языке (система также адаптирована для русского языка). Для каждого
текста результатом является две оценки по пятибалльной шкале от 1 до 5.
Например, нейтральный текст получит оценку [1, -1], а такое предложение,
как "I love dogs quite a lot but cats I really hate” (Я очень люблю собак и понастоящему ненавижу кошек) получит оценку [3, -5], что будет означать,
что в тексте выражается умеренно позитивное и сильно негативное
отношение.
Классификация по многозначной шкале.
Можно классифицировать полярность документа по многозначной
шкале. Так, авторы статьи [Pang, Lee, 2005] расширили задачу анализа
отзывов по бинарной шкале до 4-балльной шкалы. В то же время анализ
отзывов может проводиться по 5-балльной шкале [Snyder 2007] и даже по
шкале от −10 до 10 (от самого отрицательного к самому положительному).
1.4. Проблемы автоматического определения тональности
Проблемы,
возникающие
при
автоматическом
определении
тональности, можно разделить на общие и специфичные.
Среди общих проблем можно выделить следующие:
1. Зависимость значения тональности от предметной области.
Так, в предметной области фильмов понятие «непредсказуемый»
может иметь положительную окраску, однако в области банковского
обслуживания все получается с точностью наоборот. При использовании
методов «обучения с учителем», алгоритм классификации сам формирует
данные о тональности из обучающей выборки. Следовательно, для
9
правильной классификации необходимо, чтобы обучающий и тестовый
корпус имели общую предметную область.
На
практике,
например,
отзывы
пользователей
не
всегда
ограничены какой-либо одной предметной областью. В таком случае
применяется разбиение текста на категории в два подхода: сначала
осуществляется
тематическая
классификация
документа,
затем
классификация тональности [Цветков 2013].
2. Наличие отрицания (например, частицы «не») может изменить
тональность следуемой за ним части высказывания на обратную.
Рассмотрим следующую часть отзыва: «Раньше мне
очень
нравилось пользоваться интернет-приложением Сбербанка. Качество
информационной системы было на высоте. Но использование последней
версии прошивки все портит». В первых двух предложениях автор
высказывает положительное мнение, но из-за использования отрицательно
окрашенного словосочетания «все портит» в третьем предложении общая
тональность относительно аспекта «интернет-приложение» отрицательная.
Для методов машинного обучения, использующих модель типа
«набор слов» (bag-of-words), в качестве простой эвристики можно
искусственным образом к соседним словам добавлять частицу «не». К
примеру, для высказывания «Мне не очень нравится работа банка»
получится строка «Мне не не_очень не_нравится работа банка».
Но такая модификация не является очень точным моделированием
отрицания, в частности, в случаях, когда отрицание может быть выражено
неявно [Wiegand, Balahur 2010].
3. Анализ тональности сарказма и иронии
Высказывания,
тональность,
содержащие
обратную
сарказм,
тональности
могут
отдельных
иметь
слов
общую
(«Отличное
обслуживание для любителей пропустить половину рабочего дня!»). В
некоторых случаях сарказм не воспринимается и самими людьми, что
10
сводит практически к нулю попытки машинного анализатора правильно
определить тональность.
Но стоит отметить, что способы решения такой проблемы
существуют – в работе [Oren, Dmitry, Ari 2010] авторам удалось добиться
точности на уровне 78% на коллекции отзывов на товары, используя метод
частичного обучения (semi-supervised learning).
4. Значение тональности зависит и от непосредственного заказчика
или участника анализа.
Так, например, для банка «Советский» высказывание «У банка
«Советский» отличное обслуживание по сравнению с другими, в
частности, Сбербанком» несёт положительное значение тональности, а
для Сбербанка – отрицательное.
К специфичным проблемам для анализа отзывов относятся:
1. Большой словарь употребляемых слов.
Частое
искажение
использование
написания
слов,
сленга,
намеренное
использование
разных
и
ненамеренное
регистров
при
написании одного и того же слова, использование смайликов значительно
затрудняют автоматическую обработку данных.
2. Недостаточное количество слов в отзыве.
Зачастую на текстовые поля ставятся ограничения по размеру для
более экономного расходования памяти базой данных. Из-за такого
ограничения при наборе текста пользователем, с одной стороны, имеют
место всевозможные сокращения слов, с другой – обрывистые данные с
незаконченной мыслью, так как система изначально принимает длинное
сообщение, а затем при внесении в базу данных обрезает для корректного
пополнения.
1.5. Методы определения тональности текстов
Подходы к автоматической оценке тональности текста можно
разделить на две группы: основанные на правилах (rule-based) и
11
использующие
методы
машинного
обучения
(machine
learning).
Рассмотрим каждую из групп подробнее.
1.
Подходы с использованием правил и словарей
1.1. Метод, основанный на правилах (rule-based).
Данный подход заключается в том, что существует набор заранее
разработанных правил, которые описывают некую предметную область.
Необходимо определить тональность текста, применив данные правила.
Для этого текст разбивается на слова или последовательности слов (ngrams).
Затем полученные данные используются для выделения часто
встречающихся шаблонов, которым присваивается тональная оценка
(положительная или отрицательная). Выделенные шаблоны применяются
при создании правил вида «ЕСЛИ условие, ТО заключение». [Liu 2004,
Клековкина, Котельников 2012]. Например, следующее правило «если
цепочка содержит глагол из списка («любить», «нравиться» и др.) и не
содержит глагола из другого списка («ненавидеть», «отвращать» и др.)
или отрицания» приписывает предложению положительную тональность.
При
использовании
отрицания
перед
найденной
цепочкой
тональность может меняться на противоположную – указанную правилом
или определенную в словаре.
Для получения итоговой оценки тональности текста необходимо
сделать расчет общей суммы весов. При этом, сумма тональностей
фрагментов может быть не равна общей окраске всего текста, в частности,
в случае наличия сарказма. Например, фраза: «Отличное обслуживание
для любителей пропустить половину рабочего дня!» имеет в основе
сарказм.
Также сложности возникают в случаях, когда сработали сразу
несколько
правил.
Для
разрешения
предусмотрены
механизмы
комбинации правил на основе частоты и позиции в документе (как часто
12
правило используется в документе, на какой позиции встречается и др.)
[Хохлова 2016, Пазельская 2011].
Данный алгоритм показывает высокие результаты при большом
наборе правил.
К недостаткам можно отнести то, что создание большого набора
правил затратно по выделяемой памяти и ресурсам, поэтому словари
зачастую описывают лишь определенную узкую тематику, например,
рестораны, фотоаппараты и т.д., поскольку тональная оценка может
зависеть от предметной области. Так, прилагательному «замысловатый» в
обзоре
фильмов
или
ресторанов
скорее
будет
соответствовать
положительная тональность («замысловатый сюжет» или «замысловатый
интерьер»), в то время как в текстах, посвященных техническим
устройствам, отрицательная («замысловатая настройка») [Хохлова 2016,
Kan 2011].
1.2. Метод, основанный на использовании словарей оценочной
лексики.
Метод основан на поиске эмоционально окрашенной лексики в
тексте по заранее составленным словарям. Также данный подход можно
рассматривать в рамках вышеупомянутого подхода, основанного на
правилах, так как эти методы могут использоваться вместе.
Создаются
специальные
словари
(лексиконы),
в
которых
приводится лексика (слова и их сочетания) с присвоенными ей весами в
зависимости от степени позитивной или негативной окраски.
Одним из способов пополнения таких словарей является разработка
правил, которые используются для извлечения новых оценочных слов из
текстов (т.е. тех, которые не попали в словарь). Так, если прилагательные
объединены сочинительным союзом «и» и первое из них содержится в
словаре, то и второму можно приписать такой же вес. На выходе список
этих слов пополнит лексикон. Например, в предложении «This car is
beautiful
and
spacious»
(«Эта
машина
красивая
и
просторная»)
13
прилагательное
«beautiful»
(«красивая»)
имеет
положительную
тональность, значит, можно сделать вывод, что «spacious» («просторная»)
тоже обладает положительной тональностью. Это объясняется тем, что
одно и тоже мнение выражается по обе стороны соединительного союза.
Следующее предложение выглядит неестественно: «The car is beautiful and
difficult to drive» («Эта машина красивая и ее сложно водить»). Но если мы
заменим союз and на but, данное предложение будет допустимо
[Hatzivassiloglou 2000; Liu 2010].
Также необходимо посчитать частоту слова или словосочетания с
положительно или отрицательно окрашенной лексикой. При этом лучше
использовать
максимально
простые
варианты,
например
«хороший» /«хорошо» и «плохой» /«плохо».
В качестве инструмента для измерения совместной встречаемости
лексических единиц используются статистические меры — хи-квадрат,
мера поточечной взаимной информации (PMI) и др.
Для каждого слова, встречаемого в документе, из словаря получают
значение тональности. Чтобы получить итоговую тональность необходимо
взять среднее арифметическое или вычислить сумму значений тональности
всех слов из документа [Цветков 2013, Ding 2008].
Для данного алгоритма желательно иметь достаточно большой
корпус. К достоинствам алгоритма можно отнести его простоту
использования.
Среди недостатков нужно отметить отсутствие универсальности:
для каждой предметной области требуются свои словари [Hatzivassiloglou
1997].
2.
Подходы с использованием машинного обучения (machine
learning)
Существует 2 основных подхода с использованием машинного
обучения – обучение с учителем и без него. Рассмотрим каждый из
вариантов.
14
2.1. Машинное обучение с учителем (supervised learning).
При данном подходе требуется наличие заранее размеченного
набора текстов. Каждый размеченный текст представляет собой пару –
вектор признаков текста и приписанную ему тональность. Под вектором
признаков понимается представление текста как набора терминов (слов,
сочетаний, фраз) с соответствующими им весами.
На основе вышеуказанной выборки строится вероятностный или
статистический классификатор, который впоследствии используется для
определения тональности новой коллекции документов [Joachims 1999].
К достоинствам данного алгоритма следует отнести:
высокую точность определения тональности;
на основе обучающей выборки классификатор самостоятельно
выделяет признаки, влияющие на тональность. Таким образом, проблема
зависимости от предметной области решается с помощью использования
обучающей выборки из той же области.
Недостатки подхода:
Требуется размеченная обучающая выборка;
Результаты могут сильно зависеть от выбранного алгоритма,
его параметров, обучающей выборки [Цветков 2013].
2.2. Машинное обучение без учителя (unsupervised learning).
Главная идея подхода заключается в том, что наибольший вес в
тексте имеют термины, которые чаще встречаются в этом тексте и в то же
время присутствуют в небольшом количестве текстов всей коллекции.
При выделении терминов с наибольшим весом и определении их
тональности можно сделать вывод о тональности всего текста [Turney
2002, Клековкина, Котельников 2012].
Обучение без учителя является ещё одним из разделов машинного
обучения. Отличие состоит в том, что в этом случае для тренировки
алгоритма используется обучающая выборка, состоящая из документов,
15
классы которых заранее неизвестны (или известны, но эта информация не
используется алгоритмом).
Недостатки подхода: точность обычно значительно ниже, чем у
алгоритмов, основанных на обучении с учителем.
Достоинство подхода: для обучения не требуется размеченная
выборка.
Точность
и
качество
системы
анализа
тональности
текста
оценивается в соответствии с тем, насколько хорошо она согласуется с
мнением человека относительно эмоциональной оценки исследуемого
текста. Для этого могут использоваться такие метрики, как точность
и полнота.
Полнота
определяется
как
отношение
верно
приписанных
тональностей (т.е. тех, что совпали с оценкой эксперта) к общему
количеству тональностей (приписанных и не приписанных).
Точность – это отношение верно определенных тональностей ко
всем определенным системой тональностям. [Хохлова 2016].
1.6. Обзор работ по автоматическому составлению тональных словарей
Многие системы сентиментного анализа используют словари,
составленные вручную или полуавтоматическими методами, также
известны и варианты комбинирования подобных словарей.
Существуют
специальные
тезаурусы,
в
которых
размечена
эмоциональная составляющая лексики. Для английского языка это
SenticNet, SentiWordNet и WordNet-Affect.
SenticNet [Cambria, Havasi, Hussain 2012] представляет собой
семантический тезаурус, в котором отражена не только тональность
лексики, но и когнитивная информация. Последнее стало возможным
благодаря
специальным
вычислениям,
использующим
алгоритмы
семантических сетей и искусственного интеллекта. Так, для понятия
«празднование дня рождения» (“birthday party”) системой будет выданы
16
его принадлежность к домену верхнего уровня «события», а также набор
семантически связанных понятий (например, «клоун» или «сладкое»).
В тезаурусе SentiWordNet [Esuli, Sebastiani, 2006] представлены
результаты работы по автоматической разметке синсетов WordNet.
Синсетам
из
WordNet
приписывается
тональная
оценка:
«положительно/нейтрально/отрицательно окрашенный
Для русского языка подобная работа ведется в рамках проекта
RussNet [Дегтева, Азарова 2013].
В тезаурусе WordNet-Affect [Strapparava, Valitutti 2004] наряду с
метками, описывающими эмоции (такими как «физическое состояние»,
«настроение», «поведение», «отношение», «чувство» и др.), синсетам
вручную
были
приписаны
валентности
(позитивная,
негативная,
неоднозначная и нейтральная). Также синсетам были сопоставлены так
называемые эмоциональные категории: «радость», «страх», «гнев»,
«печаль», «отвращение» и «удивление». Синсеты тезауруса переведены с
английского языка на русский и румынский [Sokolova, Bobicev 2009].
Для
русского
обсуждались
языка
существующие
участниками
соревнования
ресурсы
неоднократно
SentiRuEval
все
http://www.dialog-21.ru/evaluation/2016/sentiment/);
(URL:
свободно
распространяемые словари оценочных слов [Kotelnikov, Bushmeleva 2016]
собирались полуавтоматически различными методами.
Полуавтоматические методы предполагают отбор определённого
количества слов и словосочетаний
для словаря и последующую
экспертную разметку. Отбор кандидатов в оценочные выражения
производится с помощью различных методов машинного обучения и
некоторыми другими способами (в частности, перевод с английского языка
с последующей коррекцией [Ulanov, Sapozhnikov 2013]), используются
начальные словари (seed dictionary), содержащие небольшое количество
тонально
окрашенных
лексических
единиц
[Протопопова,
Букия,
Митрофанова 2016].
17
Так, в работе [Chetviorkin, Loukachevitch 2012] описываются методы
построения словаря на основе текстов отзывов с использованием
классификатора для извлечения схожих выражений. Авторы предлагают
использовать совокупность статистических и лингвистических признаков,
позволяющих выявлять оценочные слова, и комбинировать эти признаки с
помощью алгоритмов машинного обучения. Метод базируется на обучении
алгоритма извлечения русской оценочной лексики в одной предметной
области (фильмы), и затем переносе обученной модели на другие
предметные
области.
Авторы
применяют
модель
к
нескольким
предметным областям и затем из оценочных словарей отдельных
предметных областей собирают единый словарь оценочной лексики,
рассматривая его как словарь оценочной лексики в широкой области
товаров.
Извлечение оценочных слов в заданной предметной области
основано на нескольких текстовых коллекциях: коллекции отзывов о
продуктах с оценками пользователей, коллекции описаний продуктов и
контрастной коллекции (например, новостная коллекция). Для каждого
слова в коллекции отзывов вычисляется набор статистических и
лингвистических признаков. Для обучения алгоритмов необходимо
размеченное множество слов. Для этого было вручную размечено
множество всех слов с частотой выше трех из предметной области о
фильмах (18362 слова). Слово относили к категории оценочных в случае
если могли представить его в каком-либо оценочном контексте. Авторы
решали задачу классификации на два класса: разделение всех слов на
оценочные и неоценочные. Для этих целей использовались следующие
алгоритмы: Logistic Regression, LogitBoost и Random Forest.
Используя данные алгоритмы, были получены списки слов,
упорядоченные по вероятности оценочности слов. Для оценки качества
этих списков использовалась мера точности. В результате точность
автоматического извлечения оценочных слов в области фильмов составила
18
81.5%. Для использования системы в новой предметной области
необходимо собрать аналогичный набор коллекций, как и предметной
области о фильмах. Авторы также применили модель извлечения
оценочных слов в таких областях, как книги, игры, цифровые камеры,
мобильные телефоны.
Таким образом, авторы создали русскоязычный список оценочных
слов для широкой области товаров и показали его полезность в задачах,
связанных с настройкой систем анализа тональности на новую предметную
область.
В
дальнейшем
исследователи
планируют
опубликовать
полученный список оценочных слов, и это будет первый общественно
доступный список оценочной лексики для русского языка [Chetviorkin,
Loukachevitch 2012: 593-596].
В работе [Blinov, Kotelnikov 2014] с целью пополнения тонального
словаря используются векторные представления слов. Идея алгоритма –
автоматически расширить первоначально заданный тональный словарь.
Так, для каждого слова в векторном пространстве авторы выделяли
ближайших соседей с помощью косинусного коэффициента (cosine
similarity). Схожесть между двумя векторами 𝑎⃗ = (𝑎1 , … , 𝑎𝑛 ) и 𝑏⃗⃗ =
(𝑏1 , … , 𝑏𝑛 ) определяется по формуле:
𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 (𝑎⃗,⃗⃗⃗⃗⃗⃗⃗
𝑏) = cos(𝜃) =
Σ𝑛
𝑖=1 𝑎𝑖 𝑏𝑖
2
𝑛
2
√Σ𝑛
𝑖=1 𝑎𝑖 √Σ𝑖=1 𝑏𝑖
,
где 𝜃 – угол между веторами, n – размерность пространства.
Поскольку в тональные словари могут входить не только слова, но
и словосочетания, потребовалась дополнительная обработка данных. С
помощью
простых
правил
прилагательное|глагол|наречие >
лексические
единицы,
как
< очень|не > +< очень|не > +<
были
например,
сформированы
не_готовый,
сложные
очень_сытный,
очень_не_приятный, не_очень опрятный и т.д. Конечно, данный подход не
рассматривает все тонально окрашенные слова в полном объеме, но он
19
позволяет
рассмотреть
необходимое
количество
таких
слов
для
дальнейшего анализа тональности с применением полученных словарей
[Blinov, Kotelnikov 2014].
В статье [Dubatovka, Kurochkin, Mikhailova 2016] предложен
алгоритм создания предметно-ориентированных тональных словарей с
использованием
графовой
модели
с
применением
синтаксических
шаблонов. Важно заметить, что данный метод не требует предварительно
размеченных данных, нужен только достаточно большой корпус текстов
предметной области на русском языке. Алгоритм предполагает разбиение
узлов построенного графа на положительные и отрицательные слова.
Сначала собирается небольшой набор прилагательных, тональность
которых не зависит от предметной области, например, хороший, плохой,
замечательный и т.д. Затем выполняется следующая итерация: если
вершина графа имеет наиболее «сильную» связь с уже существующим
прилагательным из начального набора, то добавляется эта вершин графа.
Данный алгоритм также может быть адаптирован и для других языков.
Простой способ извлечения слов для последующей тональной
разметки предложен в статье [Ivanov, Tutubalina 2015]. Авторы собрали
отзывы о ресторанах и машинах, а затем сформировали из полученных
корпусов два раздела «Достоинства» и «Недостатки»: в первый подкорпус
попали отзывы с пользовательской оценкой 5 (по 5-ти балльной шкале), во
второй – отзывы с пользовательскими оценками 1 и 2. Из каждого раздела
выделяются наиболее частотные прилагательные, наречия и глаголы,
таким образом, в словарь после ручной оценки попадают только
однословные
предметной
единицы.
области
отрицательные)
и
Таким
образом,
«рестораны»
«машины»
(741
(1576
получились
–
–
словари
положительные,
положительные,
для
362
–
741
–
отрицательные) [Ivanov, Tutubalina 2015].
Похожий метод составления тональных словарей использовали
авторы статьи [Протопопова, Букия, Митрофанова 2017]. Авторы собрали
20
корпус отзывов на фотоаппараты сервиса «Яндекс.Словари», который
организован на основе бинарной структуры. Таким образом было
сформировано два подкорпуса одинакового объёма (20758 отзывов),
состоящих из текстов – описаний достоинств и текстов – описаний
недостатков. Критерий, на основе которого выделяются тонально
окрашенные слова – оценка корреляции двух случайных событий: «отзыв
содержит слово 𝑤» и «отзыв описывает достоинства». Для оценки
корреляции была построена таблица сопряженности и использовалась
статистик Хи-квадрат. Были получены тональные словари, включающие
около 1,5 тысяч положительно окрашенных единиц и около 2 тысяч
отрицательно окрашенных.
1.7. Выводы к главе I
В первой главе мы рассмотрели проблему анализа тональности и
области его использования, обозначили основные задачи, которые могут
решаться в рамках анализа тональности, а также основные проблемы,
возникающие при анализе отзывов. Мы выделили основные подходы
сентимент-анализа: подход, основанный на словарях и на правилах, и
подход, основанный на машинном обучении, рассмотрели их достоинства
и недостатки.
В главе был проведен обзор последних основных исследований,
посвященных автоматическому составлению тональных словарей:
Ulanov, Sapozhnikov (2013): перевод тональных словарей с
английского языка с последующей коррекцией;
Chetviorkin, Loukachevitch (2012): метод построения словаря на
основе текстов отзывов с использованием классификатора для извлечения
схожих выражений;
Blinov,
Kotelnikov
(2014):
использование
векторных
представлений слов для пополнения тонального словаря;
21
Dubatovka, Kurochkin, Mikhailova (2016): извлечение оценочных
слов при помощи графов, построенных с применением синтаксических
шаблонов;
Ivanov, Tutubalina (2015): использование корпусов отзывов
«Достоинства» и «Недостатки» с последующим выделением наиболее
частотных слов;
корпусов
Протопопова, Букия, Митрофанова (2017): также использование
отзывов «Достоинства»
и
«Недостатки»
с
последующим
обучением на основе критерия согласия Пирсона (Хи-квадрат) для таблиц
сопряженности для извлечения тональных словарей.
22
Глава II. Разработка системы автоматического пополнения
тональных словарей для банковской сферы
2.1.
Постановка задачи и описание алгоритма
Материалом для практической части работы стал корпус отзывов о
банках с веб-ресурса banki.ru. Объем корпуса – 2500 отзывов.
Отзывы представлены в виде следующего набора данных: дата и
время написания отзыва, информация о пользователе, заголовок, текст,
наименование банка, о котором написан отзыв, ссылка на веб-ресурс и
оценка пользователя по 5-тибалльной шкале. Пример такого отзыва
приводится ниже:
Дата: 2016-11-16 11:36:45
Пользователь: sahea
Заголовок отзыва: Быстрая реакция службы безопасности и
операторов в разных ситуациях
Текст отзыва: Произошел со мной недавно неприятный случай.
Подруга попросила через соц.сеть перевести ей деньги. И вроде болтали мы
с ней по сети, и сумма небольшая - 5000. В общем, попалась я как крайне
доверчивое существо. Перевела ей сумму на счет, что она прислала. Через
минуту позвонила служба безопасности банка, которая стала уточнять
про перевод, уверена ли я, что эта информация верна. В процессе общения
выяснили, что общение идет по сети. В общем, заблокировали карту по
риску мошеннических действий. Позвонила подруге и узнала, что ее
аккаунт взломали. В результате действий службы безопасности этого
банка удалось сохранить деньги и не попасть в крайне нехорошую
ситуацию. А вообще мне пока банк нравится. Когда была за границей и
появилась необходимость перепривязать к местной сим-карте, ребята
тоже оперативно среагировали. Сами позвонили - перепривязали.
23
Наименование банка: Тинькофф Банк
Оценка пользователя: 5
Ресурс: http://www.banki.ru/
Для анализа тональности мы используем трехзначную шкалу
оценивания (положительная тональность, отрицательная и нейтральная).
Нам
необходимо
получить
словари
различных
частей
речи
(прилагательные, наречия, глаголы и существительные), а также словари
конструкций, имеющих положительную или отрицательную тональность,
наиболее применимых к предметной области «банковская система», для
дальнейшего автоматического пополнения исходных словарей и их
использования в анализе отзывов.
В нашей работе за основу мы будем использовать методы,
представленные в работах [Ivanov, Tutubalina 2015] и [Протопопова Букия,
Митрофанова 2017], в силу удобства в использовании при решении задач
анализа тональности и простоты реализации.
Для
успешного
решения
поставленной
задачи
необходима
реализация следующего алгоритма:
1.
Формирование двух подкорпусов: текстов с описаниями
достоинств и текстов с описаниями недостатков.
Формирование
каждого
из
подкорпусов
будет
основано
на
пользовательской оценке (по 5-тибалльной шкале): если оценка равна 1,
тогда отзыв описывает недостатки; если оценка равна 5, тогда отзыв
описывает достоинства. В отличие от отзывов на товары народного
потребления банковские отзывы редко бывают смешанными.
Объем
подкорпуса
достоинств
составил
833
отзыва,
объем
подкорпуса недостатков – 1345.
2.
Отбор слов-кандидатов на включение в тональные словари на
основе полученных подкорпусов.
24
Элементы в тональные словари дополняются путем анализа каждого
слова и его частоты в подкорпусе достоинств/недостатков. Такой же анализ
применяется и для анализа тональных конструкций: «прилагательное +
существительное», «глагол + наречие» и т.д.
3.
Заполнение тональных словарей на основе проведенного
анализа слов и тональных конструкций.
В основу анализа распределения слов по тональным словарям входит
оценка корреляции двух случайных событий: «слово содержится в отзыве»
и «отзыв описывает недостатки/достоинства». И если одно событие с
большой вероятностью влечет другое, то, скорее всего, лексема имеет
положительную тональность. В результате необходимо построить таблицу
сопряженности, выбрав наиболее подходящую статистику.
После распределения слов по словарям для выделения тональных
лексем и конструкций необходимо эмпирически подобрать порог значения
статистического критерия, который позволил бы отделить нейтральные
единицы словаря от окрашенных.
Полученные списки слов из словарей наших корпусов мы и
добавляем в исходные словари.
4.
Оценка работы алгоритма на основе метрик полноты и точности
с использованием кросс-валидации.
Для оценки качества работы нашего алгоритма был выбран метод
кросс-валидации по трем блокам. Корпус был разбит на три равные части по
726 отзывов, где 2/3 корпуса использовались в качестве обучающей
выборки и 1/3 – в качестве тестовой выборки. На каждой итерации были
посчитаны полнота и точность, затем вычислено их среднее значение.
Тональность отзывов считается следующим образом. Каждое слово
отзыва принимает значение либо +1 (оно находится в словаре достоинств), 1 (находится в словаре недостатков), 0 (нейтральное – не находящееся ни в
25
одном тональном словаре). Далее подсчитывается сумма по всему отзыву за
каждое слово. В зависимости от знака суммы оно попадает либо в корпус
достоинств, либо в корпус недостатков, либо считается не рассматриваемым
(в случае 0).
2.2.
Инструменты и технологии
Для
успешной
реализации
работы
алгоритма
использованы
следующие инструменты и технологии.
Язык Python
Python – это высокоуровневый расширяемый и встраиваемый язык
программирования с поддержкой открытого кода. Python является простым
и, в то же время, мощным интерпретируемым объектно-ориентированным
языком программирования. Он предоставляет структуры данных высокого
уровня, имеет изящный синтаксис и использует динамический контроль
типов, что делает его идеальным языком для быстрого написания
различных приложений, работающих на большинстве распространенных
платформ [Россум 2001].
В программировании на Python реализована поддержка структурной,
функциональной, императивной, объектно- и аспектно-ориентированной
парадигм.
Основные
архитектурные
черты
–
динамическая
типизация,
автоматическое управление памятью, полная интроспекция, механизм
обработки исключений, поддержка многопоточных вычислений и удобные
высокоуровневые структуры данных [Россум 2001].
Python – язык универсальный, он широко используется для
различных целей – обработка текста и базы данных, создание Web-
26
приложений (клиентских и серверных), встраивание интерпретатора,
программирование пользовательского интерфейса.
Python выбран в качестве языка разработки в связи с наличием
текстовых библиотек, наиболее подходящих для реализации алгоритма по
функционалу, затрачиваемой памяти и скорости выполнения.
Среда разработки IDLE
IDLE
(Integrated
DeveLopment
Environment)
–
это
кроссплатформенная (Windows, MAC, Linux) интегрированная среда
разработки на языке Python, которая позволяет решать задачи просмотра,
редактирования, запуска и отладки программного кода Python [URL:
www.python.org].
Имеет ряд дополнительных функций, связанных с успешной
интеграцией
и
настройкой
программных
библиотек,
интерактивное
перемещение по буферу обмена, автоматическая поддержка отступов,
подсветка кода и т.д.
Отличительные черты IDLE Python:
среда запрограммирована на Python с использованием GUIинструментария;
кроссплатформенность: работает на Windows и Unix;
многооконный текстовый редактор с функцией многократной
отмены, подсветкой синтаксиса Python и многими другими свойствами;
отладчик (IDLE имеет встроенную систему отладки, позволяющую
запускать программу построчно, что облегчает процесс поиска ошибок).
Данная
популярная
среда
и
разработки
имеющая
весь
была
использована
необходимый
как
наиболее
инструментарий
для
программной реализации алгоритма [URL: www.python.org].
27
Библиотеки Python
Pymorphy2. Класс MorphAnalyzer.
Pymorphy2 – библиотека для морфологического анализа. Выполняет
лемматизацию и анализ слов, способен осуществлять склонение по
заданным грамматическим характеристикам слов.
Анализатор Pymorphy2 позволяет:
приводить слово к начальной форме («изменил» -> «изменить»);
ставить слово в нужную форму (ставить слово во множественное
число, менять падеж слова и т.д.);
возвращать грамматическую информацию о слове (число, род,
падеж, часть речи и т.д.) [URL: https://pymorphy2.readthedocs.io].
MorphAnalyzer – специальный класс для морфологического анализа
русских слов.
Данная библиотека была выбрана в качестве наиболее подходящей
для приведения слов в отзывах к нормальной форме и добавления их в
тональные словари.
Библиотека Codecs
Codecs – Python-библиотека (модуль), осуществляющая связь между
интерпретатором и файловой системой операционной системы.
Этот модуль определяет базовые классы для кодеров и предоставляет
доступ к внутреннему реестру кодеров, позволяет выполнить различного
рода функции, связанные с чтением файла, изменением его структуры,
удалением, сжатием и т.д.
Библиотека используется в связи с наличием повышенной скорости и
больших возможностей обработки информации.
28
Библиотека Math
Math
–
для
Python-библиотека
работы
с
математическими
функциями, представляющая обширный функционал для работы с числами.
Существует три встроенных числовых типа данных:
целые числа (int);
вещественные числа (float);
комплексные числа (complex).
Представленные в библиотеке функции представляют результаты
расчета в оптимальное, установленное время.
Библиотека используется в данной работе при статистическом
анализе данных.
Таблицы сопряженности
Таблица
совместного
сопряженности
распределения
в статистике —
двух переменных,
метод
представления
предназначенный
для
исследования связи между ними. Таблица сопряженности является наиболее
универсальным средством изучения статистических связей, так как в ней
могут быть представлены переменные с любым уровнем измерения.
Таблицы сопряженности часто используются для проверки гипотезы о
наличии связи между двумя признаками с использованием точного теста
Фишера или критерия согласия Пирсона [Аптон 1982: 7-15, Шитиков,
Розенберг 2003].
Критерий согласия Пирсона
Критерий согласия Пирсона или критерий согласия χ2 (Хи-квадрат) –
один из наиболее популярных критериев для проверки гипотезы о
соответствии
эмпирического
распределения
предполагаемому
29
теоретическому распределению F(x) при большом объеме выборки (n ≥ 100)
[Лемешко 2011].
Использование критерия χ2 предусматривает разбиение размаха
варьирования выборки на интервалы и определения числа наблюдений
(частоты) nj для каждого из e интервалов. Для удобства оценок параметров
распределения интервалы выбирают одинаковой длины.
Критерий вычисляется по следующей формуле:
χ2
=
(𝑛𝑗 −𝑛𝑝𝑗 )2
𝑒
∑𝑗=1
, где pj – вероятность попадания изучаемой
𝑛𝑝
𝑗
случайной величины в j-и интервал, вычисляемая в соответствии с
гипотетическим законом распределением F(x) [Лемешко 2011, Степнов
1985].
Критерий выбран как наиболее подходящий и универсальный
вариант
для
проверки
гипотезы
соответствия
теоретическому
распределению F(x), применимый для любых видов функций, даже при
неизвестных значениях их параметров.
Кросс-валидация (cross-validation)
Кросс-валидация, или перекрестная проверка, – техника валидации
модели для проверки того, насколько успешно применяемый в модели
статистический анализ способен работать на независимом наборе данных.
Кросс-валидация дает значимые результаты только когда тренировочный
набор данных и тестовый набор данных берутся из одного источника.
Кросс-валидация
используется
в
случае,
когда
получение
дополнительных данных затруднительно или невозможно.
Обычно кросс-валидация используется в ситуациях, где целью
является предсказание, и хотелось бы оценить, насколько предсказывающая
модель способна работать на практике. Один цикл кросс-валидации
включает разбиение набора данных на части, затем построение модели на
30
одной части (называемой тренировочным набором), и валидация модели на
другой части (называемой тестовым набором). Чтобы уменьшить разброс
результатов, разные циклы кросс-валидации проводятся на разных
разбиениях, а результаты валидации усредняются по всем циклам [Arlot,
Sylvain 2010].
Распространенные типы кросс-валидации
Кросс-валидация по K блокам (K-fold cross-validation)
В этом случае исходный набор данных разбивается на K одинаковых
по размеру блока. Из K блоков один оставляется для тестирования модели, а
остающиеся K-1 блока используются как тренировочный набор. Процесс
повторяется K раз, и каждый из блоков используется один раз как тестовый
набор. Получаются K результатов, по одному на каждый блок, они
усредняются или комбинируются каким-либо другим способом, и дают
одну оценку.
Преимущество такого способа перед случайным сэмплированием
(random subsampling) в том, что все наблюдения используются и для
тренировки, и для тестирования модели, и каждое наблюдение используется
для тестирования в точности один раз.
Валидация последовательным случайным сэмплированием (random
subsampling)
Этот метод случайным образом разбивает набор данных на
тренировочный и тестовый наборы. Для каждого такого разбиения, модель
подгоняется
под
тренировочные
данные,
а
точность
предсказания
оценивается на тестовом наборе. Результаты затем усредняются по всем
разбиениям.
Преимущество такого метода перед кросс-валидацией на K блоках в
том, что пропорции тренировочного и тестового наборов не зависят от
числа повторений (блоков).
Недостаток метода в том, что некоторые наблюдения могут ни разу
не попасть в тестовый набор, тогда как другие могут попасть в него более,
31
чем один раз. Другими словами, тестовые наборы могут перекрываться.
Кроме того, поскольку разбиения проводятся случайно, результаты будут
отличаться в случае повторного анализа.
Поэлементная кросс-валидация (Leave-one-out, LOO)
Здесь отдельное наблюдение используется в качестве тестового
набора данных, а остальные наблюдения из исходного набора – в качестве
тренировочного. Цикл повторяется, пока каждое наблюдение не будет
использовано один раз в качестве тестового. Это то же самое, что и Kблочная кросс-валидация, где K равно числу наблюдений в исходном
наборе данных [Arlot, Sylvain 2010].
В связи с небольшим объемом корпуса для оценки качества работы
нашего алгоритма мы выбрали метод кросс-валидации по K блокам. В
нашем случае k = 3.
2.3.
Реализация алгоритма
1. Формирование двух подкорпусов.
Были созданы следующие два подкорпуса:
corpusNeg – подкорпус отрицательных отзывов,
corpusPos – подкорпус положительных отзывов.
Для формирования корпуса использовалась процедура load_corpus,
параметром которой является наш исходный файл с отзывами о банках.
#Заполнение корпуса
def load_corpus(file):
#открываем файл на чтение
with codecs.open(file, 'r', 'utf8') as file_dict:
#для каждого отзыва в файле
for line in file_dict:
#массив columns получается после преобразования строки с
данными отзыва к нижнему регистру и разбивкой на элементы табуляцией
columns = line.lower().rstrip('\r\n').split('\t')
#если строка отзыва не пустая
if len(columns)>6:
#comment – текст отзыва, score – пользовательская оценка
32
comment = columns[4].lower()
score = int(columns[7])
#Если оценка равна 1, то добавляем отзыв в корпус недостатков,
if score=1:
corpusNeg.append(comment)
else:
#Если оценка равна 5, то добавляем отзыв в корпус достоинств
if score=5:
corpusPos.append(comment)
#читаемый файл по окончании использования закрывается
file_dict.close()
2. Отбор слов-кандидатов на включение в тональные словари на
основе полученных подкорпусов.
Определим тональные словари следующим образом:
dictPosAdj – тональный словарь прилагательных положительной
окраски,
dictNegAdj – тональный словарь прилагательных отрицательной
окраски,
dictPosAdv – тональный словарь наречий положительной окраски,
dictNegAdv – тональный словарь наречий отрицательной окраски,
dictPosNoun – тональный словарь существительных положительной
окраски,
dictNegNoun – тональный словарь существительных отрицательной
окраски,
dictPosVerb – тональный словарь глаголов положительной окраски,
dictNegVerb – тональный словарь глаголов отрицательной окраски,
Для их заполнения воспользуемся процедурой word_list с 2-мя
параметрами: корпусом и его тональностью.
#Заполнение списков тонально окрашенных слов (по частям речи)
def word_list(corpus,tone):
#Определяем переменную – морфологический анализатор
m = MorphAnalyzer()
ne = False
#для каждого отзыва в корпусе:
33
for comment in corpus:
#для каждого слова в отзыве
for w in simple_word_tokenize(comment):
#если не, то пропускаем слово
if w == 'не':
ne = True
continue
#передаем переменной w все ее морфологические параметры
w = m.parse(w)[0]
#n – начальная форма слова
n = w.normal_form
#задаем переменную текущего словаря в зависимости от части речи
слова w и тональности корпуса corpus
tekDict={}
#если w – прилагательное, то заполняем тональные словари
прилагательных
if 'ADJF' in w.tag and not ('Anum' in w.tag or 'Apro' in w.tag):
if tone=='-':
tekDict=dictNegAdj
else:
tekDict=dictPosAdj
#если w – существительное, то заполняем тональные словари
существительных
if 'NOUN' in w.tag:
if tone=='-':
tekDict=dictNegNoun
else:
tekDict=dictPosNoun
#если w – глагол, то заполняем тональные словари глаголов
if 'VERB' in w.tag:
#pair.append(n)
if tone=='-':
tekDict=dictNegVerb
else:
tekDict=dictPosVerb
#если w – наречие то заполняем тональные словари наречий
if 'ADVB' in w.tag:
if tone=='-':
tekDict=dictNegAdv
else:
tekDict=dictPosAdv
#если начальной формы слова w нет в рассматриваемом на текущей
итерации словаре, тогда мы ее добавляем, иначе увеличивает значение
частоты на 1
if n not in tekDict:
34
if not ne:
tekDict[n]=1
else:
if not ne:
tekDict[n]+=1
Аналогично составляются словари тональных конструкций:
dictPosAdj_Noun – тональный словарь конструкций «прилагательное
+ существительное» положительной окраски,
dictNegAdj_Noun – тональный словарь конструкций «прилагательное
+ существительное» отрицательной окраски,
dictPosAdv_Verb – тональный словарь конструкций «глагол +
наречие» положительной окраски,
dictNegAdv_Verb – тональный словарь конструкций «глагол +
наречие» отрицательной окраски,
dictPosVerb_Noun – тональный словарь конструкций «глагол +
существительное» положительной окраски,
dictNegVerb _Noun – тональный словарь конструкций «глагол +
существительное» отрицательной окраски,
Пополнение происходит с одним принципиальным отличием – в
конструкциях
проверяется
характеристиками
слов,
соответствие
получаемых
с
помощью
морфологическими
морфологического
анализатора m (MorphAnalyzer). Например, при выделении словосочетания
«прилагательное + существительное» выполняется следующая проверка:
#Осуществляется проверка двух подряд размещенных слов на
соответствие необходимой части речи (в нашем случае «прилагательное +
существительное» и «существительное + прилагательное», а также
проверяем, что прилагательное не является численным или местоименным)
if ('ADJF' in w1.tag and 'NOUN' in w2.tag and not ('Anum' in w1.tag or
'Apro' in w1.tag))
or
('ADJF' in w2.tag and 'NOUN' in w1.tag and not ('Anum' in w2.tag or
'Apro' in w2.tag)):
35
#Далее проводится проверка на соответствие морфологических
признаков (в нашем случае это род, число, падеж)
if (w1.tag.gender == w2.tag.gender) and (w1.tag.number ==
w2.tag.number) and (w1.tag.case == w2.tag.case):
3. Заполнение тональных словарей на основе проведенного анализа
слов и тональных конструкций.
Нами выбрана наиболее подходящий для анализа статистический
критерий – критерий согласия Пирсона (𝜒 2 ).
Таблица сопряженности представляет собой набор статистик
(𝑎, 𝑏, 𝑐, 𝑑), где a – частота данной лексемы в корпусе достоинств, b – в
корпусе недостатков, с – частота прочих лексем в корпусе достоинств и d –
частота прочих лексем в корпусе недостатков. Статистика для таблиц
сопряженности 2×2 определяется следующим образом:
𝑛(𝑎𝑑 − 𝑏𝑐)2
𝜒 =
,
(𝑎 + 𝑏)(𝑎 + 𝑐)(𝑏 + 𝑑)(𝑐 + 𝑑)
2
где n = a + b + c + d.
Для выполнения пункта 3 алгоритма воспользуемся функцией
SortKhiDict с 2-мя параметрами в виде словаря dict1 и dict2, при этом dict1 –
словарь, в который будет внесена коррекция с учетом подсчета 𝜒 2.
def SortKhiDict (dict1, dict2):
# считаем сумму частот всех слов каждого из этих словарей
total1 = sum(dict1.values())
total2 = sum(dict2.values())
# Определяем переменную, которая будет хранить всю информацию
об отсортированных значениях слов
sortDict={}
#Присваиваем значения переменных вышеуказанной формулы
критерия Пирсона и рассчитываем значение 𝜒 2
for word in dict1:
a = dict1[word]
b=0
if word in dict2:
b = dict2[word]
c = total1 - a
36
d = total2 – b
#если частота данной лексемы в dict1 больше, чем в dict2, тогда
добавляем ее в sortDict, иначе она не является значимой для тонального
словаря
if a>b:
sortDict[word] = khi(a, b, c, d)
#производим итоговую сортировку по значениям слов и возвращаем
словарь sortDict
l = lambda x: x[1]
sortDict = sorted(sortDict.items(), key=l, reverse=True)
return sortDict
Затем было эмпирически подобраны пороговые значения критерия
«Хи-квадрат» и отобраны слова для пополнения словарей (прилагательных,
существительных,
наречий,
глаголов)
и
тональных
конструкций
(«существительное + прилагательное», «существительное + глагол», «глагол
+ наречие»).
Пороговое значение критерия «Хи-квадрат» для положительно
окрашенных прилагательных – 4,9352; для наречий – 4,8354; для
существительных – 8,9252; для глаголов – 6,0403.
Пороговое значение критерия «Хи-квадрат» для отрицательно
окрашенных прилагательных – 0,6079; для наречий – 1,2413; для
существительных – 10,6405; для глаголов – 3,0637.
Таким образом, было выделено 253 положительно окрашенных
слова, из них 93 – прилагательные, 63 – наречия, 49 – существительные, 48
– глаголы и 449 отрицательно окрашенных слов, из них 163 –
прилагательные, 71 – наречия, 107 – существительные, 108 – глаголы.
Среди положительных слов были выделены: профессиональный,
приятный, быстрый, вежливый, грамотный, качественный; оперативно,
удобно, терпеливо; благодарность, отзывчивость; понравиться, помочь,
радовать
и
другие.
Были
выделены
слова,
которые
не
имеют
37
положительной тональности, а скорее являются нейтральными: втбшный,
тинькофф, скайп, анна.
Среди отрицательных слов были выделены: ипотечный, лишний,
хамский, судебный; неожиданно, некорректно, неправомерно; ипотека,
задолженность; нарушать, блокировать. Однако, с наиболее высокими
показателями «Хи-квадрат» оказались слова, имеющие на первый взгляд
положительную тональность, как например, хороший, выгодный, выгодно.
Если мы обратимся к исходному корпусу, то увидим, что выгодный,
выгодно и правда имеет неоднозначную тональность. Так, то, что выгодно
для банка может быть совсем невыгодно для его клиентов:
В условиях без бутылки и оператора не разберешься. Некоторые
вещи здравому смыслу не поддаются - например автоматическая отмена
автотраты через 30 дней. Хотя если начинаешь думать - почему это
выгодно банку….
Почему тогда Сбербанк распорядился капиталом, так как выгодно
ему!!??
Банк блокирует ваши деньги и требует, под прикрытием закона
№115 (отмывание денег), предоставить обоснование их происхождения, не
верит этим обоснованиям, и заставляет вас перечислить деньги обратно
отправителю за от суммы ВАШИХ денег. Представляете себе, какой
выгодный бизнес для банка?!
Нет же, им лишь бы подороже и повыгоднее для себяпродать и
навязать услуги.
Неоднозначная тональность и у прилагательного хороший. Так, в
корпусе много примеров использования данного прилагательного с
сарказмом, чем можно объяснить его попадание на первое место в списке
отрицательных прилагательных.
Какой уж тут хороший день если не можешь воспользоваться
своими деньгами и совершить запланированные платежи!
Возникла
необходимость
забрать
вклад.
Позвонил
(идентифицировали по телефону, сразу по имени-отчеству обратились),
попросил заказать на завтра деньги. Потребовали серию и номер
38
паспорта, без этого никак. Ссылаются на некий внутренний регламент,
согласно которому меня надо "идентифицировать как клиента", хотя,
насколько я знаю, идентификация необходима в случае проведения
операции, а в данном случае, никакой операции не производится. А при
этом я им должен по телефону выложить все свои паспортные данные.
Хорошая безопасность…
Как этот банк принимает сотрудников? Она походу никогда не
слышала о качестве обслуживания? Мы с семьей держим вклады с
хорошими суммами в этом банке и из-за таких сотрудников как Ц-нко П.С.
хочется убежать в другой банк. Кредитную карту нужно было продать, а
не втюхать с доп.услугами! Я бы взяла ее и пользовалась, если бы знала как
правильно с ней работать. Как говорится хорошее впечатление о банке.
Клиент приведет как минимум 5-х клиентов, а из-за плохого, уведет 10-х!
Управляющая должна была уладить конфликт, я понимаю что у всех
планы, но нужно их грамотно предлагать, а не втюхивать. Примите меры,
я очень обижена на этот банк из-за такого отношения.
Полученные списки представлены в Приложениях 1 и 2.
Количество
выделенных
отрицательно
окрашенных
слов
практически в два раза больше выделенных положительных слов. Это
объясняется
объемами
сформированных
подкорпусов
(подкорпус
достоинств – 833 отзыва и подкорпус недостатков – 1345 отзывов).
Аналогичным образом были подобраны эмпирически пороговые
значения критерия «Хи-квадрат» для положительно окрашенных биграмм
(10,6330081) и для отрицательно окрашенных биграмм (0,4636189). Таким
образом, было выделено 248 положительных и 152 отрицательных
словосочетаний. Полученные списки представлены в Приложениях 3 и 4.
Среди отрицательно окрашенных словосочетаний удалось выделить
следующие: коллекторское агенство, банкомат съел, банкомат зажевал,
технический сбой, длительное ожидание, хамское поведение, крайне
возмущать и другие. Интересно заметить, что словосочетания, связанные с
ипотекой, как например, ипотечный кредит, ипотечный договор алгоритм
оценил, как отрицательные. Также были выделены некоторые устойчивые
словосочетания: шарашкина контора, мелкий шрифт.
39
Среди
положительных
словосочетаний
были
выделены
как
общеупотребимые словосочетания (качественная услуга, высокий уровень,
индивидуальный подход, комфортный офис, достойный сервис), так и
относящиеся к банковской сфере (быстро одобрить (кредит), приличный
кэшбэк, минимальный процент, выгодная конвертация).
Однако в словари словосочетаний попали и нейтральные биграммы:
мобильное приложение, ленинский проспект, волгоградский филиал,
банковский счет и др. Это может быть связано либо с высокой частностью
данных
словосочетаний,
либо
с
тем,
что
использование
оценок
пользователей не может служить достаточным основанием для разбиения
корпуса на 2 части (подкорпус достоинств и подкорпус недостатков).
2.4.
Оценка работы алгоритма
Оценка работы алгоритма на основе метрик полноты и точности
была проведена с использованием кросс-валидации.
Для реализации метода кросс-валидации мы последовательно
разбили корпус отзывов на 3 части: corpusA, corpusB, corpusC, содержащие
одинаковое количество неповторяющихся отзывов, равное 726.
Далее мы рассмотрели 3 варианта компоновки вышеуказанных
частей (подкорпусов) для получения значений полноты и точности:
1. CorpusA U corpusB – обучающая выборка, corpusC – тестовая;
2. corpusB U corpusC – обучающая выборка, corpusA – тестовая;
3. corpusA U corpusC – обучающая выборка, corpusB – тестовая.
Каждый вариант имеет одинаковую последовательность действий
оценки работы алгоритма, представленную ниже.
Для
анализа
отзывов
введем
значения,
используемые
при
оценивании слов:
-1 – слово из словаря отрицательной тональности;
40
1 – слово из словаря положительной тональности;
Если
перед
словом
стоит
отрицательная
частица
«не»,
то
тональность рассматриваемого слова меняется на противоположную.
Рассмотрим пример оценивания отзывов; орфография и пунктуация
авторов сохранены.
Не в первый раз оказываюсь в крайне неприятной (-1) ситуации в
связи с тем, что не могу дистанционно (-1) осуществить переводы. Иногда
это нужно ну очень срочно! Как так можно? Сегодня с 16.00
система_висит (-1) постоянно. О какой оперативности (1) может идти
речь? Эти технические_сбои (-1), внутренние ошибки (-1) происходят в
последнее время постоянно. Сегодня я вообще оказалась в ситуации, когда
не могу провести важный и обязательный платеж по причине какой-то
ошибки (-1). Очень расстроена (-1) тем, что ВТБ24 так "подставляет" (-1)
своих клиентов.
Сумма оценок = -7, отзыв – отрицательный.
Пригласили на собеседование в назначенное время, заставили (-1)
больше часа ждать в коридоре, после чего препроводили к мерзкой (-1)
хамоватой (-1) бабе (-1), которая наглым (-1) тоном в презрительной (-1)
форме пыталась оскорбить (-1) и унизить (-1). В конечном итоге не
предоставили никакой информации и выпроводили (-1) вон (-1). Испортили
(-1) настроение на весь день.
Сумма оценок = -11, отзыв – отрицательный.
Хочу рассказать об опыте знакомства с Почта банком. Мне срочно
были нужны деньги, а времени на сбор документов для кредита не было.
Подруга посоветовала (-1) обратиться в офис Почта банка на
ул. Тухачевского. Я была приятно (1) удивлена. Располагающая_обстановка
(1), все сотрудники доброжелательны (1), даже чай мне предложили. Я
если честно (1) насторожилась (-1), думала обманут (-1), раз такие
добрые (1) значит в чем то есть подвох (-1). Сотрудница Людмила
рассказала_подробно (1) условия кредита (-1), и буквально через 15 минут
пришло положительное (1) решение. Я была очень довольна (1), не
мурыжили (-1 =>1), не_впаривали (-1 =>1) ничего, все быстро_оформили
(1), все объяснили (1). Понятно (1) как погашать кредит (-1), куда
обращаться, если вдруг вопросы возникнут. Плюс мне еще банк одобрил (1)
карту БЕЗ_процентов (1)!!! Я очень довольна (1) и работой сотрудников
банка и кредит (-1) мне отличный (1) предоставили под 16.9% и карта,
вообще какая то чудесная (1)! В общем никаких нервов, только
положительные (1) эмоции. Спасибо сотрудникам офиса на Тухачевского
11 а! Теперь всем буду советовать (1) к Вам обращаться!!!
41
Сумма оценок = 13, отзыв – положительный.
При автоматизации алгоритма мы получаем следующий набор
действий:
#для всех отзывов в корпусе рассчитываем сумму оценок каждого
слова, принимая изначально значение переменной sum_otzyv, равное нулю.
for comments in corpus:
sum_otzyv = 0
#если текущее слово «не», тогда знак слов приобретает
отрицательную окраску
if w == 'не':
sign = -1
continue
score = 0
#далее анализ по частям речи
sum_otzyv = 0
#Если текущее слово – прилагательное, то присваиваем переменная
score принимает значение -1, если
слово существует в словаре
прилагательных с отрицательной окраске.
Если же слово в словаре положительной тональности, тогда
значение переменной score равно 1, иначе значение score принимает
нейтральное значение.
if 'ADJF' in w.tag and not ('Anum' in w.tag or 'Apro' in w.tag):
if n in dictNegAdj:
score = -1
else:
if n in dictPosAdj:
score = 1
else:
score = 0
#Аналогично с остальными частями речи
if 'NOUN' in w.tag:
if n in dictNegNoun:
score = -1
else:
if n in dictPosNoun:
score = 1
else:
score = 0
if 'VERB' in w.tag:
if n in dictNegVerb:
score = -1
else:
if n in dictPosVerb:
42
score = 1
else:
score = 0
if 'ADVB' in w.tag:
if n in dictNegAdv:
score = -1
else:
if n in dictPosAdv:
score = 1
else:
score = 0
#Оценка слова зависит от двух параметров: тональности слова
и наличия перед словом частицы «не»
sum_otzyv += score * sign
#если пользовательская оценка равна 5, и если отзыв положителен
согласно сумме полученных оценок, то переменная суммы совпадений
goodNumTest увеличивается на едиинцу, иначе увеличивается переменная
badNumTest
if sum_score==5:
if sum_otzyv>0:
goodNumTest += 1
else:
badNumTest += 1
else:
if sum_score==1:
if sum_otzyv<0:
goodNumTest += 1
else:
badNumTest += 1
Таким образом проверяются все отзывы.
В завершении алгоритма нам необходимо оценить полноту и
точность на каждом из 3-х подкорпусов: corpusA, corpusB, corpusC.
Обозначим R– полнота, а P – точность нашего алгоритма на корпусе
отзывов.
Пусть 𝑅𝑖 – полнота, а 𝑃𝑖 – точность алгоритма анализа тональности
отзывов в i-том тестовом подкорпусе, 𝑁𝑖 – количество отзывов в тестовом
подкорпусе, 𝐾𝑖 – количество определенных в подкорпусе тональностей, 𝑇𝑖 –
43
количество верно определенных алгоритмом тональностей, совпадающих с
пользовательской оценкой.
Тогда:
𝑇
𝑅𝑖 = 𝑁𝑖
𝑖
–
полнота алгоритма анализа тональности в i-том тестовом
подкорпусе,
𝑇
𝑃𝑖 = 𝐾𝑖
𝑖
–
точность алгоритма анализа тональности в i-том тестовом
подкорпусе, где 𝑖 ∈ {𝐴, 𝐵, 𝐶} .
Таким образом, мы получили значения полноты и точности при
рассмотрении 3-х вариантов, указанных ранее:
CorpusA U corpusB – обучающая выборка, corpusC – тестовая
𝑁𝐶 = 726,
𝐾𝐶 = 622,
𝑇𝐶 = 483,
𝑅𝐶 = 66,5%,
𝑃𝐶 = 77,7%
corpusB U corpusC – обучающая выборка, corpusA – тестовая;
𝑁𝐴 = 726,
𝐾𝐴 = 617,
𝑇𝐴 = 475,
𝑅𝐴 = 65,4%,
𝑃𝐴 = 76,9%
corpusA U corpusC – обучающая выборка, corpusB – тестовая.
𝑁𝐵 = 726,
𝐾𝐵 = 634,
𝑇𝐵 = 511,
𝑅𝐵 = 70,4%,
𝑃𝐵 = 80,6%
Полнота и точность нашего алгоритма при кросс-валидации есть
среднее арифметическое из значений, полученных на каждом подкорпусе.
Следовательно, полнота R = 67,4%, точность P = 78,4%.
2.5. Выводы к главе II
Во второй главе была описана практическая часть работы. Мы
рассмотрели
основные
шаги
разработанного
алгоритма,
а
также
инструменты и методы, которые использовались в данной работе.
В качестве языка разработки был выбран Python; использованы
библиотеки Pymorphy2, Codecs, Math.
Для оценки корреляции между событиями «слово содержится в
отзыве» и «отзыв описывает недостатки/достоинства» мы построили
44
таблицы сопряженности и использовали критерия согласия Пирсона («Хиквадрат»).
Подобрав эмпирически пороги значений для полученных списков
слов, мы получили словари тонально окрашенных слов и словосочетаний.
Качество работы алгоритма было оценено с помощью полноты и
точности на основе метода кросс-валидации. Полученные результаты:
полнота – 67,4%, точность – 78,4%.
45
Заключение
В первой главе мы рассмотрели предметную область анализа
тональности, обозначили основные задачи, которые могут решаться в
рамках анализа тональности, и основные проблемы, возникающие при
анализе отзывов. Были выделены основные подходы сентимент-анализа:
подход, основанный на словарях и на правилах, и подход, основанный на
машинном обучении (с учителем и без учителя), рассмотрели достоинства
и недостатки каждого подхода. Затем мы выполнили обзор работ,
посвященных автоматическому составлению тональных словарей.
Во второй главе мы описали разработку и реализацию алгоритма по
автоматическому пополнению тональных словарей для банковской сферы.
Основные
шаги
реализации
алгоритма
включали
в
себя
формирование двух подкорпусов: текстов с описаниями достоинств и
текстов с описаниями недостатков; отбор слов-кандидатов на включение в
тональные словари на основе полученных подкорпусов; заполнение
тональных словарей на основе проведенного анализа слов и тональных
конструкций; оценка работы алгоритма на основе метрик полноты и
точности с использованием кросс-валидации.
В качестве языка разработки был выбран Python в связи с наличием
библиотек,
наиболее
функционалу,
подходящих
затрачиваемой
памяти
для
и
реализации
скорости
алгоритма
выполнения.
по
Для
реализации алгоритма использовались библиотеки Pymorphy2 (библиотека
для морфологического анализа), Codecs (библиотека, осуществляющая
связь между интерпретатором и файловой системой операционной
системы), Math (работа с математическими функциями).
В качестве основного критерия анализа распределения слов по
тональным словарям была выбрана оценка корреляции двух случайных
событий:
«слово
содержится
в
отзыве»
и
«отзыв
описывает
46
недостатки/достоинства». Для оценки корреляции мы построили таблицы
сопряженности и использовали критерия согласия Пирсона («Хи-квадрат»).
Затем были эмпирически выбраны пороги значений для полученных
списков слов и получены словари тонально окрашенных прилагательных,
наречий, существительных и глаголов (702 слова), а также словосочетаний
(прилагательное + существительное, наречие + глагол, существительное +
глагол
и
др.)
(400
словосочетаний).
Удалось
выделить
как
общеупотребительные тонально окрашенные слова и словосочетания
(грубый, отвратительный, доброжелательный, потрясающе, неприятная
ситуация, страшный сон), так и относящиеся к банковской сфере
(ипотечный кредит, приличный кэшбэк, минимальный процент, банкомат
зажевал (карту), огромная комиссия).
Для оценки качества работы алгоритма был использован метод
кросс-валидации, показавший достаточно высокие результаты: полнота
(67,4%) и точность (78,4%). Также к достоинствам разработанного
алгоритма можно отнести простоту реализации и его легкую адаптацию к
другим предметным областям.
Были замечены также и некоторые недостатки:
– недостаточно большой исследуемый корпус для полного охвата
лексики банковской сферы;
– использование оценок пользователей в отзывах для разбиения
корпуса на 2 части (подкорпус достоинств и подкорпус недостатков) влечет
большое количество шума.
В
заключении
стоит
отметить,
что
во
время
проведения
исследования были выявлены следующие факты:
1. На основе полученных словарей можно сделать вывод, что
тонально окрашенная лексика банковской сферы, в основном, носит
общеупотребительный характер (хороший, положительный, удобный,
грубый).
47
2. В собранном корпусе оказалось, что количество отрицательных
отзывов более, чем в 1,5 раза превышает количество положительных
отзывов. Так, объем подкорпуса достоинств составил 833 отзыва, объем
подкорпуса недостатков – 1345 отзывов. Это отражает негативный
характер обслуживания в банковской сфере в целом.
Данный
автоматического
алгоритм
в
составления
дальнейшем
можно
применить
предметно-ориентированных
для
тональных
словарей других предметных областей, а также его можно использовать для
маркетинговых исследований банковских услуг.
48
Список использованной литературы
1.
Аптон Г. Анализ таблиц сопряженности. – М., 1982. – 143 с.
2.
Дегтева А.В.,
Азарова И.В.
Структура
эмоционально-
экспрессивного компонента в тезаурусе русского языка RussNet //
Компьютерная
лингвистика
и
интеллектуальные
технологии:
По
материалам ежегодной Международной конференции «Диалог» (Бекасово,
29 мая — 2 июня 2013 г.). Вып. 12 (19). – М., 2013. – С. 200–211.
3.
Клековкина М.В.,
классификации
текстов
по
Котельников Е.В.
тональности,
Метод
автоматической
основанный
на
словаре
эмоциональной лексики // Труды 14-й Всероссийской научной конференции
«Электронные библиотеки: перспективные м методы и технологии,
электронные коллекции» (RCDL-2012). – Переславль-Залесский, 2012. –
С. 81-86.
4.
Лемешко Б.Ю., Лемешко С.Б., Постовалов С.Н., Чимитова Е.В.
Статистический
анализ
данных,
моделирование
и
исследование
вероятностных закономерностей. — Новосибирск, 2011. – 888 с.
5.
Морфологический
анализатор
pymorphy2:
[Электронный
ресурс] / URL: https://pymorphy2.readthedocs.io.
6.
Пазельская А.,
Соловьев А. Метод
определения
эмоций
в
текстах на русском языке // The international conference on computational
linguistics and intellectual technologies “Dialogue 2011”. – М., 2011. – С. 510 522.
7.
Протопопова Е.В.,
Автоматическое
составление
Букия Г.Т.,
тонального
Митрофанова О.А.
словаря
для
процедур
сентиментного анализа // Материалы XLV Международной филологической
конференции 14-21 марта 2016 г. СПб., 2017 (в печати).
8.
Россум Г.,
Дрейк Ф.Л.Дж.,
Откидач Д.С.
Язык
программирования Python. 2001 г. – 454 c.
9.
Степнов М.Н. Статистические методы обработки результатов
механических испытаний: Справочник. – М., 1985. – С. 81–83.
49
10. Хохлова М.В. Анализ тональности. – СПб, 2016. – 11 с.
11. Цветков А.Д. Анализ тональности сообщений социальной сети
Twitter. – Томск, 2013. – 31 с.
12. Шитиков В.К., Розенберг Г.С., Зинченко Т.Д. Таблицы
сопряженности и “интервальная” математика. – Тольятти, 2003. – С. 259266.
13. Applications
for
Python:
[Электронный
ресурс].
URL:
http://www.python.org.
14. Arlot, Sylvain, Alain Celisse. A survey of cross-validation
procedures for model selection // Statistics surveys 4. 2010. Pp. 40-79.
15. Bing Liu. Sentiment Analysis and Subjectivity // Handbook of
Natural Language Processing. 2010. 49 p.
16. Blinov P., Kotelnikov E. Using Distributed Representations for
Aspect-Based Sentiment Analysis // Computational Linguistics and Intellectual
Technologies: Proceedings of the International Conference «Dialogue 2014». №
13 (20). Vol. 2. 2014. Pp. 68–79.
17. Bo Pang, Lillian Le. Opinion Mining and Sentiment Analysis //
Foundations and Trends in Information Retrieval. №2. 2008. Pp. 1-135.
18. Bo Pang, Lillian Lee. 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).
–
University of Michigan, USA, 2005. Pp. 115–124.
19. Cambria E., Havasi C., Hussain A. SenticNet 2: A semantic and
affective resource for opinion mining and sentiment analysis // AAAI FLAIRS.
Marco Island, 2012. Pp. 202-207.
20. Chetviorkin I.I., Loukachevitch N.V. Extraction of Russian
Sentiment Lexicon for Product Meta-Domain // Proceedings of COLING 2012:
Technical Papers. 2012. Pp. 593–610.
50
21. Ding X., Liu B., Yu P. A holistic lexicon-based approach to opinion
mining // Proceedings of the Conference on Web Search and Web Data Mining
(WSDM-2008). 2008. 9 p.
22. Dubatovka A., Kurochkin Yu., Mikhailova E. Automatic Generation
of the Domain-Specific Sentiment Russian Dictionaries // Computational
Linguistics and Intellectual Technologies: Proceedings of the International
Conference «Dialogue 2016». №15 (22). 2014. Pp. 146–154.
23. Esuli A. and Sebastiani F. SentiWordNet: A Publicly Available
Lexical Resource for Opinion Mining // Proceedings of the International
Conference on Language Resources and Evaluation. Genoa, Italy, 2006. Pp.
417−422.
24. Hatzivassiloglou V., McKeown K. Predicting the semantic
orientation of adjectives // Proceedings of Annual Meeting of the Association for
Computational Linguistics (ACL-1997). 1997. Pp 174-181.
25. Hatzivassiloglou V., Wiebe J. Effects of adjective orientation and
gradability on sentence subjectivity // Proceedings of International Conference on
Computational Linguistics (COLING-2000). 2000. Pp. 299-205.
26.
Kan D. Rule-based approach to sentiment analysis // Sentiment
Analysis Track at ROMIP, 2011. 7 p.
27. Ivanov V., Tutubalina E., Mingazov N., Alimova I. Extracting
Aspects, Sentiment and Categories of Aspects in User Reviews about Restaurants
and Cars // Computational Linguistics and Intellectual Technologies: Proceedings
of the International Conference «Dialogue 2015». № 14 (21). Vol. 2. 2015. Pp.
22–33.
28. Joachims T. Making large-scale SVM learning practical // Schölkopf
B. Advances in kernel methods: support vector learning. 1999. Pp. 41-54.
29. Kotelnikov E.V., Bushmeleva N.A., Razova E.V., Peskisheva T.A.,
Pletneva
M.V.
Manually
Created
Sentiment
Lexicons:
Research
and
Development // Computational Linguistics and Intellectual Technologies:
51
Proceedings of the International Conference «Dialogue 2016» №. 15 (22). 2016.
Pp. 300–316.
30. Liu H. MontyLingua: An end-to-end natural language processor with
common sense. 2004.
31. Oren T., Dmitry D., Ari R. ICWSM – A Great Catchy Name: SemiSupervised Recognition of Sarcastic Sentences in Online Product Reviews //
AAAI Conference on Artificial Intelligence. 2010. Pp. 162-169.
32. Popescu A., Etzioni O. Extracting product features and opinions
from reviews // Proceedings of Conference on Empirical Meth- ods in Natural
Language Processing (EMNLP-2005). 2005. Pp. 339-346.
33. 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. Pp. 300–307.
34. Sokolova M., Bobicev V. Classification of Emotion Words in
Russian and Romanian Languages // Proceedings of RANLP-2009 conference.
Borovets, Bulgaria, 2009. Pp. 415-419.
35. Strapparava C., Valitutti A. Wordnet-affect: an affective extension of
Wordnet // Proceedings of the 4th International Conference on Language
Resources and Evaluation. Lisbon, 2004. Pp. 1083-1086.
36. Thelwall M., Buckley K., Paltoglou G. Sentiment strength detection
in short informal text // Journal of the American Society for Information Science
and Technology, 61(12). 2010. Pp. 2544–2558.
37. Tong R. An operational system for detecting and tracking opinions in
on-line discussions // Working Notes of the ACM SIGIR 2001 Workshop on
Operational Text Classification. New York, 2001. Pp. 1-6.
38. Turney P. Thumbs up or thumbs down? Semantic orientation applied
to unsupervised classification of reviews // Proceedings of ACL-02, 40th Annual
Meeting of the Association for Computational Linguistics, Association for
Computational Linguistics. 2002. Pp. 417–424.
52
39. Ulanov A., Sapozhnikov G. Context-Dependent Opinion Lexicon
Translation with the Use of a Parallel Corpus // Computational Linguistics and
Intellectual Technologies: Proceedings of the International Conference «Dialogue
2013». № 12 (19). 2013. Pp. 165–174.
40. Wiegand M., Balahur A., Roth B., Klakow D., Montoyo. A. A
Survey on the Role of Negation in Sentiment Analysis // Workshop on Negation
and Speculation in Natural Language Processing. 2010. Pp. 334-337.
53
Приложение 1. Словарь положительно окрашенных слов, выделенных
с помощью алгоритма, со значениями «Хи-квадрат»
Прилагательные
профессиональный
приятный
огромный
быстрый
отличный
удобный
доброжелательный
качественный
грамотный
вежливый
карьерный
высокий
отзывчивый
оперативный
приветливый
внимательный
положительный
уютный
чуткий
сложный
оптимальный
привлекательный
искренний
беспроцентный
позитивный
знающий
дружелюбный
сжатый
классный
высококвалифицированный
комфортный
нестандартный
исчерпывающий
функциональный
дружественный
информативный
128,3876618
122,9193977
96,90717053
88,27634295
85,23887988
82,5190913
80,56609718
72,19217038
72,19217038
66,32993515
59,2565157
57,90439787
49,37539838
49,10035222
42,73046346
41,42412258
34,3259986
29,61920322
29,61920322
28,05108837
24,68141221
24,52876996
24,52876996
24,36209743
23,85835488
19,31680094
18,93549763
14,80733899
14,23623332
14,23623332
10,63173878
10,63173878
10,63173878
9,871056625
9,871056625
9,871056625
54
вкусный
душевный
уважительный
высокопрофессиональный
внушительный
несомненный
доходный
опытный
бодрый
благоприятный
гибкий
улыбчивый
чистенький
плодотворный
взаимовежливый
благодарственный
интеллигентный
партнерский
паевой
терпеливый
тактичный
неравнодушный
клиенто-ориентированный
разговорчивый
благодарный
молчаливый
учтивый
клиентоориентированный
втбшный
доходчивый
наглядный
трудолюбивый
изящный
вызывающий
извечный
деликатный
опрятный
новомодный
практичный
стильный
9,871056625
9,871056625
9,871056625
9,871056625
9,871056625
9,871056625
9,871056625
8,1149081
5,315057227
5,315057227
5,315057227
5,315057227
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
55
стремительный
доверительный
общедоступный
низкопроцентный
обаятельный
добропорядочный
внятный
бонусный
неплохой
законопослушный
идеальный
безукоризненный
культурный
надежный
восхитительный
креативный
усердный
добрый
довольный
чудесный
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
4,935276987
Наречия
быстро
приятно
оперативно
профессионально
удобно
подробно
особенно
грамотно
терпеливо
редко
доходчиво
доступно
компетентно
качественно
отдельно
доброжелательно
комфортно
прилично
зимой
326,7325621
237,4520014
148,9537115
90,31003873
67,38326815
50,33827327
45,37027674
41,51596488
32,4271478
30,04125986
27,84364628
21,93304349
18,52075224
15,36095431
15,36095431
14,50809565
13,91795274
9,671526071
9,671526071
56
благожелательно
солидарно
высоко
честно
гладко
незадолго
торжественно
безболезненно
надёжно
неплохо
идеально
бойко
безукоризненно
безгранично
неподдельно
потрясающе
полноценно
культурно
тепло
люто
скептически
катастрофически
посменно
дёшево
светло
вежливо
терпимо
позитивно
квалифицированно
повсеместно
материально
персонально
утомительно
бесцельно
молниеносно
эффективно
тактично
по-русски
опрятно
дотошно
9,671526071
9,671526071
9,671526071
9,671526071
9,671526071
9,671526071
9,671526071
9,671526071
9,671526071
7,892349122
5,183436823
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
57
предметно
неуклонно
аккуратно
чудесно
понятно
4,835494218
4,835494218
4,835494218
4,835494218
4,835494218
Существительные
благодарность
тинькофф
профессионализм
отзывчивость
профессионал
мкб
оперативность
кэшбэк
атмосфера
скайп
плюс
анна
успех
доброжелательность
процветание
молодец
клиентоориентированность
похвала
эмоция
рост
автокредитование
удача
компетентность
признательность
нюанс
потребность
скорость
кофе
анатолий
вежливость
восторг
респект
пунктуальность
561,2721336
288,009898
200,661873
85,61711388
78,84417685
72,39991935
70,15538703
68,57146987
68,42769923
66,6647089
55,59741234
52,85553631
51,55039837
48,55952868
42,47528494
40,42134563
32,99252699
31,10190947
30,89570379
30,54089315
30,299661
29,84989537
28,38765792
24,88131556
24,78018313
22,85287159
22,85287159
21,04284991
19,90244701
19,45058824
19,45058824
18,66082766
18,66082766
58
пятёрка
достоинство
парковка
коммуникабельность
грамотность
простота
гарантия
любовь
уважуха
честность
чуткость
чёткость
доброта
спецпредложение
конкурент
тонкость
18,66082766
18,66082766
18,66082766
18,66082766
18,337309
18,337309
15,8698118
13,12047516
12,44044577
12,44044577
12,44044577
12,44044577
12,44044577
10,99619705
10,99619705
8,925205583
Глаголы
хотеться
понравиться
выражать
помочь
рассказать
желать
нравиться
радовать
консультировать
порадовать
чаять
разъяснить
проконсультировать
реагировать
уменьшать
посмеиваться
отработать
отслеживать
отобрать
познакомиться
накопить
157,5472843
135,2747002
118,1390376
111,2218953
88,09797335
74,23309504
71,08570059
47,45527442
47,07205787
41,97701765
30,20492144
21,18889767
19,18189129
12,13306651
12,13306651
12,08096512
12,08096512
12,08096512
12,08096512
12,08096512
12,08096512
59
расценить
рефинансировать
продаваться
содействовать
скорректировать
прояснить
остановить
зарегистрироваться
восстановить
сопроводить
учитывать
сохранить
развиваться
обновляться
подняться
выручать
расспросить
обожать
объяснить
выводить
одобрить
способствовать
подталкивать
восхищаться
любоваться
укрепить
посоветовать
12,08096512
12,08096512
12,08096512
12,08096512
12,08096512
12,08096512
10,59239542
8,605904892
6,775946517
6,775946517
6,775946517
6,775946517
6,775946517
6,775946517
6,775946517
6,775946517
6,775946517
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
6,040315334
60
Приложение 2. Словарь отрицательно окрашенных слов, выделенных с
помощью алгоритма, со значениями «Хи-квадрат»
Прилагательные
хороший
денежный
большой
отдельный
клиентский
выгодный
дебетовый
различный
уважаемый
полный
технический
контактный
небольшой
особый
компетентный
бесплатный
ипотечный
платёжный
очередной
выходной
повышенный
добровольный
доступный
лишний
ежемесячный
последний
низкий
повторный
хамский
расходный
некомпетентный
странный
недавний
карточный
вышеуказанный
грубый
76,88497585
53,28255464
45,4096593
23,51877973
23,51877973
23,06759106
22,38374583
19,06709743
17,23193246
15,46407439
14,86222039
14,84741212
14,61892882
14,2066762
13,53779401
10,2916702
9,60193992
8,801875578
8,649428464
8,491882665
8,422488962
8,29087471
8,15969466
7,698270539
7,660318313
6,55299977
5,843382996
5,715419776
5,681830114
5,681830114
5,478628245
5,478628245
5,27861443
5,275447097
5,275447097
5,275447097
61
судебный
страшный
бывший
календарный
ближний
противный
понятный
частичный
коллекторский
проблемный
маленький
премиальный
подобный
отвратительный
кредитный
претензионный
физический
ужасный
прежний
головной
наглый
неверный
старый
ошибочный
платный
ненадлежащий
системный
халатный
штрафной
отрицательный
тупой
обманный
неудобный
неправильный
неизвестный
немалый
неправомерный
необоснованный
несчастный
недобросовестный
5,229734134
5,072286667
4,869146951
4,869146951
4,848531548
4,666027948
4,660517955
3,853758987
3,853758987
3,827469498
3,708942936
3,650743494
3,567734902
3,528409916
3,452413818
3,244774583
3,102915302
3,102891221
3,033568184
2,997920659
2,838888417
2,75870394
2,701665824
2,635976356
2,619903472
2,23021426
2,23021426
2,23021426
2,23021426
2,148087275
2,02736422
2,02736422
2,02736422
2,02736422
2,006323575
1,913247397
1,824534847
1,824534847
1,824534847
1,824534847
62
незаконный
недостоверный
некорректный
непрофессиональный
безвозмездный
больной
бесполезный
несвоевременный
медленный
нервный
нерабочий
недействительный
хамоватый
жалобный
неадекватный
замкнутый
издевательский
секретный
ограниченный
неоплаченный
бедный
несанкционированный
неуважительный
нерадивый
наплевательский
внутрибанковский
глупый
безобразный
левый
глухой
неблагонадёжный
бешеный
виновный
автоматизированный
принудительный
дикий
неграмотный
уголовный
недобровольный
истекший
1,64017094
1,621726138
1,460624496
1,41893809
1,41893809
1,41893809
1,41893809
1,41893809
1,41893809
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,216170701
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
63
невнятный
безграмотный
безответственный
непосредственный
транзитный
заказной
устаревший
недопустимый
спорный
затруднительный
неподходящий
недополученный
идентификационный
чудовищный
бестолковый
назойливый
невозможный
мифический
грязный
недостаточный
жалкий
грабительский
покойный
жуткий
свинский
военный
неопределённый
навязчивый
бездарный
противоречивый
жёсткий
наследственный
презрительный
оскорбительный
неподъемный
неполученный
противозаконный
некрасивый
неприемлемый
дерзкий
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
1,013423965
0,853546751
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,810697882
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
64
некачественный
глючный
злостный
невнимательный
сырой
мерзкий
неприятный
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
0,607992447
Наречия
очень
всегда
буквально
онлайн
неожиданно
случайно
впервые
незаконно
никогда
бесплатно
неизвестно
невозможно
сложно
дополнительно
частично
долго
одновременно
дистанционно
лично
непонятно
некорректно
выгодно
нагло
недостаточно
неправомерно
ужасно
упорно
настойчиво
молча
заведомо
медленно
неправильно
стыдно
самовольно
372.38100773609733
90.61081781330103
32.28533142613084
17.11398601338235
12.021069203485387
10.974274619983852
9.798711946183756
8.949404378855343
8.192256210970456
6.815278656697748
6.662856145706663
6.007335975410629
6.003269520300492
5.55088257933299
5.3849879794322515
5.215859915558338
5.0879438191820325
3.933650704742038
3.883037350252151
3.8330287984369873
3.7264091003213915
3.7003579622033085
3.682944028969584
3.682944028969584
3.674107765276916
3.4759287878850516
3.4427433266266267
3.407366402790054
3.404985403638322
3.31199507194224
2.9409028859392095
2.7664202249353576
2.7605469476445315
2.48344362928676
65
необоснованно
слабо
резко
возмутительно
наотрез
ошибочно
неудобно
дорого
бесконечно
умышленно
халатно
впустую
хамски
печально
нервно
негативно
бессмысленно
раздражённо
дико
жёстко
проблематично
пошло
пренебрежительно
демонстративно
неохотно
безумно
сухо
нелегко
некрасиво
скрытно
мерзко
нежданно-негаданно
отрицательно
по-хамски
болезненно
безуспешно
небезопасно
вон
2.48344362928676
2.48344362928676
2.459412192586282
2.3369665563733255
2.320012980063282
2.2763633741239366
2.2763633741239366
2.2460802589120368
1.8622719634885727
1.8622719634885727
1.8622719634885727
1.8622719634885727
1.6552608003306035
1.6552608003306035
1.6552608003306035
1.6167687610756645
1.5934443761376036
1.5308065373526039
1.5179059316134689
1.471899394049768
1.470810481172733
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.4482726601569147
1.361181951710605
1.3601988520283823
1.3399715883266539
1.281131751833459
1.2413075391269286
1.2413075391269286
1.2413075391269286
1.2413075391269286
1.2413075391269286
Существительные
сделка
заявление
помощь
106.76461758264102
101.39513206415496
69.20338161079702
66
работа
обслуживание
почта
ответ
ипотека
счёт
приложение
выбор
консультация
номер
сумма
договор
задолженность
обращение
специалист
менеджер
квартира
впечатление
уровень
претензия
вопрос
суд
продукт
кредитование
сбербанк
кредит
ставка
право
деньга
клиент
звонок
средство
день
телефон
сервис
срок
оформление
елена
решение
уважение
погашение
опыт
подвох
баба
долг
65.45273275625031
62.47155703568859
61.77878099602801
50.5136812812324
44.98044220765685
44.264674556172324
41.08233768282826
37.8945794104785
36.97914898863858
36.342849501678295
34.79372563191442
33.88239970027029
33.83735759920529
33.29890282737326
32.60055663851968
29.94138255437389
29.90281997919761
28.314460858052467
28.05188555723785
27.698051268566946
27.22667014525686
26.56652236346923
26.014368762156273
24.939099119746786
20.79019056715991
20.703278542253262
20.69858710913087
20.57937713593288
20.073339351637035
20.073339351637035
19.984925328622055
19.507304578063916
19.05489077635971
19.00705529473533
18.423827676791365
18.38166583600195
18.235460418881235
18.207586932520865
18.013767089649697
17.892703831735904
17.786837914963197
17.76732712696676
17.387754342866742
17.367508295071183
17.29722124581256
67
закон
сотрудничество
оператор
скидка
настроение
персонал
месяц
отношение
рынок
отказ
рассмотрение
филиал
офис
размер
причина
лимит
бонус
процесс
друг
автосалон
случай
россия
форма
качество
пора
сравнение
пара
отзыв
просрочка
заёмщик
прокуратура
нарушение
ошибка
сомнение
проблема
жалоба
взыскание
штраф
пеня
заявка
оценка
дата
слово
орган
распоряжение
17.187057667711134
16.924255662627992
16.924255662627992
16.42091742034127
16.258255027059036
15.927176064438319
15.879702811839989
15.738154025158384
15.714614145858697
15.688621132311278
15.435863980683422
15.303989620169888
15.19681999385822
15.185633382781454
15.113228800850422
14.964517081608005
14.839088431902177
14.811229165557982
14.754151321356472
14.74614663111455
14.74517780545298
14.504373781162267
14.091453254321456
13.540058747868386
13.50250268300937
13.455591012873112
13.381861330827858
13.246705947474071
13.206386007897274
13.201712007482508
13.092401239477832
12.981827312409735
12.859478114505146
12.79796016849143
12.68906129318267
12.656857459829064
12.646086758996661
12.59302117260472
12.506246615029552
12.434745577111395
12.360498664997442
12.35673415405732
12.321550768346608
12.321550768346608
12.168497136573519
68
коллектор
заблуждение
заинтересованность
сбой
комиссия
сеть
недовольство
расторжение
блокировка
разбирательство
нужда
некомпетентность
отписка
негатив
12.090211055660552
11.910383512026472
11.663978446741304
11.6214496429849
11.463862129768092
11.45628058299468
11.370634373278584
11.370634373278584
11.260524037606269
11.141189222070446
11.099564777404726
10.938608261723584
10.728290334190822
10.640517497820126
Глаголы
хотеть
сказать
рекомендовать
пользоваться
одобрить
сообщить
работать
звонить
удивить
оформлять
выбрать
говорить
помогать
просить
объяснить
обманывать
требовать
обслуживаться
оскорбить
понять
показать
потерять
написать
унизить
устраивать
подсказать
решаться
101.65515312854407
54.18895911383218
48.29583530527551
43.59532498403919
31.975604288578918
24.89352594671044
23.460204452088075
21.244012920980825
20.2756020074696
20.023915147950017
19.517820921424217
19.383545347068136
19.251545793872857
18.89694657143783
16.8547840351227
16.0047479862713
15.672073409892253
15.33515753039724
12.431146304515392
12.224503952404284
12.143339843968029
11.611621045529239
11.466695626125244
10.892975267751677
10.638813621362582
10.153198430521426
10.153198430521426
69
встретить
встречать
повезти
делать
состояться
бывать
внести
выбирать
заставлять
позвонить
пригласить
получать
попадать
спрашивать
составить
сделать
понадобиться
объяснять
ждать
ответить
подставлять
выполнять
списывать
отправить
менять
возникнуть
иметься
позволить
взять
поднять
войти
успеть
поступать
нарушать
считать
принять
пояснить
списать
оформить
продолжать
отнимать
расплачиваться
скинуть
заработать
блокировать
9.435163803901109
9.435163803901109
9.435163803901109
9.175130971005116
8.817577969727637
8.79086879990561
8.530249957806898
8.193775745503958
8.193775745503958
8.187385577948103
7.99727552771066
7.789726414118925
7.428808406262155
7.202290337281869
7.202290337281869
7.153764823922966
7.024460971168842
6.912566519793516
6.399321547621344
6.370646889682164
6.287341864424683
6.279142026484534
6.131958425315409
5.873709249067022
5.597787224336539
5.537255688542249
5.514943869206626
5.461760854699728
5.350372865630545
5.317344397007427
5.317344397007427
5.317344397007427
5.211014487426162
5.136732706966496
5.1136383008210275
4.995688251866208
4.984677051052638
4.979708293938981
4.764663402890848
4.738635049687639
4.716667540633862
4.716667540633862
4.716667540633862
4.709044161111483
4.639243923584604
70
выяснить
выпроводить
уверять
посещать
подготовить
обращаться
предложить
оплачивать
названивать
выясняться
сомневаться
снизить
убедить
почувствовать
отдать
отказать
попытаться
знать
принести
использовать
искать
видеть
отказаться
утверждать
впарить
изменить
тратить
приходить
потребовать
насторожиться
угрожать
извиниться
подтвердить
относиться
испортить
мурыжить
4.628892263972678
4.533694805699878
4.473432705630451
4.43360043926284
4.43360043926284
4.3415996459753305
4.337330973408582
4.32293390569873
4.307630674656821
3.8102796959844523
3.6043754139539637
3.5633272068284425
3.5633272068284425
3.5633272068284425
3.5425620080782205
3.5313406343803426
3.5216963162330543
3.4574129371302296
3.453793763130896
3.453793763130896
3.453793763130896
3.444979956507091
3.4052868398434692
3.3840737628709947
3.3724353474463977
3.3130113726557404
3.3130113726557404
3.292028543387804
3.2260517971650216
3.1988868162936757
3.14727362917241
3.14727362917241
3.120071647193565
3.1126514402742385
3.063736995290739
3.063736995290739
71
Приложение 3. Словарь отрицательно окрашенных словосочетаний,
выделенных с помощью алгоритма, со значениями «Хи-квадрат»
технический сбой
ипотечный кредит
противный случай
валютная карта
страховая премия
кредитная организация
банковский счёт
годовое обслуживание
ужасный банк
длительное ожидание
российский капитал
негативный отзыв
лицевой счёт
платная услуга
расходная операция
главный бухгалтер
неверный информация
повторный обращение
страховой взнос
платёжное поручение
некорректная информация
неприятная ситуация
страшный сон
жалобная книга
недостоверная информация
замкнутый круг
коллекторское агенство
отвратительный банк
ложная информация
некомпетентный сотрудник
мелкий шрифт
очень сожалеть
длительное поручение
сплошной обман
ипотечный отдел
ипотечный менеджер
ипотечный договор
очень разочароваться
халатно относиться
уже потерять
грубо ответить
долго рассматривать
11,1004837
9,6792224
8,6802996
4,3854381
4,2194027
4,1447418
4,1447418
3,7985371
3,76744
3,3902397
3,0131409
3,0131409
3,0131409
3,0131409
3,0131409
3,0131409
2,6361436
2,6361436
2,6361436
2,532163
2,2592477
2,2592477
2,2592477
2,2592477
2,2592477
2,2592477
1,8824532
1,8824532
1,8824532
1,8824532
1,8824532
1,8560258
1,50576
1,50576
1,50576
1,50576
1,50576
1,3916316
1,3916316
1,3916316
1,3916316
1,3916316
72
негативный опыт
неприятное впечатление
бесплатное снятие
шарашкина контора
отвратительное обслуживание
очередная жалоба
полное отсутствие
банковская ошибка
хамское обращение
ненадлежащее исполнение
банк нарушил
связь оборваться
система зависнуть
незаконно удерживать
нагло врать
постоянно зависать
постоянно перебивать
полностью отсутствовать
устная претензия
крайнее возмущение
истекший срок
медленное обслуживание
плохой сайт
наглый образ
странный банк
тихий ужас
хамское поведение
мотивированная жалоба
отрицательный отзыв
злой умысел
системная ошибка
хамский тон
рутинная операция
плохая репутация
незаконное списание
минусовый баланс
банкомат съесть
претензия быть
отказ прийти
система повиснуть
банкомат зажевать
техническая ошибка
очень жалеть
совсем обнаглеть
1,3793994
1,3793994
1,3793994
1,3793994
1,1291682
1,1291682
1,1291682
1,1291682
1,1291682
1,1291682
1,0301297
1,0301297
1,0301297
0,9274961
0,9274961
0,9274961
0,9274961
0,9274961
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,7526776
0,6889512
0,6864464
0,6864464
0,6864464
0,6864464
0,51137
0,4636189
0,4636189
73
крайне возмущать
честно пожалеть
неправомерно быть
весьма ухудшиться
неохотно отвечать
незаконно получать
всячески хамить
дорого обходиться
бесследно исчезнуть
всего возмущать
всячески препятствовать
опять пропасть
открыто хамить
постоянно бесить
последовательно ухудшать
всего наобещать
вчера заблокировать
грубо отказать
незаконно обогатиться
незаконно произвести
прямо нарушать
сильно сомневаться
цинично выглядеть
реально издеваться
необоснованно начислить
умышленно умалчивать
давно кредитоваться
ошибочно положить
дооооолго аутентифицироваться
сильно ошибаться
нагло нарушаться
специально затянуть
небрежно относиться
всегда косячать
самовольно подключить
долго проверять
просто-напросто ущемлять
сильно отличаться
далее начинаться
самовольно заблокировать
насильно подключить
оперативно отреагировать
круто развести
нагло лгать
незаконно обуславливать
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
74
постоянно навязывать
неоднократно обещать
медленно работать
опять обмануть
сильно огорчить
хамски отвечать
хамски общаться
неприятно удивить
ранее оплачивать
странно работать
трижды позвонить
исправно погашать
ежемесячно списывать
периодически названивать
буквально выталкивать
необоснованно присвоить
неправомерно списывать
безбожно врать
неоднократно повторить
намеренно затягивать
немного разочароваться
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
0,4636189
75
Приложение 4. Словарь положительно окрашенных словосочетаний,
выделенных с помощью алгоритма, со значениями «Хи-квадрат»
карьерный рост
мобильное приложение
клиентский центр
высокий профессионализм
высокий уровень
индивидуальный подход
удобный интернет-банк
очень порадовать
приятно удивить
отличная работа
профессиональный подход
подробно рассказать
положительный опыт
ленинский проспект
хороший банк
качественное обслуживание
оперативная работа
приятное впечатление
вежливое обслуживание
качественная работа
удобный банк
вежливый персонал
ведущий менеджер
хорошее настроение
быстрое обслуживание
беспроцентный период
оперативно отвечать
быстро оформить
профессионально объяснить
терминал зажевать
удобное обслуживание
добросовестный сотрудник
отличный специалист
комфортная обстановка
качественная услуга
выгодный процент
маленький процент
слаженная работа
исчерпывающая информация
располагающая обстановка
оценочный компания
двойное списание
106,4588794
102,9491291
95,6756706
74,4911384
71,9848697
61,8757667
53,1936432
51,8676796
43,2110198
42,5491917
42,5491917
41,9924484
41,060732
37,780146
34,9448254
32,5012111
31,9076028
31,9076028
31,9076028
31,9076028
31,9076028
31,9076028
31,9076028
31,9076028
30,9170778
29,3150664
25,9121681
25,9121681
25,9121681
23,3501073
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
76
отдельная благодарность
профессиональный сотрудник
волгоградский филиал
отличный интернет-банк
вежливый сотрудник
положительное впечатление
быстро решать
понятно объяснять
быстро одобрить
всегда предлагать
всегда помочь
доходчиво объяснять
очень радовать
приветливо встретить
профессионально помочь
грамотно объяснить
неправильно указать
впервые столкнуться
доходчиво ответить
подробно ответить
очень нравиться
особенно радовать
народ потянуться
подруга порекомендовать
оформлять ипотеку
процедура затянуться
оператор разблокировать
банк зарекомендовать
получить деньги
поисковик выдать
эпопея длиться
проблема решить
услуга отключить
карта заблокироваться
сутки рассматривать
подруга посоветовать
оформление затянуться
ошибка возникнуть
выгодное предложение
грамотная консультация
высокий класс
повышенный кэшбэк
высокий процент
грамотный специалист
отличный сервис
21,2688753
21,2688753
21,2688753
21,2688753
21,2688753
21,0264166
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
17,2699681
16,552199
16,552199
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6698416
11,6388776
11,6388776
11,6388776
11,6388776
11,6388776
11,6388776
11,6388776
77
ипотечная сделка
расчетно-кассовое обслуживание
непростая сделка
бесплатная парковка
сложная ситуация
полная самоотдача
шаговая доступность
резкое понижение
отличная консультация
достойный сервис
большая текучка
зарплатный рост
гибкая система
оптимальный вариант
добросовестный труд
бумажная волокита
хороший подбор
огромная благодарность
прекрасный интернет
бесплатный перевод
профессиональное образование
приятное обслуживание
автоматический перевыпуск
разговорчивый человек
симпатичный график-прогноз
платёжная карта
хорошее обслуживание
функциональный интернет-банк
ближний банк
приличный кэшбэк
логичный способ
наёмный сотрудник
персональный подход
непонятная комиссия
великолепный специалист
крупное мошенничество
профессиональная консультация
бесплатный межбанк
твёрдая пятёрка
дружелюбная атмосфера
сомнительный характер
низкопроцентный ставка
быстрое реагирование
ставка хорошая
кэшбэк классный
11,6388776
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
78
ставка низкий
удобный банкомат
уникальный предложение
позитивное впечатление
сотрудник отзывчивый
оптимальный предложение
высокопрофессиональное обслуживание
специалист грамотный
удобный сайт
вежливый консультант
хорошее впечатление
светлый офис
приятная атмосфера
высококвалифицированная работа
приятный персонал
прекрасное обслуживание
процесс быстрый
некорректная работа
опрятный парень
соответствующий специалист
финансовый сектор
полноценная консультация
персонал доброжелательный
выгодная конвертация
юридическая поддержка
обслуживание быстрое
виртуальный кошелёк
подробная консультация
атмосфера приятная
вежливый разговор
искренняя забота
отвратительная ситуация
приветливый человек
екатеринбургский филиал
профессиональная работа
валютный перевод
трудолюбивый коллектив
высокомерный тон
приятный бонус
превосходная
клиентоориентированность
незаменимый сотрудник
приятная музыка
удобная парковка
излишняя бюрократия
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
79
отличный офис
минимальный процент
понятный банк
индивидуальный подход
досрочное погашение
высокопрофессиональный работник
стандартное приветствие
отличный сотрудник
приветливый персонал
стильный дизайн
удобный вариант
благодарственный отзыв
опытный сотрудник
бесплатный перевыпуск
приветливый руководитель
опытный менеджер
высокая оценка
моральная поддержка
хорошая атмосфера
высокая ставка
дежурная улыбка
известный магазин
доброжелательное обслуживание
своевременная помощь
адекватный процент
огромная комиссия
внимательный работник
хорошее качество
быстрая реакция
оперативная помощь
компетентное обслуживание
привлекательная услуга
финансовая грамотность
достойный уровень
банковская гарантия
клиентоориентированный сотрудник
удобная программа
бесплатная альтернатива
дополнительное отделение
уютный кафетерий
выгодный вклад
отдалённое отделение
сложная настройка
приятный сотрудник
грамотная работа
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
80
нестабильная ситуация
лояльная работа
быстрая помощь
простенький договор
дружественный персонал
банк отличный
профессиональная помощь
крутой сервис
хороший процент
комфортный офис
классное приложение
отзывчивый подход
особое отношение
широкий выбор
оперативно решить
быстро объяснить
любезно предложить
оперативно попытаться
внимательно отнестись
доступно рассказать
грамотно отвечать
благополучно получить
оперативно обслужить
профессионально относиться
успешно получить
оперативно получать
всегда дозваниваться
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
10,6330081
81
Отзывы:
Авторизуйтесь, чтобы оставить отзыв