Метод автоматического анализа тональности текста в применении к социологическим задачам. С. Н. Кольцов, Ю. Павлова, О. Ю. Кольцова. Национальный Исследовательский Университет "Высшая Школа Экономики - СанктПетербург", Лаборатория Интернет-Исследований. [email protected], [email protected], [email protected]. Оглавление Введение. ........................................................................................................................................1 Глава 1. Методика анализа тональности текста. ........................................................................1 Введение в социологическую проблематику. .........................................................................1 Обоснование выбора инструмента ..........................................................................................2 Установка и настройка SS ........................................................................................................6 Алгоритм подготовки текста для исследования .....................................................................9 Адаптация инструмента Sentistrength к русскому языку ...................................................9 Критерии качества интеркодирования. .............................................................................10 Расчет коэффициент Cohen'skappa .....................................................................................11 Работа с SentiStrength. .............................................................................................................19 Визуализация данных..............................................................................................................22 Интерпретация результатов. ...................................................................................................25 Глава 2. Метод автоматического анализа тональности текста в применении к социологическим задачам: на примере анализа комментариев к постам Живого Журнала. .......................................................................................................................................................25 Цель и объект исследования ...................................................................................................26 Данные для исследования. ......................................................................................................27 Адаптация Sentistrength на основе Живого Журнала...........................................................27 Алгоритм исследования комментариев. ................................................................................34 Введение. Данная работа состоит из двух частей. 1. Описание исследовательской методологии автоматического анализа тональности текста. 2. Применение методологии для исследования комментариев к постам живого журнала. Глава 1. Методика анализа тональности текста. Введение в социологическую проблематику. В настоящее время в связи со стремительным ростом информационных технологий и процессов происходит проникновение Интернета в различные сферы жизни общества. Теперь Интернет представляет собой не просто информационное поле, а социальное пространство со своими собственными процессами и явлениями, социальными группами и объединениями, которые необходимо изучать как часть социума. При этом интенсивность воздействия виртуальной среды на сознание человека резко возросла: произошло и как его усиление за счет разнообразия, вариативности, общедоступности, так и расширение способов этого воздействия. Это и переход к интерактивным формам взаимодействия, и перенос некоторых социальных функций в виртуальное пространство, и, конечно, коммуникация через Интернет. При этом возникает необходимость в каком-то посредническом инструменте для осуществления этой коммуникаций. Текст становится проводником социального воздействия и коммуникации. Изучение и анализ текстов открывает для исследователя возможности узнать, о чем говорят в виртуальном пространстве, что наиболее обсуждаемо, что вызывает интерес, и, тем самым, волнует наше общество в настоящий момент. В социологии анализ текстов обычно осуществляется следующими традиционными методами: дискурс-анализ, контент-анализ, когнитивное картирование и т.п. Однако необходимо учитывать, что виртуальное пространство является хранилищем огромного количества текстов. Поэтому обрабатывать и анализировать их обычными, привычными для социологов методами не представляется возможным. Для этого и разрабатываются различные инструменты для автоматизированного анализа текстов. В настоящее время особый интерес для социологического анализа представляют блоги и пространство ими образуемое – блогосфера. При этом значимость изучения публичной части блогосферы, открытых для свободного доступа блогов, особенно велика. Именно они способны влиять на общественное мнение, быть платформой для 1 высказывания своих мыслей, обсуждения различных проблем и являться своего рода средствами массовой информации. Одной из важных особенностей блогосферы является то, что авторы постов и комментариев к ним выражают свои оценочные мнения о происходящих в мире событиях, явлениях, персонах. Это является полезным материалом для различных социологических исследований – анализа политических взглядов, протестных настроений, отношения общества к реформам, социальным изменениям и т.д. В связи с этим все более популярным направлением исследований и разработок стал анализ интернет-контента с использованием методов анализа тональности текстов или Sentimentanalysis [Zafarani, ColeandLiu, 2010; Melville, Gryc, andLawrence, 2011, Fukuhara, Nakagawa, Nishida, 2007]. Обоснование выбора инструмента Существуют исследования тональности текста для определения отношения к политическим лидерам в период предвыборной кампании, что существенным образом помогает моделировать поведение кандидата и прогнозировать исход политической борьбы [Wanneretal, 2008; Tumasjanetal, 2010; Kelly, 2011]. Также подобные исследования проводятся для выявления радикальных настроений в социальных сетях и гендерных особенностях пользователей, выражающих такие настроения [Berminghametal, 2009], что помогает прогнозировать потенциально опасное поведение в реальном времени. Исследования настроений в блогосфере в зависимости от характера новостных сообщений помогают определить, какое влияние оказывают новости на выражение своих эмоций людьми в социальных сетях. [Fukuharaetal, 2007]. Инструменты для sentimentanalysis, используемые в данных исследованиях предназначены для решения узких, специфических задач, решаемых в рамках данных исследований. Sentimentanalysis – одно из направлений текстового анализа, главной целью которого является определение эмоциональной окраски текста для выявления отношения автора текста к какому-либо объекту, определенной теме, процессу или явлению. Классическая задача sentimentanalysis — автоматическое определение оценок какого-либо объекта (персона, марка товара, бренд, событие, организация и т.д.) на основании корпуса текстов, посвященных этому предмету, например, отзывов или газетных новостей. При анализе тексты обычно классифицируется на оценочные и нейтральные в отношении оценки. При определении оценок чаще всего используется поляризованная шкала: позитивная—негативная оценка либо эмоция, иногда дополняемая количественными 2 индексами. Основными источниками информации для автоматического определения оценок в тексте является, прежде всего, лексика (слова и сочетания, имеющие оценочное значение), также может учитываться пунктуация (например, восклицательные знаки, особенно несколько подряд) и специальные конвенции, свойственные данному типу текстов (например, эмотиконы для интернет-коммуникации). Классическими областями применения sentimentanalysis являются маркетинговые исследования (анализ оценки продукта или бренда на основании отзывов потребителей) и исследования СМИ (например, оценки деятельности политического лидера по публикациям в СМИ). Основные трудности при переносе методологии sentimentanalysis в другие области, в том числе для решения задач социологического анализа, кроются в том, что способы выражения оценок в тексте могут очень значительно варьироваться в зависимости от сферы и жанра коммуникации, медиа, предметной области. Существующие алгоритмы и ПО для sentimentanalysis разрабатывались для решения задач, связанных с какой-либо конкретной областью и сферой применения, при этом все они в большей или меньшей степени опираются на специфические словари, оптимизированные для конкретного материала. Поэтому при выборе методики и ПО необходимо ориентироваться на сходство типа текстов, для которых они разрабатывались с теми текстами, которые предстоит исследовать Тем не менее, существуют разработки в области sentimentanalysis, которые могут использоваться именно для социологических задач. Одним из таких программных обеспечений является Sentistrength [Thelwalletal, 2007]. SentiStrength – программа оценки силы положительных и отрицательных настроений в текстах, ориентированная на работу с краткими интернет-сообщениями, публикуемыми в социальных сетях (MySpace, Twitter), которые во многих отношениях сходны с текстами блогосферы, в первую очередь с комментариями к постам. SentiStrength работает на основе словаря эмоционально окрашенной лексики, все слова в котором закодированы от -5 до -1 для слов, выражающих отрицательные эмоции и от 1 до 5 для слов, выражающих положительные эмоции. Словарь, который используется в англоязычной версии, включает в себя 2200 эмоционально окрашенных слов, а также так называемые слова-усилители «BoosterWords» (например, absolutely, definitely и т.п.), список идиоматических выражений, слова-отрицания «NegatingWords» (например, never, don’t), список вопросительных слов и сленговых выражений.SentiStrength также 3 использует целый ряд признанных нестандартных написаний и других распространенных текстовых способов выражения чувств как сокращения, смайлы и т.п. Алгоритм SentiStrength был разработан автором[Thelwalletal, 2007] для коротких неофициальных текстов с сокращениями и сленгом, также бы апробирован на комментариях к сообщениям в социальной сети MySpace. Комментарии были проанализированы автоматически с помощью данного программного обеспечения, а также вручную тремя кодировщиками с показателем высокой степени надежности интеркодирования. По результатам сравнения ручного и автоматического анализа, автор [Thelwalletal, 2007] показал, что SentiStrength имеет более высокую степень точности, чем стандартные алгоритмы с «машинным обучением» для определения положительных эмоций (Таблица 1) и такой же степенью точности для определения отрицательных эмоций (Таблица 2). Таблица 1. Характеристики результативности программных продуктов Sentimentanalysis для определения положительных эмоций1 Algorithm Opt. Feat. Accuracy Acc. +/1 class Corr. Mean % abs. Error - 60.6% 96.9% .599 22.0% Simple logistic regression 700 58.5% 96.1% .557 23.2% SVM (SMO)2 800 57.6% 95.4% .538 24.4% J48 classification tree3 700 55.2% 95.9% .548 24.7% JRip rule-based classifier4 700 54.3% 96.4% .476 28.2% SentiStrength 1 Thelwall, M., Buckley, K., Paltoglou, G., Cai, D., &Kappas, A. (2010). Sentiment strength detection in short informal text. Journal of the American Society for Information Science and Technology, 61(12), 2544–2558 2 S. K. Shevade, S. S. Keerthi, C. Bhattacharyya, and K. R. K. Murthy (2000) Improvements to the SMO Algorithm for SVM Regression.Ieee transactions on neural networks, vol. 11, no. 5 3 http://www.d.umn.edu/~padhy005/Chapter5.html 4 A.Hindle, D. M. German, M. W. Godfrey, R. C. Holt.Automatic Classification of Large Changes into Maintenance (2009) 4 SVM regression (SMO) 100 54.1% 97.3% .469 28.2% AdaBoost5 100 53.3% 97.5% .464 28.5% Decision table6 200 53.3% 96.7% .431 28.2% Multilayer Perceptron7 100 50.0% 94.1% .422 30.2% Naïve Bayes8 100 49.1% 91.4% .567 Baseline9 - 47.3% 94.0% - 31.2% Random - 19.8% 56.9% .016 82.5% Таблица 2. Характеристики результативности 27.5% программных продуктов Sentimentanalysis для определения отрицательных эмоций10 Algorithm Opt. Feat. Accuracy Acc. +/- 1 class Corr. Mean % abs. Error SVM (SMO) 100 73.5% 92.7% .421 16.5% SVM regression (SMO) 300 73.2% 91.9% .363 17.6% Simplelogisticregression 800 72.9% 92.2% .364 17.3% SentiStrength - 72.8% 95.1% .564 18.3% Decisiontable 100 72.7% 92.1% .346 17.0% JRiprule-basedclassifier 500 72.2% 91.5% .309 17.3% J48 classificationtree 400 71.1% 91.6% .235 18.8% 5 H. Falaki, AdaBoost Algorithm http://www.methodsandtools.com/archive/archive.php?id=39 7 http://www.cogsys.wiai.uni-bamberg.de/teaching/ss05/ml/slides/cogsysII-4.pdf 8 http://www.d.umn.edu/~padhy005/Chapter5.html 9 http://www.universalsubtitles.org/en/videos/rtCJX8oSCXAy/en/257682/ 6 5 MultilayerPerceptron 100 70.1% 92.5% .346 20.0% AdaBoost 100 69.9% 90.6% - 16.8% Baseline - 69.9% 90.6% - 16.8% NaïveBayes 200 68.0% 89.8% .311 27.3% Random - 20.5% 46.0% .010 157.7% На основании сравнительного обзора был выбран пакет SentiStrength, как наиболее пригодный дляанализа комментариев к постам в Живом Журнале. Установка и настройка SS SentiStrength – программа оценки силы положительных и отрицательных настроений в текстах, ориентированная на работу с краткими интернет-сообщениями, публикуемыми в социальных сетях (MySpace, Twitter), которые во многих отношениях сходны с текстами блогосферы, в первую очередь с комментариями к постам.Разработчиком данного программного обеспечения является Майкл Фелволл. Версия для установки и работы с SentiStrength доступна для скачивания на его сайте: http://sentistrength.wlv.ac.uk/ Для этого необходимо перейти в раздел Downloads. Там будет предложено сначала зарегистрироваться для того, чтобы перейти к загрузке. Регистрация формальная. Данные можно вводить любые вплоть до простого набора букв. После этого Вы перейдете на страницу сайта, где будет предложено скачать сам файл для установки программы “SentiStrength 2.2 “. Наводим на него мышкой и сохраняем на рабочем столе компьютера. При удачном скачивании рабочий стол украсит ярлычок . Однако, как уже было сказано ранее, SentiStrength работает на основе словарей, поэтому для того, чтобы программа начала функционировать, необходимо загрузить архив со всеми используемыми словарями -«September 21, 2011 configurationfiles». Кликаем мышкой и сохраняем данный файл на диске c:\SentStrength_Data\. Этот файл необходимо разархивировать в эту же папку. При нажатии на ярлычок программы на рабочем столе, программа спросит Вас, где находится файл со словарями. Необходимо указать место, куда вы сохранили и разархивировали данный файл. Если все сделано правильно, то при следующем нажатии на ярлык, появится диалоговое окно программы: 6 Нажав на кнопку QuickTest, можно вводить любые фразы, слова, предложения на английском языке и получать результат в виде числовой оценки эмоциональной заряженности в таком виде: В этом примере, SentiStrength оценил позитивные эмоции выражения на 3, а негативные на -2. Но это работа с одним предложением, максимум можно использовать QuickTest для 2-3 предложений. Для того чтобы загрузить в программу целую коллекцию текстов необходимо на панели управления выбрать SentimentStrengthAnalysis и из выпадающего подменю выбрать AnalyseALLTextsinFile и загрузить ваш txt файл с текстами. Однако сейчас это можно сделать только с текстами на английском языке. Для того чтобы программа работала с русскоязычными текстами, SentiStrength нужно 7 адаптировать к русскому языку. Но для начала остановимся на словарях, которые использует в своей работе данное программное обеспечение. При распаковке архива -«September 21, 2011 configurationfiles» появятся 8 txt файлов с английскими словами. Самый основной из них EmotionLookupTable размером 70 КБ. Это словарь, состоящий из слов, выражающих какую-то эмоциональную оценку к чему-либо или кому-либо, каждое из которых закодировано от -5 до 5 в зависимости от того, положительную или отрицательную эмоцию оно выражает. Например, слово destroy (разрушать) имеет значение -3, а слово enjoy (наслаждаться) 3. На основе этих коэффициентов SentiStrength и определяет значение эмоциональной заряженности текста. Чем больше слов в тексте, имеющих отрицательное значение, тем негативнее эмоциональная заряженность всего текста. Именно с этим словарем в основном необходимо работать при адаптации программы к русскому языку. Второй файл с таким же названием EmotionLookupTable, но меньшим размером, содержит эмотиконы – символы, выражающие эмоции, так называемые смайлы, тоже закодированные от -5 до 5. Его можно оставить и для работы с русскими текстами, так как символьные значения в языках не сильно отличаются в зависимости от языка. Второй файл, который также необходимо будет адаптировать к русскому языку, это BoosterWordList – словарь с так называемыми словами – усилителями. Например, absolutely (абсолютно), definitely (определенно), very (очень). То есть это список слов, которые усиляют выражаемую эмоцию, будь то позитивную или негативную. Этот словарь также закодирован от -5 до 5. NegatingWordList – словарь, содержащий слова, выражающие отрицание – not (не), never (никогда). Аналогами в русском языке являются отрицательные местоимения. QuestionWords – словарь, содержащий вопросительные местоимения. SlangLookupTable - словарь, содержащий сленговые фразы и выражения. Причем словарь учитывает и различные формы написания данных слов при написании текстов в интернет сообщениях в социальных сетях или смс в телефоне: alol - actuallylaughingoutloud,Btw - bytheway и т.д. IdiomLookupTable–словарь, содержащий устойчивые слова и выражения. Как, например, «Как дела?», «Что нового?». Идиоматические выражения также закодированы от -5 до 5. EnglishWordList – орфографический словарь английских слов. Самым основным словарем для работы программы является EmotionLookupTable, так как в нем содержаться все основные слова, выражающие эмоциональную оценку 8 исследуемого объекта. Остальные словари помогают скорректировать работу программы, улучшить ее понимание языковых особенностей и словоупотреблений в тех или иных текстах. Поэтому для более точной работы SentiStrength всем используемым словарям желательнонайти аналоги в русском языке. Однако для прикладных задач можно обойтись созданием русскоязычных аналогов EmotionLookupTable, BoosterWordList, NegatingWordList, QuestionWords. Алгоритм подготовки текста для исследования Адаптация инструмента Sentistrength к русскому языку Адаптация проходила в несколько этапов: Перевод словаря. Перевод словаря, используемого в англоязычной версии Sentistrength на русский язык. Все представленные в англоязычной версии списки слов и выражений были переведены на русский язык. Оптимизация перевода. При дословном переводе были получены списки слов, в большинстве своем не являющиеся показательными для оценки эмоциональных особенностей выражения отношения к кому или чему-либо при написании блогов, а зачастую некоторые слова вообще не являлись общеупотребимыми в русском языке. Для того чтобы составить более пригодный список слов осуществлялся подбор подходящих русских эквивалентов к имеющемуся переведенному словарю. Основный принцип подбора эквивалентов — поиск слов, употребляющихся в русских текстах в оценочных контекстах, сходных с оценочными контекстами, характерными для исходного английского слова. Была учтена нецензурная лексика, включены разговорные и сленговые слова, удалены несоответствующие исследовательским задачам слова и выражения. Словарь включал в себя 1200 слов. Создание частотного словаря. Еще одним способом составления или дополнения словаря может служить работа с частотным словарем словоупотреблений в текстах исследуемой коллекции. В результате вы получите файл, в котором будут отражены все слова, используемые в исследуемой коллекции текстов, и напротив каждого слова будет указана частота, с которой это слово встречается в коллекции. Как правило, самую большую частоту имеют слова, которые не выражают каких-то эмоций, а просто используются в нашей речи более часто, чем другие – это союзы, местоимения, глаголы, обозначающие повседневные действия. Поэтому слова с самой большой частотой можно смело удалять, также как и с 9 маленькой – как правило, это очень редкие, специфические сова. Из оставшихся слов необходимо выбрать те, которые могут выражать оценку какого-то события или явления или эмоциональное отношение к ним, в зависимости от предмета исследования. Например, если Вам необходимо оценить работу какого-то учреждения (например, паспортной службы), то стоит выбрать слова, которые могут охарактеризовать ее с положительной и отрицательной стороны (очередь, толпа, ругаться, помогать, вежливость и т.п.), и эти слова включать в словарь, полученный на первоначальном этапе. В результате предварительного анализа на тестовой выборке был сделан вывод о том, что данный словарь не включает в себя многих слов, часто употребляемых для написания постов и комментариев к блогам, поэтому было решено осуществить составление частотного словаря словоупотреблений в текстах комментариев ЖЖ. Частотный словарь был составлен по комментариям из двух выборок, за сентябрь и за декабрь. Данный словарь представляет собой список слов с количеством употреблений каждого в текстах комментариев Живого Журнала. Словарь включал в себя только те слова, которые встретились в обеих выборках — сентябрьской и декабрьской. Из данного словаря были удалены слова, которые имели очень большой показатель употреблений (так как самыми частотными является небольшое количество слов, наиболее употребимых в русском языке, но не несущих существенную эмоциональную нагрузку) и наиболее редкие слова. Из оставшихся слов были выбраны те, которые могут выражать оценку какого-то события или явления или эмоциональное отношение к ним. Эти слова были включены в словарь, полученный на первоначальном этапе. Итогом работы стал словарь из 1820 русскоязычных оценочно-эмоциональных слов (Приложение 1). Кодирование словаря. Кодирование словаря также является очень важной составляющей по работе с адаптацией SentiStrength к русскому языку. Каждое слово в словаре закодировано тремя кодировщиками по степени негативной или позитивной окраски (от -5 до 5 соответственно). Для получения объективных данных была разработана инструкция для кодировщиков, содержащая руководство по оцениванию эмоциональной окрашенности слов (Приложение 2), было проведено обучение и проверена степень надежности интеркодирования. Критерии качества интеркодирования. Надежность интеркодирования – это степень соответствия, достигнутая относительно значений, приписываемых одному и тому же или сходным признакам разными независимыми наблюдателями [Мантгейм, Рич, 1997]. Свидетельством 10 надежности кодирования служит независимое присвоение кодировщиками одному и тому же тексту одного и того же кода. Этот тип надежности может измеряться с помощью различных методов расчета, каждый из которых имеет свои преимущества и недостатки и используется для разного количества кодировщиков: Percentagreement - Процентное соглашение в кодах двух кодировщиков [Taylor, Watinson, 2007 ]. Holsti'smethod - Вычисляет согласованность данных номинального уровня, доступен, легок в использовании [Дэвис, 2003]. Scott'spi (p) - Корректирует случайные совпадения экспертных оценок [Taylor, Watinson, 2007]. Cohen'skappa (k) - Коэффициент каппа Коэна (к) можно вычислить только для квадратных таблиц сопряженности [Bland, 2008]. Krippendorff'salpha (a) – Используется для нескольких кодировщиков, больших объемов информации [Hayes, Krippendorff, 2007]. Perrault&Leigh’sIr - Этот показатель чувствителен к различиям в надежности, возникающим при увеличении числа параметров[ Дэвис, 2003]. Каждый из этих индексов вычисляется определенной математической формулой с помощью различных математических аппаратов, чем и объясняются плюсы и минусы этих индексов. Эти индексы неоднократно подвергались проверкам и тестам, информация о них есть в свободном доступе [Taylor, Watinson, 2007; Дэвис, 2003; Hayes, Krippendorff, 2007; Lombardetal., 2005; Schiff, Reiter, 2004], поэтому сведения об индексах и сферах их применения взяты из этих источников. По результатам анализа применяемых для проверки надежности интеркодирования коэффициентов можно сделать вывод, что самым приемлемым для анализа блогосферы является Krippendorff'salpha, так как он наиболее подходит для работы с большим объемом информации и возможен расчет коэффициента для нескольких кодировщиков. Однако данный коэффициент рассчитывается для 1000 и более значений. Его можно использовать для расчета надежности интеркодированияпри кодировки основного словаря. Расчет коэффициент Cohen'skappa Для тестового задания можно использовать коэффициент Cohen'skappa. Он легко рассчитывается для двух кодировщиков с помощью программы SPSS. После того, как Вы 11 получили от кодировщиков файл с оценками каждого слова, эти оценки необходимо занести в базу SPSS. Во вкладке VariableView создаем переменные exp1, exp2, exp3, которые будут соответствовать количеству экспертов. То есть, если в исследовании используется 4 или 5 экспертов, то во вкладке создаются значения для exp4, exp5 и т.п. Тип переменной – числовой (Numeric). Остальные значения можно оставить по умолчанию. Выглядеть данная вкладка должна следующим образом: Далее можно взять значения, присвоенные кодировщиками словам из файлов Excel и скопировать их в SPSS во вкладку DataView. Это будет выглядеть следующим образом: 12 В самой программе SPSS расчет коэффициента Cohen'skappa возможен только для двух кодировщиков. Эта функция заложена в меню Analyze – Discriptive Statistics – CrossTabs В появившемся окне меню Crosstabs exp1 отправляем в колонки (Row(s)), аexp 2 отправляем в столбцы (Column(s)), далее нажимаем справа кнопку Statistics и в появившемся окне Crosstabs Statistics ставим галочку напротив словаKappa.НажимаемContinue, а потом кнопку OK. Результат появиться в файле Output в виде такой таблицы: SymmetricMeasures Asymp. Std. Value Errora 13 Approx. Tb Approx. Sig. MeasureofAgreemen Kappa ,732 ,089 8,234 t N ofValidCases 47 a. Not assuming the null hypothesis. b. Using the asymptotic standard error assuming the null hypothesis. ,000 В столбце Value в первой строке будет значение коэффициента Cohen'skappa. Определить, какую степень согласия показывает данное значение можно в соответствии со следующими рекомендациями: менее 0,2 – плохое согласие, плохая степень согласованности; от 0,21 до 0,4 – удовлетворительное согласие (сносное), удовлетворительная степень согласованности; от 0,41 до 0,6 – умеренное согласие (среднее), умеренная степень согласованности; от 0,61 до 0,8 – хорошее согласие, хорошая степень согласованности; более 0,81 – очень хорошее (превосходное) согласие, очень хорошая степень согласованности. Однако таким образом можно вычислить степень согласованности только между парами кодировщиков. Такую же операцию необходимо провести с парой exp 1 и exp 3, exp2 и exp3. В окне меню Crosstabsexp1 отправляем в колонки (Row(s)), а exp 3 отправляем в столбцы (Column(s)), далее нажимаем справа кнопку Statistics и в появившемся окне CrosstabsStatistics ставим галочку напротив слова Kappa. Потом также для оставшихся пар кодировщиков. Обязательно проверьте, чтобы в базе не было пропущенных значений (или по-другому, пустых ячеек) и 0. Данные показатели коэффициента Cohen'skappa для пар кодировщиков могут помочь определить, у кого из кодировщиков самая маленькая степень согласия. Например, Вы получили следующие значения Cohen'skappa: Exp1 и Exp2 – 0,8 Exp1 и Exp3 – 0,6 Exp2 и Exp3- 0,5 В данном случае видно, что первый и второй эксперт имеют высокую степень согласия, а вот степень согласия их с третьим экспертом значительно ниже. Вполне возможно, что третий кодировщик не совсем хорошо понимает задачу, которая перед ним стоит или его представления о положительных и отрицательных эмоциях кардинально отличаются от двух других кодировщиков. В этом случае необходимо провести дополнительный инструктаж или вообще провести замену кодировщика. 14 Однако кодировщиков для того, вместе чтобы проверить необходимо степень воспользоваться согласованности возможностями всех трех подсчета Cohen'skappа, не заложенными в программе SPSS. Для этого Вам необходимо скачать Syntax подсчета Cohen'skappa для SPSS. Syntax – командный язык SPSS, позволяющий в разы ускорить процесс обработки данных. В целом командный язык полностью повторяет возможности классического рабочего меню SPSS. Основным преимуществом Syntax являются возможность работы с рядом недоступных из меню процедур и сохранение набора и последовательности единожды выполненных действий. Подробнее о работе с данным языком программирования можно ознакомиться на многочисленных сайтах в Интернете. Для работы же с подсчетом Cohen'skappa необходимо, во-первых, скачать данный syntax и прочитать про его использованием можно здесь https://groups.google.com/forum/?fromgroups=#!topic/comp.soft-sys.stat.spss/qQBmMe2QKc Syntax выглядит следующим образом: preserve. setprintback=off mprint=off. saveoutfile='ka__tmp1.sav'. definemkappasc (vars=!charend('/')). setmxloops=1000. countms__=!vars (missing). select if ms__=0. matrix. get x /var=!vars. compute c=mmax(x). compute y=make(nrow(x),c,0). loopi=1 to nrow(x). loop j=1 to ncol(x). loop k=1 to c. do if x(i,j)=k. compute y(i,k)=y(i,k)+1. endif. endloop. end loop. end loop. computepe=msum((csum(y)/msum(y))&**2). compute k=ncol(x). compute pa=mssq(y)/(nrow(y)*k*(k-1))-(1/(k-1)). computekstat=(pa-pe)/(1-pe). computenum=2*(pe-(2*k-3)*(pe**2)+2*(k-2)*msum((csum(y)/msum(y)) &**3)). compute den=nrow(y)*k*(k-1)*((1-pe)**2). 15 computease=sqrt(num/den). compute z=kstat/ase. computesig=1-chicdf(z**2,1). save {kstat,ase,z,sig} /outfile='ka__tmp2.sav' /variables=kstat,ase,z,sig. end matrix. get file='ka__tmp2.sav'. formats all (f11.8). variable labels kstat 'Kappa' /ase 'ASE' /z 'Z-Value' /sig 'P-Value'. report format=list automatic align(center) /variables=kstatase z sig /title "Estimated Kappa, Asymptotic Standard Error," "and Test of Null Hypothesis of 0 Population Value". get file='ka__tmp1.sav'. !enddefine. restore. mkappascvars= exp1 to exp3 Параметры подсчета никакие менять не требуется, необходимо лишь в последней строке указать то количество кодировщиков, которые используется в исследовании. Например, если 4 кодировщика, то написать exp1 toexp4. Затем этот синтаксис сохраняется и загружается в SPSS следующим образом: Открываем в SPSS (работа идет все в той же базе с оценками кодировщиков) File-Open-Syntax: Указываем на Syntax для подсчета Cohen'skappa. Он откроется в новом окне 16 Далее выделяем весь текст Syntax, начиная со слов preserve и заканчивая exp1 to exp3, кликаем правой кнопкой мыши и в появившемся меню выбираем RunCurrent (или после выделения нажимаем Ctrl+ R). 17 Программе потребуется какое-то время для обработки данных, но в итоге она выдаст результат в отдельном файле Output в виде такой таблицы: Estimated Kappa, Asymptotic Standard Error, Population Value and Test of Null Hypothesis of 0 Kappa ___________ -,69995613 ASE Z-Value P-Value ___________ ___________ ___________ ,01185127 -59,0616907 ,00000000 Значение коэффициента Cohen'skappa будет показано в первом столбце. Интерпретировать коэффициент также необходимо по указанным выше рекомендациям. Таким образом, у Вас будет показатель степени согласованности всех трех кодировщиков. Если данный показатель удовлетворительный, то есть от 0,6 и выше (чем выше, тем лучше), то можно доверить этим кодировщикам работу с основным словарем. Точно таким же образом каждый кодировщик присваивает каждому слову в словаре значение от -5 до 5 в зависимости от положительности или отрицательности выражаемой эмоции. В конце концов, у вас должно быть три файла (как минимум, кодировщиков может быть больше), в которых каждый кодировщик выставил оценки всем словам в словаре. Однако в словаре, который используется в работе с SentiStrength, каждое слово имеет лишь одно значение, не смотря на то, что кодировщиков было трое. Дело в том, что оценка каждому слову рассчитывается как среднее значение от оценок всех кодировщиков. Например, Темнота Зависть Любовь Ненависть боль Exp1 1 2 3 -2 1 Exp2 -3 -3 3 -3 0 Exp3 3 -4 3 -2 -1 Среднее значение 0,333333 -1,66667 3 -2,33333 0 Полученные значения нужно округлить. В словаре не должно быть дробных чисел: Темнота Зависть Любовь Exp1 1 2 3 Exp2 -3 -3 3 Exp3 3 -4 3 18 Среднее значение 0 -2 3 Ненависть боль -2 1 -3 0 -2 -1 -2 0 Таким образом, каждое слово в словаре получит одну оценку на основе полученных оценок от всех кодировщиков. Теперь, когда словарь готов, можно начинать работу непосредственно с SentiStrength. Не забудьте, что BoosterWordList также должен быть закодирован. Работа с SentiStrength. Теперь у Вас имеется как минимум 4 словаря – EmotionLookupTable (это переведенный и дополненный словарь основных слов, выражающих оценку или эмоцию), BoosterWordList (слова-усилители, усиливающие положительность или негативность той или иной оценки или эмоции), NegatingWordList (слова, выражающие отрицание или отрицательные местоимения), QuestionWords ((словарь вопросительных местоимений). Стоит уделить внимание некоторым особенностям словарей. Словарь — это набор слов-маркеров, на присутствие которых в тексте будет реагировать sentistrength. Если в списке у слова будет положительная оценка, то и текст получит положительную оценку и наоборот, контекст же практически не влияет. Из этого способа использования следует главный принцип отбора: нужно включать в словарь такие слова, так что по одному этому слову можно надежно судить о том, что позиция автора оценочна, а не нейтральна. Поэтому если включать в словарь слово «боль» и оно получит, например, отрицательную оценку, то мы рискуем, что упадет точность оценки: программное обеспечение будет отмечать как отрицательные те тексты, в которых это слово употреблено в нейтральных, описательных контекстах. Если исключить это слово из нашего словаря, то есть риск, что у нас упадёт полнота, т.к. не получат отрицательной оценки те тексты, в которых это слово употреблено оценочно. Поэтому первой дилеммой при создании словаря была борьба между точностью и полнотой, и в основном решения принимались в пользу последней. При создании подобных словарей требуется довольно тонкий анализ применительно к каждому случаю. Например, слово «мигрант». Более вероятно встретить его в описательных, новостных текстах, более официальных, в которых оно само по себе описывает определенный социальный феномен и не несет оценки. Напротив, слово 19 «черножопый» такую оценку несет, хотя может описывать тот же самый социальный феномен. Есть другие слова, которые скорее описывают явление, чем оценивают его. С другой стороны, нужно помнить, что многие слова употребляются не только в прямых, но и в переносных значениях, при этом в прямом значении - это описательные не оценочные слова, а в переносном — оценочные. Например, слова рабство и рай. Решая тут, включать или не включать, нужно оценивать, насколько вероятно встретить подобные слова в наших текстах в их прямом значении. Рай и рабство в комментариях скорее будут использоваться в переносном смысле, поэтому их включать целесообразно (вряд ли ктото будет обсуждать древние рабовладельческие общества или представления о загробном мире у христиан). Но принимая такие решения, нужно каждый раз отдавать себе отчет в том, что таким образом происходит «приспосабливание» словаря к определенному типу текстов, ограничивание его применимость в других областях, где эти слова как раз могут употребляться преимущественно в основных, а не переносных значениях. Очень хорошо, если Ваш основной словарь учитывает различные варианты написания слов. Таким образом, не смотря на то, что в каких-то текстах одно и тоже слово будет написано по-разному, оценку эмоциональности оно получит одну и ту же. Также Вы можете подобрать эквиваленты ко всем словарям, имеющимся в английской версии SentiStrength. Это только улучшит работу программы. Теперь необходимо заменить имеющиеся словаря англоязычной версии на файлы на русскоv языке. Для этого надо зайти в папку, где хранятся txt файлы со словарями, удалить из этих файлов все английские слова и заменить их на соответствующиефайлы на русском языке. Таким образом, при открытии, например, EmotionLookupTable, Вы должны увидеть свой основной словарь эмоциональных слов. Те файлы, которые Вы не используете в работе (например, IdiomLookupTable) лучше всего просто удалить. После замены словарей, программа должна работать с русским языком. Проведите тест. Нажмите на QuickTest и напишите небольшое предложение, в котором будет несколько слов из Вашего словаря. Посмотрите, какую оценку даст SentiStrength данным словам. Если все работает верно и SentiStrength выдает такую же оценку словам, какая присвоена у Вас в словаре, то теперь можно приступить к анализу всей имеющейся коллекции текстов. Нажимаем AnalyseALLTextsinFile, подготовленными текстами и получаем результат в виде файла. 20 выбираем txt файл с Результат появится в той же папке, в которой у вас хранятся txt файлы с обработанными текстами. Файл будет иметь точно такое же название, но с припиской out. Например, если файл с обработанными текстами назывался sep-islamposts-comments-10000, то файл с результатами появится под таким названием sep-islamposts-comments-10000_out. Откройте данный файл в программе Excel. Для этого сначала откройте саму программу, потом через нажатие Файл-Открыть загрузите файл с результатами. Таким образом Вы получите такую таблицу: В первом столбце (Positive) программа укажет насколько были оценены позитивные эмоций, во втором столбце (Negative) – оценка негативных эмоций, в третьем столбце (Text) – текст, который был оценен. Для того чтобы присвоить тексту только одно значение, характеризующее его общую эмоциональность, необходимо просуммировать значения Positive и Negative: 21 Таким образом, в результате Вы получите файл, в котором каждому тексту будет присвоено значение по силе позитивных эмоций, негативных эмоций и общей оценки эмоциональности. Визуализация данных. Полученные данные можно визуализировать с помощью разных программ. Таких, например, как R, SPSS, Excel. В рамках данной работы использован пакет SPSS. Так как в файле будет содержаться три столбца с количественными данными (показатели позитивных и негативных эмоций и общая оценка эмоциональности), то можно построить частотные распределения по этим показателям. Для этого Вам также необходимо скопировать значения столбцов Positive, Negative и Sum в SPSS.Таким образом, будет выглядеть вкладка VariableView: А значения копируем из Excel и вставляем во вкладку dataView: 22 По полученным оценкам можно построить частотные распределения, как для положительных, для отрицательных и для среднего значения. Для этого Вам также надо перейти в меню Analyze – DescriptiveStatistics- Frequencies И выбрать столбец значений, для которых Вы бы хотели построить распределения 23 Далеенажимаемкнопку Charts справойстороны, впоявившемсяокневыбираем Histograms иставимгалочку Show normal curve on histogram. Так на графике будет сразу видно, является ли Ваше распределение нормальным или нет. Результат будет виден в отдельном файле OUTPUT. Самым показательным в данном случае будет график с частотным распределением общих оценок эмоциональности (Sum). 24 Интерпретация результатов. Интерпретация результатов зависит от цели и задач исследования. Однако, в формировании выводов можно следовать следующим правилам: Если частотное распределение по суммарной оценке позитивных и негативных эмоций больше напоминает нормальное распределение, то это показатель того, что в большинстве случаев тексты из коллекции получили нейтральную оценку (0 или 1/-1). Перекос распределения в правую или левую сторону говорит о том, что тексты в большей степени получили положительные/отрицательные оценки, а значит можно говорить о каком-то эмоциональном отношении к исследуемому объекту. Частотные распределения по оценкам отдельно позитивных или негативных эмоций могут указать только с насколько позитивной или негативной стороны описывается объект в текстах. Глава 2. Метод автоматического анализа тональности текста в применении к социологическим задачам: на примере анализа комментариев к постам Живого Журнала. В рамках данного кейса было запланировано выполнение двух основных практических задач - подготовка инструментария для Sentimentanalysis данных и апробация инструмента на коллекции текстов комментариев к блогам с последующей социологической интерпретацией полученных результатов. 25 Тексты блогосферы — посты и комментарии — были выбраны потому, что они представляют собой сферу, где ожидается выражение субъективной оценки автора к тому или другому явлению, событию, к определенной группе или личности, выражение эмоций. Располагая инструментарием для автоматического определения эмоциональной и оценочной окраски текста, можно обследовать выборки текстов блогосферы значительного объема. Повышенная эмоциональная нагруженность текстов обычно является индикатором повышенного интереса и зачастую проблемности обсуждаемого в тексте объекта, таким образом можно выявлять темы, которые в наибольшей степени волнуют общество, а также определять, существует ли социальная напряженность по отношению к тем или иным общественным процессам или явлениям, и тем самым предугадывать возможные социальные изменения или волнения в обществе. В качестве темы исследования, по отношению к которой предполагалось эмоциональное выражение мнений и оценок, была выбрана тема ислама. В последнее времятема ислама довольно актуальна в связи с событиями, происходящими в исламских странах, специфичностью обычаев и традиций представителей данной религии. Взаимоотношения мусульман с немусульманским населением России является достаточно острой социальной проблемой. Находит она свое отражение и в виртуальном пространстве. Существуют специализированные исламские сайты, пропагандирующие ислам как мировую религию, новостные сайты исламского мира, сайты радикального характера. Обсуждение значимых социальных событий и явлений, таких как «исламизация русскоязычного населения», открытие мечетей в России, празднование мусульманских праздников и т.п. не может не происходить в виртуальной среде, в том числе и в LiveJournal. Цель и объект исследования Целью исследования является оценка социальной напряженности по отношению к теме ислама в блогосфере, а именно в LiveJournal, определяемая с помощью эмоционального выражения авторов своих мнений, суждений и оценок по отношению к этой теме. Объектом исследования являются комментарии к постам блогов в Живом Журнале, входящим в топ-1400 рейтинга ЖЖ. Предметомисследования является выявление социального напряжения по отношению к теме в блогосфере на основе анализа тональности текста. 26 Данные для исследования. Исследования проводились на трех выборках комментариев к постам Живого Журнала. Каждая выборка содержала по 1000 комментариев к постам блогеров, входящих в топ-1400 рейтинга ЖЖ. Живой журнал был выбран как блог-платформа, отличающаяся наибольшей активностью пользователей и наибольшей их склонностью освещать социально значимые темы. Две выборки (за 15.08-15.09.2011 и за 27.11-27.12 2011 года) были условно названы «исламскими», так как посты, к которым относились выкаченные комментарии, содержали корни слов «ислам*» или «мусульман*». Данные корни слов были выбраны на основе предположения о том, что таким образом можно получить разумное подмножество текстов, в которых проблема ислама затрагивается в общем, в целом и преимущественно с внешней по отношению к исламской культуре и мусульманскому сообществу точки зрения. Третья выборка была случайным образом сформирована из обоих временных периодов и играла роль контрольной, по отношению к которой определялось, отличается ли эмоциональная заряженность комментариев к теме «мусульманство» от заряженности случайных комментариев. Единица исследования. Единицей анализа является комментарий к постам в ЖЖ. Комментарии были выбраны для анализа вместо постов по двум причинам. Вопервых, эмоциональная оценка объектов, обсуждаемых в постах, как правило, наиболее ярок выражена в комментариях. Сами посты могут содержать перепечатки, не отражающие эмоционального настроя авторов. Во-вторых, посты, как правило, имеют больший объем, а в ходе предыдущих исследований установлено, что инструменты SA показывают низкое качество на больших текстах и особенно на журналистских статьях. В качестве инструментария для sentimentanalysis было выбрано программное обеспечение SentiStrength, т.к. по отношению ко многим другим пакетам он показывает лучшее качество и по нему существует достаточное количество академических публикаций [Thelwalletal, 2007]. Адаптация Sentistrength на основе Живого Журнала Адаптация инструмента Sentistrength к русскому языку проходила в соответствии с вышеупомянутыми этапами: 1. Перевод словаря, используемого в англоязычной версии Stntistrength на русский язык. Все представленные в англоязычной версии списки слов и выражений были переведены на русский язык. 27 2. При дословном переводе были получены списки слов, в большинстве своем не являющиеся показательными для оценки эмоциональных особенностей выражения отношения к кому или чему-либо при написании блогов, а зачастую некоторые слова вообще не являлись общеупотребимыми в русском языке. Для того чтобы составить более пригодный список слов осуществлялся подбор подходящих русских эквивалентов к имеющемуся переведенному словарю. Основный принцип подбора эквивалентов — поиск слов, употребляющихся в русских текстах в оценочных контекстах, сходных с оценочными контекстами, характерными для исходного лексика, включены английского слова. Была учтена нецензурная разговорные и сленговые слова, удалены несоответствующие исследовательским задачам слова и выражения. Словарь включал в себя 1200 слов. Были подготовлены – основной словарь эмоциональных слов, словарь словусилителей и слов, выражающих отрицание. 28 29 3. В результате предварительного анализа на тестовой выборке был сделан вывод о том, что данный словарь не включает в себя многих слов, часто употребляемых для написания постов и комментариев к блогам, поэтому было решено осуществить составление частотного словаря словоупотреблений в текстах комментариев ЖЖ. Частотный словарь был составлен по комментариям из двух выборок, за сентябрь и за декабрь. Данный словарь представляет собой список слов с количеством употреблений каждого в текстах комментариев Живого Журнала. Словарь включал в себя только те слова, которые встретились в обеих выборках — сентябрьской и декабрьской.Например, слово «мочь» за сентябрь было употреблено 51168 раз в комментариях выборки, а за декабрь – 65490 раз. 30 Из данного словаря были удалены слова, которые имели очень большой показатель употреблений (так как самыми частотными является небольшое количество слов, наиболее употребимых в русском языке, но не несущих существенную эмоциональную нагрузку) и наиболее редкие слова. Из оставшихся слов были выбраны те, которые могут выражать оценку какого-то события или явления или эмоциональное отношение к ним. Эти слова были включены в словарь, полученный на первоначальном этапе. Итогом работы стал словарь из 1820 русскоязычных оценочно-эмоциональных слов. 4. Кодирование словаря. Для получения объективных данных была разработана инструкция для кодировщиков[Приложение], содержащая руководство по оцениванию эмоциональной окрашенности слов было проведено обучение и проверена степень надежности интеркодирования. При кодировании словаря, показатель коэффициента Krippendorff'sAlpha имел значение равное 0, 8361. Таблица 3. Расчет коэффициента интеркодированияKrippendorff's Alpha RunMATRIXprocedure: Krippendorff's Alpha Reliability Estimate 31 Alpha Nominal LL95%CI UL95%CI ,8361 1,0000 Units Observrs 1,0000 1862,0000 Pairs 3,0000 13614,0000 Probability (q) of failure to achieve an alpha of at least alphamin: alphamin q ,9000 ,0000 ,8000 ,0000 ,7000 ,0000 ,6700 ,0000 ,6000 ,0000 ,5000 ,0000 Number of bootstrap samples: 1862 Judges used in these computations: EXP1 EXP2 EXP3 ==================================================== Таким образом, можно сделать вывод, что степень согласованности в оценках между кодировщиками достаточна для того, чтобы считать их оценки, присвоенные словам в словаре, объективными и возможными для использования в анализе текстовых сообщений. Также коэффициент интеркодирования был подсчитан между парами кодировщиков, чтобы удостовериться в степени согласия всех троих участников кодирования словаря друг с другом. В том случае, если бы коэффициент интеркодирования был меньше 60%, необходимо было бы проводить дополнительное обучение кодировщиков, составлять более подробную инструкцию. Если степень согласованности между какой-либо парой кодировщиков вызывала сомнение, то следовало бы задуматься о смене одного или нескольких кодировщиков. В данном случае все показатели коэффициента Cohen'skappa (k) были более 70%. 32 Таблица 3. Расчет коэффициента Cohen'skappa (k) интеркодирования между парами кодировщиков. Сравнение Значение коэффициента Cohen'skappa (k) Coder 1 vs. 2 90% Coder 1 vs. 3 73.1% Coder 2 vs. 3 83% EXP1EXP3 SymmetricMeasures Asymp. Value MeasureofAgreement Kappa Std. Approx. Error(a) T(b) ,73 N ofValidCases ,57 3,177 Approx. Sig. ,001 1862 a Not assuming the null hypothesis. b Using the asymptotic standard error assuming the null hypothesis. EXP2EEXP3 SymmetricMeasures Asymp. Value MeasureofAgreement Kappa Std. Approx. Error(a) T(b) ,90 N ofValidCases 1862 a Not assuming the null hypothesis. b Using the asymptotic standard error assuming the null hypothesis. EXP2EXP3 SymmetricMeasures 33 ,86 3,918 Approx. Sig. ,000 Asymp. Value MeasureofAgreement Kappa ,830 N ofValidCases 1862 Std. Approx. Error(a) T(b) ,72 5,676 Approx. Sig. ,000 a Not assuming the null hypothesis. b Using the asymptotic standard error assuming the null hypothesis. Апробация программного обеспечения Sentistrength осуществлялась на трех выборках комментариев к постам в ЖЖ. Каждая из исследованных выборок содержала по 1000 комментариев к постам блогеров Живого Журнала, входящим в топ-1400 рейтинга ЖЖ. Две выборки (за 15.08-15.09.2011 и за декабрь 2011 года) были условно названы «исламскими», так как посты, к которым относились выкаченные комментарии, содержали корни слов «ислам*» или «мусульман*»; Алгоритм исследования комментариев. Исследование происходило следующим образом: 1. Оценка эмоциональной заряженности комментариев к постам по выборке об «исламе» и случайной выборке с помощью SentiStrength. 2. Оценка эмоциональной заряженности комментариев к постам по выборке об «исламе» и случайной выборке с помощью кодировщиков. 3. Сравнение результатов автоматического и ручного анализа, вывод о работоспособности инструмента. 4. Качественный анализ текстов с целью получения осмысленных социологических выводов. Итогом исследования должен стать ответ на вопрос, существует ли социальная напряженность в освещении темы ислама. Возможно, все комментарии к исламским постам будут ярко негативными или нейтральными, а возможно, пропорция негативных и позитивных комментариев в ЖЖ к любым темам точно такая же, как и к теме ислама. Поэтому оценивание будет происходить также и по выборке из других тем, полученных в результате формирования случайной выборки. Процедура формирования выборок была следующая: - выбор всех постов по леммам ислам* мусульман*, - отбор все комментариев для этих постов; 34 - из этих выборок комментариев была сделана случайная выборка в 1000 штук за 15.08-15.09.2011 и за 27.11-27.12 2011 года - также была сделана контрольная случайная выборка из всех комментариев: по 500 штук за сентябрь и декабрь. Таким образом, статистика получилась следующая: сентябрь: всего постов: 36093 всего постов «про ислам»: 523 всего комментариев: 1162521 всего комментариев к постам «про ислам»: 10278 декабрь: всего постов: 30201 всего постов «про ислам»: 250 всего комментариев: 757505 всего комментариев к постам «про ислам»: 6210 Тексты были лемматизированыс помощью программы MyStem, то есть приведены к начальной словоформе, и подвергнуты автоматическому анализу с помощью адаптированной к русскому языку версии SentiStrength. Результатами стали частотные распределения оценок эмоциональной заряженности комментариев к постам в ЖЖ по трем выборкам. Таблица 1. Распределение комментариев по шкале эмоциональности за сентябрь. -5 0 7 -4 -3 20 -2 50 -1 74 0 1 2 3 476 219 111 25 4 17 5 0 Таблица 2. Распределение комментариев по шкале эмоциональности за декабрь. 35 -5 -4 -3 6 15 -2 -1 148 142 44 0 1 2 3 4 5 227 286 106 24 1 0 Распределения показали, что преимущественно все комментарии как в «исламских» выборках за оба периода, так и по случайной выборке не имеют ярко выраженной эмоциональной оценки. То есть большинство комментариев имеет оценки 0 или 1. Если взять распределение по исламской выборке за сентябрь (при этом стоит обратить внимание на то, что это комментарии ЖЖ накануне ураза-байрама), то оно мало чем будет отличаться от декабрьской выборки (условно нейтральной по отношению ко всяким исламским событиям). Если взглянуть на распределение комментариев в случайной выборке совместно и за сентябрь и за декабрь, то оно также не будет особо отличаться от двух предыдущих. Таблица 4. Распределение комментариев по шкале эмоциональности. Случайная выборка -5 0 4 -4 -3 8 -2 -1 33 63 0 1 2 3 4 5 484 294 84 16 11 0 36 Полученные результаты могут свидетельствовать об отсутствии ярко выраженного эмоционального отношения к теме «ислама», а, следовательно, об отсутствии какой-то социальной напряженности по отношению к данной теме. Но также стоит задуматься о пригодности полученного инструментария к sentimentanalysis. Возможно, что составленный словарь не включает в себя все основные слова, которые могут выражать какое-то эмоциональное отношение. Также среди проблем со словарем стоит отметить его кодирование. Не смотря на инструкцию и обучение кодировщиков, невозможно избавиться от субъективного отношения человека к тому или иному явлению. Поэтому многие слова, которые в текстах могут и не нести какое-то эмоциональное значение, кодировщиками были оценены крайне негативно. Например, слово «аборт». Ему была присвоена оценка -4, то есть у кодировщиков это слово вызывает бурную негативную эмоцию, в то время в большинстве текстах аборт рассматривается с медицинской точки зрения или часть истории, не связанная с эмоциями и тем более с негативными. В этом случае мы рискуем получить негативную оценку просто описательных текстов. В комментариях, конечно, риск такой ошибки значительно снижается в виду специфичности данного жанра изложения, но для анализа более объемных текстов нельзя не принимать во внимания данный аспект. Принимая во внимания все эти трудности, необходимым дальнейшим шагом является кодирование тех же самых текстов по трем выборкам кодировщиками с целью сравнить результаты, полученные автоматическим способом с ручным кодированием. При кодировании текстов ориентация будет уже не на отдельные слова, а на контекст, в которых эти слова употребляются, поэтому и оценка вполне возможно, будет более точная. 37 Таким образом, выше описан автоматический метод анализа комментариев к постам блогов в ЖЖ методом sentimentanalysis с помощью программного обеспечения Sentistrength. Результатами анализа стали частотные распределения комментариев пошкале эмоциональности от -5 до 5, которые показали, что тема ислама обсуждается с точно такой же эмоциональной заряженностью, как и другие темы. Социальной напряженности выявлено не было. Стоит отметить, что сильными сторонами подобного метода исследования является его способность работать с большим массивом данных и выдавать быстрый результат, по которому можно судить о наличии или отсутствии социального напряжения по отношению к той или иной теме, событию, персоне. Слабой же стороной опять-таки является невозможность учесть все нюансы при составлении словаря, с помощью которого работает программа и необходимость привлечения человеческих ресурсов для постоянного совершенствования словаря и проверки полученных данных. Поэтому следующим этапом механизма выявления социально значимых тем в блогах является ручное кодирование тех же самых комментариев, на которых был проведен автоматический анализ и сравнение полученных результатов. Учитывая тот факт, что автоматический анализ может не учитывать некоторых нюансов выражения эмоций (сарказм, контекст, переносные значения слов), следующий шаг для проверки полученных результатов - кодирование тех же самых текстов по трем выборкам кодировщиками с целью сравнить результаты, полученные автоматическим способом, с ручным кодированием. Кодирование текстов также осуществлялось также тремя кодировщиками, которые предварительно проходили обучение и выполняли тестовое задание. Тестовое задание заключалось в том, что кодировщики должны были присвоить оценки одной и той же выборке текстов. По результатам подсчета надежности интеркодирования принималось решение о продолжении обучения или возможности приступать к кодированию текстов, выбранных для анализа. Как только надежность интеркодирования достигла 0,80%, кодировщики приступили к обработке текстов, подвергнутых автоматическому анализу. Для тестовой экспериментальной выборки текстов использовался другой показатель Cohen'skappa (k),так как Krippendorff'salpha рассчитан на большие коллекции от 1000 единиц анализа. Таблица 1. Расчет коэффициента Cohen'skappa (k) для трех кодировщиков [Hayes, Krippendorff, 2007]. 38 Estimated Kappa, Asymptotic Standard Error, and Test of Null Hypothesis of 0 Population Value Kappa ___________ ASE Z-Value ___________ ,80989650 ,05118323 P-Value ___________ 11,91594458 ___________ ,00000000 По результатам ручного кодирования можно сделать вывод, что, не смотря на аналогичное преобладание 0 и 1 в оценках комментариев, значительно большее число комментариев было закодировано как -3, -4, -5 по сравнению с автоматическим анализом. Ниже представлены результаты автоматического и ручного анализа по выборкам для сравнения. Первые два частотных распределения по выборке за декабрь и по случайной выборке практически не отличаются в зависимости от способа (автоматический или ручной) анализа. Хотя и присутствуют различия в оценках, но их нельзя интерпретировать как показатель эмоционального отношения, выраженного в комментариях, следовательно социальной значимости темы. Декабрь Таблица 3. Распределение комментариев по шкале эмоциональности за декабрь. Автоматический анализ. -5 0 7 -4 -3 21 -2 50 -1 74 0 476 1 219 39 2 111 3 25 4 17 5 0 а Таблица 5. Распределение комментариев по шкале эмоциональности за декабрь. Ручное кодирование. -5 22 39 -4 -3 65 -2 116 -1 160 0 306 1 128 40 2 72 3 56 4 27 5 9 Таблица 4. Распределение комментариев по шкале эмоциональности. Случайная выборка. Автоматический анализ. -5 -4 0 4 -3 8 -2 -1 33 63 0 484 1 2 294 84 3 16 4 11 5 0 Таблица 6. Распределение комментариев по шкале эмоциональности. Случайная выборка. Ручной анализ. -5 9 29 -4 -3 44 -2 85 -1 80 0 254 1 213 2 199 41 3 74 4 8 5 2 Первые два частотных распределения по выборке за декабрь и по случайной выборке практически не отличаются в зависимости от способа (автоматический или ручной) анализа. Хотя и присутствуют различия в оценках, но их нельзя интерпретировать как показатель эмоционального отношения, выраженного в комментариях, а следовательно социальной значимости темы. Особенно различие в оценках комментариев между автоматическим и ручным кодированием проявилось на выборке комментариев, взятых в ЖЖ за сентябрь, периоде вокруг мусульманского праздника Ураза-байрам. Если в данной выборке автоматический анализ присвоил отрицательные значения только 4,4% комментариев, то кодировщики посчитали негативно заряженными 25,5%. Это свидетельствует о том, что данная тема вызвала эмоции у пользователей ЖЖ, и по большей части они все-таки являются негативными. По частотным распределениям в сентябрьской выборке, по мнению кодировщиков, присутствует большое количество комментариев с негативной окраской. Таблица 2. Распределение комментариев по шкале эмоциональности за сентябрь. Автоматический анализ. -5 0 7 -4 -3 20 -2 50 -1 74 0 476 1 219 42 2 111 3 25 4 17 5 0 Таблица 7. Распределение комментариев по шкале эмоциональности за сентябрь. Ручной анализ. -5 -4 6 15 -3 148 -2 142 -1 44 0 227 1 286 2 106 3 24 4 1 5 0 Для определения качества работы данного инструмента были вычислены, сравнивающие результаты автоматического и ручного кодирования: процент точного совпадения оценок и процент точного совпадения оценок с шагом +/- 1. Для этого необходимо в программе Excelсоздать файл, в котором первый столбец – это средняя оценка эмоциональности по результатам обработки Positiveи Negativeоценок, выданных 43 SentiStrength, второй столбец – это средняя оценка эмоциональности по результатам обработки оценок от трех кодировщиков, третий столбец – это % точного совпадения оценок, четвертый столбец – это % точного совпадения оценок с шагом + или -1. Таким образом, если оценка автоматического и ручного анализа совпадает – ставим 1 в эту строку в столбик точного совпадения, если оценка ручного и автоматического кодирования отличается на 1 в большую или меньшую сторону, то ставим 1 в строке в столбик №4: № % точного текста SentiStrength Coders совпадения 1 -2 -1 2 -2 -1 3 -2 -4 4 -2 -5 5 -2 -3 6 -2 -3 7 -2 -2 8 -2 -1 9 -2 -4 10 -2 -2 11 -2 -2 12 -2 -2 13 -2 -4 % совпадения + или -1 1 1 1 1 1 1 1 1 1 Далее подсчитываем сумму в каждом столбике проставленных единиц и делим это число на количество текстов, то есть на количество строк. Если рассматривать пример, приведенный в таблице, то формула получилась следующая: % точного совпадения оценок = 4/13= 0,285714286 % совпадения оценок с шагом + или -1 = 5/13 = 0,357142857 № Sum 1 2 3 4 5 6 7 8 9 10 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 % точного Coders совпадения -1 -1 -4 -5 -3 -3 -2 -1 -4 -2 % совпадения + или -1 1 1 1 1 1 1 1 44 11 12 13 -2 -2 -2 -2 -2 -4 1 1 0,285714286 0,357142857 Таким способом были рассчитаны эти показатели для каждой из трех выборок, состоящих из 1000 текстов. Результаты представлены в таблице. Таблица 1. Показатели качества SntiStrength по результатам сравнения оценок ручного и автоматического кодирования. Как видно из данной таблицы, показатели точного совпадения оценок ручного и автоматического кодирования невысоки.В целом, доля % точного совпадения совпадений между % точного оценок совпадения оценок (+/-1) Сентябрь 35,70% 64,60% Декабрь 29,10% 60,80% 24% 63,60% Случайная выборка автоматическим и ручным кодированием в наших экспериментах значительно уступает аналогичным экспериментам М.Фелвола на английском языке. Также техническую эффективность оценки SentiStrength можно определить с помощью двух параметров – полноты и точности. Обычно эти параметры применяются для оценивания результатов, выданных поисковыми системами по запросу. Точность поиска, коэффициент точности поиска/выдачи (precisionratio, accuracyratio, precisioncoefficient, accuracycoefficient) – это количественная характеристика результатов информационного поиска. Точность поиска определяется путем деления количества выданных в результате выполнения поиска релевантных документов на общее число выданных документов (релевантных и не релевантных) [Ландэ Д.В., Снарский А.А..,2009, с.264]. Полнота поиска, коэффициент полноты поиска (recall, recallratio, recallcoefficient) – это количественная характеристика результатов информационного поиска, которая определяется путем деления количества выданных в результате выполнения поиска 45 релевантных документов на общее число релевантных документов, имеющихся в информационно-поисковой системе (выданных и не выданных) [Ландэ Д.В., Снарский А.А..,2009, с.265]. Таким образом, с помощью коэффициента точности можно оценить, насколько полученная коллекция текстов соответствует запросу, то есть в скольких из всех выбранных встречаются тексты именно релевантные теме исследования. Коэффициент полноты позволяет определить, все ли релевантные тексты были найдены по запросу или выдана только их часть. В нашем случае за эталон, с которым сравниваются полученные автоматическим путем оценки, будем брать оценки, полученные с помощью ручного кодирования. Таким образом релевантность/нерелевантность оценки будет значит совпадение/несовпадение ее с оценкой, данной кодировщиками. Берем табличку с уже привычными для нас столбцами средней оценки эмоциональности, полученной автоматическим путем, - в котором первый столбец – это средняя оценка эмоциональности по результатам обработки PositiveиNegativeоценок, выданных SentiStrength, второй столбец – это средняя оценка эмоциональности по результатам обработки оценок от трех кодировщиков. Далее идет третий столбец - количество комментариев с верно выделенным объектом тональности и верно определенной тональностью будет соответствовать количеству верных срабатываний системы (A). Следующие столбцы – это столбцы,, отражающие различные виды ошибок в оценке текстов: 4 столбец - пропуск тональных предложений, содержащих объект тональности (B) 5 столбец - ложные срабатывания — случаи, когда система неправильно определила знак тональности (C) 6 столбец – система выделила как тональное предложение, не содержащее эмоциональной оценки и/или объекта тональности (D). Для подсчёта точности и полноты число комментариев с верными срабатываниями и с ошибками разных типов по всем текстам суммируется, и общая оценка вычисляется по следующим формулам. Число общих тональных комментариев в выборке составит A + B + C, а число тональных комментариев, определённых системой как тональные — A + C + D. Тогда полнота определения тональности будет равняться A / (A + B + C), а точность — A / (A + C + D) [Пазельскаяetal, 2011], где А – это количество комментариев, автоматического и ручного кодирования совпала. 46 по которым оценка тональности В – пропуск тонального предложения, то есть количество комментариев, которые автоматическим анализом не были определены (0), а в результате ручного кодирования получили какую-то оценку тональности. С – неправильное срабатывание системы, то есть знак тональности комментария, полученный автоматическим анализом отличается от оценки, полученной путем ручного кодирования. D – автоматический анализ присвоил какой-то знак тональности данному комментарию, но кодировщики не выявили никакой эмоциональной окрашенности в данном тексте (поставили 0). То есть, если оценка в столбце с автоматическим анализом и ручным анализом одинаковая, ставим 1 в 3 столбец в этой строке; если автоматическая оценка равна 0, а кодировщиками поставлена любая, отличная от 0 оценка, то ставим 1 в 4 столбец; если автоматическая оценка и оценка кодировщиков не совпадает, то ставим 1 в 5 столбец; если кодировщики присвоили тексту оценку 0, а автоматический анализ – любую, отличную от 0 оценку, то ставим 1 в 6 столбец. Верное срабатывание системы (А) Sum -4 -4 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -2 Выделение как тональное, не содержащее тональности (D) Пропуск тонального Неправильное предложения срабатывание (В) системы (С) Coders -1 -1 -4 -5 -3 1 0 -2 -1 -4 -2 -2 -2 1 -4 Далее точность и полнота вычисляется по формулам: Полнота = A / (A + B + C) Точность = A / (A + C + D) 47 1 1 1 1 1 1 1 1 1 1 1 В нашем случае эти два параметра были вычислены по каждой выборке. Результаты представлены в таблице. Точность Сентябрь Полнота 48,00% 30,00% Декабрь 41% 25,66% Случайная выборка 40% 25% Таким образом, можно сделать вывод, что автоматизированный анализ текстов показывает точность больше, чем полноту, но оба показателя достаточно невысокие. Выводы показали, что в сентябрьской выборке 25% комментариев были определены кодировщиками как негативно заряженные, в то время как автоматический анализ выявил только 4% таких комментариев. Эти проценты можно подсчитать путем подсчета, сколько положительных и отрицательных оценок было получено по каждой выборке, деленное на количество текстов. Это служит показателем того, что в данной выборке текстов присутствуют комментарии с ярко выраженным негативным отношением к теме ислама. Для получения более содержательных выводов о полученных результатах необходимо провести качественный анализ тех комментариев, которые получили отрицательную оценку кодировщиков. Таким образом, сильными сторонами подобного автоматического метода исследования текстов является его способность работать с большим массивом данных и выдавать быстрый результат, по которому можно судить о наличии или отсутствии социального напряжения по отношению к той или иной теме, событию, персоне. Слабой же стороной является сложность учета всех нюансов при составлении словаря, с помощью которого работает программа и необходимость привлечения человеческих ресурсов для постоянного совершенствования словаря и проверки полученных данных. 48