Анализ тональности текстов на основе ДСМ-метода

Описание ДСМ-метода автоматического порождения гипотез. Исследование результатов влияния компонентов ДСМ-метода на качество определения тональности текстов. Алгоритм поиска пересечений. N-кратный скользящий контроль. Программная реализация ДСМ-метода.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.01.2014
Размер файла 727,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Вятский государственный гуманитарный университет»

ФАКУЛЬТЕТ ИНФОРМАТИКИ, МАТЕМАТИКИ И ФИЗИКИ

Кафедра прикладной математики и информатики

КУРСОВАЯ РАБОТА

Анализ тональности текстов на основе ДСМ-метода

Выполнил Вычегжанин Сергей Владимирович

Научный руководитель Котельников Евгений Вячеславович

Киров 2013

Содержание

  • Введение
  • Глава 1. Задача анализа тональности текстов
    • 1.1 Понятие анализа тональности текста
      • 1.1.1 Определение
      • 1.1.2 История
      • 1.1.3 Постановка задачи
      • 1.1.4 Применение
    • 1.2 ДСМ-метод
      • 1.2.1 Схема метода
      • 1.2.2 Описание метода
      • 1.2.3 Алгоритм поиска пересечений
    • 1.3 N-кратный скользящий контроль
    • 1.4 Метрики качества
      • 1.4.1 Правильность и ошибочность
      • 1.4.2 Точность и полнота
  • Глава 2. Практическое исследование ДСМ-метода
    • 2.1 Программная реализация
      • 2.1.1 Пользовательский интерфейс
      • 2.1.2 Входные данные
      • 2.1.3 Выходные данные
    • 2.2 Текстовая коллекция
    • 2.3 Эксперименты и результаты
      • 2.3.1 Оценка качества анализа тональности
      • 2.3.2 Оценка времени работы программы
  • Заключение
  • Библиографический список
  • Приложение
  • Введение
  • В сети Интернет содержится огромное количество разнообразных текстов, авторами которых являются обычные пользователи. Это могут быть статьи в блогах, отзывы на продукты, сообщения в социальных сетях и т. п. В этом контенте содержится большое количество ценной информации.
  • В компьютерной лингвистике существует отдельное направление обработки естественно-языковых текстов - анализ тональности текстов (sentiment analysis). Тональностью называется эмоциональная оценка, которая выражена в тексте. Актуальность задачи определения тональности заключается в том, что на основе текстовой информации можно оценить отношение общества к какому-либо продукту или событию. Например, с помощью данного анализа можно оценить успешность рекламной кампании, политических и экономических реформ; выявить отношение прессы и СМИ к определенной персоне, к организации, к событию; определить, как относятся потребители к определенной продукции, к услугам, к организации. Такая информация представляет значительный интерес для маркетологов, социологов, экономистов, политологов и всех тех специалистов, деятельность которых зависит от мнений людей.
  • Существуют два основных подхода к решению задачи анализа тональности текста: на основе словарей и на основе машинного обучения. В первом подходе используются словари, содержащие слова и предложения, для которых известна оценка выраженной в них тональности. Этот подход эффективен при использовании больших словарей, но процесс их составления весьма трудоемкий. Второй подход заключается в создании автоматического классификатора, который использует коллекцию обучающих текстов. В основе этого подхода лежат статистические методы. Подход эффективен при наличии большой коллекции обучающих текстов.
  • Одним из логических методов анализа тональности текстов является ДСМ-метод автоматического порождения гипотез. В [9] отмечается, что преимуществом ДСМ-метода по сравнению со статистическими методами является прозрачность и корректность процесса логического вывода, хорошая интерпретируемость генерируемых гипотез, отсутствие необходимости большого числа примеров для обучения.
  • Целью настоящей курсовой работы является применение ДСМ-метода для определения тональности текстов. Обозначенная цель достигается за счет решения следующих задач:
  • · изучение области анализа тональности текстов;
  • · описание ДСМ-метода автоматического порождения гипотез;
  • · программная реализация ДСМ-метода;
  • · проведение экспериментов по определению тональности текстов;
  • · анализ результатов влияния компонентов ДСМ-метода на качество определения тональности.
  • В первой главе приводится постановка задачи анализа тональности текстов и примеры областей деятельности, в которых применяется анализ тональности, рассматриваются теоретические аспекты ДСМ-метода автоматического порождения гипотез, дается описание показателей, на основе которых будет сделано заключение о качестве работы метода.
  • Во второй главе дается описание практической реализации ДСМ-метода, приводятся результаты тестирования разработанной программы-анализатора в виде таблиц и графиков.
  • В заключение работы приводится общий вывод по полученным результатам и список использованной литературы.

Глава 1. Задача анализа тональности текстов

1.1 Понятие анализа тональности текста

1.1.1 Определение

Анализ тональности текста (англ. sentiment analysis, opinion mining, sentiment classification) - это область компьютерной лингвистики, которая занимается изучением мнений и эмоций в текстовых документах. Анализ тональности представляет собой текстовую классификацию, т. е. процесс присвоения естественно-язычным текстам тематической категории из определенного набора.

Под мнением (тональностью) понимают выраженное в тексте эмоциональное отношение некоторого субъекта к определенному объекту [9]. Тональность может иметь одномерное или многомерное эмотивное пространство. В одномерном пространстве существует одно измерение (одна шкала), в котором может быть несколько значений - классов (двухбалльная, трехбалльная, n-балльная шкалы). В многомерном пространстве несколько ортогональных измерений, например, базовые эмоции - радость, счастье, страх, гнев и т.д.

1.1.2 История

В [5] отмечается, что автоматическая классификация текстов имеет длительную историю, уходящую в начало 1960-х гг. Вплоть до конца 1980-х гг. наиболее популярным подходом к классификации документов была инженерия знаний (knowledge engineering), заключающаяся в ручном определении правил, содержащих знания экспертов о том, как определить, к какой категории относится документ. В 1990-х гг. с бурным развитием производства и доступности онлайн документов интерес к автоматической классификации усилился. Новая тенденция, основанная на машинном обучении, вытеснила предыдущий подход. Эта тенденция заключалась в том, что на основе индуктивного процесса автоматически создается классификатор путем обучения с помощью набора предварительно классифицированных документов, характеризующихся одной или более категориями. Преимуществом является высокая эффективность и значительное сохранение опыта экспертов.

Проблема автоматического распознавания мнений в тексте оказалась предметом активных исследований за рубежом сравнительно недавно - в 2000-х гг. В России таких работ до последнего времени было крайне мало; только в 2012 году оценка тональности текста была выбрана одной из главных тем конференции по компьютерной лингвистике «Диалог-2012» [10].

1.1.3 Постановка задачи

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

Перед тем, как сформулировать обобщенную постановку задачи анализа тональности, формально определим понятие мнения. В соответствии с [3] мнение обозначим множеством вида

,(1)

где (entity) - сущность (объект), по отношению к аспектам которой выражается мнение; (aspect) - i-й аспект сущности (свойство объекта), по отношению которому выражается мнение; (sentiment) - тональность мнения по отношению к i-му аспекту сущности ; (holder) - выразитель мнения (субъект); (time) - время выражения мнения. Если мнение выражается по отношению к сущности в целом, а не к отдельному её аспекту, то устанавливается .

Обобщенную задачу анализа тональности можно сформулировать в следующем виде: в заданном тексте найти все мнения вида (1).

Приведем несколько основных вариантов задач анализа тональности, описанных в работе [9].

1. Определение исключительно тональности текста.

Данная формулировка задачи анализа тональности является наиболее простой. Рассматривается только тональность мнения, которое выражено в тексте (часто предполагается, что оно единственное); при этом остальные компоненты множества (1) не выделяются или считаются известными.

Обычно тональность представлена определенной шкалой. Выделяют следующие типы шкал:

1) Двухзначная шкала. Шкала тональности имеет только два значения -положительная тональность и отрицательная.

2) Трехзначная шкала. К предыдущим двум вариантам добавляется третье значение - нейтральное, которое может обозначать либо отсутствие тональности, либо одновременное наличие как положительной, так и отрицательной тональности.

3) Многозначная шкала. Шкала тональности имеет более 3 значений. Существует множество вариантов таких шкал, отличающихся количеством значений тональности и наличием нейтрального значения.

2. Определение тональности, субъекта и объекта

В данном варианте задачи кроме тональности мнения определяется выразитель мнения, субъект и объект , по отношению к которому выражается мнение. Выражение (1) в данном случае принимает вид:

.

Для решения задачи в такой постановке кроме методов определения тональности требуется также применение методов извлечения сущностей из текста.

3. Определение мнения в целом

Мнение рассматривается как полное выражение (1), т. е. по сравнению с предыдущим вариантом кроме выделения сущности (объекта мнения) требуется определение её аспектов .

1.1.4 Применение

Анализ тональности текста является одним из перспективных направлений компьютерной лингвистики. Это направление искусственного интеллекта позволяет извлекать разнообразную информацию, находящуюся в форме текста на естественном языке.

Автоматическое распознавание тональности текстов находит широкое применение в различных сферах деятельности человека. Приведем несколько примеров из работы [9].

1. Маркетинговые исследования. Проводятся для разнообразных целей, включая изучение потребительских предпочтений, измерение степени удовлетворения потребностей потребителей, определение эффективности распространения продуктов или услуг.

2. Финансовые рынки. В работе [1] говорится, что о каждом акционерном обществе существуют многочисленные публикации новостей, статьи, блоги и сообщения в Твиттере. Система анализа тональности может использовать эти источники для нахождения статей, в которых обсуждаются такие общества, и извлекать отзывы, что позволит создать автоматическую торговую систему. Одной из таких систем является «The Stock Sonar» (http://www.thestocksonar.com). Система показывает графически ежедневные позитивные и негативные настроения о каждой акции рядом с графиком цены акции. По настроениям предсказывается дальнейший рост или падение цены акции.

3. Рекомендательные системы. Анализируются отзывы и обзоры различных продуктов с целью помощи покупателям при выборе товара. Например, система не будет рекомендовать продукт, если он получил много отрицательных отзывов.

4. Анализ новостных сообщений. Анализируются новостные ресурсы на предмет тональности сообщений относительно различных персон и событий.

5. Политологические исследования. Собираются данные о политических взглядах населения. Это может иметь существенное значение для кандидатов, выступающих от разных партий. Такой подход применяется организаторами предвыборной кампании для выявления того, что думают избиратели в отношении различных проблем, и как они связывают эти проблемы со словами и действиями кандидатов [1].

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

7. Поддержка поисковых систем и систем извлечения информации. В таких системах анализ может служить для отделения фактов от мнений.

8. Анализ обратной связи от пользователей. При диалоге с пользователем система распознает его эмоции, и при помощи обратной связи может реагировать в соответствии с ними.

9. Анализ экстремистских ресурсов. Анализируются Интернет-ресурсы экстремистского содержания на предмет подозрительной активности.

10. Психологические исследования. Определение депрессии у пользователей социальных сетей.

1.2 ДСМ-метод

1.2.1 Схема метода

На рис. 1 изображена схема ДСМ-метода классификации текстов.

Рис. 1 - Схема ДСМ-метода классификации текстов

Для реализации ДСМ-метода используются три основных компонента: словарь, обучающая коллекция текстов и классифицируемые тексты. Словарь и обучающая коллекция используются для формирования множества гипотез, характеризующих принадлежность текста к определенному классу. Гипотезы сравниваются с фрагментами классифицируемых текстов на предмет совпадения. По результатам сравнения делается заключение об эмоциональной категории этих текстов.

Словарь может быть сформирован как автоматически (содержит без исключения все слова из обучающей коллекции), так и вручную (содержит только слова, имеющие явно выраженную эмоциональную окраску).

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

1.2.2 Описание метода

ДСМ-метод - это метод автоматического порождения гипотез. Был предложен В. К. Финном в конце 1970-х гг. Свое название метод получил от инициалов известного английского философа, логика и экономиста Джона Стюарта Милля. ДСМ-метод представляет собой формализацию правдоподобных рассуждений, которая позволяет на основе анализа имеющихся данных формировать гипотезы о том, какими свойствами могут обладать рассматриваемые объекты. ДСМ-метод - это синтез трех познавательных процедур - эмпирической индукции, структурной аналогии и абдукции. В данной работе мы рассмотрим только два этапа этого метода - этапы индукции и аналогии.

В соответствии с [8] будем использовать следующие условные обозначения: О - множество объектов предметной области, Р - множество свойств этих объектов, С - множество характеристик объектов, являющихся возможными причинами свойств, V - множество истинностных оценок объектов.

На вход ДСМ-метод подается множество изучаемых объектов и информация о наличии или отсутствии у них определенных свойств. Кроме того, имеется ряд целевых признаков, каждый из которых разбивает исходное множество объектов на четыре непересекающихся подмножества:

- объекты, про которые известно, что они обладают данным признаком,

- объекты, про которые известно, что они не обладают данным признаком,

- объекты, для которых существуют аргументы как за, так и против того, что они обладают данным признаком,

- объекты, о которых неизвестно, обладают они этим признаком или нет.

В задаче определения тональности текста с двумя эмоциональными категориями множество О содержит исследуемые тексты; множество Р состоит из одного элемента (свойства) , обозначающего положительную тональность текста (отсутствие этого свойства означает, что тональность текста отрицательна); множество С включает характеристики, отвечающие за представление текстов, например характеристика может быть отдельным словом или словосочетанием; множество

,

где +1 означает, что объект обладает свойством , -1 означает, что объект не обладает свойством , 0 - наличие противоречия (т. е. имеются аргументы как за, так и против того, что объект обладает свойством ), - отсутствие информации о свойстве ) [9].

Множество текстов О состоит из трех подмножеств: тексты положительной тональности (+1), тексты отрицательной тональности (-1) и тексты, тональность которых требуется определить (-тексты). Первые два подмножества образуют обучающую коллекцию текстов, третье подмножество - тестовую коллекцию.

Идея ДСМ-метода заключается в следующем. Сначала составляется коллекция текстов, для которых точно известна эмоциональная окраска. На основе имеющейся коллекции производится обучение классификатора. Оно заключается в формировании гипотез (этап индукции). Гипотеза представляет собой пересечение текстов коллекции. С помощью соответствующего алгоритма находят всевозможные пересечения текстов. Для каждой эмоциональной категории формируется отдельное множество гипотез.

Далее следует этап аналогии. Сформированные гипотезы поочередно сравниваются в -текстами. Если гипотеза содержатся в обрабатываемом тексте, то она помечается каким-либо образом. После того, как все гипотезы проверены на совпадение с текстом, можно выделить множество помеченных гипотез. Такое множество выделяется в каждой эмоциональной категории. На последнем этапе остается сделать заключение, к какому классу отнести -текст. В задаче определения тональности текста используется достаточно большое количество характеристик объектов (порядка 104) и порожденных гипотез (порядка 104-106) [9]. Вследствие этого происходят многочисленные совпадения характеристик как положительных гипотез, так и отрицательных с -текстами, т. е. имеют место множественные конфликты. Для выхода из этой ситуации используется функция разрешения конфликтов. В качестве критериев, позволяющих присвоить тональность -текстам, можно рассматривать:

а) суммарное количество гипотез

,,(2)

где , - положительные и отрицательные гипотезы соответственно; - коэффициент, учитывающий дисбаланс количества положительных и отрицательных текстов,

б) суммарное количество характеристик во всех гипотезах,

,(3)

где - количество характеристик гипотезы ,

в) суммарное количество родителей всех гипотез

,(4)

где - количество родителей гипотезы ,

г) произведение количества характеристик на количество родителей

,(5)

д) взвешенное среднее арифметическое числа характеристик, т. е. отношение произведения количества характеристик на количество родителей к общему количеству родителей гипотез одного класса

,(6)

е) взвешенное среднее арифметическое числа родителей, т. е. отношение произведения количества характеристик на количество родителей к общему количеству характеристик гипотез одного класса

.(7)

Значение, возвращаемое данной функцией, определяет категорию обрабатываемого текста.

1.2.3 Алгоритм поиска пересечений

На этапе индукции для того, чтобы установить сходства объектов, осуществляется поиск всех общих фрагментов объектов. Доказано, что для бинарного представления характеристик такая задача является NР-полной [2]. Для поиска всех общих фрагментов мы будем использовать алгоритм Норриса, который имеет линейную сложность от числа общих фрагментов, является инкрементным и одним из самых эффективных среди аналогичных методов [9].

Приведем описание алгоритма Норриса в соответствии с [8]. Пусть у нас имеется набор множеств (объектов). Введем на этом наборе множеств какой-нибудь линейный порядок и зафиксируем его. На -ном шаге для -ного объекта алгоритм дополняет набор пересечений, построенных для предыдущих множеств, пересечениями каждого множества этого набора с -ным объектом.

Обозначим через номер множества (сами множества и их пересечения будем обозначать маленькими буквами, а подмножество номеров множеств - большими буквами).

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

Ниже приведен псевдокод алгоритма поиска максимальных пересечений подмножеств.

:= пустое множество;

For i := 1 To < количество множеств > Do Begin

:= <очередное множество >;

For j := 1 To < размер множества > Do Begin

// - понятие из множества

:= очередное пересечение из ;

:= номера множеств , составляющих пересечение ;

// если является подмножеством

If Then

// добавляем к номерам, входящим в , номер

// иначе, если не является подмножеством

Else Begin

// найдем пересечение множеств и

;

f := false; // флаг совпадения с одним из множеств в

; // номер родителя пересечения

k := 1;

While (k <= <размер множества >) And (not f) Do Begin

:= очередное пересечение из ;

:= номера множеств , составляющих пересечение ;

If Then Begin

;

f := true;

End;

Else Begin

;

Inc(k);

End;

End;

If not f Then

; // добавляем новое понятие в

End;

End;

f := false; // флаг, показывающий, является ли подмножеством

// некоторого множества из

q := 1;

While (q <= ) And (not f) Do Begin

:= очередное множество ;

If Then

f := true

Else

Inc(q);

End;

If not f Then

;

End;

1.3 N-кратный скользящий контроль

автоматический тональность текст программный

Приведем описание метода перекрестной проверки согласно справочнику [4]. Перекрестная проверка (кросс-валидация) - это статистический метод оценки и сравнения обучающих алгоритмов путем деления данных на два сегмента: один сегмент используется для обучения системы, другой - для ее проверки. Базовой формой перекрестной проверки является N-кратный скользящий контроль (N-fold cross-validation).

При проведении N-кратного скользящего контроля все имеющиеся данные разбивают на N равных (или приблизительно равных) по размеру частей (блоков). Обычно N задают равным 5 или 10. Каждый из N блоков поочерёдно объявляется контрольным (тестовым), остальные N-1 блоков объявляются обучающими (тренировочными). Производится обучение классификатора по обучающим блокам, а затем осуществляется классификация объектов в контрольном блоке. Процедура обучения повторяется N раз, в результате все объекты оказываются классифицированными как контрольные ровно по одному разу, и как обучающие по (N-1) раз.

Рис. 2 - Процедура 3-кратной перекрестной проверки

Для оценки качества работы классификатора используют заранее определенную метрику, например, точность (precision). Итоговую оценку точности классификации вычисляют как среднее арифметическое значение точности по всем циклам. Таким образом, процедура перекрестной проверки позволяет максимально полно использовать имеющиеся выборочные данные для оценки качества автоматической классификации.

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

1.4 Метрики качества

Для оценки эффективности ДСМ-метода будем пользоваться следующими метриками - правильность (accuracy), точность (precision), полнота (recall) и F1-мера (F1-measure).

Эти метрики легко рассчитать на основании таблицы сопряженности, которая составляется для каждого класса отдельно.

Таблица 1 - Таблица сопряженности

Категория

Экспертная оценка

Positive

Negative

Оценка классификатора

Positive

TP

FP

Negative

FN

TN

В таблице содержится информация о том, сколько раз система приняла верное и сколько раз неверное решение по объектам заданного класса. Условные обозначения категорий:

TP (true positives) - объекты, которые классификатор отнес к позитивному классу и которые действительно принадлежат позитивному классу; TN (true negative) - объекты, которые классификатор отнес к негативному классу и которые действительно принадлежат негативному классу;

FP (false positive) - объекты, которые классификатор ошибочно отнес к позитивному классу, хотя на самом деле они относятся к негативному классу;

FN (false negative) - объекты, которые классификатор ошибочно отнес к негативному классу, хотя на самом деле они относятся к позитивному классу.

Описание основных метрик приведем в соответствии с [5].

1.4.1 Правильность и ошибочность

На практике не бывает систем, абсолютно точно определяющих правильные соотношения классов и принадлежащих им объектов. Классификатор будет работать с ошибками относительно тестовой выборки. Для оценки успешности сопоставления классов и объектов используется метрика правильности:

,(8)

где в числителе - количество объектов, по которым классификатор принял правильное решение, в знаменателе - размер классифицируемой выборки. Для оценки процента ошибок используется метрика ошибочности:

,(9)

где в числителе - количество объектов, по которым классификатор принял ошибочное решение. Это метрика используется не так часто в задачах текстовой классификации.

1.4.2 Точность и полнота

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

Точность системы в пределах класса - это доля объектов действительно принадлежащих данному классу относительно всех объектов, которые система отнесла к этому классу. Эта метрику можно представить как степень «разумности» системы. Полнота системы - это доля найденных классификатором объектов, принадлежащих классу, относительно всех объектов этого класса в тестовой выборке. Данную метрику можно представить как степень полноты системы.

Метрика точности определяется формулой

.(10)

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

.(11)

Метрика полноты характеризует способность классификатора «угадывать» положительные ответы в тестовой выборке. Отметим, что ложно-положительные ответы никак не влияют на эту метрику.

1.4.3 F1-мера

Метрики точности и полноты дают достаточно исчерпывающую характеристику классификатора. Понятно, что чем выше точность и полнота, тем лучше. Если повышать полноту, делая классификатор более «оптимистичным», это приведет к понижению точности из-за увеличения числа ложно-положительных ответов. Если же делать классификатор более «пессимистичным», то при росте точности произойдет одновременное падение полноты из-за отбраковки какого-то числа правильных ответов.

В реальной жизни максимальная точность и полнота не достижимы одновременно, поэтому приходится искать некоторый баланс. С этой целью вводится метрика, которая объединяет в себе информацию о точности и полноте классификатора. Она получила название F1-мера и фактически является средним гармоническим величин P и R:

.(12)

В данной формуле придается одинаковый вес точности и полноте, поэтому F1-мера будет снижаться одинаково при уменьшении точности.

Глава 2. Практическое исследование ДСМ-метода

2.1 Программная реализация

Для написания программы-анализатора был использован язык программирования C#.

2.1.1 Пользовательский интерфейс

Программа реализована в виде консольного приложения. Запуск осуществляется из командной строки Windows. Синтаксис команды запуска исполняемого файла представлен на рис. 3.

Рис. 3 - Синтаксис команды запуска приложения

По умолчанию коэффициент дисбаланса , количество блоков для перекрестной проверки .

2.1.2 Входные данные

Словарь хранится в текстовом файле Dictionary.txt.

Исходные тексты для обучения и классификации располагаются в следующих директориях:

/SourceTexts/MinusSamples - обучающие негативные тексты,

/SourceTexts/PlusSamples - обучающие позитивные тексты,

/SourceTexts/TauSamples - тексты, тональность которых требуется определить.

Тексты после обработки программой Mystem помещаются в директории:

/NormalizedTexts/MinusSamples - нормализованные негативные тексты,

/NormalizedTexts/PlusSamples - нормализованные позитивные тексты,

/NormalizedTexts/TauSamples - нормализованные тексты, тональность которых требуется определить.

2.1.3 Выходные данные

Результаты процедуры кросс-валидации содержатся в текстовом файле ResultsCrossValidation.txt, результаты классификации - в файле ResultsClassification.txt.

2.1.4 Диаграмма классов и структуры данных

Диаграмма классов изображена на рис. 4.

Рис. 4 - Диаграмма классов

В программе используются следующие пользовательские структуры данных:

o Структура Hypothesis содержит информацию о признаках, характеризующих гипотезу, родителях этих признаков и классе тональности, к которому принадлежит данная гипотеза.

public struct Hypothesis

{

// Множество признаков

public HashSet<int> setValues;

// Множество родителей

public HashSet<int> setParents;

// Класс гипотезы:

// '-' - отрицательный,

// '+' - положительный

public char type;

}

o Структура TextInfo содержит характеристики текста: имя файла, множество слов из текста, содержащихся в словаре, и класс тональности текста.

public struct TextInfo

{

// Имя файла, содержащего текст

public string name;

// Множество слов из словаря, содержщихся в тексте

public HashSet<int> setValues;

// Класс текста:

// '-' - отрицательный,

// '+' - положительный

// 't' - неопределенной тональности

public char type;

}

Поле setValues содержит индексы слов, присутствующих в тексте.

o Структура EffectMeasure описывает метрики качества.

public struct EffectMeasure

{

// Точность

public double precission;

// Полнота

public double recall;

// F1-мера

public double f1_measure;

// Правильность

public double accuracy;

}

Приведем описание классов и реализованных в них методов.

Класс Program отвечает за подготовку данных к обработке и вывод результатов в файл. Методы класса:

o BuildHashSet - формирует множество слов, содержащихся в тексте;

o LoadDictionary - загружает словарь из файла Dictionary.txt;

o NormText - осуществляет нормализацию текстов, т. е. переводит каждое слово в начальную форму;

o PrintResultCrossValidation - выполняет вывод метрик качества в файл ResultsCrossValidation.txt;

o PrintResultClassifications - выполняет вывод метрик качества в файл ResultsClassifications.txt;

o RandomSort - выполняет сортировку обучающих текстов в случайном порядке.

Класс TextNormalizer отвечает за нормализацию текстов. Методы класса:

o CreateProcess - создает новый процесс (запускает морфологический анализатор Mystem от Яndex);

o Normalize - производит нормализацию текстов в заданной директории.

Класс CrossValidator отвечает за перекрестную проверку обучающей модели. Методы класса:

o CalcKoeff - рассчитывает метрики качества анализа тональности;

o ProcessTexts - осуществляет перекрестную проверку (делит множество текстов на равнее части; поочередно одну из частей выбирает в качестве контрольной, остальные - в качестве обучающих);

Класс JsmProcessor отвечает за этапы ДСМ-метода. Методы класса:

o Analogy - выполняет процедуру аналогии;

o Classification - определяет класс тональности текста;

o ConflictResolution, …, ConflictResolution6 - функции разрешения конфликтов на основе различных критериев;

o Induction - выполняет процедуру индукции (алгоритм Норриса поиска пересечений текстов).

2.2 Текстовая коллекция

Перед проведением эксперимента была составлена коллекция отзывов пользователей сети Интернет о фильмах с использованием сайта http://www.megacritic.ru. Каждый отзыв имеет оценку по шкале тональности от 1 до 10. В нашей работе исследуется ДСМ-метод в отношении только двух классов, поэтому десятибалльная шкала отображается в двухбалльную: отзывы с оценками от 8 до 10 обозначаются как положительные, с оценками от 1 до 3 - как отрицательные. Сформированная обучающая коллекция не содержит отзывы с оценками от 4 до 7, так как для обучения классификатора мы старались выбирать тексты, содержащие наиболее однозначно выраженную эмоциональную окраску. Общее количество отзывов - 500, из них положительных - 250, отрицательных - 250.

2.3 Эксперименты и результаты

Для тестирования ДСМ-метода автоматического порождения гипотез использовался компьютер со следующими характеристиками:

ь CPU AMD Athlonтм XP 2500+ Barton (Socket 462, 1,833MHz, L2 512Kb, 333MHz);

ь RAM DDR 512 Mb (pc-3200) 200MHz/400Mbps;

ь OS Windows XP Professional SP3 x32.

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

Исследование качества распознавания тональности текстов проводилось в зависимости от:

· словаря (автоматический, ручной);

· частей речи, входящих в словарь (прилагательных, существительных, глаголов, а также их различных комбинаций);

· функции разрешения конфликтов.

Оценка качества проводилась с помощью процедуры кросс-валидации. Весь набор обучающих текстов разбивался на 5 равных по объему частей. Поочередно каждая из этих частей принималась в качестве контрольной, остальные - в качестве обучающих. Значения метрик, полученные в каждом цикле процедуры кросс-валидации, в итоге усреднялись с помощью среднего арифметического положительных чисел.

1. Результаты тестирования в зависимости от словаря и частей речи

Тестирование проводилось при коэффициенте естественного дисбаланса . Полученные результаты представлены в табл. 2 и табл. 3.

Таблица 2 - Результаты тестирования ДСМ-метода в зависимости от словаря и частей речи при использовании функции разрешения конфликтов на основе количества гипотез

Параметры

Метрики качества

Часть речи

Словарь

Precision

Recall

F1-measure

Accuracy

Прил.

Авт.

0,915

0,890

0,902

0,896

Ручной

0,918

0,892

0,904

0,898

Сущ.

Авт.

0,433

0,868

0,573

0,711

Ручной

0,769

0,859

0,805

0,885

Гл.

Авт.

0,775

0,841

0,806

0,816

Ручной

0,704

0,808

0,749

0,779

Прил. + Сущ.

Авт.

0,716

0,966

0,822

0,850

Ручной

0,956

0,927

0,940

0,941

Прил. + Гл.

Авт.

0,916

0,898

0,906

0,902

Ручной

0,927

0,929

0,928

0,925

Сущ. + Гл.

Авт.

0,616

0,940

0,741

0,801

Ручной

0,809

0,903

0,852

0,888

Прил. + Сущ. + Гл.

Авт.

0,778

0,964

0,860

0,876

Ручной

0,918

0,972

0,944

0,945

Все части речи

Авт.

0,768

0,921

0,833

0,850

Ручной

0,907

0,944

0,924

0,925

Таблица 3 - Результаты тестирования ДСМ-метода в зависимости от словаря и частей речи при использовании функции разрешения конфликтов на основе произведения количества характеристик на количество родителей

Параметры

Метрики качества

Часть речи

Словарь

Precision

Recall

F1-measure

Accuracy

Прил.

Авт.

0,882

0,861

0,871

0,868

Ручной

0,931

0,855

0,890

0,881

Сущ.

Авт.

0,685

0,723

0,699

0,706

Ручной

0,692

0,789

0,735

0,813

Гл.

Авт.

0,762

0,768

0,764

0,766

Ручной

0,835

0,768

0,795

0,800

Прил. + Сущ.

Авт.

0,787

0,843

0,814

0,820

Ручной

0,933

0,893

0,912

0,911

Прил. + Гл.

Авт.

0,872

0,845

0,858

0,855

Ручной

0,935

0,840

0,884

0,875

Сущ. + Гл.

Авт.

0,771

0,790

0,779

0,781

Ручной

0,839

0,873

0,855

0,862

Прил. + Сущ. + Гл.

Авт.

0,848

0,857

0,852

0,854

Ручной

0,947

0,878

0,911

0,907

Все части речи

Авт.

0,684

0,889

0,770

0,798

Ручной

0,952

0,880

0,914

0,909

На основании этой информации, проведем анализ влияния отдельных составляющих ДСМ-метода на качество распознавания тональности текстов.

а) Влияние словаря

В табл. 4 приведены размеры словаря по каждой части речи, а на рис. 5 эти данные представлены в виде диаграммы. Автоматический словарь формировался путем добавления из текстов обучающей коллекции всех слов без исключения. Ручной словарь составлялся из автоматического путем удаления слов с нейтральной окраской.

Таблица 4 - Размер словаря

Параметры

Размер словаря

Параметры

Размер словаря

Часть речи

Словарь

Часть речи

Словарь

Прил.

Авт.

1280

Прил. + Гл.

Авт.

2014

Ручной

757

Ручной

1041

Сущ.

Авт.

1142

Сущ. + Гл.

Авт.

1876

Ручной

294

Ручной

578

Гл.

Авт.

734

Прил. + Сущ. + Гл.

Авт.

3156

Ручной

284

Ручной

1335

Прил. + Сущ.

Авт.

2422

Все части речи

Авт.

3409

Ручной

1050

Ручной

1379

Рис. 5 - Размер словаря

Использование ручного словаря в большинстве случаев позволило получить более высокие оценки. Улучшение оценок составило от 1% до 77% по табл. 2 и от 1% до 39% по табл. 3. Среднее улучшение показателей представлено в табл. 5. Незначительное ухудшение наблюдается по метрике полноты. Улучшение связано с тем, что словарь, составленный вручную, содержит слова с наиболее ярко выраженной эмоциональной окраской, и практически не содержит слов с нейтральной окраской. Благодаря отсутствию нейтрально окрашенных слов формирующиеся гипотезы более точно характеризуют тональность.

Таблица 5 - Среднее улучшение оценок при использовании ручного словаря по сравнению с автоматическим

Источник усредняемых данных

Метрика

Precision

Recall

F1-measure

Accuracy

Табл. 2

11,4%

-0,39%

5,7%

4,1%

Табл. 3

11,6%

3%

7,4%

7,6%

Таблица 6 - Количество сформированных гипотез (при использовании функции разрешения конфликтов на основе количества гипотез)

Параметры

Количество гипотез

Часть речи

Словарь

Положительные

Отрицательные

Прил.

Авт.

2958

3046

Ручной

2161

1932

Сущ.

Авт.

5290

9758

Ручной

718

1234

Гл.

Авт.

3663

4155

Ручной

1204

1378

Прил. + Сущ.

Авт.

12146

18907

Ручной

2988

3307

Прил. + Гл.

Авт.

9193

9828

Ручной

3754

3601

Сущ. + Гл.

Авт.

13660

22201

Ручной

1850

2676

Прил. + Сущ. + Гл.

Авт.

23713

34850

Ручной

4584

5280

Все части речи

Авт.

72412

113258

Ручной

6217

6874

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

б) Влияние частей речи

Проведенные испытания показали, что из трех наиболее многочисленных групп частей речи (прил., сущ., гл.) наилучшие оценки качества определения тональности достигаются при использовании имен прилагательных. В табл. 7 приведены результаты улучшения оценок при использовании имен прилагательных по сравнению с другие частями речи. Сравнение проведено по результатам испытаний с ручным словарем.

Таблица 7 - Улучшение оценок при использовании имен прилагательных по сравнению с другими частями речи (при использовании ручного словаря)

Источник данных

Часть речи, с которой проводилось сравнение

Метрика

Precision

Recall

F1-measure

Accuracy

Табл. 2

сущ.

19,4%

3,8%

12,3%

1,5%

гл.

30,4%

10,4%

20,7%

15,3%

Табл. 3

сущ.

34,5%

8,4%

21,1%

8,4%

гл.

11,5%

11,3%

11,9%

10,1%

Объединение прилагательных с другими частями речи позволило получить еще более высокие оценки. Наилучшие и близкие между собой оценки были достигнуты при комбинациях:

· по данным табл. 2 - прил. + сущ., прил. + сущ. + гл.;

· по данным табл. 3 - прил. + сущ., прил. + сущ. + гл., все части речи.

Данный эксперимент показал, что наибольший вклад в качество определения тональности текста вносят прилагательные.

в) Совместное влияние словаря и частей речи

По данным табл. 2 и 3 наименее хорошие результаты показало использование сущ. и автоматического словаря. Наилучшие результаты (строки, выделенные серым цветом) были достигнуты при использовании сочетаний ручного словаря и прил. + сущ., прил. + сущ. + гл., всех частей речи.

2. Результаты эксперимента в зависимости от функции разрешения конфликтов

В процессе эксперимента для каждого -текста на основе совпадений характеристик определялись множества подходящих положительных и отрицательных гипотез. Затем эти гипотезы поступали на вход функции разрешения конфликтов , которая на основе заданного критерия присваивала тексту определенную тональность. Для разрешения конфликтов использовались функции, приведенные в п. 1.2.2. Компьютерный эксперимент проводился при коэффициенте естественного дисбаланса . Результаты представлены в табл. 8.

Таблица 8 - Результаты работы ДСМ-метода в зависимости от функции разрешения конфликтов

Критерий функции разрешения конфликтов

Метрики качества

Precision

Recall

F1-measure

Accuracy

Суммарное количество гипотез

0,950

0,906

0,927

0,919

Суммарное количество характеристик во всех гипотезах

0,919

0,915

0,917

0,911

Суммарное количество родителей у всех гипотез

0,940

0,850

0,892

0,882

Произведение количества характеристик на количество родителей

0,932

0,843

0,885

0,874

Взвешенное среднее арифметическое числа характеристик

0,941

0,844

0,889

0,879

Взвешенное среднее арифметическое числа родителей

0,717

0,679

0,696

0,691

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

2.3.2 Оценка времени работы программы

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

Рис. 6 - Время работы программы-анализатора

При помощи метода наименьших квадратов построено два приближения исследуемой зависимости (рис. 6). Для рассмотренного набора входных данных наиболее точной оказалась экспоненциальная зависимость.

В табл. 9 приведено время работы программы для различных частей речи и словарей, а на рис. 7 и рис. 8 эти данные представлены в виде диаграмм.

Таблица 9 - Время работы программы-анализатора (при использовании функции разрешения конфликтов на основе количества гипотез)

Параметры

Время работы, мин

Параметры

Время работы, мин

Часть речи

Словарь

Часть речи

Словарь

Прил.

Авт.

0,145

Прил. + Гл.

Авт.

1,006

Ручной

0,082

Ручной

0,210

Сущ.

Авт.

0,705

Сущ. + Гл.

Авт.

3,505

Ручной

0,035

Ручной

0,104

Гл.

Авт.

0,230

Прил. + Сущ. + Гл.

Авт.

9,128

Ручной

0,045

Ручной

0,396

Прил. + Сущ.

Авт.

2,381

Все части речи

Авт.

98,880

Ручной

0,159

Ручной

0,633

а

б

Рис. 7 - Время работы программы-анализатора (в мс): а - автоматический словарь; б - ручной словарь

На рис. 8 изображена диаграмма времени работы программы с ручным словарем в процентном отношении ко времени работы с автоматическим словарем.

Рис. 8 - Время работы программы с ручным словарем в процентном отношении ко времени работы с автоматическим словарем

Полученные результаты показывают, что при использовании ручного словаря скорость работы программы существенно больше, чем в случае автоматического словаря. При этом качество распознавания тональности выше.

Заключение

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

o словарь, составленный вручную, по сравнению с автоматическим словарем дает улучшение значения метрик качества вследствие отсечения множества слов с нейтральной окраской, а также увеличивает скорость работы программы;

o наибольший вклад в качество определения тональности вносят имена прилагательные вследствие частого употребления и содержания ярко выраженной эмоциональной окраски;

o разные функции разрешения конфликтов дают разное качество определения тональности.

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

Библиографический список

1. Feldman R. Techniques and Applications for Sentiment Analysis // Communications of the ACM. 2013. Vol. 56, №4. P. 82-89.

2. Kuznetsov S.O., Obiedkov S.A. Comparing Perfomance of Algorithms for Generating Concept Lattices // Journal of Experimental and Theoretical Artificial Intelligence. 2002. Vol. 14.

3. Liu B. Sentiment Analysis and Opinion Mining. Morgan & Claypool Publishers, 2012.

4. Refaeilzadeh P., Tang L., Liu H. Encyclopedia of Database Systems // Springer, US. 2009.

5. Sebastiani F. Machine learning in Automated Text Categorization // ACM Computing Surveys. 2002. Vol. 34. P. 1-47.

6. Автоматическое порождение гипотез в интеллектуальных системах / под ред. В. К. Финна. - М.: Либроком, 2009. - 528 с.

7. ДСМ-метод автоматического порождения гипотез / под ред. О. М. Аншакова. - М.: Либроком, 2009. - 432 с.

8. Кожунова О. С. Технология разработки семантического словаря системы информационного мониторинга // Автореферат диссертации на соискание ученой степени кандидата технических наук. - М., 2009. - 21 с.

9. Котельников Е. В. Распознавание эмоциональной составляющей в текстах: проблемы и подходы / Е. В. Котельников, М. В. Клековкина, Т. А. Пескишева, О. А. Пестов; под. ред. С. М. Окулова. - Киров: Изд-во ВятГГУ, 2012. - 103 с.

10. Котельников Е. В., Пескишева Т. А., Пестов О. А. Параллельный выбор параметров классификатора для анализа тональности текстов // Вопросы современной науки и практики. Университет им. В.И. Вернадского. Тамбов: ГОУ ВПО ТГТУ, 2012. С. 67-74.

Приложение

Файл Program.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Collections;

using System.Diagnostics;

namespace JSM_VS

{

/// <summary>

/// Гипотезы

/// </summary>

public struct Hypothesis

{

/// <summary>

/// Множество признаков

/// </summary>

public HashSet<int> setValues;

/// <summary>

/// Множество родителей

/// </summary>

public HashSet<int> setParents;

/// <summary>

/// Класс гипотезы:

/// '-' - отрицательный,

/// '+' - положительный

/// </summary>

public char type;

}

/// <summary>

/// Описание текстов

/// </summary>

public struct TextInfo

{

/// <summary>

/// Имя файла, содержащего текст

/// </summary>

public string name;

/// <summary>

/// Множество слов из словаря, содержщихся в тексте

/// </summary>

public HashSet<int> setValues;

/// <summary>

/// Класс текста:

/// '-' - отрицательный,

/// '+' - положительный

/// 't' - неопределенной тональности

/// </summary>

public char type;

}

/// <summary>

/// Метрики качества

/// </summary>

public struct EffectMeasure

{

/// <summary>

/// Точность

/// </summary>

public double precission;

/// <summary>

/// Полнота

/// </summary>

public double recall;

/// <summary>

/// F1-мера

/// </summary>

public double f1_measure;

/// <summary>

/// Правильность

/// </summary>

public double accuracy;

//public int countPlusHyp; // Количество положительных гипотез

//public int countMinusHyp; // Количество отрицательных гипотез

}

class Program

{

/// <summary>

/// Загрузка словаря

/// </summary>

/// <param name="words"></param>

static void LoadDictionary(Dictionary<string, int> words)

{

StreamReader sr = new StreamReader("dictionary.txt", Encoding.GetEncoding(1251));

int numWord = 0;

while (!sr.EndOfStream)

{

string str = sr.ReadLine();

numWord++;

words.Add(str, numWord);

}

sr.Close();

}

/// <summary>

/// Сортировка массива примеров в случайном порядке

/// </summary>

/// <param name="arrayOfSet"></param>

static void RandomSort(TextInfo[] arrayOfSet)

{

Random rand = new Random();

for (int i = 0; i < arrayOfSet.Length; i++)

{

int index1 = rand.Next(0, arrayOfSet.Length - 1);

int index2 = rand.Next(0, arrayOfSet.Length - 1);

TextInfo temp = arrayOfSet[index1];

arrayOfSet[index1] = arrayOfSet[index2];

arrayOfSet[index2] = temp;

}

}

/// <summary>

/// Нормализация исходных текстов

/// </summary>

static void NormText()

// Нормализуем положительные тексты

TextNormalizer srcText = new TextNormalizer();

srcText.Normalize("SourceTexts\\PlusSamples", "NormalizedTexts\\PlusSamples");

// Нормализуем отрицательные тексты

srcText.Normalize("SourceTexts\\MinusSamples", "NormalizedTexts\\MinusSamples");

// Нормализуем тау-тексты

srcText.Normalize("SourceTexts\\TauSamples", "NormalizedTexts\\TauSamples");

}

/// <summary>

/// Построение массива из множеств слов, содержащихся в каждом тексте

/// </summary>

/// <param name="dict"></param>

/// <param name="dirName"></param>

/// <param name="samples"></param>

static void BuildHashSet(Dictionary<string, int> dict, string dirName,

out TextInfo[] samples, char type)

{

DirectoryInfo diNormText = new DirectoryInfo(dirName);

FileInfo[] fiNormText = diNormText.GetFiles();

samples = new TextInfo[fiNormText.Length];

for (int i = 0; i < fiNormText.Length; i++)

samples[i].setValues = new HashSet<int>();

for (int i = 0; i < fiNormText.Length; i++)

{

StreamReader sr = new StreamReader(dirName + "\\" + fiNormText[i].Name,

Encoding.GetEncoding(1251));

samples[i].name = fiNormText[i].Name;

while (!sr.EndOfStream)

{

string str = sr.ReadLine();

string[] masStr = str.Split('=', ',');

if (dict.ContainsKey(masStr[0]))

samples[i].setValues.Add(dict[masStr[0]]);

}

samples[i].type = type;

sr.Close();

}

}

static void PrintResultCrossValidation(string description, EffectMeasure koeff, long time)

{

StreamWriter sw = new StreamWriter("ResultsCrossValidation.txt", false, Encoding.GetEncoding(1251));

sw.WriteLine(description);

sw.WriteLine("Preccision = {0:d3}", koeff.precission.ToString());

sw.WriteLine("Recall = {0:d3}", koeff.recall.ToString());

sw.WriteLine("F1-measure = {0:d3}", koeff.f1_measure.ToString());

sw.WriteLine("Accuracy = {0:d3}", koeff.accuracy.ToString());

sw.WriteLine("Time processing = {0}", time.ToString());

sw.Close();

}

static void PrintResultClassification(char[] resClassification, TextInfo[] tauSamples, long time)

{

StreamWriter sw = new StreamWriter("ResultsClassification.txt", false, Encoding.GetEncoding(1251));

for (int i = 0; i < tauSamples.Length; i++)

sw.WriteLine("{0} {1}", tauSamples[i].name, resClassification[i]);

sw.WriteLine("Time processing = {0}", time.ToString());

sw.Close();

}

static void Main(string[] args)

{

bool error = false;

double imbalance;

int typeFuncResolution;

int index = 0;

if (args.Length > 0 && args.Length <= 5)

{

// Вызов справки

if (index < args.Length && args[index] == "-help")

{

error = true;

}

// Проверка необходимости нормализации текстов

if (!error && index < args.Length && args[index] == "-n")

{

NormText();

index++;

}

// Тип функции разрешения конфликтов

try

{

typeFuncResolution = int.Parse(args[index]);

if (typeFuncResolution < 1 && typeFuncResolution > 6)

{

error = true;

Console.WriteLine("Ошибка! Неверно задан номер функции разрешения конфликтов");

}

index++;

}

catch

{

typeFuncResolution = 1;

}

// Коэффициент дисбаланса

try

{

imbalance = double.Parse(args[index]);

index++;

}

catch

{

imbalance = 1;

}

Stopwatch timer = new Stopwatch();

Dictionary<string, int> dict = new Dictionary<string, int>();

LoadDictionary(dict);

// Массив множеств, содержащий в i-той ячейке номера слов из словаря, входящих в i-тый текст

TextInfo[] plusSamples, minusSamples, tauSamples;


Подобные документы

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

    курсовая работа [1010,4 K], добавлен 10.08.2014

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

  • Назначение и классификация методов поисковой оптимизации. Эффективность поискового метода. Методы поиска нулевого порядка: исходные данные, условия, недостатки и применение. Структура градиентного метода поиска. Основная идея метода наискорейшего спуска.

    лекция [137,8 K], добавлен 04.03.2009

  • Сущность и описание симплекс-метода и улучшенного симплекс-метода (метода обратной матрицы), преимущества и недостатки их применения в линейном прогаммировании. Листинг и блок-схема программы на языке Turbo Pascal для решения математической задачи.

    курсовая работа [45,0 K], добавлен 30.03.2009

  • Понятие графика функции и его представление на ЭВМ. Алгоритм реализации, блок-схема и функциональные тесты графического метода решения частного случая задачи нелинейного программирования, его математическая модель. Диалог программы с пользователем.

    курсовая работа [1,6 M], добавлен 15.05.2012

  • Ознакомление с методами решения оптимизационных задач. Алгоритм метода ломанных. Определение наименьшего значения целевой функции. Описание метода анализа математической модели. Расчет поиска минимума по методу ломаных. Листинг программы, интерфейс.

    курсовая работа [2,2 M], добавлен 06.12.2014

  • Общие задачи линейного программирования. Описание алгоритма симплекс-метода, записанного в канонической форме с односторонними ограничениями. Алгоритм построения начального опорного плана для решения задачи. Расширенный алгоритм искусственного базиса.

    курсовая работа [142,9 K], добавлен 24.10.2012

  • Структура языка Паскаль, встроенные процедуры и функции. Составление алгоритма решения уравнения, описывающего работу кривошипно-шатунного механизма, с помошью метода итерации, метода Гаусса и метода Зейделя. Блок-схемы алгоритмов и текст программы.

    курсовая работа [64,6 K], добавлен 07.05.2011

  • Необходимые условия экстремума. Разработка машинного алгоритма и программы многомерной оптимизации для градиентного метода с использованием метода равномерного поиска. Проверка необходимых и достаточных условий экстремума для найденной точки минимума.

    курсовая работа [249,8 K], добавлен 25.09.2013

  • Описание метода сжатия информации на основе двоичных кодирующих деревьев Хаффмана. Среда разработки Delphi версии 7.0. Понятия объектно-ориентированного программирования. Программа, разработанная в Delphi. Реализация на Delphi метода кодирования Хаффмана.

    курсовая работа [2,1 M], добавлен 26.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.