Opinion Mining Анализ отзывов клиентов
Анализ тональности текста, определение и происхождение понятия, цели, основные свойства и области применения. Подходы к классификации тональности. Машинное обучение с учителем и без, тестирование различных параметров. Классификаторы и выбор признаков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 23.03.2015 |
Размер файла | 325,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Реферат
на тему: «Opinion Mining Анализ отзывов клиентов»
Выполнил: Вахитова Д.Г.
Проверила: Богданова Д.Р.
Уфа 2014
Анализ тональности текста (сентимент-анализ, англ. Sentiment analysis, англ. Opinion mining) -- класс методов контент-анализа в компьютерной лингвистике, предназначенный для автоматизированного выявления в текстах эмоционально окрашенной лексики и эмоциональной оценки авторов (мнений) по отношению к объектам, речь о которых идёт в тексте.
Анализ тональности
Целью анализа тональности является нахождение мнений в тексте и определение их свойств. В зависимости от поставленной задачи нас могут интересовать разные свойства, например:
1. автор -- кому принадлежит это мнение
2. тема -- о чем говорится во мнении
3. тональность -- позиция автора относительно упомянутой темы (обычно «положительная» или «отрицательная»)
В литературе встречаются разные способы формализировать модель мнений. Также используется и разная терминология. В английском языке эту область исследования обычно называют opinion mining and sentiment analysis (дословно: «поиск мнений и анализ чувств»). В русских статьях обычно употребляется термин «анализ тональности». Несмотря на то, что тональность является лишь одной из характеристик мнения, именно задача классификации тональности является наиболее часто изучаемой в наши дни. Это можно объяснить несколькими причинами:
1. Определение автора и темы является гораздо более трудными задачами чем классификация тональности, поэтому имеет смысл сначала решить более простую задачу, а затем уже переключиться на остальные.
2. Во многих случаях нам достаточно лишь определить тональность, т.к. другие характеристики нам уже известны. Например, если мы собираем мнения из блогов, обычно авторами мнений являются авторы постов, т.е. определять автора нам не требуется. Также зачастую нам уже известна тема: например, если мы производим в Твиттере поиск по ключевому слову «Windows 8», то затем нам нужно лишь определить тональность найденных твитов. Конечно же, это работает не во всех случаях, а лишь в большинстве из них. Но эти допущения позволяют в значительной мере упростить и так нелегкую задачу.
Анализ тональности находит свое практическое применение в разных областях:
1. социология -- собираем данные из соц. сетей (например, о религиозных взглядах)
2. политология -- собираем данные из блогов о политических взглядах населения
3. маркетинг -- анализируем Твиттер, чтобы узнать какая модель ноутбуков пользуется наибольшим спросом
4. медицина и психология -- определяем депрессию у пользователей соц. сетей
Подходы к классификации тональности
Анализ тональности обычно определяют как одну из задач компьютерной лингвистики, т.е. подразумевается, что мы можем найти и классифицировать тональность, используя инструменты обработки естественного языка (такие как теггеры, парсеры и др.). Сделав большое обобщение, можно разделить существующие подходы на следующие категории:
1. Подходы, основанные на правилах
2. Подходы, основанные на словарях
3. Машинное обучение с учителем
4. Машинное обучение без учителя
Первый тип систем состоит из набора правил, применяя которые система делает заключение о тональности текста. Например, для предложения «Я люблю кофе», можно применить следующее правило:
тональность текст классификатор машинный
Многие коммерческие системы используют данный подход, несмотря на то что он требует больших затрат, т.к. для хорошей работы системы необходимо составить большое количество правил. Зачастую правила привязаны к определенному домену (например, «ресторанная тематика») и при смене домена («обзор фотоаппаратов») требуется заново составлять правила. Тем не менее, этот подход является наиболее точным при наличии хорошей базы правил, но совершенно неинтересным для исследования.
Подходы, основанные на словарях, используют так называемые тональные словари (affective lexicons) для анализа текста. В простом виде тональный словарь представляет из себя список слов со значением тональности для каждого слова. Вот пример из базы ANEW, переведенный на русский:
Чтобы проанализировать текст, можно воспользоваться следующим алгоритмом: сначала каждому слову в тексте присвоить его значением тональности из словаря (если оно присутствует в словаре), а затем вычислить общую тональность всего текста. Вычислять общую тональность можно разными способами. Самый простой из них -- среднее арифметическое всех значений. Более сложный -- обучить классификатор (напр. нейронная сеть).
Машинное обучение с учителем является наиболее распространенным методом, используемым в исследованиях. Его суть состоит в том, чтобы обучить машинный классификатор на коллекции заранее размеченных текстах, а затем использовать полученную модель для анализа новых документов. Именно про этот метод я расскажу далее.
Машинное обучение без учителя представляет собой, наверное, наиболее интересный и в то же время наименее точный метод анализа тональности. Одним из примеров данного метода может быть автоматическая кластеризация документов.
Машинное обучение с учителем
Процесс создания системы анализа тональности очень похож на процесс создания других систем с применением машинного обучения:
1. необходимо собрать коллекцию документов для обучения классификатора
2. каждый документ из обучающей коллекции нужно представить в виде вектора признаков
3. для каждого документа нужно указать «правильный ответ», т.е. тип тональности (например, положительная или отрицательная), по этим ответам и будет обучаться классификатор
4. выбор алгоритма классификации и обучение классификатора
5. использование полученной модели
Количество классов
Количество классов, на которые делят тональность, обычно задается из спецификации системы. Например, заказчику требуется, чтобы система различала три вида тональности: «положительная», «нейтральная», «отрицательная». В исследованиях обычно рассматривается задача бинарной классификации тональности, т.е. классов всего два: «положительный» и «отрицательный». Из своего опыта могу сказать, что классификация тональности на более чем два класса -- это очень сложная задача. Даже с тремя классами очень сложно достичь хорошей точности независимо от применяемого подхода.
Если стоит задача классификации на более чем два класса, то тут возможны следующие варианты для обучения классификатора:
· Плоская классификация -- обучаем лишь один классификатор для всех классов
· Иерархическая классификация -- делим классы на группы и обучаем несколько классификаторов для определения групп. Например, если у нас 5 классов («сильно положительный», «средне положительный», «нейтральный», «средне отрицательный», «сильно отрицательный»), то можно сначала обучить бинарный классификатор, который отделяет нейтральные тексты от субъективных; затем обучить классификатор, который отделяет положительные мнения от отрицательных; и в итоге классификатор, который отделяет сильно выраженные мнения от средних.
· Регрессия -- обучаем классификатор для получения численного значения тональности, например от 1 до 10, где большее значение означает более положительную тональность.
Обычно иерархическая классификация дает лучшие результаты чем плоская, т.к. для каждого классификатора можно найти набор признаков, который позволяет улучшить результаты. Однако, он требует больших времени и усилий для обучения и тестирования. Регрессия может показать лучшие результаты, если классов действительно много (от 5 и более).
Выбор признаков
Качество результатов напрямую зависят от того, как мы представим документ для классификатора, а именно, какой набор характеристик мы будем использовать для составления вектора признаков. Наиболее распространенный способ представления документа в задачах комп. лингвистики и поиска -- это либо в виде набора слов (bag-of-words) либо в виде набора N-грамм. Так, например, предложение «Я люблю черный кофе» можно представить в виде набора униграмм (Я, люблю, черный, кофе) или биграмм (Я люблю, люблю черный, черный кофе).
Обычно униграммы и биграммы дают лучшие результаты чем N-граммы более высоких порядков (триграммы и выше), т.к. выборка обучения в большинстве случаев недостаточна большая для подсчета N-грамм высших порядков. Всегда имеет смысл протестировать результаты с применением униграмм, биграмм и их комбинации (Я, люблю, черный, кофе, Я люблю, люблю черный, черный кофе). В зависимости от типа данных униграммы могут показать лучшие результаты чем биграммы, а могут и наоборот. Также иногда комбинация униграммов и биграммов позволяет улучшить результаты.
Другой способ представления текста -- символьные N-граммы. Текст из примера можно представить в виде следующих 4-символьных N-грамм: «я лю», " люб", «юблю», «блю », и т.д. Несмотря на то, что такой способ может показаться слишком примитивным, т.к. на первый взгляд набор символов не несет в себе никакой семантики, тем не менее этот метод иногда дает результаты даже лучше чем N-граммы слов. Если присмотреться, то можно увидеть, что N-граммы символов соответствуют в какой-то мере морфемам слов, а в частности корень слова («люб») несет в себе его смысл. Символьные N-граммы могут быть полезны в двух случаях:
1. при наличии орфографических ошибок в тексте -- набор символов у текста с ошибками и набор символов у текста без ошибок будет практически одинаков в отличие от слов.
2. для языков с богатой морфологией (например, для русского) -- в текстах могут встречаться одинаковые слова, но в разных вариациях (разные род или число), но при этом корень слов неизменяется, а следовательно и общий набор символов.
Символьные N-граммы применяются гораздо реже чем N-граммы слов, но иногда они могут улучшить результаты.
Также можно использовать дополнительные признаки, такие как: части речи, пунктуация (наличие в тексте смайлов, восклицательных знаков), наличие в тексте отрицаний («не», «нет», «никогда»), междометий и т.д.
Взвешенный вектор
Следующим шагом в составлении вектора признаков является присваивание каждому признаку его вес. Для некоторых классификаторов это является необязательным, например, для байесовского классификатора, т.к. он сам высчитывает вероятность для признаков. Но если вы используете метод опорных векторов, то задание весов может заметно улучшить результаты.
В информационном поиске наиболее распространенным методом оценки веса признаков является TF-IDF. Для анализа тональности этот метод не дает хороших результатов. Причиной этому является то, что для анализа тональности не настолько важны слова, которые часто повторяются в тексте (т.е. слова с высоким TF), в отличие от задачи поиска. Поэтому обычно используют бинарный вес, т.е., признакам (если используем униграммы, то словам) присваивается единичный вес, если те присутствуют в тексте. В противном случае вес равен нулю. Например, «я люблю черный кофе» будет представлен в виде следующего вектора (мы опускаем слова с весом = 0):
Однако, существуют методы оценки важности слов, которые вычисляют веса слов, дающие гораздо лучшие результаты при классификации тональности, например, дельта TF-IDF.
Реализация классификатора
Таким образом мы реализовали простой классификатор тональности отзывов о фильмах на питоне. Данные были собраны с Кинопоиска. Было отобрано 500 положительных и 500 отрицательных отзывов. В качестве алгоритма классификации я использовалнаивный байесовский классификатор (NB) и метод опорных векторов (SVM). В качестве признаков я протестировал униграммы, биграммы и их комбинацию, а в качестве функции взвешивания: бинарная функция для байеса и SVM, и дельта TF-IDF для SVM. Для оценки работы классификатора я провел перекрестную проверку: для каждого набора параметров было запущено подряд 5 тестов, в каждом из которых использовалось 800 отзывов для обучения и 200 для тестирования. Ниже представлены результаты (точность в процентах) для всех 9-ти наборов параметров.
Признаки |
NB |
SVM |
SVM+delta |
|
Униграммы |
85.5 |
82.5 |
86.2 |
|
Биграммы |
84.9 |
86.5 |
87.8 |
|
Комбинация |
86.5 |
88.4 |
90.8 |
Из результатов видно, что для данной коллекции лучшие результаты показывает метод опорных векторов с функцией взвешивания дельта TF-IDF. Если же использовать обычную бинарную функцию, то оба классификатора (NB и SVM) показывают примерно одинаковые результаты. Комбинация униграммов и биграммов дает лучше результаты во всех тестах.
Посмотрим, почему же дельта TF-IDF дает такой отрыв (2.4 -- 4.3%) в результатах. Выберем N-граммы с максимальными по модулю значениями дельта TF-IDF:
Потрясающий |
5.20 |
ведут себя |
-5.02 |
|
Зависит |
5.08 |
зачем-то |
-4.80 |
|
Принимает |
4.95 |
не смогли |
-4.80 |
|
Создают |
4.80 |
ни о |
-4.71 |
|
Работами |
4.80 |
не впечатлил |
-4.71 |
|
Тщательно |
4.71 |
сексом |
-4.71 |
|
самого себя |
4.71 |
хуже чем |
-4.71 |
|
Ким |
4.62 |
но этого |
-4.71 |
|
Триллеров |
4.62 |
был снят |
-4.62 |
|
для нее |
4.51 |
не смотрите |
-4.62 |
На примере негативных N-граммов особо заметно, что их вес отражает негативную тональность.
Практическое применение
В качестве примера практического применения классификатора тональности, я реализовал на скорую руку классификатор твитов, схема работа которой следующая:
1. производим поиск в Твиттере по названию фильмов
2. пропускаем твиты через классификатор тональности
3. получаем положительные и отрицательные высказывания о фильмах из Твиттера
Пример работы анализатора:
Как видно, результаты не особо удовлетворительные. Классификатор делает 2 типа ошибок:
1. Классифицирует нейтральные твиты (описание фильма, новости, спам) как положительные/отрицательные
2. Неправильно классифицирует тональность отзывов
Первый тип ошибок можно исправить, если добавить дополнительный классификатор, который будет фильтровать нейтральные твиты. Это непростая задача, но вполне осуществимая. Второй тип ошибок возникает в основном из-за того, что твиты сильно отличаются от коллекции обучения: присутствует сленг, орфографические ошибки, отличается манера высказывания. Тут надо либо искать другую коллекцию для обучения классификатора (взять те же твиты, например), либо улучшить набор признаков (например, добавить смайлы). Но в целом, этот пример показывает, что создать систему анализа мнений в Твиттере вполне возможно.
Заключение
Создание системы анализа мнений является сложной задачей, но вполне посильной, если имеются данные для обучения и заранее определен домен (тема). При использовании машинного обучения важно тестировать разные параметры, чтобы подобрать те, которые работают лучше на тестовых данных. В частности нужно тестировать разные алгоритмы классификации (NB, SVM), набор признаков (униграммы, биграммы, символьные N-граммы), функцию взвешивания признаков. Существует еще куча способов для улучшения классификации тональности, такие как использование тональных словарей, дополнительные лингвистические признаки (например, части речи), так и общие способы улучшение машинного обучения (бустинг, баггинг и др.). В этой статье я постарался описать лишь основные методы.
Размещено на Allbest.ru
Подобные документы
Описание ДСМ-метода автоматического порождения гипотез. Исследование результатов влияния компонентов ДСМ-метода на качество определения тональности текстов. Алгоритм поиска пересечений. N-кратный скользящий контроль. Программная реализация ДСМ-метода.
курсовая работа [727,0 K], добавлен 12.01.2014Описание функциональных возможностей технологии Data Mining как процессов обнаружения неизвестных данных. Изучение систем вывода ассоциативных правил и механизмов нейросетевых алгоритмов. Описание алгоритмов кластеризации и сфер применения Data Mining.
контрольная работа [208,4 K], добавлен 14.06.2013Перспективные направления анализа данных: анализ текстовой информации, интеллектуальный анализ данных. Анализ структурированной информации, хранящейся в базах данных. Процесс анализа текстовых документов. Особенности предварительной обработки данных.
реферат [443,2 K], добавлен 13.02.2014Основы для проведения кластеризации. Использование Data Mining как способа "обнаружения знаний в базах данных". Выбор алгоритмов кластеризации. Получение данных из хранилища базы данных дистанционного практикума. Кластеризация студентов и задач.
курсовая работа [728,4 K], добавлен 10.07.2017Data mining, developmental history of data mining and knowledge discovery. Technological elements and methods of data mining. Steps in knowledge discovery. Change and deviation detection. Related disciplines, information retrieval and text extraction.
доклад [25,3 K], добавлен 16.06.2012Разработка алгоритма автоматического создания отзывов на русском языке с использованием лексико-синтаксических шаблонов. Процесс создания текста при помощи цепей Маркова. Принцип работы Томита-парсера. Применение автоматических генераторов текстов.
курсовая работа [150,6 K], добавлен 27.09.2016Характеристика Русского Учебного Корпуса. Типы ошибок в русском учебном корпусе, совместная встречаемость тегов, алгоритм классификации. Проблема несбалансированности выборки. Результаты классификации, вклад признаков в различные классификаторы.
курсовая работа [51,5 K], добавлен 30.06.2017Нахождение XI–неизвестных. Определение количества ITER-итераций. Составление текста программы, ее тестирование. Условия применения итерационного метода. Выбор количества итераций, исследование их зависимости от точности (eps). Получение корней уравнений.
контрольная работа [33,8 K], добавлен 27.02.2014Понятие, цели и методы информационных технологий. Критерии и факторы классификации. Виды обеспечений и свойства по типу интерактивности, области применения, степени использования компьютеров. Средства вычислительной техники и бескомпьютерные технологии.
реферат [117,5 K], добавлен 16.02.2009Разработка программного обеспечения, моделирующего работу банкомата. Особенности области применения терминала и выделение главных функциональных частей. Разработка алгоритма работы программы и реализация системы. Ее тестирование и анализ результатов.
курсовая работа [5,5 M], добавлен 12.10.2011