Анализ тональности текста — Википедия

Ана́лиз тона́льности те́кста (сентимент-анализ, англ. Sentiment analysis, англ. Opinion mining[1]) — класс методов контент-анализа в компьютерной лингвистике, предназначенный для автоматизированного выявления в текстах эмоционально окрашенной лексики и эмоциональной оценки авторов (мнений) по отношению к объектам, речь о которых идёт в тексте.

Тональность — это эмоциональное отношение автора высказывания к некоторому объекту (объекту реального мира, событию, процессу или их свойствам/атрибутам), выраженное в тексте. Эмоциональная составляющая, выраженная на уровне лексемы или коммуникативного фрагмента, называется лексической тональностью (или лексическим сентиментом). Тональность всего текста в целом можно определить как функцию (в простейшем случае сумму) лексических тональностей составляющих его единиц (предложений) и правил их сочетания[2].

Основной целью анализа тональности является нахождение мнений в тексте и выявление их свойств. Какие именно свойства будут исследоваться, зависит уже от поставленной задачи. К примеру, целью анализа может быть автор, то есть лицо, которому принадлежит мнение.

Мнения делятся на два типа[3]:

  • непосредственное мнение;
  • сравнение.

Непосредственное мнение содержит высказывание автора об одном объекте. Формальное определение непосредственного мнения выглядит так: "непосредственным мнением называется кортеж из пяти элементов (e, f, op, h, t)[2], где:

  • (entity, feature) — объект тональности e (сущность, насчет которой высказывается автор) или его свойства f (атрибуты, части объекта) ;
  • orientation или polarity — тональная оценка (эмоциональная позиция автора относительно упомянутой темы);
  • holder — субъект тональности (автор, то есть кому принадлежит это мнение);
  • момент времени time, когда было оставлено мнение.

Примеры тональных оценок[4]:

  • позитивная;
  • негативная;
  • нейтральная.

Под «нейтральной» подразумевается, что текст не содержит эмоциональной окраски. Также могут существовать и другие тональные оценки.

Виды классификации

[править | править код]

В современных системах автоматического определения эмоциональной оценки текста чаще всего используется одномерное эмотивное пространство: позитив или негатив (хорошо или плохо). Однако известны успешные случаи использования и многомерных пространств[5][6].

Основной задачей в анализе тональности является классификация полярности данного документа, то есть определение, является ли выраженное мнение в документе или предложении позитивным, негативным или нейтральным. Более развёрнуто, «вне полярности» классификация тональности выражается, например, такими эмоциональными состояниями, как «злой», «грустный» и «счастливый».

Классификация по бинарной шкале

[править | править код]

Полярность документа можно определять по бинарной в шкале. В этом случае для определения полярности документа используется два класса оценок: позитивная или негативная. Одним из минусов данного подхода является то, что эмоциональную составляющую документа не всегда можно однозначно определить, то есть документ может содержать признаки как позитивной, так и негативной оценки[4]. Ранние работы в этой области включают в себя труды Терни[7] и Панга[8], которые применяют различные методы распознавания полярности обзоров товара и отзывов о фильмах соответственно. Это пример работы на уровне документа.

Классификация по многополосной шкале

[править | править код]

Можно классифицировать полярность документа по многополосной шкале, что было предпринято Пангом[9] и Снайдером[10] (среди прочих). Ими была расширена основная задача классификации киноотзывов от оценки «положительный или отрицательный» в сторону прогнозирования рейтинга по 3-х или 4-балльной шкале. В то же время Снайдер провёл углублённый анализ обзоров ресторанов, предсказывая рейтинги их различных свойств, таких как еда и атмосфера (по 5-балльной шкале)[10].

Системы шкалирования

[править | править код]

Другим методом определения тональности является использование систем шкалирования, посредством чего словам, обычно связанным с отрицательными, нейтральными или позитивными тональностями, ставятся в соответствии числа по шкале от −10 до 10 (от самого отрицательного к самому положительному). Вначале фрагмент неструктурированного текста исследуется с помощью инструментов и алгоритмов обработки естественного языка, а затем выделенные из этого текста объекты и термины анализируются с целью понимания значения этих слов.[11].

Субъективность/объективность

[править | править код]

Другое исследовательское направление — это идентификация субъективности/объективности[12]. Эта задача обычно определяется как отнесение данного текста в один из двух классов: субъективный или объективный. Эта проблема иногда может быть более сложной, чем классификация полярности: субъективность слов и фраз может зависеть от их контекста, а объективный документ может содержать в себе субъективные предложения (например, новостная статья, цитирующая мнения людей). Более того, как упоминал Су[12], результаты в большей степени зависят от определения субъективности, употребляющейся в рамках аннотации текстов. Как бы то ни было, Панг[13] показал, что удаление объективных предложений из документа перед классификацией полярности помогло повысить точность результатов.

Модель более подробного анализа называется анализом на основе функции/аспекта. Эта модель ссылается на определение мнений или настроений, выраженных различными функциями или аспектами сущностей, например, у сотового телефона, цифровой камеры или банка. Свойство/аспект — это атрибут или компонент сущности, исследуемой на тональность, например, экран сотового телефона или же качество съёмки камеры. Эта проблема требует решения ряда задач, например, идентификации актуальных сущностей, извлечения их функций/аспектов и определения, является ли мнение, высказанное по каждой функции/аспекту, положительным, отрицательным или нейтральным. Более подробные дискуссии на этот счёт могут быть найдены в справочнике по NLP, в главе «Анализ тональности и субъективности»[14].

Подходы к классификации тональности

[править | править код]

Компьютеры могут выполнять автоматический анализ цифровых текстов, используя элементы машинного обучения, такие как скрытый семантический анализ, метод опорных векторов, «мешок слов» и семантическая направленность в этой области[7]. Более сложные методы пытаются определить обладателя настроений (то есть человека) и цель (то есть сущность, в отношении которой выражаются чувства). Чтобы определить мнение с учётом контекста, используют грамматические отношения между словами[15].

Отношения грамматической связанности получают на основе глубокого структурного разбора текста. Анализ тональности может быть разделен на две отдельные категории[16]:

  • ручной (или анализ тональности экспертами);
  • автоматизированный анализ тональности.

Наиболее заметные различия между ними лежат в эффективности системы и точности анализа. В компьютерных программах автоматизированного анализа тональности применяют алгоритмы машинного обучения, инструменты статистики и обработки естественного языка, что позволяет обрабатывать большие массивы текста, включая веб-страницы, онлайн-новости, тексты дискуссионных групп в сети Интернет, онлайн-обзоры, веб-блоги и социальные медиа.

Семантические тезаурусы

[править | править код]

Существует ряд тезаурусов, специально размеченных с учётом эмоциональной составляющей. Такие словари, описанные далее, необходимы компьютерным программам при анализе тональности текста.

Примером для разработки WordNet-Affect послужило многоязычное расширение WordNet, названное WordNet Domain[17]. В расширении WordNet Domain каждому синсету приписано не менее одной пометы предметной области (англ. «domain label»), например: спорт, политика, медицина. Всего в иерархически организованную структуру было включено около двухсот предметных помет[18].

WordNet-Affect — это семантический тезаурус, в котором понятия, связанные с эмоциями («эмоциональные концепты», англ. «affective concepts»), представлены с помощью слов, обладающих эмоциональной составляющей («эмоциональные слова», англ. «affective words»)[17]. WordNet-Affect состоит из такого подмножества синсетов[19] WordNet, где каждый синсет, соответствующий «эмоциональному концепту», может быть представлен с помощью «эмоциональных слов»[17].

Таким образом, WordNet-Affect был создан на основе WordNet для английского языка (также существуют версии WordNet-Affect и для других языков[20]) путём выбора и отнесения наборов синонимов (синсетов) к различным эмоциональным понятиям. В частности, синсеты глаголов, существительных, прилагательных, наречий, которые представляют собой описание эмоций, были вручную размечены с помощью специальных эмоциональных меток (affective labels, A-labels)[21]. Эти эмоциональные метки характеризуют различные состояния, выражающие настроения, эмоциональные отклики или ситуации, которые вызывают эмоции[21]. Примеры таких эмоциональных меток приведены в следующей таблице[22]

Эмоциональная метка Пример
Эмоция (emotion) сущ. гнев#1, гл. бояться#1 (fear)
Настроение (mood) сущ. враждебность#1 (animosisy), прил. любезный#1J (amiable)
Особенность (trait) сущ. агрессивность#1 (aggressiveness), прил. соперничающий#1 (competitive)
Когнитивное состояние (cognitive state) сущ. замешательство#2 (confusion), прил. потрясенный#2 (dazed)
Физическое состояние (physical state) сущ.хворь#1 ( llness), прил. выдохнувшийся#1 (all in)
Гедонический сигнал (gedonic signal) сущ. боль#3(hurt), сущ. страдание#4 (suffering)
Ситуации, вызывающие эмоции (emotion-eliciting situation) сущ. неловкость#3 (awkwardness), сущ. безопасность#1 (out of danger)
Эмоциональные отклики (emotional responses) сущ. холодный пот#1 (cold sweat), гл. дрожать#2 (tremble)
Поступки (behaviour) сущ. преступление#1 (offense), прил. заторможенный#1 (inhibited)
Отношение, позиция (attitude) сущ. нетерпимость#1 (intolerance), сущ. оборонительная позиция#1 (defensive)
Чувство (sensation) сущ. холод#1 (coldness), гл. чувствовать#3 (feel)

Также в WordNet-Affect используются дополнительные эмоциональные метки для того, чтобы разделять синсеты в соответствии с их эмоциональной валентностью. Для этого определяются четыре дополнительные эмоциональные метки: позитивная, негативная, неоднозначная и нейтральная[21]. Первая соответствует положительным эмоциям, которые определяются как эмоциональные состояния, характеризующиеся наличием положительных гедонистических сигналов (или удовольствия). Она включает в себя такие синсеты как радость#1 или увлечение#1. Аналогично негативная метка идентифицирует негативные эмоции, характеризующиеся отрицательными гедонистическими сигналами (или болью), например, гнев#1 или печаль#1. Синсеты, представляющие эмоциональные состояния, валентность которых зависит от семантического контекста (например, удивление#1) помечаются как неоднозначные. Наконец, синсеты, определяющие психологические состояния и всегда рассматривающиеся как неоднозначные, но при этом не характеризующиеся валентностью, являются нейтральными[21].

Синсеты, помеченные эмоциональными метками, дополнительно переразмечаются шестью эмоциональными категориями: радость, страх, гнев, печаль, отвращение, удивление. Таким образом, физическая структура WordNet-Affect состоит из шести файлов: anger.txt, disgust.txt, fear.txt, joy.txt, sadness.txt, surprise.txt, где каждый файл представляет собой описание какой-либо категории[23]. На данный момент WordNet-Affect содержит 2874 синсетов и 4787 слов[24].

Учёные Технического университета Молдовы перевели синсеты WordNet-Affect с английского на русский и румынский языки, выполнили их выравнивание: английский — румынский — русский[25]. Ресурс доступен онлайн для исследовательских целей[23].

SentiWordNet — это лексический семантический тезаурус, первая версия которого была разработана в 2006 году.[26] На данный момент самой последней версией SentiWordNet является SentiWordNet 3.0[26], использование которой дает более чем 20 % прирост точности по сравнению с первой версией[26].

Данная система является результатом процесса автоматического аннотирования каждого WordNet синсета (набора синонимов) в соответствии с его степенью позитивности, негативности и объективности[27]. Таким образом, каждому синонимическому ряду из WordNet присваивается три численных оценки, где каждая из этих оценок соответственно определяет объективную, позитивную или негативную составляющую синсета[26]. Каждая из этих оценок принимает значения в интервале от 0 до 1, и в сумме они дают 1 (единицу), то есть каждая из этих оценок может иметь ненулевое значение[26]. Термы, которые могут иметь различные значения, могут иметь и различные значения оценок[26].

Процесс обучения SentiWordNet состоял из двух шагов:[28].

  1. На первом шаге разработки системы были использованы методы машинного обучения со слабым (частичным участием учителя (semi-supervised learning)) для первичного наполнения. Вначале было выбрано небольшое множество синсетов, которому вручную были присвоены численные оценки. Затем на основе этого множества было обучено несколько классификаторов, задачей которых является определение степени позитивности, негативности, и объективности синсета. После этого, через полученные модели классификаторов, были определены численные оценки для каждого WordNet синсета.[28]
  2. К данным, полученным на первом шаге, была применена модель случайного блуждания (random-walk step), в результате работы которой были установлены окончательные оценки объективной, позитивной или негативной составляющих каждого синсета. Подробнее об этом этапе вы можете прочитать в следующей работе[29].

SentiWordNet распространяется по лицензии CC BY-SA 3.0. Эта лицензия позволяет свободно использовать SentiWordNet в коммерческих и научных целях при условии указания имён создателей.[27] Любой желающий может самостоятельно загрузить файлы SentiWordNet с официального сайта бесплатно. Также можно загрузить небольшой Java класс, демонстрирующий работу с SentiWordNet[27].

SenticNet представляет собой ещё один семантический тезаурус для работы с наборами эмоциональных понятий. SenticNet является проектом, запущенным в медиа-лаборатории Массачусетского технологического института в 2010 году [30]. С тех пор, проект SenticNet получил дальнейшее развитие и применяется для проектирования интеллектуальных приложений, предназначенных для анализа эмоциональной составляющей текста и охватывающих спектр задач от data mining до организации взаимодействия человека с компьютером [30]. Главным назначением SenticNet является упрощение процедуры машинного распознавания концептуальной и эмоциональной информации, передаваемой с помощью естественного языка [30]. Если сравнить другие лексические тезаурусы, такие как SentiWordNet и WordNet-Affect с SenticNet, то их главным различием будет то, что SentiWordNet и WordNet-Affect обеспечивают связывание слов и эмоциональных понятий на синтаксическом уровне, не позволяя выявлять смысловую составляющую, например, «достижение цели», «нехорошее чувство», «отпраздновать особый случай», «потерять самообладание» или «быть на седьмом небе от счастья», в то время как SenticNet связывает понятия на семантическом уровне[31].

Последней версией является SenticNet 2[32]. В отличие от версии SenticNet 1[32], которая просто присваивает значение тональности примерно 5700 понятиям из корпуса OpenMind, SenticNet 2 обеспечивает связывание семантики и «sentics» (то есть когнитивной и «эмоциональной» информации) с более чем 14000 понятий и позволяет проводить более глубокий и многогранный анализ текста на естественном языке по сравнению с SenticNet 1[32]. SenticNet 2 построен с помощью «sentic-вычислений», парадигмы, которая использует методы ИИ и семантической паутины для улучшения распознавания, интерпретации и обработки мнений на естественном языке[32].

«Sentic-вычисления» представляют собой междисциплинарный подход к анализу тональности текста на перекрестке между «affect computing» и «common sense computing»[33]. Под термином «common sense computing» подразумевается ряд инициатив, направленных на то, чтобы в компьютерах были представлены знания об всём на свете в том виде, как их понимает человек, и чтобы компьютеры были в состоянии строить логические выводы на основе этих знаний[34]. Такой междисциплинарный подход предполагает использование средств информационных и социальных наук для улучшения распознавания, интерпретации и обработки мнений и чувств[33]. В частности, Sentic вычисления предполагают использование методов искусственного интеллекта и семантической паутины — для представления знаний и их вывода; математику — для решения таких задач как обработка графов и понижение размерности; лингвистику — для дискурсивного анализа и прагматики; психологию — для познавательного и эмоционального моделирования; социологию — для понимания динамики социальных сетей и социального влияния; и наконец этику — для понимания природы ума и создания эмоциональных машин. «Sentic-вычисления» позволяют проводить анализ документов не только на уровне целых страниц и текстов, но и на уровне предложений, что позволяет оценивать тексты на более высоком уровне детализации[33].

Для того чтобы представить данные SenticNet в машиночитаемом виде, удобном для обработки компьютерными программами, данные кодируются в RDF-триплеты с использованием синтаксиса XML. Пример XML-файла для концепта «love» можно посмотреть на сайте проекта по следующей ссылке[35]. Например, если в процессе работы приложения встретится такое понятие, как «день рождения», то SenticNet отнесёт его к понятию высокого уровня «события» и свяжет с набором семантически близких понятий, например, «сладкий», «дружеский сюрприз» или «клоун» (которые могут быть использованы в качестве источника дополнительной/контекстной информации, чтобы улучшить результаты поиска)[36]. SenticNet также сопоставляет каждому понятию «sentic-вектор» с численными значениями таких величин, как Pleasantness (приятность), Attention (внимание), Sensitivity (чуткость) and Aptitude (способность)[37], а также величину тональности (для таких задач, как анализ тональности текста), основное и дополнительное настроение, а также набор эмоционально близких понятий, например, «праздник» или «особый случай» (для таких задач, как определение тональности текста)[36].

Любой желающий может свободно скачать SenticNet 2 с официального сайта[38].

Методы классификации тональности

[править | править код]

Методы, основанные на правилах и словарях

[править | править код]

Этот метод основан на поиске эмотивной лексики[39] (лексической тональности) в тексте по заранее составленным тональным словарям и правилам с применением лингвистического анализа. По совокупности найденной эмотивной лексики текст может быть оценен по шкале, содержащей количество негативной и позитивной лексики. Данный метод может использовать как списки правил, подставляемые в регулярные выражения, так и специальные правила соединения тональной лексики внутри предложения. Чтобы проанализировать текст, можно воспользоваться следующим алгоритмом: сначала каждому слову в тексте присвоить его значение тональности из словаря (если оно присутствует в словаре), а затем вычислить общую тональность всего текста путём суммирования значения тональностей каждого отдельного предложения[39].

Основной проблемой методов, основанных на словарях и правилах, считается трудоёмкость процесса составления словаря. Для того, чтобы получить метод, классифицирующий документ с высокой точностью, термины словаря должны иметь вес, адекватный предметной области документа. Например, слово «огромный» по отношению к объёму памяти жёсткого диска является положительной характеристикой, но отрицательной по отношению к размеру мобильного телефона. Поэтому данный метод требует значительных трудозатрат, так как для хорошей работы системы необходимо составить большое количество правил. Существует ряд подходов, позволяющих автоматизировать составление словарей для конкретной предметной области (например, тематика ресторанов или тематика мобильных телефонов)[40].

Машинное обучение с учителем

[править | править код]

В наше время наиболее часто используемыми в исследованиях методами являются методы на основе машинного обучения с учителем. Сутью таких методов является то, что на первом этапе обучается машинный классификатор (например, байесовский[41]) на заранее размеченных текстах, а затем используют полученную модель при анализе новых документов. Опишем краткий алгоритм[42]:

  1. вначале собирается коллекция документов, на основе которой обучается машинный классификатор;
  2. каждый документ раскладывается в виде вектора признаков(аспектов), по которым он будет исследоваться;
  3. указывается правильный тип тональности для каждого документа;
  4. производится выбор алгоритма классификации и метод для обучения классификатора;
  5. полученную модель используем для определения тональности документов новой коллекции.

Машинное обучение без учителя

[править | править код]

В основе этого подхода лежит идея, что термины, которые чаще встречаются в этом тексте и в то же время присутствуют в небольшом количестве текстов во всей коллекции, имеют наибольший вес в тексте. Выделив данные термины, а затем определив их тональность, можно сделать вывод о тональности всего текста[41].

Метод, основанный на теоретико-графовых моделях

[править | править код]

В основе этого метода используется предположение о том, что не все слова в текстовом корпусе документа равнозначны. Какие-то слова имеют больший вес и сильнее влияют на тональность текста. При использовании этого метода анализ тональности разбивается на несколько этапов:

  1. построение графа на основе исследуемого текста;
  2. ранжирование его вершин;
  3. классификация найденных слов;
  4. вычисление результата.

Подробнее о пунктах 1 и 2 вы можете прочитать в работе «Извлечение терминов из русскоязычных текстов при помощи графовых моделей» Д. А. Усталова[43].

Для классификации слов используется тональный словарь, в котором каждому слову соотносится оценка, например «положительная», «отрицательная» или «нейтральная». Для получения конечного результата нужно вычислить значения двух оценок: положительной составляющей текста и отрицательной. Для того, чтобы найти положительную составляющую текста необходимо найти сумму тональностей всех положительных терминов текста с учётом их веса. Значение отрицательной составляющей текста находится аналогичным образом. Для итоговой оценки тональности всего текста нужно вычислить отношение этих составляющих по формуле: , где T — итоговая оценка тональности, P — оценка положительной составляющей текста и N — негативная составляющая текста. В соответствии со статьёй Меньшикова[44], текст, в котором значение T близко к единице, будет считаться нейтральным, если немного превосходит 1 — положительным. Если сильно превосходит 1, то сильно положительным. Обратное верно и для текстов отрицательной тональности[45]. Более подробно данный метод рассмотрен в работах Голдберга[46] и Пономарёвой[47].

Оценка качества анализа тональности

[править | править код]

Точность и качество системы анализа тональности текста оценивается тем, насколько хорошо она согласуется с мнением человека относительно эмоциональной оценки исследуемого текста. Для этого могут использоваться такие метрики как точность и полнота[48]. Формула для нахождения полноты:

где correctly extracted opinions — верно определённые мнения, total number of opinions — общее количество мнений(как найденных системой, так и не найденных)[48]. Точность вычисляется по формуле[48]:

где correctly extracted opinions — верно определённые мнения, total number of opinions found by system — общее количество мнений найденных системой[48]. Таким образом, точность выражает количество исследуемых текстов, предложений или документов, в оценке которых мнение системы анализа тональности совпало с мнением эксперта. При этом, согласно исследованию, эксперты обычно соглашаются в оценках тональности конкретного текста в 79 % случаев[49]. Следовательно, программа, которая определяет тональность текста с точностью 70 %, делает это почти так же хорошо, как и человек.

Примечания

[править | править код]
  1. Pang, Lee, 2008, p. 6.
  2. 1 2 Bing Liu, 2010, p. 5.
  3. Bing Liu, 2010, p. 2.
  4. 1 2 Pang, Lee, 2008, p. 16—17.
  5. Bollen,Mao,J.Zeng, 2010.
  6. Pang, Lee, 2008.
  7. 1 2 Turney, 2002.
  8. Pang, Lee, Vaithyanathan, 2002.
  9. Pang, Lee, 2005.
  10. 1 2 Snyder, Barzilay, 2007.
  11. Thelwall et al, 2010.
  12. 1 2 Su, Markert, 2008, p. 1.
  13. Pang, Lee, 2004, p. 7.
  14. Bing Liu, 2010.
  15. Turney, 2002, p. 2—3.
  16. Washington.
  17. 1 2 3 Strapparava, 2004, с. 1083.
  18. Magnini et al, 2000.
  19. Синсет (synset) — набор синонимов.
  20. Bobicev, 2010, с. 1.
  21. 1 2 3 4 WordNet-Affect.
  22. Strapparava, 2004, с. 1086.
  23. 1 2 WordNet-Affect ru.
  24. Strapparava, 2004, с. 1084.
  25. Bobicev, 2010.
  26. 1 2 3 4 5 6 Stefano Baccianella, 2010, с. 2200.
  27. 1 2 3 SentiWordNet.
  28. 1 2 Stefano Baccianella, 2010, с. 2201.
  29. Stefano Baccianella, 2010, с. 2201—2202.
  30. 1 2 3 SenticNet.
  31. Erik Cambria, 2012.
  32. 1 2 3 4 Erik Cambria, 2012, с. 202.
  33. 1 2 3 Erik Cambria, 2012, с. 203.
  34. Erik Cambria 2009, 2009, с. 1.
  35. SenticNet api love.
  36. 1 2 Erik Cambria, 2012, с. 205.
  37. SenticNet api.
  38. SenticNet main.
  39. 1 2 Пазельская, 2011, с. 512.
  40. Chetviorkin, 2012.
  41. 1 2 Klecovina, Kotelnikov, 2012, с. 81.
  42. Klecovina, Kotelnikov, 2012.
  43. Усталов, 2012.
  44. Меньшиков, 2012, с. 1—3.
  45. Меньшиков, 2012, с. 3—4.
  46. Goldberg, Zhu, 2006.
  47. Ponomareva, Thelwall, 2012.
  48. 1 2 3 4 Nozomi Kobayashi, 2006, p. 4.
  49. Ogneva.

Литература

[править | править код]
  • Washington, Erin. Human Sentiment Analysis (англ.). Growing Social Media (14 ноября 2013). Дата обращения: 11 декабря 2013.